From c5c5cd7132e18f4aad8e73d8ee879f8823c4c1e7 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Mon, 22 Feb 2010 22:02:58 -0500 Subject: gallium/draw: initial code to properly support llvm in the draw module code generate big chunks of the vertex pipeline in order to speed up software vertex processing. --- src/gallium/auxiliary/SConscript | 2 + src/gallium/auxiliary/draw/draw_context.c | 26 +- src/gallium/auxiliary/draw/draw_context.h | 10 +- src/gallium/auxiliary/draw/draw_llvm.c | 311 ++++++++++ src/gallium/auxiliary/draw/draw_llvm.h | 154 +++++ src/gallium/auxiliary/draw/draw_llvm_translate.c | 653 +++++++++++++++++++++ src/gallium/auxiliary/draw/draw_private.h | 11 + src/gallium/auxiliary/draw/draw_pt.c | 4 +- src/gallium/auxiliary/draw/draw_pt.h | 1 + .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 432 ++++++++++++++ src/gallium/auxiliary/draw/draw_vs_llvm.c | 9 +- src/gallium/drivers/llvmpipe/lp_context.c | 6 +- 12 files changed, 1601 insertions(+), 18 deletions(-) create mode 100644 src/gallium/auxiliary/draw/draw_llvm.c create mode 100644 src/gallium/auxiliary/draw/draw_llvm.h create mode 100644 src/gallium/auxiliary/draw/draw_llvm_translate.c create mode 100644 src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index b531ad2dbd..51c4a0cbbe 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -194,6 +194,8 @@ if drawllvm: 'gallivm/lp_bld_swizzle.c', 'gallivm/lp_bld_tgsi_soa.c', 'gallivm/lp_bld_type.c', + 'draw/draw_llvm.c', + 'draw/draw_pt_fetch_shade_pipeline_llvm.c' ] gallium = env.ConvenienceLibrary( diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index d5ddc4a6a9..6fa73ad56b 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -44,6 +44,18 @@ struct draw_context *draw_create( void ) if (draw == NULL) goto fail; + if (!draw_init(draw)) + goto fail; + + return draw; + +fail: + draw_destroy( draw ); + return NULL; +} + +boolean draw_init(struct draw_context *draw) +{ ASSIGN_4V( draw->plane[0], -1, 0, 0, 1 ); ASSIGN_4V( draw->plane[1], 1, 0, 0, 1 ); ASSIGN_4V( draw->plane[2], 0, -1, 0, 1 ); @@ -57,22 +69,18 @@ struct draw_context *draw_create( void ) if (!draw_pipeline_init( draw )) - goto fail; + return FALSE; if (!draw_pt_init( draw )) - goto fail; + return FALSE; if (!draw_vs_init( draw )) - goto fail; + return FALSE; if (!draw_gs_init( draw )) - goto fail; + return FALSE; - return draw; - -fail: - draw_destroy( draw ); - return NULL; + return TRUE; } diff --git a/src/gallium/auxiliary/draw/draw_context.h b/src/gallium/auxiliary/draw/draw_context.h index acd81b9712..d42e400318 100644 --- a/src/gallium/auxiliary/draw/draw_context.h +++ b/src/gallium/auxiliary/draw/draw_context.h @@ -40,6 +40,9 @@ #include "pipe/p_state.h" +#ifdef DRAW_LLVM +#include +#endif struct pipe_context; struct draw_context; @@ -197,6 +200,11 @@ boolean draw_need_pipeline(const struct draw_context *draw, const struct pipe_rasterizer_state *rasterizer, unsigned prim ); - +#ifdef DRAW_LLVM +/******************************************************************************* + * LLVM integration + */ +struct draw_context *draw_create_with_llvm(LLVMExecutionEngineRef engine); +#endif #endif /* DRAW_CONTEXT_H */ diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c new file mode 100644 index 0000000000..6b0ddfd064 --- /dev/null +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -0,0 +1,311 @@ +#include "draw_llvm.h" + +#include "draw_context.h" +#include "draw_vs.h" + +#include "gallivm/lp_bld_arit.h" +#include "gallivm/lp_bld_interp.h" +#include "gallivm/lp_bld_struct.h" +#include "gallivm/lp_bld_type.h" +#include "gallivm/lp_bld_flow.h" +#include "gallivm/lp_bld_debug.h" +#include "gallivm/lp_bld_tgsi.h" + +#include "util/u_cpu_detect.h" + +#include + +static void +init_globals(struct draw_llvm *llvm) +{ + LLVMTypeRef vertex_header; + LLVMTypeRef texture_type; + + /* struct vertex_header */ + { + LLVMTypeRef elem_types[3]; + + elem_types[0] = LLVMIntType(32); + elem_types[1] = LLVMArrayType(LLVMFloatType(), 4); + elem_types[2] = LLVMArrayType(elem_types[1], 0); + + vertex_header = LLVMStructType(elem_types, Elements(elem_types), 0); + + /* these are bit-fields and we can't take address of them + LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_CLIPMASK); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, edgeflag, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_EDGEFLAG); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, pad, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_PAD); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, vertex_id, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_VERTEX_ID); + */ + LP_CHECK_MEMBER_OFFSET(struct vertex_header, clip, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_CLIP); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, data, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_DATA); + + LP_CHECK_STRUCT_SIZE(struct vertex_header, + llvm->target, vertex_header); + + LLVMAddTypeName(llvm->module, "vertex_header", vertex_header); + + llvm->vertex_header_ptr_type = LLVMPointerType(vertex_header, 0); + } + /* struct draw_jit_texture */ + { + LLVMTypeRef elem_types[4]; + + elem_types[DRAW_JIT_TEXTURE_WIDTH] = LLVMInt32Type(); + elem_types[DRAW_JIT_TEXTURE_HEIGHT] = LLVMInt32Type(); + elem_types[DRAW_JIT_TEXTURE_STRIDE] = LLVMInt32Type(); + elem_types[DRAW_JIT_TEXTURE_DATA] = LLVMPointerType(LLVMInt8Type(), 0); + + texture_type = LLVMStructType(elem_types, Elements(elem_types), 0); + + LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width, + llvm->target, texture_type, + DRAW_JIT_TEXTURE_WIDTH); + LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, height, + llvm->target, texture_type, + DRAW_JIT_TEXTURE_HEIGHT); + LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, stride, + llvm->target, texture_type, + DRAW_JIT_TEXTURE_STRIDE); + LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, data, + llvm->target, texture_type, + DRAW_JIT_TEXTURE_DATA); + LP_CHECK_STRUCT_SIZE(struct draw_jit_texture, + llvm->target, texture_type); + + LLVMAddTypeName(llvm->module, "texture", texture_type); + } + + + /* struct draw_jit_context */ + { + LLVMTypeRef elem_types[3]; + LLVMTypeRef context_type; + + elem_types[0] = LLVMPointerType(LLVMFloatType(), 0); /* vs_constants */ + elem_types[1] = LLVMPointerType(LLVMFloatType(), 0); /* vs_constants */ + elem_types[2] = LLVMArrayType(texture_type, PIPE_MAX_SAMPLERS); /* textures */ + + context_type = LLVMStructType(elem_types, Elements(elem_types), 0); + + LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants, + llvm->target, context_type, 0); + LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, gs_constants, + llvm->target, context_type, 1); + LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, textures, + llvm->target, context_type, + DRAW_JIT_CONTEXT_TEXTURES_INDEX); + LP_CHECK_STRUCT_SIZE(struct draw_jit_context, + llvm->target, context_type); + + LLVMAddTypeName(llvm->module, "context", context_type); + + llvm->context_ptr_type = LLVMPointerType(context_type, 0); + } +} + +struct draw_llvm * +draw_llvm_create(struct draw_context *draw) +{ + struct draw_llvm *llvm = CALLOC_STRUCT( draw_llvm ); + + util_cpu_detect(); + + llvm->draw = draw; + llvm->engine = draw->engine; + + debug_assert(llvm->engine); + + llvm->module = LLVMModuleCreateWithName("draw_llvm"); + llvm->provider = LLVMCreateModuleProviderForExistingModule(llvm->module); + + LLVMAddModuleProvider(llvm->engine, llvm->provider); + + llvm->target = LLVMGetExecutionEngineTargetData(llvm->engine); + + llvm->pass = LLVMCreateFunctionPassManager(llvm->provider); + LLVMAddTargetData(llvm->target, llvm->pass); + /* These are the passes currently listed in llvm-c/Transforms/Scalar.h, + * but there are more on SVN. */ + /* TODO: Add more passes */ + LLVMAddConstantPropagationPass(llvm->pass); + if(util_cpu_caps.has_sse4_1) { + /* FIXME: There is a bug in this pass, whereby the combination of fptosi + * and sitofp (necessary for trunc/floor/ceil/round implementation) + * somehow becomes invalid code. + */ + LLVMAddInstructionCombiningPass(llvm->pass); + } + LLVMAddPromoteMemoryToRegisterPass(llvm->pass); + LLVMAddGVNPass(llvm->pass); + LLVMAddCFGSimplificationPass(llvm->pass); + + init_globals(llvm); + + +#if 1 + LLVMDumpModule(llvm->module); +#endif + + return llvm; +} + +void +draw_llvm_destroy(struct draw_llvm *llvm) +{ + free(llvm); +} + +void +draw_llvm_prepare(struct draw_llvm *llvm) +{ +} + + +struct draw_context *draw_create_with_llvm(LLVMExecutionEngineRef engine) +{ + struct draw_context *draw = CALLOC_STRUCT( draw_context ); + if (draw == NULL) + goto fail; + draw->engine = engine; + + if (!draw_init(draw)) + goto fail; + + return draw; + +fail: + draw_destroy( draw ); + return NULL; +} + +static void +generate_vs(struct draw_llvm *llvm, + LLVMBuilderRef builder, + LLVMValueRef context_ptr, + LLVMValueRef io) +{ + const struct tgsi_token *tokens = llvm->draw->vs.vertex_shader->state.tokens; + struct lp_type vs_type = lp_type_float(32); + LLVMValueRef vs_consts; + const LLVMValueRef (*inputs)[NUM_CHANNELS]; + LLVMValueRef (*outputs)[NUM_CHANNELS]; + + lp_build_tgsi_soa(builder, + tokens, + vs_type, + NULL /*struct lp_build_mask_context *mask*/, + vs_consts, + NULL /*pos*/, + inputs, + outputs, + NULL/*sampler*/); +} + +void +draw_llvm_generate(struct draw_llvm *llvm) +{ + LLVMTypeRef arg_types[5]; + LLVMTypeRef func_type; + LLVMValueRef context_ptr; + LLVMBasicBlockRef block; + LLVMBuilderRef builder; + LLVMValueRef function; + LLVMValueRef start, end, count, stride, step; + LLVMValueRef io_ptr; + unsigned i; + unsigned chan; + struct lp_build_context bld; + struct lp_build_loop_state lp_loop; + struct lp_type vs_type = lp_type_float(32); + + arg_types[0] = llvm->context_ptr_type; /* context */ + arg_types[1] = llvm->vertex_header_ptr_type; /* vertex_header */ + arg_types[2] = LLVMInt32Type(); /* start */ + arg_types[3] = LLVMInt32Type(); /* count */ + arg_types[4] = LLVMInt32Type(); /* stride */ + + func_type = LLVMFunctionType(LLVMVoidType(), arg_types, Elements(arg_types), 0); + + function = LLVMAddFunction(llvm->module, "draw_llvm_shader", func_type); + LLVMSetFunctionCallConv(function, LLVMCCallConv); + for(i = 0; i < Elements(arg_types); ++i) + if(LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) + LLVMAddAttribute(LLVMGetParam(function, i), LLVMNoAliasAttribute); + + context_ptr = LLVMGetParam(function, 0); + io_ptr = LLVMGetParam(function, 1); + start = LLVMGetParam(function, 2); + count = LLVMGetParam(function, 3); + stride = LLVMGetParam(function, 4); + + lp_build_name(context_ptr, "context"); + lp_build_name(io_ptr, "io"); + lp_build_name(start, "start"); + lp_build_name(count, "count"); + lp_build_name(stride, "stride"); + + /* + * Function body + */ + + block = LLVMAppendBasicBlock(function, "entry"); + builder = LLVMCreateBuilder(); + LLVMPositionBuilderAtEnd(builder, block); + + lp_build_context_init(&bld, builder, vs_type); + + end = lp_build_add(&bld, start, count); + + step = LLVMConstInt(LLVMInt32Type(), 1, 0); + lp_build_loop_begin(builder, start, &lp_loop); + { + LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); + + generate_vs(llvm, + builder, + context_ptr, + io); + } + lp_build_loop_end(builder, end, step, &lp_loop); + + + LLVMBuildRetVoid(builder); + + LLVMDisposeBuilder(builder); + + /* + * Translate the LLVM IR into machine code. + */ + +#ifdef DEBUG + if(LLVMVerifyFunction(function, LLVMPrintMessageAction)) { + LLVMDumpValue(function); + assert(0); + } +#endif + + LLVMRunFunctionPassManager(llvm->pass, function); + + if (1) { + LLVMDumpValue(function); + debug_printf("\n"); + } + + llvm->jit_func = (draw_jit_vert_func)LLVMGetPointerToGlobal(llvm->draw->engine, function); + + if (1) + lp_disassemble(llvm->jit_func); +} diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h new file mode 100644 index 0000000000..0a1845f1fb --- /dev/null +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -0,0 +1,154 @@ +#ifndef DRAW_LLVM_H +#define DRAW_LLVM_H + +#include "draw/draw_private.h" + +#include "pipe/p_context.h" + +#include +#include +#include +#include + +struct draw_jit_texture +{ + uint32_t width; + uint32_t height; + uint32_t stride; + const void *data; +}; + +enum { + DRAW_JIT_TEXTURE_WIDTH = 0, + DRAW_JIT_TEXTURE_HEIGHT, + DRAW_JIT_TEXTURE_STRIDE, + DRAW_JIT_TEXTURE_DATA +}; + +enum { + DRAW_JIT_VERTEX_VERTEX_ID = 0, + DRAW_JIT_VERTEX_CLIP, + DRAW_JIT_VERTEX_DATA +}; + +/** + * This structure is passed directly to the generated vertex shader. + * + * It contains the derived state. + * + * Changes here must be reflected in the draw_jit_context_* macros. + * Changes to the ordering should be avoided. + * + * Only use types with a clear size and padding here, in particular prefer the + * stdint.h types to the basic integer types. + */ +struct draw_jit_context +{ + const float *vs_constants; + const float *gs_constants; + + + struct draw_jit_texture textures[PIPE_MAX_SAMPLERS]; +}; + + +#define draw_jit_context_vs_constants(_builder, _ptr) \ + lp_build_struct_get(_builder, _ptr, 0, "vs_constants") + +#define draw_jit_context_gs_constants(_builder, _ptr) \ + lp_build_struct_get(_builder, _ptr, 1, "gs_constants") + +#define DRAW_JIT_CONTEXT_TEXTURES_INDEX 2 + +#define draw_jit_context_textures(_builder, _ptr) \ + lp_build_struct_get_ptr(_builder, _ptr, DRAW_JIT_CONTEXT_TEXTURES_INDEX, "textures") + +/* we are construction a function of the form: + +struct vertex_header { + uint32 vertex_id; + + float clip[4]; + float data[][4]; +}; + +struct draw_jit_context +{ + const float *vs_constants; + const float *gs_constants; + + struct draw_jit_texture textures[PIPE_MAX_SAMPLERS]; + const void *vbuffers; +}; + +void +draw_shader(struct draw_jit_context *context, + struct vertex_header *io, + unsigned start, + unsigned count, + unsigned stride) +{ + // do a fetch and a run vertex shader + for (int i = 0; i < count; ++i) { + struct vertex_header *header = &io[i]; + header->vertex_id = 0xffff; + // follows code-genarted fetch/translate section + // for each vertex_element ... + codegened_translate(header->data[num_element], + context->vertex_elements[num_element], + context->vertex_buffers, + context->vbuffers); + + codegened_vertex_shader(header->data, context->vs_constants); + } + + for (int i = 0; i < count; i += context->primitive_size) { + struct vertex_header *prim[MAX_PRIMITIVE_SIZE]; + for (int j = 0; j < context->primitive_size; ++j) { + header[j] = &io[i + j]; + } + codegened_geometry_shader(prim, gs_constants); + } +} +*/ + +typedef void +(*draw_jit_vert_func)(struct draw_jit_context *context, + struct vertex_header *io, + unsigned start, + unsigned count, + unsigned stride); + +struct draw_llvm { + struct draw_context *draw; + + struct draw_jit_context jit_context; + + draw_jit_vert_func jit_func; + + LLVMModuleRef module; + LLVMExecutionEngineRef engine; + LLVMModuleProviderRef provider; + LLVMTargetDataRef target; + LLVMPassManagerRef pass; + + LLVMTypeRef context_ptr_type; + LLVMTypeRef vertex_header_ptr_type; +}; + + +struct draw_llvm * +draw_llvm_create(struct draw_context *draw); + +void +draw_llvm_destroy(struct draw_llvm *llvm); + +void +draw_llvm_prepare(struct draw_llvm *llvm); + +/* generates the draw jit function */ +void +draw_llvm_generate(struct draw_llvm *llvm); + + +#endif diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c new file mode 100644 index 0000000000..588e97b29c --- /dev/null +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -0,0 +1,653 @@ + + + +#include "util/u_memory.h" +#include "pipe/p_state.h" +#include "translate.h" + + +#define DRAW_DBG 0 + +typedef void (*fetch_func)(const void *ptr, float *attrib); +typedef void (*emit_func)(const float *attrib, void *ptr); + + + +struct translate_generic { + struct translate translate; + + struct { + enum translate_element_type type; + + fetch_func fetch; + unsigned buffer; + unsigned input_offset; + unsigned instance_divisor; + + emit_func emit; + unsigned output_offset; + + char *input_ptr; + unsigned input_stride; + + } attrib[PIPE_MAX_ATTRIBS]; + + unsigned nr_attrib; +}; + + +static struct translate_generic *translate_generic( struct translate *translate ) +{ + return (struct translate_generic *)translate; +} + +/** + * Fetch a float[4] vertex attribute from memory, doing format/type + * conversion as needed. + * + * This is probably needed/dupliocated elsewhere, eg format + * conversion, texture sampling etc. + */ +#define ATTRIB( NAME, SZ, TYPE, FROM, TO ) \ +static void \ +fetch_##NAME(const void *ptr, float *attrib) \ +{ \ + const float defaults[4] = { 0.0f,0.0f,0.0f,1.0f }; \ + unsigned i; \ + \ + for (i = 0; i < SZ; i++) { \ + attrib[i] = FROM(i); \ + } \ + \ + for (; i < 4; i++) { \ + attrib[i] = defaults[i]; \ + } \ +} \ + \ +static void \ +emit_##NAME(const float *attrib, void *ptr) \ +{ \ + unsigned i; \ + TYPE *out = (TYPE *)ptr; \ + \ + for (i = 0; i < SZ; i++) { \ + out[i] = TO(attrib[i]); \ + } \ +} + +{ + + return conv = instr(builder, bc, ""); +} + +static INLINE LLVMValueRef +from_64_float(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMDoubleType() , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + return LLVMBuildFPTrunc(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_32_float(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMFloatType() , ""); + return LLVMBuildLoad(builder, bc, ""); +} + +static INLINE LLVMValueRef +from_8_uscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef l = LLVMBuildLoad(builder, val, ""); + return LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_16_uscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(16) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + return LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_32_uscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(32) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + return LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_8_sscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef l = LLVMBuildLoad(builder, val, ""); + return LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_16_sscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(16) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + return LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); +} + +static INLINE LLVMValueRef +from_32_sscaled(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(32) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + return LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); +} + + +static INLINE LLVMValueRef +from_8_unorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef l = LLVMBuildLoad(builder, val, ""); + LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 255.)); +} + +static INLINE LLVMValueRef +from_16_unorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(16) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 65535.)); +} + +static INLINE LLVMValueRef +from_32_unorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(32) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); + + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 4294967295.)); +} + +static INLINE LLVMValueRef +from_8_snorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef l = LLVMBuildLoad(builder, val, ""); + LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 127.0)); +} + +static INLINE LLVMValueRef +from_16_snorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(16) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 32767.0f)); +} + +static INLINE LLVMValueRef +from_32_snorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(32) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); + + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 2147483647.0)); +} + +static INLINE LLVMValueRef +from_32_fixed(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef bc = LLVMBuildBitCast(builder, val, + LLVMIntType(32) , ""); + LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); + LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); + + return LLVMBuildFDiv(builder, uscaled, + LLVMConstReal(builder, 65536.0)); +} + +static INLINE LLVMValueRef +to_64_float(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPExt(builder, l, LLVMDoubleType(), ""); +} + +static INLINE LLVMValueRef +to_32_float(LLVMBuilderRef builder, LLVMValueRef fp) +{ + return LLVMBuildLoad(builder, fp, ""); +} + +atic INLINE LLVMValueRef +to_8_uscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToUI(builder, l, LLVMIntType(8), ""); +} + +static INLINE LLVMValueRef +to_16_uscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToUI(builder, l, LLVMIntType(16), ""); +} + +static INLINE LLVMValueRef +to_32_uscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToUI(builder, l, LLVMIntType(32), ""); +} + +static INLINE LLVMValueRef +to_8_sscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToSI(builder, l, LLVMIntType(8), ""); +} + +static INLINE LLVMValueRef +to_16_sscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToSI(builder, l, LLVMIntType(16), ""); +} + +static INLINE LLVMValueRef +to_32_sscaled(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + return LLVMBuildFPToSI(builder, l, LLVMIntType(32), ""); +} + +static INLINE LLVMValueRef +to_8_unorm(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(8), ""); + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(builder, 255.)); +} + +static INLINE LLVMValueRef +to_16_unorm(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(32), ""); + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(builder, 65535.)); +} + +static INLINE LLVMValueRef +to_32_unorm(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(32), ""); + + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(builder, 4294967295.)); +} + +static INLINE LLVMValueRef +to_8_snorm(LLVMBuilderRef builder, LLVMValueRef val) +{ + LLVMValueRef l = LLVMBuildLoad(builder, val, ""); + LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(8), ""); + return LLVMBuildFMUL(builder, uscaled, + LLVMConstReal(builder, 127.0)); +} + +static INLINE LLVMValueRef +to_16_snorm(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(16), ""); + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(builder, 32767.0f)); +} + +static INLINE LLVMValueRef +to_32_snorm(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(32), ""); + + return LLVMBuildFMUL(builder, uscaled, + LLVMConstReal(builder, 2147483647.0)); +} + +static INLINE LLVMValueRef +to_32_fixed(LLVMBuilderRef builder, LLVMValueRef fp) +{ + LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); + LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(32), ""); + + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(builder, 65536.0)); +} + +static LLVMValueRef +fetch(LLVMValueRef ptr, int val_size, int nr_components, + LLVMValueRef res) +{ + int i; + int offset = 0; + + for (i = 0; i < nr_components; ++i) { + LLVMValueRef src_index = LLVMConstInt(LLVMInt32Type(), offset, 0); + LLVMValueRef dst_index = LLVMConstInt(LLVMInt32Type(), i, 0); + //getelementptr i8* ptr, i64 offset + LLVMValueRef src_tmp = LLVMBuildGEP(builder, ptr, &src_index, 1, ""); + //getelementptr float* res, i64 i + LLVMValueRef res_tmp = LLVMBuildGEP(builder, res, &dst_index, 1, ""); + //bitcast i8* src, to res_type* + //load res_type src + //convert res_type src to float + //store float src, float *dst src + offset += val_size; + } +} + + +static void +fetch_B8G8R8A8_UNORM(const void *ptr, float *attrib) +{ + attrib[2] = FROM_8_UNORM(0); + attrib[1] = FROM_8_UNORM(1); + attrib[0] = FROM_8_UNORM(2); + attrib[3] = FROM_8_UNORM(3); +} + +static void +emit_B8G8R8A8_UNORM( const float *attrib, void *ptr) +{ + ubyte *out = (ubyte *)ptr; + out[2] = TO_8_UNORM(attrib[0]); + out[1] = TO_8_UNORM(attrib[1]); + out[0] = TO_8_UNORM(attrib[2]); + out[3] = TO_8_UNORM(attrib[3]); +} + +static void +fetch_NULL( const void *ptr, float *attrib ) +{ + attrib[0] = 0; + attrib[1] = 0; + attrib[2] = 0; + attrib[3] = 1; +} + +static void +emit_NULL( const float *attrib, void *ptr ) +{ + /* do nothing is the only sensible option */ +} + +typedef LLVMValueRef (*from_func)(LLVMBuilderRef, LLVMValueRef); +typedef LLVMValueRef (*to_func)(LLVMBuilderRef, LLVMValueRef); + +struct draw_llvm_translate { + int format; + from_func from; + to_func to; + LLVMTypeRef type; + int num_components; +} translates[] = +{ + {PIPE_FORMAT_R64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 1}, + {PIPE_FORMAT_R64G64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 2}, + {PIPE_FORMAT_R64G64B64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 3}, + {PIPE_FORMAT_R64G64B64A64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 4}, + + {PIPE_FORMAT_R32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 1}, + {PIPE_FORMAT_R32G32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 2}, + {PIPE_FORMAT_R32G32B32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 3}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 4}, + + {PIPE_FORMAT_R32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 1}, + {PIPE_FORMAT_R32G32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 2}, + {PIPE_FORMAT_R32G32B32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 3}, + {PIPE_FORMAT_R32G32B32A32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 4}, + + {PIPE_FORMAT_R32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 1}, + {PIPE_FORMAT_R32G32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 2}, + {PIPE_FORMAT_R32G32B32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 3}, + {PIPE_FORMAT_R32G32B32A32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 4}, + + {PIPE_FORMAT_R32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 1}, + {PIPE_FORMAT_R32G32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 2}, + {PIPE_FORMAT_R32G32B32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 3}, + {PIPE_FORMAT_R32G32B32A32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 4}, + + {PIPE_FORMAT_R32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 1}, + {PIPE_FORMAT_R32G32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 2}, + {PIPE_FORMAT_R32G32B32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 3}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 4}, + + {PIPE_FORMAT_R16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 1}, + {PIPE_FORMAT_R16G16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 2}, + {PIPE_FORMAT_R16G16B16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 3}, + {PIPE_FORMAT_R16G16B16A16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 4}, + + {PIPE_FORMAT_R16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 1}, + {PIPE_FORMAT_R16G16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 2}, + {PIPE_FORMAT_R16G16B16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 3}, + {PIPE_FORMAT_R16G16B16A16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 4}, + + {PIPE_FORMAT_R16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 1}, + {PIPE_FORMAT_R16G16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 2}, + {PIPE_FORMAT_R16G16B16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 3}, + {PIPE_FORMAT_R16G16B16A16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 4}, + + {PIPE_FORMAT_R16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 1}, + {PIPE_FORMAT_R16G16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 2}, + {PIPE_FORMAT_R16G16B16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 3}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 4}, + + {PIPE_FORMAT_R8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 1}, + {PIPE_FORMAT_R8G8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 2}, + {PIPE_FORMAT_R8G8B8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 3}, + {PIPE_FORMAT_R8G8B8A8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 4}, + + {PIPE_FORMAT_R8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 1}, + {PIPE_FORMAT_R8G8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 2}, + {PIPE_FORMAT_R8G8B8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 3}, + {PIPE_FORMAT_R8G8B8A8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 4}, + + {PIPE_FORMAT_R8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 1}, + {PIPE_FORMAT_R8G8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 2}, + {PIPE_FORMAT_R8G8B8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 3}, + {PIPE_FORMAT_R8G8B8A8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 4}, + + {PIPE_FORMAT_R8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 1}, + {PIPE_FORMAT_R8G8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 2}, + {PIPE_FORMAT_R8G8B8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 3}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 4}, + + {PIPE_FORMAT_R32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 1}, + {PIPE_FORMAT_R32G32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 2}, + {PIPE_FORMAT_R32G32B32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 3}, + {PIPE_FORMAT_R32G32B32A32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 4}, + + {PIPE_FORMAT_A8R8G8B8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 4}, + {PIPE_FORMAT_B8G8R8A8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(), 4}, +}; + +/** + * Fetch vertex attributes for 'count' vertices. + */ +static void PIPE_CDECL generic_run_elts( struct translate *translate, + const unsigned *elts, + unsigned count, + unsigned instance_id, + void *output_buffer ) +{ + struct translate_generic *tg = translate_generic(translate); + char *vert = output_buffer; + unsigned nr_attrs = tg->nr_attrib; + unsigned attr; + unsigned i; + + /* loop over vertex attributes (vertex shader inputs) + */ + for (i = 0; i < count; i++) { + unsigned elt = *elts++; + + for (attr = 0; attr < nr_attrs; attr++) { + float data[4]; + const char *src; + + char *dst = (vert + + tg->attrib[attr].output_offset); + + if (tg->attrib[attr].instance_divisor) { + src = tg->attrib[attr].input_ptr + + tg->attrib[attr].input_stride * + (instance_id / tg->attrib[attr].instance_divisor); + } else { + src = tg->attrib[attr].input_ptr + + tg->attrib[attr].input_stride * elt; + } + + tg->attrib[attr].fetch( src, data ); + + if (0) debug_printf("vert %d/%d attr %d: %f %f %f %f\n", + i, elt, attr, data[0], data[1], data[2], data[3]); + + tg->attrib[attr].emit( data, dst ); + } + + vert += tg->translate.key.output_stride; + } +} + + + +static void PIPE_CDECL generic_run( struct translate *translate, + unsigned start, + unsigned count, + unsigned instance_id, + void *output_buffer ) +{ + struct translate_generic *tg = translate_generic(translate); + char *vert = output_buffer; + unsigned nr_attrs = tg->nr_attrib; + unsigned attr; + unsigned i; + + /* loop over vertex attributes (vertex shader inputs) + */ + for (i = 0; i < count; i++) { + unsigned elt = start + i; + + for (attr = 0; attr < nr_attrs; attr++) { + float data[4]; + + char *dst = (vert + + tg->attrib[attr].output_offset); + + if (tg->attrib[attr].type == TRANSLATE_ELEMENT_NORMAL) { + const char *src; + + if (tg->attrib[attr].instance_divisor) { + src = tg->attrib[attr].input_ptr + + tg->attrib[attr].input_stride * + (instance_id / tg->attrib[attr].instance_divisor); + } else { + src = tg->attrib[attr].input_ptr + + tg->attrib[attr].input_stride * elt; + } + + tg->attrib[attr].fetch( src, data ); + } else { + data[0] = (float)instance_id; + } + + if (0) debug_printf("vert %d attr %d: %f %f %f %f\n", + i, attr, data[0], data[1], data[2], data[3]); + + tg->attrib[attr].emit( data, dst ); + } + + vert += tg->translate.key.output_stride; + } +} + + + +static void generic_set_buffer( struct translate *translate, + unsigned buf, + const void *ptr, + unsigned stride ) +{ + struct translate_generic *tg = translate_generic(translate); + unsigned i; + + for (i = 0; i < tg->nr_attrib; i++) { + if (tg->attrib[i].buffer == buf) { + tg->attrib[i].input_ptr = ((char *)ptr + + tg->attrib[i].input_offset); + tg->attrib[i].input_stride = stride; + } + } +} + + +static void generic_release( struct translate *translate ) +{ + /* Refcount? + */ + FREE(translate); +} + +struct translate *translate_generic_create( const struct translate_key *key ) +{ + struct translate_generic *tg = CALLOC_STRUCT(translate_generic); + unsigned i; + + if (tg == NULL) + return NULL; + + tg->translate.key = *key; + tg->translate.release = generic_release; + tg->translate.set_buffer = generic_set_buffer; + tg->translate.run_elts = generic_run_elts; + tg->translate.run = generic_run; + + for (i = 0; i < key->nr_elements; i++) { + tg->attrib[i].type = key->element[i].type; + + tg->attrib[i].fetch = get_fetch_func(key->element[i].input_format); + tg->attrib[i].buffer = key->element[i].input_buffer; + tg->attrib[i].input_offset = key->element[i].input_offset; + tg->attrib[i].instance_divisor = key->element[i].instance_divisor; + + tg->attrib[i].emit = get_emit_func(key->element[i].output_format); + tg->attrib[i].output_offset = key->element[i].output_offset; + + } + + tg->nr_attrib = key->nr_elements; + + + return &tg->translate; +} diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h index 1e6e01af9e..7e24e5fd6f 100644 --- a/src/gallium/auxiliary/draw/draw_private.h +++ b/src/gallium/auxiliary/draw/draw_private.h @@ -46,6 +46,10 @@ #include "tgsi/tgsi_scan.h" +#ifdef DRAW_LLVM +#include +#endif + struct pipe_context; struct draw_vertex_shader; @@ -237,9 +241,16 @@ struct draw_context unsigned instance_id; +#ifdef DRAW_LLVM + LLVMExecutionEngineRef engine; +#endif void *driver_private; }; +/******************************************************************************* + * Draw common initialization code + */ +boolean draw_init(struct draw_context *draw); /******************************************************************************* * Vertex shader code: diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c index 341353f628..9b1e319551 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -142,7 +142,9 @@ boolean draw_pt_init( struct draw_context *draw ) if (!draw->pt.middle.fetch_shade_emit) return FALSE; - draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit( draw ); + draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit_llvm( draw ); + if (!draw->pt.middle.general) + draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit( draw ); if (!draw->pt.middle.general) return FALSE; diff --git a/src/gallium/auxiliary/draw/draw_pt.h b/src/gallium/auxiliary/draw/draw_pt.h index d5e0d92a60..c2797a759e 100644 --- a/src/gallium/auxiliary/draw/draw_pt.h +++ b/src/gallium/auxiliary/draw/draw_pt.h @@ -147,6 +147,7 @@ struct draw_pt_front_end *draw_pt_varray(struct draw_context *draw); struct draw_pt_middle_end *draw_pt_fetch_emit( struct draw_context *draw ); struct draw_pt_middle_end *draw_pt_middle_fse( struct draw_context *draw ); struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit(struct draw_context *draw); +struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit_llvm(struct draw_context *draw); diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c new file mode 100644 index 0000000000..ae5956333e --- /dev/null +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -0,0 +1,432 @@ +/************************************************************************** + * + * Copyright 2010 VMWare, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#include "util/u_math.h" +#include "util/u_memory.h" +#include "draw/draw_context.h" +#include "draw/draw_vbuf.h" +#include "draw/draw_vertex.h" +#include "draw/draw_pt.h" +#include "draw/draw_vs.h" +#include "draw/draw_gs.h" +#include "draw/draw_llvm.h" + +#include "translate/translate.h" + + +struct llvm_middle_end { + struct draw_pt_middle_end base; + struct draw_context *draw; + + struct pt_emit *emit; + struct pt_fetch *fetch; + struct pt_post_vs *post_vs; + + + unsigned vertex_data_offset; + unsigned vertex_size; + unsigned prim; + unsigned opt; + + struct draw_llvm *llvm; +}; + + +static void +llvm_middle_end_prepare( struct draw_pt_middle_end *middle, + unsigned prim, + unsigned opt, + unsigned *max_vertices ) +{ + struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; + struct draw_context *draw = fpme->draw; + struct draw_vertex_shader *vs = draw->vs.vertex_shader; + struct draw_geometry_shader *gs = draw->gs.geometry_shader; + unsigned i; + unsigned instance_id_index = ~0; + + /* Add one to num_outputs because the pipeline occasionally tags on + * an additional texcoord, eg for AA lines. + */ + unsigned nr = MAX2( vs->info.num_inputs, + vs->info.num_outputs + 1 ); + + /* Scan for instanceID system value. + */ + for (i = 0; i < vs->info.num_inputs; i++) { + if (vs->info.input_semantic_name[i] == TGSI_SEMANTIC_INSTANCEID) { + instance_id_index = i; + break; + } + } + + fpme->prim = prim; + fpme->opt = opt; + + /* Always leave room for the vertex header whether we need it or + * not. It's hard to get rid of it in particular because of the + * viewport code in draw_pt_post_vs.c. + */ + fpme->vertex_size = sizeof(struct vertex_header) + nr * 4 * sizeof(float); + + + + draw_pt_fetch_prepare( fpme->fetch, + vs->info.num_inputs, + fpme->vertex_size, + instance_id_index ); + if (opt & PT_SHADE) { + vs->prepare(vs, draw); + draw_geometry_shader_prepare(gs, draw); + } + + + /* XXX: it's not really gl rasterization rules we care about here, + * but gl vs dx9 clip spaces. + */ + draw_pt_post_vs_prepare( fpme->post_vs, + (boolean)draw->bypass_clipping, + (boolean)(draw->identity_viewport || + draw->rasterizer->bypass_vs_clip_and_viewport), + (boolean)draw->rasterizer->gl_rasterization_rules, + (draw->vs.edgeflag_output ? true : false) ); + + if (!(opt & PT_PIPELINE)) { + draw_pt_emit_prepare( fpme->emit, + prim, + max_vertices ); + + *max_vertices = MAX2( *max_vertices, + DRAW_PIPE_MAX_VERTICES ); + } + else { + *max_vertices = DRAW_PIPE_MAX_VERTICES; + } + + /* return even number */ + *max_vertices = *max_vertices & ~1; + + draw_llvm_prepare(fpme->llvm); +} + + + +static void llvm_middle_end_run( struct draw_pt_middle_end *middle, + const unsigned *fetch_elts, + unsigned fetch_count, + const ushort *draw_elts, + unsigned draw_count ) +{ + struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; + struct draw_context *draw = fpme->draw; + struct draw_vertex_shader *vshader = draw->vs.vertex_shader; + struct draw_geometry_shader *gshader = draw->gs.geometry_shader; + unsigned opt = fpme->opt; + unsigned alloc_count = align( fetch_count, 4 ); + + struct vertex_header *pipeline_verts = + (struct vertex_header *)MALLOC(fpme->vertex_size * alloc_count); + + if (!pipeline_verts) { + /* Not much we can do here - just skip the rendering. + */ + assert(0); + return; + } + + /* Fetch into our vertex buffer + */ + draw_pt_fetch_run( fpme->fetch, + fetch_elts, + fetch_count, + (char *)pipeline_verts ); + + /* Run the shader, note that this overwrites the data[] parts of + * the pipeline verts. If there is no shader, eg if + * bypass_vs_clip_and_viewport, then the inputs == outputs, and are + * already in the correct place.*/ + if (opt & PT_SHADE) + { + vshader->run_linear(vshader, + (const float (*)[4])pipeline_verts->data, + ( float (*)[4])pipeline_verts->data, + draw->pt.user.vs_constants, + fetch_count, + fpme->vertex_size, + fpme->vertex_size); + if (gshader) + draw_geometry_shader_run(gshader, + (const float (*)[4])pipeline_verts->data, + ( float (*)[4])pipeline_verts->data, + draw->pt.user.gs_constants, + fetch_count, + fpme->vertex_size, + fpme->vertex_size); + } + + if (draw_pt_post_vs_run( fpme->post_vs, + pipeline_verts, + fetch_count, + fpme->vertex_size )) + { + opt |= PT_PIPELINE; + } + + /* Do we need to run the pipeline? + */ + if (opt & PT_PIPELINE) { + draw_pipeline_run( fpme->draw, + fpme->prim, + pipeline_verts, + fetch_count, + fpme->vertex_size, + draw_elts, + draw_count ); + } + else { + draw_pt_emit( fpme->emit, + (const float (*)[4])pipeline_verts->data, + fetch_count, + fpme->vertex_size, + draw_elts, + draw_count ); + } + + + FREE(pipeline_verts); +} + + +static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, + unsigned start, + unsigned count) +{ + struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; + struct draw_context *draw = fpme->draw; + unsigned opt = fpme->opt; + unsigned alloc_count = align( count, 4 ); + + struct vertex_header *pipeline_verts = + (struct vertex_header *)MALLOC(fpme->vertex_size * alloc_count); + + if (!pipeline_verts) { + /* Not much we can do here - just skip the rendering. + */ + assert(0); + return; + } + + fpme->llvm->jit_func( &fpme->llvm->jit_context, + pipeline_verts, + start, + count, + fpme->vertex_size ); + + if (draw_pt_post_vs_run( fpme->post_vs, + pipeline_verts, + count, + fpme->vertex_size )) + { + opt |= PT_PIPELINE; + } + + /* Do we need to run the pipeline? + */ + if (opt & PT_PIPELINE) { + draw_pipeline_run_linear( fpme->draw, + fpme->prim, + pipeline_verts, + count, + fpme->vertex_size); + } + else { + draw_pt_emit_linear( fpme->emit, + (const float (*)[4])pipeline_verts->data, + fpme->vertex_size, + count ); + } + + FREE(pipeline_verts); +} + + + +static boolean +llvm_middle_end_linear_run_elts( struct draw_pt_middle_end *middle, + unsigned start, + unsigned count, + const ushort *draw_elts, + unsigned draw_count ) +{ + struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; + struct draw_context *draw = fpme->draw; + struct draw_vertex_shader *shader = draw->vs.vertex_shader; + struct draw_geometry_shader *geometry_shader = draw->gs.geometry_shader; + unsigned opt = fpme->opt; + unsigned alloc_count = align( count, 4 ); + + struct vertex_header *pipeline_verts = + (struct vertex_header *)MALLOC(fpme->vertex_size * alloc_count); + + if (!pipeline_verts) + return FALSE; + + /* Fetch into our vertex buffer + */ + draw_pt_fetch_run_linear( fpme->fetch, + start, + count, + (char *)pipeline_verts ); + + /* Run the shader, note that this overwrites the data[] parts of + * the pipeline verts. If there is no shader, ie if + * bypass_vs_clip_and_viewport, then the inputs == outputs, and are + * already in the correct place. + */ + if (opt & PT_SHADE) + { + shader->run_linear(shader, + (const float (*)[4])pipeline_verts->data, + ( float (*)[4])pipeline_verts->data, + draw->pt.user.vs_constants, + count, + fpme->vertex_size, + fpme->vertex_size); + + if (geometry_shader) + draw_geometry_shader_run(geometry_shader, + (const float (*)[4])pipeline_verts->data, + ( float (*)[4])pipeline_verts->data, + draw->pt.user.gs_constants, + count, + fpme->vertex_size, + fpme->vertex_size); + } + + if (draw_pt_post_vs_run( fpme->post_vs, + pipeline_verts, + count, + fpme->vertex_size )) + { + opt |= PT_PIPELINE; + } + + /* Do we need to run the pipeline? + */ + if (opt & PT_PIPELINE) { + draw_pipeline_run( fpme->draw, + fpme->prim, + pipeline_verts, + count, + fpme->vertex_size, + draw_elts, + draw_count ); + } + else { + draw_pt_emit( fpme->emit, + (const float (*)[4])pipeline_verts->data, + count, + fpme->vertex_size, + draw_elts, + draw_count ); + } + + FREE(pipeline_verts); + return TRUE; +} + + + +static void llvm_middle_end_finish( struct draw_pt_middle_end *middle ) +{ + /* nothing to do */ +} + +static void llvm_middle_end_destroy( struct draw_pt_middle_end *middle ) +{ + struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; + + if (fpme->fetch) + draw_pt_fetch_destroy( fpme->fetch ); + + if (fpme->emit) + draw_pt_emit_destroy( fpme->emit ); + + if (fpme->post_vs) + draw_pt_post_vs_destroy( fpme->post_vs ); + + if (fpme->llvm) + draw_llvm_destroy( fpme->llvm ); + + FREE(middle); +} + + +struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit_llvm( struct draw_context *draw ) +{ + struct llvm_middle_end *fpme = 0; + + if (!draw->engine) + return NULL; + + fpme = CALLOC_STRUCT( llvm_middle_end ); + if (!fpme) + goto fail; + + fpme->base.prepare = llvm_middle_end_prepare; + fpme->base.run = llvm_middle_end_run; + fpme->base.run_linear = llvm_middle_end_linear_run; + fpme->base.run_linear_elts = llvm_middle_end_linear_run_elts; + fpme->base.finish = llvm_middle_end_finish; + fpme->base.destroy = llvm_middle_end_destroy; + + fpme->draw = draw; + + fpme->fetch = draw_pt_fetch_create( draw ); + if (!fpme->fetch) + goto fail; + + fpme->post_vs = draw_pt_post_vs_create( draw ); + if (!fpme->post_vs) + goto fail; + + fpme->emit = draw_pt_emit_create( draw ); + if (!fpme->emit) + goto fail; + + fpme->llvm = draw_llvm_create(draw); + if (!fpme->llvm) + goto fail; + + return &fpme->base; + + fail: + if (fpme) + llvm_middle_end_destroy( &fpme->base ); + + return NULL; +} diff --git a/src/gallium/auxiliary/draw/draw_vs_llvm.c b/src/gallium/auxiliary/draw/draw_vs_llvm.c index 5f7a645f5d..0c483de407 100644 --- a/src/gallium/auxiliary/draw/draw_vs_llvm.c +++ b/src/gallium/auxiliary/draw/draw_vs_llvm.c @@ -40,7 +40,7 @@ #include "tgsi/tgsi_parse.h" -#ifdef MESA_LLVM +#ifdef DRAW_LLVM struct draw_llvm_vertex_shader { struct draw_vertex_shader base; @@ -64,12 +64,8 @@ vs_llvm_run_linear( struct draw_vertex_shader *base, unsigned input_stride, unsigned output_stride ) { - struct draw_llvm_vertex_shader *shader = - (struct draw_llvm_vertex_shader *)base; } - - static void vs_llvm_delete( struct draw_vertex_shader *base ) { @@ -90,6 +86,7 @@ struct draw_vertex_shader * draw_create_vs_llvm(struct draw_context *draw, const struct pipe_shader_state *templ) { +#if 0 struct draw_llvm_vertex_shader *vs; vs = CALLOC_STRUCT( draw_llvm_vertex_shader ); @@ -113,6 +110,8 @@ draw_create_vs_llvm(struct draw_context *draw, vs->machine = draw->vs.machine; return &vs->base; +#endif + return NULL; } diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index 9120226de0..3edc62d0c6 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -40,6 +40,7 @@ #include "lp_context.h" #include "lp_flush.h" #include "lp_perf.h" +#include "lp_screen.h" #include "lp_state.h" #include "lp_surface.h" #include "lp_query.h" @@ -105,6 +106,7 @@ struct pipe_context * llvmpipe_create_context( struct pipe_screen *screen, void *priv ) { struct llvmpipe_context *llvmpipe; + struct llvmpipe_screen *llvmscreen = llvmpipe_screen(screen); llvmpipe = align_malloc(sizeof(struct llvmpipe_context), 16); if (!llvmpipe) @@ -174,8 +176,8 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv ) /* * Create drawing context and plug our rendering stage into it. */ - llvmpipe->draw = draw_create(); - if (!llvmpipe->draw) + llvmpipe->draw = draw_create_with_llvm(llvmscreen->engine); + if (!llvmpipe->draw) goto fail; /* FIXME: devise alternative to draw_texture_samplers */ -- cgit v1.2.3 From f44af927ff90a9fe1256d8c6f4869a39a55043d3 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Mon, 29 Mar 2010 13:19:16 -0400 Subject: draw llvmpipe: lots of fixes for fetch/emit the values passed are still not right, but the general scheme is looking good. --- src/gallium/auxiliary/draw/draw_llvm.c | 155 ++++++++++++++++++-- src/gallium/auxiliary/draw/draw_llvm.h | 8 +- src/gallium/auxiliary/draw/draw_llvm_translate.c | 163 ++------------------- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 4 +- 4 files changed, 160 insertions(+), 170 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 6b0ddfd064..91fe838b8b 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -114,6 +114,10 @@ init_globals(struct draw_llvm *llvm) llvm->context_ptr_type = LLVMPointerType(context_type, 0); } + { + LLVMTypeRef buffer_ptr = LLVMPointerType(LLVMOpaqueType(), 0); + llvm->buffer_ptr_type = LLVMArrayType(buffer_ptr, PIPE_MAX_ATTRIBS); + } } struct draw_llvm * @@ -171,6 +175,7 @@ draw_llvm_destroy(struct draw_llvm *llvm) void draw_llvm_prepare(struct draw_llvm *llvm) { + draw_llvm_generate(llvm); } @@ -194,14 +199,14 @@ fail: static void generate_vs(struct draw_llvm *llvm, LLVMBuilderRef builder, + LLVMValueRef (*outputs)[NUM_CHANNELS], + const LLVMValueRef (*inputs)[NUM_CHANNELS], LLVMValueRef context_ptr, LLVMValueRef io) { const struct tgsi_token *tokens = llvm->draw->vs.vertex_shader->state.tokens; struct lp_type vs_type = lp_type_float(32); LLVMValueRef vs_consts; - const LLVMValueRef (*inputs)[NUM_CHANNELS]; - LLVMValueRef (*outputs)[NUM_CHANNELS]; lp_build_tgsi_soa(builder, tokens, @@ -214,28 +219,129 @@ generate_vs(struct draw_llvm *llvm, NULL/*sampler*/); } +static void +generate_fetch(LLVMBuilderRef builder, + const LLVMValueRef vbuffers_ptr, + LLVMValueRef *res, + struct pipe_vertex_element *velem, + struct pipe_vertex_buffer *vbuf, + LLVMValueRef index) +{ + LLVMValueRef indices = LLVMConstInt(LLVMInt32Type(), + velem->vertex_buffer_index, 0); + LLVMValueRef vbuffer_ptr = LLVMBuildGEP(builder, vbuffers_ptr, + &indices, 1, ""); + LLVMValueRef stride = LLVMBuildMul(builder, + LLVMConstInt(LLVMInt32Type(), vbuf->stride, 0), + index, ""); + stride = LLVMBuildAdd(builder, stride, + LLVMConstInt(LLVMInt32Type(), vbuf->buffer_offset, 0), + ""); + stride = LLVMBuildAdd(builder, stride, + LLVMConstInt(LLVMInt32Type(), velem->src_offset, 0), + ""); + + vbuffer_ptr = LLVMBuildGEP(builder, vbuffer_ptr, &stride, 1, ""); + + *res = draw_llvm_translate_from(builder, vbuffer_ptr, velem->src_format); +} + +static LLVMValueRef +aos_to_soa(LLVMBuilderRef builder, + LLVMValueRef val0, + LLVMValueRef val1, + LLVMValueRef val2, + LLVMValueRef val3, + LLVMValueRef channel) +{ + LLVMValueRef ex, res; + + ex = LLVMBuildExtractElement(builder, val0, + channel, ""); + res = LLVMBuildInsertElement(builder, + LLVMConstNull(LLVMTypeOf(val0)), + ex, + LLVMConstInt(LLVMInt32Type(), 0, 0), + ""); + + ex = LLVMBuildExtractElement(builder, val1, + channel, ""); + res = LLVMBuildInsertElement(builder, + res, ex, + LLVMConstInt(LLVMInt32Type(), 1, 0), + ""); + + ex = LLVMBuildExtractElement(builder, val2, + channel, ""); + res = LLVMBuildInsertElement(builder, + res, ex, + LLVMConstInt(LLVMInt32Type(), 2, 0), + ""); + + ex = LLVMBuildExtractElement(builder, val3, + channel, ""); + res = LLVMBuildInsertElement(builder, + res, ex, + LLVMConstInt(LLVMInt32Type(), 3, 0), + ""); + + return res; +} + +static void +convert_to_soa(LLVMBuilderRef builder, + LLVMValueRef (*aos)[NUM_CHANNELS], + LLVMValueRef (*soa)[NUM_CHANNELS], + int num_attribs) +{ + int i; + + debug_assert(NUM_CHANNELS == 4); + + for (i = 0; i < num_attribs; ++i) { + LLVMValueRef val0 = aos[i][0]; + LLVMValueRef val1 = aos[i][1]; + LLVMValueRef val2 = aos[i][2]; + LLVMValueRef val3 = aos[i][3]; + + soa[i][0] = aos_to_soa(builder, val0, val1, val2, val3, + LLVMConstInt(LLVMInt32Type(), 0, 0)); + soa[i][1] = aos_to_soa(builder, val0, val1, val2, val3, + LLVMConstInt(LLVMInt32Type(), 1, 0)); + soa[i][2] = aos_to_soa(builder, val0, val1, val2, val3, + LLVMConstInt(LLVMInt32Type(), 2, 0)); + soa[i][3] = aos_to_soa(builder, val0, val1, val2, val3, + LLVMConstInt(LLVMInt32Type(), 3, 0)); + + } +} + void draw_llvm_generate(struct draw_llvm *llvm) { - LLVMTypeRef arg_types[5]; + LLVMTypeRef arg_types[6]; LLVMTypeRef func_type; LLVMValueRef context_ptr; LLVMBasicBlockRef block; LLVMBuilderRef builder; LLVMValueRef function; LLVMValueRef start, end, count, stride, step; - LLVMValueRef io_ptr; - unsigned i; + LLVMValueRef io_ptr, vbuffers_ptr; + struct draw_context *draw = llvm->draw; + unsigned i, j; unsigned chan; struct lp_build_context bld; struct lp_build_loop_state lp_loop; - struct lp_type vs_type = lp_type_float(32); + struct lp_type vs_type = lp_type_float_vec(32); + const int max_vertices = 4; + LLVMValueRef outputs[PIPE_MAX_SHADER_OUTPUTS][NUM_CHANNELS]; arg_types[0] = llvm->context_ptr_type; /* context */ arg_types[1] = llvm->vertex_header_ptr_type; /* vertex_header */ - arg_types[2] = LLVMInt32Type(); /* start */ - arg_types[3] = LLVMInt32Type(); /* count */ - arg_types[4] = LLVMInt32Type(); /* stride */ + arg_types[2] = llvm->buffer_ptr_type; /* vbuffers */ + arg_types[3] = LLVMInt32Type(); /* start */ + arg_types[4] = LLVMInt32Type(); /* count */ + arg_types[5] = LLVMInt32Type(); /* stride */ func_type = LLVMFunctionType(LLVMVoidType(), arg_types, Elements(arg_types), 0); @@ -247,12 +353,14 @@ draw_llvm_generate(struct draw_llvm *llvm) context_ptr = LLVMGetParam(function, 0); io_ptr = LLVMGetParam(function, 1); - start = LLVMGetParam(function, 2); - count = LLVMGetParam(function, 3); - stride = LLVMGetParam(function, 4); + vbuffers_ptr = LLVMGetParam(function, 2); + start = LLVMGetParam(function, 3); + count = LLVMGetParam(function, 4); + stride = LLVMGetParam(function, 5); lp_build_name(context_ptr, "context"); lp_build_name(io_ptr, "io"); + lp_build_name(vbuffers_ptr, "vbuffers"); lp_build_name(start, "start"); lp_build_name(count, "count"); lp_build_name(stride, "stride"); @@ -269,13 +377,34 @@ draw_llvm_generate(struct draw_llvm *llvm) end = lp_build_add(&bld, start, count); - step = LLVMConstInt(LLVMInt32Type(), 1, 0); + step = LLVMConstInt(LLVMInt32Type(), max_vertices, 0); lp_build_loop_begin(builder, start, &lp_loop); { + LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; + LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); + for (i = 0; i < NUM_CHANNELS; ++i) { + LLVMValueRef true_index = LLVMBuildAdd( + builder, + lp_loop.counter, + LLVMConstInt(LLVMInt32Type(), i, 0), ""); + for (j = 0; j < draw->pt.nr_vertex_elements; ++j) { + struct pipe_vertex_element *velem = &draw->pt.vertex_element[j]; + struct pipe_vertex_buffer *vbuf = &draw->pt.vertex_buffer[ + velem->vertex_buffer_index]; + + generate_fetch(builder, vbuffers_ptr, + &aos_attribs[j][i], velem, vbuf, true_index); + } + } + convert_to_soa(builder, inputs, aos_attribs, + draw->pt.nr_vertex_elements); + generate_vs(llvm, builder, + outputs, + inputs, context_ptr, io); } diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index 0a1845f1fb..cbbfeeccc5 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -78,12 +78,12 @@ struct draw_jit_context const float *gs_constants; struct draw_jit_texture textures[PIPE_MAX_SAMPLERS]; - const void *vbuffers; }; void draw_shader(struct draw_jit_context *context, struct vertex_header *io, + const void *vbuffers[PIPE_MAX_ATTRIBS], unsigned start, unsigned count, unsigned stride) @@ -115,6 +115,7 @@ draw_shader(struct draw_jit_context *context, typedef void (*draw_jit_vert_func)(struct draw_jit_context *context, struct vertex_header *io, + const void *vbuffers[PIPE_MAX_ATTRIBS], unsigned start, unsigned count, unsigned stride); @@ -134,6 +135,7 @@ struct draw_llvm { LLVMTypeRef context_ptr_type; LLVMTypeRef vertex_header_ptr_type; + LLVMTypeRef buffer_ptr_type; }; @@ -150,5 +152,9 @@ draw_llvm_prepare(struct draw_llvm *llvm); void draw_llvm_generate(struct draw_llvm *llvm); +LLVMValueRef +draw_llvm_translate_from(LLVMBuilderRef builder, + LLVMValueRef vbuffer, + enum pipe_format from_format); #endif diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index 588e97b29c..012ca3f6f0 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -492,162 +492,17 @@ struct draw_llvm_translate { {PIPE_FORMAT_B8G8R8A8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(), 4}, }; -/** - * Fetch vertex attributes for 'count' vertices. - */ -static void PIPE_CDECL generic_run_elts( struct translate *translate, - const unsigned *elts, - unsigned count, - unsigned instance_id, - void *output_buffer ) -{ - struct translate_generic *tg = translate_generic(translate); - char *vert = output_buffer; - unsigned nr_attrs = tg->nr_attrib; - unsigned attr; - unsigned i; - - /* loop over vertex attributes (vertex shader inputs) - */ - for (i = 0; i < count; i++) { - unsigned elt = *elts++; - - for (attr = 0; attr < nr_attrs; attr++) { - float data[4]; - const char *src; - - char *dst = (vert + - tg->attrib[attr].output_offset); - - if (tg->attrib[attr].instance_divisor) { - src = tg->attrib[attr].input_ptr + - tg->attrib[attr].input_stride * - (instance_id / tg->attrib[attr].instance_divisor); - } else { - src = tg->attrib[attr].input_ptr + - tg->attrib[attr].input_stride * elt; - } - - tg->attrib[attr].fetch( src, data ); - - if (0) debug_printf("vert %d/%d attr %d: %f %f %f %f\n", - i, elt, attr, data[0], data[1], data[2], data[3]); - - tg->attrib[attr].emit( data, dst ); - } - - vert += tg->translate.key.output_stride; - } -} - - -static void PIPE_CDECL generic_run( struct translate *translate, - unsigned start, - unsigned count, - unsigned instance_id, - void *output_buffer ) +LLVMValueRef +draw_llvm_translate_from(LLVMBuilderRef builder, + LLVMValueRef vbuffer, + enum pipe_format from_format) { - struct translate_generic *tg = translate_generic(translate); - char *vert = output_buffer; - unsigned nr_attrs = tg->nr_attrib; - unsigned attr; - unsigned i; - - /* loop over vertex attributes (vertex shader inputs) - */ - for (i = 0; i < count; i++) { - unsigned elt = start + i; - - for (attr = 0; attr < nr_attrs; attr++) { - float data[4]; - - char *dst = (vert + - tg->attrib[attr].output_offset); - - if (tg->attrib[attr].type == TRANSLATE_ELEMENT_NORMAL) { - const char *src; - - if (tg->attrib[attr].instance_divisor) { - src = tg->attrib[attr].input_ptr + - tg->attrib[attr].input_stride * - (instance_id / tg->attrib[attr].instance_divisor); - } else { - src = tg->attrib[attr].input_ptr + - tg->attrib[attr].input_stride * elt; - } - - tg->attrib[attr].fetch( src, data ); - } else { - data[0] = (float)instance_id; - } - - if (0) debug_printf("vert %d attr %d: %f %f %f %f\n", - i, attr, data[0], data[1], data[2], data[3]); - - tg->attrib[attr].emit( data, dst ); - } - - vert += tg->translate.key.output_stride; - } -} - - - -static void generic_set_buffer( struct translate *translate, - unsigned buf, - const void *ptr, - unsigned stride ) -{ - struct translate_generic *tg = translate_generic(translate); - unsigned i; - - for (i = 0; i < tg->nr_attrib; i++) { - if (tg->attrib[i].buffer == buf) { - tg->attrib[i].input_ptr = ((char *)ptr + - tg->attrib[i].input_offset); - tg->attrib[i].input_stride = stride; + int i; + for (i = 0; i < Elements(translates); ++i) { + if (translates[i].format == from_format) { + return translates.from_func(builder, vbuffer, from_format); } } -} - - -static void generic_release( struct translate *translate ) -{ - /* Refcount? - */ - FREE(translate); -} - -struct translate *translate_generic_create( const struct translate_key *key ) -{ - struct translate_generic *tg = CALLOC_STRUCT(translate_generic); - unsigned i; - - if (tg == NULL) - return NULL; - - tg->translate.key = *key; - tg->translate.release = generic_release; - tg->translate.set_buffer = generic_set_buffer; - tg->translate.run_elts = generic_run_elts; - tg->translate.run = generic_run; - - for (i = 0; i < key->nr_elements; i++) { - tg->attrib[i].type = key->element[i].type; - - tg->attrib[i].fetch = get_fetch_func(key->element[i].input_format); - tg->attrib[i].buffer = key->element[i].input_buffer; - tg->attrib[i].input_offset = key->element[i].input_offset; - tg->attrib[i].instance_divisor = key->element[i].instance_divisor; - - tg->attrib[i].emit = get_emit_func(key->element[i].output_format); - tg->attrib[i].output_offset = key->element[i].output_offset; - - } - - tg->nr_attrib = key->nr_elements; - - - return &tg->translate; + return LLVMGetUndef(LLVMTypeOf(vbuffer)); } diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index ae5956333e..38b1c4462d 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -110,8 +110,7 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, */ draw_pt_post_vs_prepare( fpme->post_vs, (boolean)draw->bypass_clipping, - (boolean)(draw->identity_viewport || - draw->rasterizer->bypass_vs_clip_and_viewport), + (boolean)(draw->identity_viewport), (boolean)draw->rasterizer->gl_rasterization_rules, (draw->vs.edgeflag_output ? true : false) ); @@ -242,6 +241,7 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, fpme->llvm->jit_func( &fpme->llvm->jit_context, pipeline_verts, + draw->pt.user.vbuffer, start, count, fpme->vertex_size ); -- cgit v1.2.3 From 1963112f9d0a2ed8e237641eef8eb384365d1375 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 30 Mar 2010 12:35:40 -0400 Subject: draw llvm: various fixes for the translation code the from translation isn't quite right yet --- src/gallium/auxiliary/SConscript | 3 +- src/gallium/auxiliary/draw/draw_gs.c | 12 +- src/gallium/auxiliary/draw/draw_llvm.c | 12 +- src/gallium/auxiliary/draw/draw_llvm.h | 2 +- src/gallium/auxiliary/draw/draw_llvm_translate.c | 420 +++++++++++------------ 5 files changed, 206 insertions(+), 243 deletions(-) diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index 76675fb69c..b234b2f5f4 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -205,7 +205,8 @@ if drawllvm: 'gallivm/lp_bld_tgsi_soa.c', 'gallivm/lp_bld_type.c', 'draw/draw_llvm.c', - 'draw/draw_pt_fetch_shade_pipeline_llvm.c' + 'draw/draw_pt_fetch_shade_pipeline_llvm.c', + 'draw/draw_llvm_translate.c' ] gallium = env.ConvenienceLibrary( diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c index 7069aa6b18..131deed43e 100644 --- a/src/gallium/auxiliary/draw/draw_gs.c +++ b/src/gallium/auxiliary/draw/draw_gs.c @@ -342,10 +342,10 @@ void draw_geometry_shader_delete(struct draw_geometry_shader *shader) void draw_geometry_shader_prepare(struct draw_geometry_shader *shader, struct draw_context *draw) { - if (shader->machine->Tokens != shader->state.tokens) { - tgsi_exec_machine_bind_shader(shader->machine, - shader->state.tokens, - draw->gs.num_samplers, - draw->gs.samplers); - } + if (shader && shader->machine->Tokens != shader->state.tokens) { + tgsi_exec_machine_bind_shader(shader->machine, + shader->state.tokens, + draw->gs.num_samplers, + draw->gs.samplers); + } } diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 91fe838b8b..aa4a310a07 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -115,8 +115,8 @@ init_globals(struct draw_llvm *llvm) llvm->context_ptr_type = LLVMPointerType(context_type, 0); } { - LLVMTypeRef buffer_ptr = LLVMPointerType(LLVMOpaqueType(), 0); - llvm->buffer_ptr_type = LLVMArrayType(buffer_ptr, PIPE_MAX_ATTRIBS); + LLVMTypeRef buffer_ptr = LLVMPointerType(LLVMIntType(8), 0); + llvm->buffer_ptr_type = LLVMPointerType(buffer_ptr, 0); } } @@ -221,19 +221,19 @@ generate_vs(struct draw_llvm *llvm, static void generate_fetch(LLVMBuilderRef builder, - const LLVMValueRef vbuffers_ptr, + LLVMValueRef vbuffers_ptr, LLVMValueRef *res, struct pipe_vertex_element *velem, struct pipe_vertex_buffer *vbuf, LLVMValueRef index) { - LLVMValueRef indices = LLVMConstInt(LLVMInt32Type(), - velem->vertex_buffer_index, 0); + LLVMValueRef indices = LLVMConstInt(LLVMInt64Type(), velem->vertex_buffer_index, 0); LLVMValueRef vbuffer_ptr = LLVMBuildGEP(builder, vbuffers_ptr, &indices, 1, ""); LLVMValueRef stride = LLVMBuildMul(builder, LLVMConstInt(LLVMInt32Type(), vbuf->stride, 0), index, ""); + stride = LLVMBuildAdd(builder, stride, LLVMConstInt(LLVMInt32Type(), vbuf->buffer_offset, 0), ""); @@ -393,7 +393,7 @@ draw_llvm_generate(struct draw_llvm *llvm) struct pipe_vertex_element *velem = &draw->pt.vertex_element[j]; struct pipe_vertex_buffer *vbuf = &draw->pt.vertex_buffer[ velem->vertex_buffer_index]; - + LLVMDumpValue(function); generate_fetch(builder, vbuffers_ptr, &aos_attribs[j][i], velem, vbuf, true_index); } diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index cbbfeeccc5..e375008f3b 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -115,7 +115,7 @@ draw_shader(struct draw_jit_context *context, typedef void (*draw_jit_vert_func)(struct draw_jit_context *context, struct vertex_header *io, - const void *vbuffers[PIPE_MAX_ATTRIBS], + const char *vbuffers[PIPE_MAX_ATTRIBS], unsigned start, unsigned count, unsigned stride); diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index 012ca3f6f0..6cbe98c489 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -1,86 +1,23 @@ +#include "draw_private.h" +#include "draw_context.h" +#include "draw_llvm.h" +#include "gallivm/lp_bld_arit.h" +#include "gallivm/lp_bld_interp.h" +#include "gallivm/lp_bld_struct.h" +#include "gallivm/lp_bld_type.h" +#include "gallivm/lp_bld_flow.h" +#include "gallivm/lp_bld_debug.h" +#include "gallivm/lp_bld_tgsi.h" #include "util/u_memory.h" #include "pipe/p_state.h" -#include "translate.h" #define DRAW_DBG 0 -typedef void (*fetch_func)(const void *ptr, float *attrib); -typedef void (*emit_func)(const float *attrib, void *ptr); - - - -struct translate_generic { - struct translate translate; - - struct { - enum translate_element_type type; - - fetch_func fetch; - unsigned buffer; - unsigned input_offset; - unsigned instance_divisor; - - emit_func emit; - unsigned output_offset; - - char *input_ptr; - unsigned input_stride; - - } attrib[PIPE_MAX_ATTRIBS]; - - unsigned nr_attrib; -}; - - -static struct translate_generic *translate_generic( struct translate *translate ) -{ - return (struct translate_generic *)translate; -} - -/** - * Fetch a float[4] vertex attribute from memory, doing format/type - * conversion as needed. - * - * This is probably needed/dupliocated elsewhere, eg format - * conversion, texture sampling etc. - */ -#define ATTRIB( NAME, SZ, TYPE, FROM, TO ) \ -static void \ -fetch_##NAME(const void *ptr, float *attrib) \ -{ \ - const float defaults[4] = { 0.0f,0.0f,0.0f,1.0f }; \ - unsigned i; \ - \ - for (i = 0; i < SZ; i++) { \ - attrib[i] = FROM(i); \ - } \ - \ - for (; i < 4; i++) { \ - attrib[i] = defaults[i]; \ - } \ -} \ - \ -static void \ -emit_##NAME(const float *attrib, void *ptr) \ -{ \ - unsigned i; \ - TYPE *out = (TYPE *)ptr; \ - \ - for (i = 0; i < SZ; i++) { \ - out[i] = TO(attrib[i]); \ - } \ -} - -{ - - return conv = instr(builder, bc, ""); -} - -static INLINE LLVMValueRef +static LLVMValueRef from_64_float(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, @@ -89,7 +26,7 @@ from_64_float(LLVMBuilderRef builder, LLVMValueRef val) return LLVMBuildFPTrunc(builder, l, LLVMFloatType(), ""); } -static INLINE LLVMValueRef +static LLVMValueRef from_32_float(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, @@ -154,7 +91,7 @@ from_8_unorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef l = LLVMBuildLoad(builder, val, ""); LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 255.)); + LLVMConstReal(LLVMFloatType(), 255.), ""); } static INLINE LLVMValueRef @@ -165,7 +102,7 @@ from_16_unorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 65535.)); + LLVMConstReal(LLVMFloatType(), 65535.), ""); } static INLINE LLVMValueRef @@ -177,7 +114,7 @@ from_32_unorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 4294967295.)); + LLVMConstReal(LLVMFloatType(), 4294967295.), ""); } static INLINE LLVMValueRef @@ -186,7 +123,7 @@ from_8_snorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef l = LLVMBuildLoad(builder, val, ""); LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 127.0)); + LLVMConstReal(LLVMFloatType(), 127.0), ""); } static INLINE LLVMValueRef @@ -197,7 +134,7 @@ from_16_snorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 32767.0f)); + LLVMConstReal(LLVMFloatType(), 32767.0f), ""); } static INLINE LLVMValueRef @@ -209,7 +146,7 @@ from_32_snorm(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 2147483647.0)); + LLVMConstReal(LLVMFloatType(), 2147483647.0), ""); } static INLINE LLVMValueRef @@ -221,23 +158,23 @@ from_32_fixed(LLVMBuilderRef builder, LLVMValueRef val) LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, - LLVMConstReal(builder, 65536.0)); + LLVMConstReal(LLVMFloatType(), 65536.0), ""); } -static INLINE LLVMValueRef +static LLVMValueRef to_64_float(LLVMBuilderRef builder, LLVMValueRef fp) { LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); return LLVMBuildFPExt(builder, l, LLVMDoubleType(), ""); } -static INLINE LLVMValueRef +static LLVMValueRef to_32_float(LLVMBuilderRef builder, LLVMValueRef fp) { return LLVMBuildLoad(builder, fp, ""); } -atic INLINE LLVMValueRef +static INLINE LLVMValueRef to_8_uscaled(LLVMBuilderRef builder, LLVMValueRef fp) { LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); @@ -285,7 +222,7 @@ to_8_unorm(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(8), ""); return LLVMBuildFMul(builder, uscaled, - LLVMConstReal(builder, 255.)); + LLVMConstReal(LLVMFloatType(), 255.), ""); } static INLINE LLVMValueRef @@ -294,7 +231,7 @@ to_16_unorm(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(32), ""); return LLVMBuildFMul(builder, uscaled, - LLVMConstReal(builder, 65535.)); + LLVMConstReal(LLVMFloatType(), 65535.), ""); } static INLINE LLVMValueRef @@ -304,7 +241,7 @@ to_32_unorm(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef uscaled = LLVMBuildFPToUI(builder, l, LLVMIntType(32), ""); return LLVMBuildFMul(builder, uscaled, - LLVMConstReal(builder, 4294967295.)); + LLVMConstReal(LLVMFloatType(), 4294967295.), ""); } static INLINE LLVMValueRef @@ -312,8 +249,8 @@ to_8_snorm(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef l = LLVMBuildLoad(builder, val, ""); LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(8), ""); - return LLVMBuildFMUL(builder, uscaled, - LLVMConstReal(builder, 127.0)); + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(LLVMFloatType(), 127.0), ""); } static INLINE LLVMValueRef @@ -322,7 +259,7 @@ to_16_snorm(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(16), ""); return LLVMBuildFMul(builder, uscaled, - LLVMConstReal(builder, 32767.0f)); + LLVMConstReal(LLVMFloatType(), 32767.0f), ""); } static INLINE LLVMValueRef @@ -331,8 +268,8 @@ to_32_snorm(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef l = LLVMBuildLoad(builder, fp, ""); LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(32), ""); - return LLVMBuildFMUL(builder, uscaled, - LLVMConstReal(builder, 2147483647.0)); + return LLVMBuildFMul(builder, uscaled, + LLVMConstReal(LLVMFloatType(), 2147483647.0), ""); } static INLINE LLVMValueRef @@ -342,156 +279,176 @@ to_32_fixed(LLVMBuilderRef builder, LLVMValueRef fp) LLVMValueRef uscaled = LLVMBuildFPToSI(builder, l, LLVMIntType(32), ""); return LLVMBuildFMul(builder, uscaled, - LLVMConstReal(builder, 65536.0)); + LLVMConstReal(LLVMFloatType(), 65536.0), ""); +} + +typedef LLVMValueRef (*from_func)(LLVMBuilderRef, LLVMValueRef); +typedef LLVMValueRef (*to_func)(LLVMBuilderRef, LLVMValueRef); + +/* so that underneath can avoid function calls which are prohibited + * for static initialization we need this conversion */ +enum ll_type { + LL_Double, + LL_Float, + LL_Int32, + LL_Int16, + LL_Int8 +}; + +static INLINE LLVMTypeRef +ll_type_to_llvm(enum ll_type type) +{ + switch (type) { + case LL_Double: + return LLVMDoubleType(); + case LL_Float: + return LLVMFloatType(); + case LL_Int32: + return LLVMInt32Type(); + case LL_Int16: + return LLVMIntType(16); + case LL_Int8: + return LLVMIntType(8); + } + return LLVMIntType(8); +} + +static INLINE int +ll_type_size(enum ll_type type) +{ + switch (type) { + case LL_Double: + return 8; + case LL_Float: + return 4; + case LL_Int32: + return 4; + case LL_Int16: + return 2; + case LL_Int8: + return 1; + } + return 1; } +struct draw_llvm_translate { + int format; + from_func from; + to_func to; + enum ll_type type; + int num_components; +} translates[] = +{ + {PIPE_FORMAT_R64_FLOAT, from_64_float, to_64_float, LL_Double, 1}, + {PIPE_FORMAT_R64G64_FLOAT, from_64_float, to_64_float, LL_Double, 2}, + {PIPE_FORMAT_R64G64B64_FLOAT, from_64_float, to_64_float, LL_Double, 3}, + {PIPE_FORMAT_R64G64B64A64_FLOAT, from_64_float, to_64_float, LL_Double, 4}, + {PIPE_FORMAT_R32_FLOAT, from_32_float, to_32_float, LL_Float, 1}, + {PIPE_FORMAT_R32G32_FLOAT, from_32_float, to_32_float, LL_Float, 2}, + {PIPE_FORMAT_R32G32B32_FLOAT, from_32_float, to_32_float, LL_Float, 3}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, from_32_float, to_32_float, LL_Float, 4}, + + {PIPE_FORMAT_R32_UNORM, from_32_unorm, to_32_unorm, LL_Int32, 1}, + {PIPE_FORMAT_R32G32_UNORM, from_32_unorm, to_32_unorm, LL_Int32, 2}, + {PIPE_FORMAT_R32G32B32_UNORM, from_32_unorm, to_32_unorm, LL_Int32, 3}, + {PIPE_FORMAT_R32G32B32A32_UNORM, from_32_unorm, to_32_unorm, LL_Int32, 4}, + + {PIPE_FORMAT_R32_USCALED, from_32_uscaled, to_32_uscaled, LL_Int32, 1}, + {PIPE_FORMAT_R32G32_USCALED, from_32_uscaled, to_32_uscaled, LL_Int32, 2}, + {PIPE_FORMAT_R32G32B32_USCALED, from_32_uscaled, to_32_uscaled, LL_Int32, 3}, + {PIPE_FORMAT_R32G32B32A32_USCALED, from_32_uscaled, to_32_uscaled, LL_Int32, 4}, + + {PIPE_FORMAT_R32_SNORM, from_32_snorm, to_32_snorm, LL_Int32, 1}, + {PIPE_FORMAT_R32G32_SNORM, from_32_snorm, to_32_snorm, LL_Int32, 2}, + {PIPE_FORMAT_R32G32B32_SNORM, from_32_snorm, to_32_snorm, LL_Int32, 3}, + {PIPE_FORMAT_R32G32B32A32_SNORM, from_32_snorm, to_32_snorm, LL_Int32, 4}, + + {PIPE_FORMAT_R32_SSCALED, from_32_sscaled, to_32_sscaled, LL_Int32, 1}, + {PIPE_FORMAT_R32G32_SSCALED, from_32_sscaled, to_32_sscaled, LL_Int32, 2}, + {PIPE_FORMAT_R32G32B32_SSCALED, from_32_sscaled, to_32_sscaled, LL_Int32, 3}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, from_32_sscaled, to_32_sscaled, LL_Int32, 4}, + + {PIPE_FORMAT_R16_UNORM, from_16_unorm, to_16_unorm, LL_Int16, 1}, + {PIPE_FORMAT_R16G16_UNORM, from_16_unorm, to_16_unorm, LL_Int16, 2}, + {PIPE_FORMAT_R16G16B16_UNORM, from_16_unorm, to_16_unorm, LL_Int16, 3}, + {PIPE_FORMAT_R16G16B16A16_UNORM, from_16_unorm, to_16_unorm, LL_Int16, 4}, + + {PIPE_FORMAT_R16_USCALED, from_16_uscaled, to_16_uscaled, LL_Int16, 1}, + {PIPE_FORMAT_R16G16_USCALED, from_16_uscaled, to_16_uscaled, LL_Int16, 2}, + {PIPE_FORMAT_R16G16B16_USCALED, from_16_uscaled, to_16_uscaled, LL_Int16, 3}, + {PIPE_FORMAT_R16G16B16A16_USCALED, from_16_uscaled, to_16_uscaled, LL_Int16, 4}, + + {PIPE_FORMAT_R16_SNORM, from_16_snorm, to_16_snorm, LL_Int16, 1}, + {PIPE_FORMAT_R16G16_SNORM, from_16_snorm, to_16_snorm, LL_Int16, 2}, + {PIPE_FORMAT_R16G16B16_SNORM, from_16_snorm, to_16_snorm, LL_Int16, 3}, + {PIPE_FORMAT_R16G16B16A16_SNORM, from_16_snorm, to_16_snorm, LL_Int16, 4}, + + {PIPE_FORMAT_R16_SSCALED, from_16_sscaled, to_16_sscaled, LL_Int16, 1}, + {PIPE_FORMAT_R16G16_SSCALED, from_16_sscaled, to_16_sscaled, LL_Int16, 2}, + {PIPE_FORMAT_R16G16B16_SSCALED, from_16_sscaled, to_16_sscaled, LL_Int16, 3}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, from_16_sscaled, to_16_sscaled, LL_Int16, 4}, + + {PIPE_FORMAT_R8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 1}, + {PIPE_FORMAT_R8G8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 2}, + {PIPE_FORMAT_R8G8B8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 3}, + {PIPE_FORMAT_R8G8B8A8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 4}, + + {PIPE_FORMAT_R8_USCALED, from_8_uscaled, to_8_uscaled, LL_Int8, 1}, + {PIPE_FORMAT_R8G8_USCALED, from_8_uscaled, to_8_uscaled, LL_Int8, 2}, + {PIPE_FORMAT_R8G8B8_USCALED, from_8_uscaled, to_8_uscaled, LL_Int8, 3}, + {PIPE_FORMAT_R8G8B8A8_USCALED, from_8_uscaled, to_8_uscaled, LL_Int8, 4}, + + {PIPE_FORMAT_R8_SNORM, from_8_snorm, to_8_snorm, LL_Int8, 1}, + {PIPE_FORMAT_R8G8_SNORM, from_8_snorm, to_8_snorm, LL_Int8, 2}, + {PIPE_FORMAT_R8G8B8_SNORM, from_8_snorm, to_8_snorm, LL_Int8, 3}, + {PIPE_FORMAT_R8G8B8A8_SNORM, from_8_snorm, to_8_snorm, LL_Int8, 4}, + + {PIPE_FORMAT_R8_SSCALED, from_8_sscaled, to_8_sscaled, LL_Int8, 1}, + {PIPE_FORMAT_R8G8_SSCALED, from_8_sscaled, to_8_sscaled, LL_Int8, 2}, + {PIPE_FORMAT_R8G8B8_SSCALED, from_8_sscaled, to_8_sscaled, LL_Int8, 3}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, from_8_sscaled, to_8_sscaled, LL_Int8, 4}, + + {PIPE_FORMAT_R32_FIXED, from_32_fixed, to_32_fixed, LL_Int32, 1}, + {PIPE_FORMAT_R32G32_FIXED, from_32_fixed, to_32_fixed, LL_Int32, 2}, + {PIPE_FORMAT_R32G32B32_FIXED, from_32_fixed, to_32_fixed, LL_Int32, 3}, + {PIPE_FORMAT_R32G32B32A32_FIXED, from_32_fixed, to_32_fixed, LL_Int32, 4}, + + {PIPE_FORMAT_A8R8G8B8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 4}, + {PIPE_FORMAT_B8G8R8A8_UNORM, from_8_unorm, to_8_unorm, LL_Int8, 4}, +}; + + static LLVMValueRef -fetch(LLVMValueRef ptr, int val_size, int nr_components, - LLVMValueRef res) +fetch(LLVMBuilderRef builder, + LLVMValueRef ptr, int val_size, int nr_components, + from_func func) { int i; int offset = 0; + LLVMValueRef res = LLVMConstNull( + LLVMVectorType(LLVMFloatType(), 4)); for (i = 0; i < nr_components; ++i) { LLVMValueRef src_index = LLVMConstInt(LLVMInt32Type(), offset, 0); LLVMValueRef dst_index = LLVMConstInt(LLVMInt32Type(), i, 0); - //getelementptr i8* ptr, i64 offset LLVMValueRef src_tmp = LLVMBuildGEP(builder, ptr, &src_index, 1, ""); - //getelementptr float* res, i64 i - LLVMValueRef res_tmp = LLVMBuildGEP(builder, res, &dst_index, 1, ""); - //bitcast i8* src, to res_type* - //load res_type src - //convert res_type src to float - //store float src, float *dst src - offset += val_size; - } -} - - -static void -fetch_B8G8R8A8_UNORM(const void *ptr, float *attrib) -{ - attrib[2] = FROM_8_UNORM(0); - attrib[1] = FROM_8_UNORM(1); - attrib[0] = FROM_8_UNORM(2); - attrib[3] = FROM_8_UNORM(3); -} + LLVMValueRef component; -static void -emit_B8G8R8A8_UNORM( const float *attrib, void *ptr) -{ - ubyte *out = (ubyte *)ptr; - out[2] = TO_8_UNORM(attrib[0]); - out[1] = TO_8_UNORM(attrib[1]); - out[0] = TO_8_UNORM(attrib[2]); - out[3] = TO_8_UNORM(attrib[3]); -} + src_tmp = LLVMBuildLoad(builder, src_tmp, ""); -static void -fetch_NULL( const void *ptr, float *attrib ) -{ - attrib[0] = 0; - attrib[1] = 0; - attrib[2] = 0; - attrib[3] = 1; -} + /* convert src_tmp to float */ + component = func(builder, src_tmp); -static void -emit_NULL( const float *attrib, void *ptr ) -{ - /* do nothing is the only sensible option */ + /* vec.comp = component */ + res = LLVMBuildInsertElement(builder, + res, + component, + dst_index, ""); + offset += val_size; + } + return res; } -typedef LLVMValueRef (*from_func)(LLVMBuilderRef, LLVMValueRef); -typedef LLVMValueRef (*to_func)(LLVMBuilderRef, LLVMValueRef); - -struct draw_llvm_translate { - int format; - from_func from; - to_func to; - LLVMTypeRef type; - int num_components; -} translates[] = -{ - {PIPE_FORMAT_R64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 1}, - {PIPE_FORMAT_R64G64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 2}, - {PIPE_FORMAT_R64G64B64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 3}, - {PIPE_FORMAT_R64G64B64A64_FLOAT, from_64_float, to_64_float, LLVMDoubleType(), 4}, - - {PIPE_FORMAT_R32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 1}, - {PIPE_FORMAT_R32G32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 2}, - {PIPE_FORMAT_R32G32B32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 3}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, from_32_float, to_32_float, LLVMFloatType(), 4}, - - {PIPE_FORMAT_R32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 1}, - {PIPE_FORMAT_R32G32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 2}, - {PIPE_FORMAT_R32G32B32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 3}, - {PIPE_FORMAT_R32G32B32A32_UNORM, from_32_unorm, to_32_unorm, LLVMIntType(32), 4}, - - {PIPE_FORMAT_R32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 1}, - {PIPE_FORMAT_R32G32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 2}, - {PIPE_FORMAT_R32G32B32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 3}, - {PIPE_FORMAT_R32G32B32A32_USCALED, from_32_uscaled, to_32_uscaled, LLVMIntType(32), 4}, - - {PIPE_FORMAT_R32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 1}, - {PIPE_FORMAT_R32G32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 2}, - {PIPE_FORMAT_R32G32B32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 3}, - {PIPE_FORMAT_R32G32B32A32_SNORM, from_32_snorm, to_32_snorm, LLVMIntType(32), 4}, - - {PIPE_FORMAT_R32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 1}, - {PIPE_FORMAT_R32G32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 2}, - {PIPE_FORMAT_R32G32B32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 3}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, from_32_sscaled, to_32_sscaled, LLVMIntType(32), 4}, - - {PIPE_FORMAT_R16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 1}, - {PIPE_FORMAT_R16G16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 2}, - {PIPE_FORMAT_R16G16B16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 3}, - {PIPE_FORMAT_R16G16B16A16_UNORM, from_16_unorm, to_16_unorm, LLVMIntType(16), 4}, - - {PIPE_FORMAT_R16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 1}, - {PIPE_FORMAT_R16G16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 2}, - {PIPE_FORMAT_R16G16B16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 3}, - {PIPE_FORMAT_R16G16B16A16_USCALED, from_16_uscaled, to_16_uscaled, LLVMIntType(16), 4}, - - {PIPE_FORMAT_R16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 1}, - {PIPE_FORMAT_R16G16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 2}, - {PIPE_FORMAT_R16G16B16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 3}, - {PIPE_FORMAT_R16G16B16A16_SNORM, from_16_snorm, to_16_snorm, LLVMIntType(16), 4}, - - {PIPE_FORMAT_R16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 1}, - {PIPE_FORMAT_R16G16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 2}, - {PIPE_FORMAT_R16G16B16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 3}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, from_16_sscaled, to_16_sscaled, LLVMIntType(16), 4}, - - {PIPE_FORMAT_R8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 1}, - {PIPE_FORMAT_R8G8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 2}, - {PIPE_FORMAT_R8G8B8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 3}, - {PIPE_FORMAT_R8G8B8A8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 4}, - - {PIPE_FORMAT_R8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 1}, - {PIPE_FORMAT_R8G8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 2}, - {PIPE_FORMAT_R8G8B8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 3}, - {PIPE_FORMAT_R8G8B8A8_USCALED, from_8_uscaled, to_8_uscaled, LLVMIntType(8), 4}, - - {PIPE_FORMAT_R8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 1}, - {PIPE_FORMAT_R8G8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 2}, - {PIPE_FORMAT_R8G8B8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 3}, - {PIPE_FORMAT_R8G8B8A8_SNORM, from_8_snorm, to_8_snorm, LLVMIntType(8), 4}, - - {PIPE_FORMAT_R8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 1}, - {PIPE_FORMAT_R8G8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 2}, - {PIPE_FORMAT_R8G8B8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 3}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, from_8_sscaled, to_8_sscaled, LLVMIntType(8), 4}, - - {PIPE_FORMAT_R32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 1}, - {PIPE_FORMAT_R32G32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 2}, - {PIPE_FORMAT_R32G32B32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 3}, - {PIPE_FORMAT_R32G32B32A32_FIXED, from_32_fixed, to_32_fixed, LLVMIntType(32), 4}, - - {PIPE_FORMAT_A8R8G8B8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(8), 4}, - {PIPE_FORMAT_B8G8R8A8_UNORM, from_8_unorm, to_8_unorm, LLVMIntType(), 4}, -}; - LLVMValueRef draw_llvm_translate_from(LLVMBuilderRef builder, @@ -501,8 +458,13 @@ draw_llvm_translate_from(LLVMBuilderRef builder, int i; for (i = 0; i < Elements(translates); ++i) { if (translates[i].format == from_format) { - return translates.from_func(builder, vbuffer, from_format); + /*LLVMTypeRef type = ll_type_to_llvm(translates[i].type);*/ + return fetch(builder, + vbuffer, + ll_type_size(translates[i].type), + translates[i].num_components, + translates[i].from); } } - return LLVMGetUndef(LLVMTypeOf(vbuffer)); + return LLVMGetUndef(LLVMVectorType(LLVMFloatType(), 4)); } -- cgit v1.2.3 From 6f34339af421d4001dcc01114be462d2ea381f16 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 30 Mar 2010 12:52:09 -0400 Subject: draw llvm: we translate between pointers, not values directly --- src/gallium/auxiliary/draw/draw_llvm_translate.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index 6cbe98c489..74830f1b46 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -21,7 +21,7 @@ static LLVMValueRef from_64_float(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMDoubleType() , ""); + LLVMPointerType(LLVMDoubleType(), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); return LLVMBuildFPTrunc(builder, l, LLVMFloatType(), ""); } @@ -30,7 +30,7 @@ static LLVMValueRef from_32_float(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMFloatType() , ""); + LLVMPointerType(LLVMFloatType(), 0) , ""); return LLVMBuildLoad(builder, bc, ""); } @@ -45,7 +45,7 @@ static INLINE LLVMValueRef from_16_uscaled(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(16) , ""); + LLVMPointerType(LLVMIntType(16), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); return LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); } @@ -54,7 +54,7 @@ static INLINE LLVMValueRef from_32_uscaled(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(32) , ""); + LLVMPointerType(LLVMIntType(32), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); return LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); } @@ -70,7 +70,7 @@ static INLINE LLVMValueRef from_16_sscaled(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(16) , ""); + LLVMPointerType(LLVMIntType(16), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); return LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); } @@ -79,7 +79,7 @@ static INLINE LLVMValueRef from_32_sscaled(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(32) , ""); + LLVMPointerType(LLVMIntType(32), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); return LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); } @@ -98,7 +98,7 @@ static INLINE LLVMValueRef from_16_unorm(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(16) , ""); + LLVMPointerType(LLVMIntType(16), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, @@ -109,7 +109,7 @@ static INLINE LLVMValueRef from_32_unorm(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(32) , ""); + LLVMPointerType(LLVMIntType(32), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildUIToFP(builder, l, LLVMFloatType(), ""); @@ -130,7 +130,7 @@ static INLINE LLVMValueRef from_16_snorm(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(16) , ""); + LLVMPointerType(LLVMIntType(16), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); return LLVMBuildFDiv(builder, uscaled, @@ -141,7 +141,7 @@ static INLINE LLVMValueRef from_32_snorm(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(32) , ""); + LLVMPointerType(LLVMIntType(32), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); @@ -153,7 +153,7 @@ static INLINE LLVMValueRef from_32_fixed(LLVMBuilderRef builder, LLVMValueRef val) { LLVMValueRef bc = LLVMBuildBitCast(builder, val, - LLVMIntType(32) , ""); + LLVMPointerType(LLVMIntType(32), 0) , ""); LLVMValueRef l = LLVMBuildLoad(builder, bc, ""); LLVMValueRef uscaled = LLVMBuildSIToFP(builder, l, LLVMFloatType(), ""); @@ -436,6 +436,7 @@ fetch(LLVMBuilderRef builder, src_tmp = LLVMBuildLoad(builder, src_tmp, ""); + LLVMDumpValue(src_tmp); /* convert src_tmp to float */ component = func(builder, src_tmp); -- cgit v1.2.3 From 8bc07fc83e344c9e693bdec4148009320a1731f1 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 30 Mar 2010 16:16:36 -0400 Subject: draw llvm: fix some silly mistakes the vs_type selection isn't ideal, but for now both llvmpipe's fs and vs do the same thing which is operate on 4xfloat vector as the base type --- src/gallium/auxiliary/draw/draw_llvm.c | 22 +++++++++++++++------- src/gallium/auxiliary/draw/draw_llvm_translate.c | 1 - 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index aa4a310a07..cd183d5087 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -205,14 +205,24 @@ generate_vs(struct draw_llvm *llvm, LLVMValueRef io) { const struct tgsi_token *tokens = llvm->draw->vs.vertex_shader->state.tokens; - struct lp_type vs_type = lp_type_float(32); - LLVMValueRef vs_consts; + struct lp_type vs_type; + LLVMValueRef consts_ptr = draw_jit_context_vs_constants(builder, context_ptr); + + memset(&vs_type, 0, sizeof vs_type); + vs_type.floating = TRUE; /* floating point values */ + vs_type.sign = TRUE; /* values are signed */ + vs_type.norm = FALSE; /* values are not limited to [0,1] or [-1,1] */ + vs_type.width = 32; /* 32-bit float */ + vs_type.length = 4; /* 4 elements per vector */ +#if 0 + num_vs = 4; /* number of vertices per block */ +#endif lp_build_tgsi_soa(builder, tokens, vs_type, NULL /*struct lp_build_mask_context *mask*/, - vs_consts, + consts_ptr, NULL /*pos*/, inputs, outputs, @@ -312,7 +322,6 @@ convert_to_soa(LLVMBuilderRef builder, LLVMConstInt(LLVMInt32Type(), 2, 0)); soa[i][3] = aos_to_soa(builder, val0, val1, val2, val3, LLVMConstInt(LLVMInt32Type(), 3, 0)); - } } @@ -329,7 +338,6 @@ draw_llvm_generate(struct draw_llvm *llvm) LLVMValueRef io_ptr, vbuffers_ptr; struct draw_context *draw = llvm->draw; unsigned i, j; - unsigned chan; struct lp_build_context bld; struct lp_build_loop_state lp_loop; struct lp_type vs_type = lp_type_float_vec(32); @@ -393,12 +401,11 @@ draw_llvm_generate(struct draw_llvm *llvm) struct pipe_vertex_element *velem = &draw->pt.vertex_element[j]; struct pipe_vertex_buffer *vbuf = &draw->pt.vertex_buffer[ velem->vertex_buffer_index]; - LLVMDumpValue(function); generate_fetch(builder, vbuffers_ptr, &aos_attribs[j][i], velem, vbuf, true_index); } } - convert_to_soa(builder, inputs, aos_attribs, + convert_to_soa(builder, aos_attribs, inputs, draw->pt.nr_vertex_elements); generate_vs(llvm, @@ -407,6 +414,7 @@ draw_llvm_generate(struct draw_llvm *llvm) inputs, context_ptr, io); + LLVMDumpModule(llvm->module); } lp_build_loop_end(builder, end, step, &lp_loop); diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index 74830f1b46..260568aaa4 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -436,7 +436,6 @@ fetch(LLVMBuilderRef builder, src_tmp = LLVMBuildLoad(builder, src_tmp, ""); - LLVMDumpValue(src_tmp); /* convert src_tmp to float */ component = func(builder, src_tmp); -- cgit v1.2.3 From b0f946e90069f34e69a0492caa7a2867ae184e9a Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 30 Mar 2010 17:21:11 -0400 Subject: draw llvm: actually set the constant buffers on the context --- src/gallium/auxiliary/draw/draw_llvm.c | 2 +- src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index cd183d5087..1127d5417e 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -110,7 +110,7 @@ init_globals(struct draw_llvm *llvm) LP_CHECK_STRUCT_SIZE(struct draw_jit_context, llvm->target, context_type); - LLVMAddTypeName(llvm->module, "context", context_type); + LLVMAddTypeName(llvm->module, "draw_jit_context", context_type); llvm->context_ptr_type = LLVMPointerType(context_type, 0); } diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 38b1c4462d..f93df37d92 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -130,6 +130,12 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, *max_vertices = *max_vertices & ~1; draw_llvm_prepare(fpme->llvm); + + /*XXX we only support one constant buffer */ + fpme->llvm->jit_context.vs_constants = + draw->pt.user.vs_constants[0]; + fpme->llvm->jit_context.gs_constants = + draw->pt.user.gs_constants[0]; } @@ -241,7 +247,7 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, fpme->llvm->jit_func( &fpme->llvm->jit_context, pipeline_verts, - draw->pt.user.vbuffer, + (const char **)draw->pt.user.vbuffer, start, count, fpme->vertex_size ); -- cgit v1.2.3 From 93e342574f5fc95789028dbe7cf637257562e9bb Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 30 Mar 2010 21:09:51 -0400 Subject: draw llvm: fix a warning --- src/gallium/auxiliary/draw/draw_llvm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 1127d5417e..6347acb0b9 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -391,6 +391,7 @@ draw_llvm_generate(struct draw_llvm *llvm) LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); + const LLVMValueRef (*ptr_aos)[NUM_CHANNELS]; for (i = 0; i < NUM_CHANNELS; ++i) { LLVMValueRef true_index = LLVMBuildAdd( @@ -408,17 +409,17 @@ draw_llvm_generate(struct draw_llvm *llvm) convert_to_soa(builder, aos_attribs, inputs, draw->pt.nr_vertex_elements); + ptr_aos = (const LLVMValueRef (*)[NUM_CHANNELS]) inputs; generate_vs(llvm, builder, outputs, - inputs, + ptr_aos, context_ptr, io); LLVMDumpModule(llvm->module); } lp_build_loop_end(builder, end, step, &lp_loop); - LLVMBuildRetVoid(builder); LLVMDisposeBuilder(builder); -- cgit v1.2.3 From e24f4378a1e29a8f81033c1c4a1c31ec9ca3706a Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 31 Mar 2010 15:44:25 +1000 Subject: st/mesa: use BITFIELD64_BIT to access shader OutputsWritten in more places --- src/mesa/state_tracker/st_atom_rasterizer.c | 2 +- src/mesa/state_tracker/st_program.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c index 9c9a99bcfc..5669b1f82a 100644 --- a/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/src/mesa/state_tracker/st_atom_rasterizer.c @@ -209,7 +209,7 @@ static void update_raster_state( struct st_context *st ) */ if (vertProg) { if (vertProg->Base.Id == 0) { - if (vertProg->Base.OutputsWritten & (1 << VERT_RESULT_PSIZ)) { + if (vertProg->Base.OutputsWritten & BITFIELD64_BIT(VERT_RESULT_PSIZ)) { /* generated program which emits point size */ raster->point_size_per_vertex = TRUE; } diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 7f8677d400..6e8c446f78 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -121,7 +121,7 @@ st_prepare_vertex_program(struct st_context *st, /* Compute mapping of vertex program outputs to slots. */ for (attr = 0; attr < VERT_RESULT_MAX; attr++) { - if ((stvp->Base.Base.OutputsWritten & (1 << attr)) == 0) { + if ((stvp->Base.Base.OutputsWritten & BITFIELD64_BIT(attr)) == 0) { stvp->result_to_output[attr] = ~0; } else { @@ -388,7 +388,7 @@ st_translate_fragment_program(struct st_context *st, GLbitfield64 outputsWritten = stfp->Base.Base.OutputsWritten; /* if z is written, emit that first */ - if (outputsWritten & (1 << FRAG_RESULT_DEPTH)) { + if (outputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) { fs_output_semantic_name[fs_num_outputs] = TGSI_SEMANTIC_POSITION; fs_output_semantic_index[fs_num_outputs] = 0; outputMapping[FRAG_RESULT_DEPTH] = fs_num_outputs; @@ -398,7 +398,7 @@ st_translate_fragment_program(struct st_context *st, /* handle remaning outputs (color) */ for (attr = 0; attr < FRAG_RESULT_MAX; attr++) { - if (outputsWritten & (1 << attr)) { + if (outputsWritten & BITFIELD64_BIT(attr)) { switch (attr) { case FRAG_RESULT_DEPTH: /* handled above */ -- cgit v1.2.3 From 8e833c7988a218d3c01ff79f17bdeed40058b32e Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 16:58:05 +0100 Subject: llvmpipe: Don't rely on u_format_access.py --- src/gallium/drivers/llvmpipe/Makefile | 2 +- src/gallium/drivers/llvmpipe/SConscript | 1 - src/gallium/drivers/llvmpipe/lp_tile_soa.py | 12 ++++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/Makefile b/src/gallium/drivers/llvmpipe/Makefile index 625da8524b..7bfce15c2e 100644 --- a/src/gallium/drivers/llvmpipe/Makefile +++ b/src/gallium/drivers/llvmpipe/Makefile @@ -50,7 +50,7 @@ PROGS := \ include ../../Makefile.template -lp_tile_soa.c: lp_tile_soa.py ../../auxiliary/util/u_format_parse.py ../../auxiliary/util/u_format_access.py ../../auxiliary/util/u_format.csv +lp_tile_soa.c: lp_tile_soa.py ../../auxiliary/util/u_format_parse.py ../../auxiliary/util/u_format_pack.py ../../auxiliary/util/u_format.csv python lp_tile_soa.py ../../auxiliary/util/u_format.csv > $@ diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript index 3549f8c9d3..07e6ccfce4 100644 --- a/src/gallium/drivers/llvmpipe/SConscript +++ b/src/gallium/drivers/llvmpipe/SConscript @@ -22,7 +22,6 @@ env.CodeGenerate( env.Depends('lp_tile_soa.c', [ '#src/gallium/auxiliary/util/u_format_parse.py', '#src/gallium/auxiliary/util/u_format_pack.py', - '#src/gallium/auxiliary/util/u_format_access.py', ]) llvmpipe = env.ConvenienceLibrary( diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index 00b8d4fc38..a73da7d1ed 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -42,7 +42,7 @@ import os.path sys.path.insert(0, os.path.join(os.path.dirname(sys.argv[0]), '../../auxiliary/util')) -from u_format_access import * +from u_format_pack import * def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): @@ -62,7 +62,7 @@ def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): print ' for (x = 0; x < w; ++x) {' names = ['']*4 - if format.colorspace == 'rgb': + if format.colorspace in ('rgb', 'srgb'): for i in range(4): swizzle = format.swizzles[i] if swizzle < 4: @@ -104,7 +104,7 @@ def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): assert False for i in range(4): - if format.colorspace == 'rgb': + if format.colorspace in ('rgb', 'srgb'): swizzle = format.swizzles[i] if swizzle < 4: value = names[swizzle] @@ -134,7 +134,7 @@ def pack_rgba(format, src_channel, r, g, b, a): """Return an expression for packing r, g, b, a into a pixel of the given format. Ex: '(b << 24) | (g << 16) | (r << 8) | (a << 0)' """ - assert format.colorspace == 'rgb' + assert format.colorspace in ('rgb', 'srgb') inv_swizzle = format.inv_swizzles() shift = 0 expr = None @@ -277,7 +277,7 @@ def generate_read(formats, dst_channel, dst_native_type, dst_suffix): print ' func = &lp_tile_%s_read_%s;' % (format.short_name(), dst_suffix) print ' break;' print ' default:' - print ' debug_printf("unsupported format\\n");' + print ' debug_printf("%s: unsupported format %s\\n", __FUNCTION__, util_format_name(format));' print ' return;' print ' }' print ' func(dst, (const uint8_t *)src, src_stride, x, y, w, h);' @@ -304,7 +304,7 @@ def generate_write(formats, src_channel, src_native_type, src_suffix): print ' func = &lp_tile_%s_write_%s;' % (format.short_name(), src_suffix) print ' break;' print ' default:' - print ' debug_printf("unsupported format\\n");' + print ' debug_printf("%s: unsupported format %s\\n", __FUNCTION__, util_format_name(format));' print ' return;' print ' }' print ' func(src, (uint8_t *)dst, dst_stride, x, y, w, h);' -- cgit v1.2.3 From c5d4a44f449a8203a8b1da9b18806a718d80f131 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 17:26:31 +0100 Subject: util: Use u_format_pack.py's code instead of u_format_access.py. --- src/gallium/auxiliary/Makefile | 3 +- src/gallium/auxiliary/SConscript | 9 +- src/gallium/auxiliary/util/.gitignore | 1 - src/gallium/auxiliary/util/u_format.c | 146 +++++++++++ src/gallium/auxiliary/util/u_format_access.py | 344 -------------------------- src/gallium/auxiliary/util/u_format_pack.py | 15 ++ 6 files changed, 163 insertions(+), 355 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_format.c delete mode 100644 src/gallium/auxiliary/util/u_format_access.py diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 903c5a331c..4df3fbd132 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -105,7 +105,7 @@ C_SOURCES = \ util/u_cpu_detect.c \ util/u_dl.c \ util/u_draw_quad.c \ - util/u_format_access.c \ + util/u_format.c \ util/u_format_table.c \ util/u_format_tests.c \ util/u_gen_mipmap.c \ @@ -167,7 +167,6 @@ GALLIVM_CPP_SOURCES = \ GENERATED_SOURCES = \ indices/u_indices_gen.c \ indices/u_unfilled_gen.c \ - util/u_format_access.c \ util/u_format_table.c diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index 772ab41523..db2c13ce5b 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -30,13 +30,6 @@ env.CodeGenerate( command = 'python $SCRIPT $SOURCE > $TARGET' ) -env.CodeGenerate( - target = 'util/u_format_access.c', - script = 'util/u_format_access.py', - source = ['util/u_format.csv'], - command = 'python $SCRIPT $SOURCE > $TARGET' -) - source = [ 'cso_cache/cso_context.c', 'cso_cache/cso_cache.c', @@ -142,7 +135,7 @@ source = [ 'util/u_dump_state.c', 'util/u_dl.c', 'util/u_draw_quad.c', - 'util/u_format_access.c', + 'util/u_format.c', 'util/u_format_table.c', 'util/u_format_tests.c', 'util/u_gen_mipmap.c', diff --git a/src/gallium/auxiliary/util/.gitignore b/src/gallium/auxiliary/util/.gitignore index 29c586c9b5..53fe9b8a65 100644 --- a/src/gallium/auxiliary/util/.gitignore +++ b/src/gallium/auxiliary/util/.gitignore @@ -1,2 +1 @@ -u_format_access.c u_format_table.c diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c new file mode 100644 index 0000000000..11ef839ec1 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format.c @@ -0,0 +1,146 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +/** + * @file + * Pixel format accessor functions. + * + * @author Jose Fonseca + */ + +#include "u_format.h" + + +void +util_format_read_4f(enum pipe_format format, + float *dst, unsigned dst_stride, + const void *src, unsigned src_stride, + unsigned x, unsigned y, unsigned w, unsigned h) +{ + const struct util_format_description *format_desc; + const uint8_t *src_row; + float *dst_row; + unsigned row_blocks; + unsigned i; + + format_desc = util_format_description(format); + + assert(x % format_desc->block.width == 0); + assert(y % format_desc->block.height == 0); + + src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8); + dst_row = dst; + row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; + + for (i = 0; i < h; i += format_desc->block.height) { + format_desc->unpack_float(dst_row, src_row, row_blocks); + src_row += src_stride; + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_write_4f(enum pipe_format format, + const float *src, unsigned src_stride, + void *dst, unsigned dst_stride, + unsigned x, unsigned y, unsigned w, unsigned h) +{ + const struct util_format_description *format_desc; + uint8_t *dst_row; + const float *src_row; + unsigned row_blocks; + unsigned i; + + format_desc = util_format_description(format); + + assert(x % format_desc->block.width == 0); + assert(y % format_desc->block.height == 0); + + dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8); + src_row = src; + row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; + + for (i = 0; i < h; i += format_desc->block.height) { + format_desc->pack_float(dst_row, src_row, row_blocks); + dst_row += dst_stride; + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_read_4ub(enum pipe_format format, uint8_t *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned x, unsigned y, unsigned w, unsigned h) +{ + const struct util_format_description *format_desc; + const uint8_t *src_row; + uint8_t *dst_row; + unsigned row_blocks; + unsigned i; + + format_desc = util_format_description(format); + + assert(x % format_desc->block.width == 0); + assert(y % format_desc->block.height == 0); + + src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8); + dst_row = dst; + row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; + + for (i = 0; i < h; i += format_desc->block.height) { + format_desc->unpack_8unorm(dst_row, src_row, row_blocks); + src_row += src_stride; + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_stride, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h) +{ + const struct util_format_description *format_desc; + uint8_t *dst_row; + const uint8_t *src_row; + unsigned row_blocks; + unsigned i; + + format_desc = util_format_description(format); + + assert(x % format_desc->block.width == 0); + assert(y % format_desc->block.height == 0); + + dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8); + src_row = src; + row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; + + for (i = 0; i < h; i += format_desc->block.height) { + format_desc->pack_8unorm(dst_row, src_row, row_blocks); + dst_row += dst_stride; + src_row += src_stride/sizeof(*src_row); + } +} + diff --git a/src/gallium/auxiliary/util/u_format_access.py b/src/gallium/auxiliary/util/u_format_access.py deleted file mode 100644 index 1c76d9a79d..0000000000 --- a/src/gallium/auxiliary/util/u_format_access.py +++ /dev/null @@ -1,344 +0,0 @@ -#!/usr/bin/env python - -''' -/************************************************************************** - * - * Copyright 2009 VMware, Inc. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - -/** - * @file - * Pixel format accessor functions. - * - * @author Jose Fonseca - */ -''' - - -import math -import sys - -from u_format_pack import * - - -def is_format_supported(format): - '''Determines whether we actually have the plumbing necessary to generate the - to read/write to/from this format.''' - - # FIXME: Ideally we would support any format combination here. - - # XXX: It should be straightforward to support srgb - if format.colorspace not in ('rgb', 'zs'): - return False - - if format.layout != PLAIN: - return False - - for i in range(4): - channel = format.channels[i] - if channel.type not in (VOID, UNSIGNED, FLOAT): - return False - if channel.type == FLOAT: - if channel.size not in (32, 64) or format.is_mixed(): - return False - - # We can only read a color from a depth/stencil format if the depth channel is present - if format.colorspace == 'zs' and format.swizzles[0] == SWIZZLE_NONE: - return False - - return True - - -def native_type(format): - '''Get the native appropriate for a format.''' - - if format.layout == PLAIN: - if not format.is_array(): - # For arithmetic pixel formats return the integer type that matches the whole pixel - return 'uint%u_t' % format.block_size() - else: - # For array pixel formats return the integer type that matches the color channel - channel = format.channels[0] - if channel.type in (UNSIGNED, VOID): - return 'uint%u_t' % channel.size - elif channel.type == SIGNED: - return 'int%u_t' % channel.size - elif channel.type == FLOAT: - if channel.size == 32: - return 'float' - elif channel.size == 64: - return 'double' - else: - assert False - else: - assert False - else: - assert False - - -def generate_srgb_tables(): - print 'static ubyte srgb_to_linear[256] = {' - for i in range(256): - print ' %s,' % (int(math.pow((i / 255.0 + 0.055) / 1.055, 2.4) * 255)) - print '};' - print - print 'static ubyte linear_to_srgb[256] = {' - print ' 0,' - for i in range(1, 256): - print ' %s,' % (int((1.055 * math.pow(i / 255.0, 0.41666) - 0.055) * 255)) - print '};' - print - - -def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): - '''Generate the function to read pixels from a particular format''' - - name = format.short_name() - - src_native_type = native_type(format) - - print 'static void' - print 'util_format_%s_read_%s(%s *dst, unsigned dst_stride, const uint8_t *src, unsigned src_stride, unsigned x0, unsigned y0, unsigned w, unsigned h)' % (name, dst_suffix, dst_native_type) - print '{' - print ' unsigned x, y;' - print ' const uint8_t *src_row = src + y0*src_stride;' - print ' %s *dst_row = dst;' % dst_native_type - print ' for (y = 0; y < h; ++y) {' - print ' const %s *src_pixel = (const %s *)(src_row + x0*%u);' % (src_native_type, src_native_type, format.stride()) - print ' %s *dst_pixel = dst_row;' %dst_native_type - print ' for (x = 0; x < w; ++x) {' - - names = ['']*4 - if format.colorspace == 'rgb': - for i in range(4): - swizzle = format.swizzles[i] - if swizzle < 4: - names[swizzle] += 'rgba'[i] - elif format.colorspace == 'zs': - swizzle = format.swizzles[0] - if swizzle < 4: - names[swizzle] = 'z' - else: - assert False - else: - assert False - - if format.layout == PLAIN: - if not format.is_array(): - print ' %s pixel = *src_pixel++;' % src_native_type - shift = 0; - for i in range(4): - src_channel = format.channels[i] - width = src_channel.size - if names[i]: - value = 'pixel' - mask = (1 << width) - 1 - if shift: - value = '(%s >> %u)' % (value, shift) - if shift + width < format.block_size(): - value = '(%s & 0x%x)' % (value, mask) - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - print ' %s %s = %s;' % (dst_native_type, names[i], value) - shift += width - else: - for i in range(4): - src_channel = format.channels[i] - if names[i]: - value = 'src_pixel[%u]' % i - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - print ' %s %s = %s;' % (dst_native_type, names[i], value) - print ' src_pixel += %u;' % (format.nr_channels()) - else: - assert False - - for i in range(4): - if format.colorspace == 'rgb': - swizzle = format.swizzles[i] - if swizzle < 4: - value = names[swizzle] - elif swizzle == SWIZZLE_0: - value = '0' - elif swizzle == SWIZZLE_1: - value = get_one(dst_channel) - else: - assert False - elif format.colorspace == 'zs': - if i < 3: - value = 'z' - else: - value = get_one(dst_channel) - else: - assert False - print ' *dst_pixel++ = %s; /* %s */' % (value, 'rgba'[i]) - - print ' }' - print ' src_row += src_stride;' - print ' dst_row += dst_stride/sizeof(*dst_row);' - print ' }' - print '}' - print - - -def generate_format_write(format, src_channel, src_native_type, src_suffix): - '''Generate the function to write pixels to a particular format''' - - name = format.short_name() - - dst_native_type = native_type(format) - - print 'static void' - print 'util_format_%s_write_%s(const %s *src, unsigned src_stride, uint8_t *dst, unsigned dst_stride, unsigned x0, unsigned y0, unsigned w, unsigned h)' % (name, src_suffix, src_native_type) - print '{' - print ' unsigned x, y;' - print ' uint8_t *dst_row = dst + y0*dst_stride;' - print ' const %s *src_row = src;' % src_native_type - print ' for (y = 0; y < h; ++y) {' - print ' %s *dst_pixel = (%s *)(dst_row + x0*%u);' % (dst_native_type, dst_native_type, format.stride()) - print ' const %s *src_pixel = src_row;' %src_native_type - print ' for (x = 0; x < w; ++x) {' - - inv_swizzle = format.inv_swizzles() - - if format.layout == PLAIN: - if not format.is_array(): - print ' %s pixel = 0;' % dst_native_type - shift = 0; - for i in range(4): - dst_channel = format.channels[i] - width = dst_channel.size - if inv_swizzle[i] is not None: - value = 'src_pixel[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - if shift: - value = '(%s << %u)' % (value, shift) - print ' pixel |= %s;' % value - shift += width - print ' *dst_pixel++ = pixel;' - else: - for i in range(4): - dst_channel = format.channels[i] - if inv_swizzle[i] is not None: - value = 'src_pixel[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - print ' *dst_pixel++ = %s;' % value - else: - assert False - print ' src_pixel += 4;' - - print ' }' - print ' dst_row += dst_stride;' - print ' src_row += src_stride/sizeof(*src_row);' - print ' }' - print '}' - print - - -def generate_read(formats, dst_channel, dst_native_type, dst_suffix): - '''Generate the dispatch function to read pixels from any format''' - - for format in formats: - if is_format_supported(format): - generate_format_read(format, dst_channel, dst_native_type, dst_suffix) - - print 'void' - print 'util_format_read_%s(enum pipe_format format, %s *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned x, unsigned y, unsigned w, unsigned h)' % (dst_suffix, dst_native_type) - print '{' - print ' void (*func)(%s *dst, unsigned dst_stride, const uint8_t *src, unsigned src_stride, unsigned x0, unsigned y0, unsigned w, unsigned h);' % dst_native_type - print ' switch(format) {' - for format in formats: - if is_format_supported(format): - print ' case %s:' % format.name - print ' func = &util_format_%s_read_%s;' % (format.short_name(), dst_suffix) - print ' break;' - print ' default:' - print ' debug_printf("unsupported format\\n");' - print ' return;' - print ' }' - print ' func(dst, dst_stride, (const uint8_t *)src, src_stride, x, y, w, h);' - print '}' - print - - -def generate_write(formats, src_channel, src_native_type, src_suffix): - '''Generate the dispatch function to write pixels to any format''' - - for format in formats: - if is_format_supported(format): - generate_format_write(format, src_channel, src_native_type, src_suffix) - - print 'void' - print 'util_format_write_%s(enum pipe_format format, const %s *src, unsigned src_stride, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h)' % (src_suffix, src_native_type) - - print '{' - print ' void (*func)(const %s *src, unsigned src_stride, uint8_t *dst, unsigned dst_stride, unsigned x0, unsigned y0, unsigned w, unsigned h);' % src_native_type - print ' switch(format) {' - for format in formats: - if is_format_supported(format): - print ' case %s:' % format.name - print ' func = &util_format_%s_write_%s;' % (format.short_name(), src_suffix) - print ' break;' - print ' default:' - print ' debug_printf("unsupported format\\n");' - print ' return;' - print ' }' - print ' func(src, src_stride, (uint8_t *)dst, dst_stride, x, y, w, h);' - print '}' - print - - -def main(): - formats = [] - for arg in sys.argv[1:]: - formats.extend(parse(arg)) - - print '/* This file is autogenerated by u_format_access.py from u_format.csv. Do not edit directly. */' - print - # This will print the copyright message on the top of this file - print __doc__.strip() - print - print '#include "pipe/p_compiler.h"' - print '#include "u_math.h"' - print '#include "u_format.h"' - print - - generate_srgb_tables() - - type = Channel(FLOAT, False, 32) - native_type = 'float' - suffix = '4f' - - generate_read(formats, type, native_type, suffix) - generate_write(formats, type, native_type, suffix) - - type = Channel(UNSIGNED, True, 8) - native_type = 'uint8_t' - suffix = '4ub' - - generate_read(formats, type, native_type, suffix) - generate_write(formats, type, native_type, suffix) - - -if __name__ == '__main__': - main() diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index f40b3bdf2e..4831912f02 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -38,6 +38,7 @@ import sys +import math from u_format_parse import * @@ -90,6 +91,20 @@ def generate_format_type(format): print +def generate_srgb_tables(): + print 'static ubyte srgb_to_linear[256] = {' + for i in range(256): + print ' %s,' % (int(math.pow((i / 255.0 + 0.055) / 1.055, 2.4) * 255)) + print '};' + print + print 'static ubyte linear_to_srgb[256] = {' + print ' 0,' + for i in range(1, 256): + print ' %s,' % (int((1.055 * math.pow(i / 255.0, 0.41666) - 0.055) * 255)) + print '};' + print + + def bswap_format(format): '''Generate a structure that describes the format.''' -- cgit v1.2.3 From f1f6370eb41dc83c65c415c7cfd6699a36559172 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 17:29:51 +0100 Subject: util: Remove the hand written u_tile.c functions for the ones that are code generated correctly. Not that the code generated are any better, but to quickly detect any regression in the code generated ones from now on. --- src/gallium/auxiliary/util/u_tile.c | 783 ------------------------------------ 1 file changed, 783 deletions(-) diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c index e03ee9b8bd..43b45eb926 100644 --- a/src/gallium/auxiliary/util/u_tile.c +++ b/src/gallium/auxiliary/util/u_tile.c @@ -108,436 +108,6 @@ pipe_put_tile_raw(struct pipe_context *pipe, -/*** PIPE_FORMAT_B8G8R8A8_UNORM ***/ - -static void -a8r8g8b8_get_tile_rgba(const unsigned *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const unsigned pixel = *src++; - pRow[0] = ubyte_to_float((pixel >> 16) & 0xff); - pRow[1] = ubyte_to_float((pixel >> 8) & 0xff); - pRow[2] = ubyte_to_float((pixel >> 0) & 0xff); - pRow[3] = ubyte_to_float((pixel >> 24) & 0xff); - } - p += dst_stride; - } -} - - -static void -a8r8g8b8_put_tile_rgba(unsigned *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - a = float_to_ubyte(pRow[3]); - *dst++ = (a << 24) | (r << 16) | (g << 8) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_B8G8R8X8_UNORM ***/ - -static void -x8r8g8b8_get_tile_rgba(const unsigned *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const unsigned pixel = *src++; - pRow[0] = ubyte_to_float((pixel >> 16) & 0xff); - pRow[1] = ubyte_to_float((pixel >> 8) & 0xff); - pRow[2] = ubyte_to_float((pixel >> 0) & 0xff); - pRow[3] = 1.0F; - } - p += dst_stride; - } -} - - -static void -x8r8g8b8_put_tile_rgba(unsigned *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - *dst++ = (0xff << 24) | (r << 16) | (g << 8) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_A8R8G8B8_UNORM ***/ - -static void -b8g8r8a8_get_tile_rgba(const unsigned *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const unsigned pixel = *src++; - pRow[0] = ubyte_to_float((pixel >> 8) & 0xff); - pRow[1] = ubyte_to_float((pixel >> 16) & 0xff); - pRow[2] = ubyte_to_float((pixel >> 24) & 0xff); - pRow[3] = ubyte_to_float((pixel >> 0) & 0xff); - } - p += dst_stride; - } -} - - -static void -b8g8r8a8_put_tile_rgba(unsigned *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - a = float_to_ubyte(pRow[3]); - *dst++ = (b << 24) | (g << 16) | (r << 8) | a; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_A8B8G8R8_UNORM ***/ - -static void -r8g8b8a8_get_tile_rgba(const unsigned *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const unsigned pixel = *src++; - pRow[0] = ubyte_to_float((pixel >> 24) & 0xff); - pRow[1] = ubyte_to_float((pixel >> 16) & 0xff); - pRow[2] = ubyte_to_float((pixel >> 8) & 0xff); - pRow[3] = ubyte_to_float((pixel >> 0) & 0xff); - } - p += dst_stride; - } -} - - -static void -r8g8b8a8_put_tile_rgba(unsigned *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - a = float_to_ubyte(pRow[3]); - *dst++ = (r << 24) | (g << 16) | (b << 8) | a; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_B5G5R5X1_UNORM ***/ - -static void -x1r5g5b5_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const ushort pixel = *src++; - pRow[0] = ((pixel >> 10) & 0x1f) * (1.0f / 31.0f); - pRow[1] = ((pixel >> 5) & 0x1f) * (1.0f / 31.0f); - pRow[2] = ((pixel ) & 0x1f) * (1.0f / 31.0f); - pRow[3] = 1.0f; - } - p += dst_stride; - } -} - - -static void -x1r5g5b5_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - r = r >> 3; /* 5 bits */ - g = g >> 3; /* 5 bits */ - b = b >> 3; /* 5 bits */ - *dst++ = (1 << 15) | (r << 10) | (g << 5) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_B5G5R5A1_UNORM ***/ - -static void -a1r5g5b5_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const ushort pixel = *src++; - pRow[0] = ((pixel >> 10) & 0x1f) * (1.0f / 31.0f); - pRow[1] = ((pixel >> 5) & 0x1f) * (1.0f / 31.0f); - pRow[2] = ((pixel ) & 0x1f) * (1.0f / 31.0f); - pRow[3] = ((pixel >> 15) ) * 1.0f; - } - p += dst_stride; - } -} - - -static void -a1r5g5b5_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - a = float_to_ubyte(pRow[3]); - r = r >> 3; /* 5 bits */ - g = g >> 3; /* 5 bits */ - b = b >> 3; /* 5 bits */ - a = a >> 7; /* 1 bit */ - *dst++ = (a << 15) | (r << 10) | (g << 5) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_B4G4R4A4_UNORM ***/ - -static void -a4r4g4b4_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const ushort pixel = *src++; - pRow[0] = ((pixel >> 8) & 0xf) * (1.0f / 15.0f); - pRow[1] = ((pixel >> 4) & 0xf) * (1.0f / 15.0f); - pRow[2] = ((pixel ) & 0xf) * (1.0f / 15.0f); - pRow[3] = ((pixel >> 12) ) * (1.0f / 15.0f); - } - p += dst_stride; - } -} - - -static void -a4r4g4b4_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = float_to_ubyte(pRow[0]); - g = float_to_ubyte(pRow[1]); - b = float_to_ubyte(pRow[2]); - a = float_to_ubyte(pRow[3]); - r >>= 4; - g >>= 4; - b >>= 4; - a >>= 4; - *dst++ = (a << 12) | (r << 8) | (g << 4) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_B5G6R5_UNORM ***/ - -static void -r5g6b5_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const ushort pixel = *src++; - pRow[0] = ((pixel >> 11) & 0x1f) * (1.0f / 31.0f); - pRow[1] = ((pixel >> 5) & 0x3f) * (1.0f / 63.0f); - pRow[2] = ((pixel ) & 0x1f) * (1.0f / 31.0f); - pRow[3] = 1.0f; - } - p += dst_stride; - } -} - - -static void -r5g6b5_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - uint r = (uint) (CLAMP(pRow[0], 0.0, 1.0) * 31.0); - uint g = (uint) (CLAMP(pRow[1], 0.0, 1.0) * 63.0); - uint b = (uint) (CLAMP(pRow[2], 0.0, 1.0) * 31.0); - *dst++ = (r << 11) | (g << 5) | (b); - } - p += src_stride; - } -} - - - -/*** PIPE_FORMAT_R8G8B8_UNORM ***/ - -static void -r8g8b8_get_tile_rgba(const ubyte *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - pRow[0] = ubyte_to_float(src[0]); - pRow[1] = ubyte_to_float(src[1]); - pRow[2] = ubyte_to_float(src[2]); - pRow[3] = 1.0f; - src += 3; - } - p += dst_stride; - } -} - - -static void -r8g8b8_put_tile_rgba(ubyte *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - dst[0] = float_to_ubyte(pRow[0]); - dst[1] = float_to_ubyte(pRow[1]); - dst[2] = float_to_ubyte(pRow[2]); - dst += 3; - } - p += src_stride; - } -} - - - /*** PIPE_FORMAT_Z16_UNORM ***/ /** @@ -567,179 +137,6 @@ z16_get_tile_rgba(const ushort *src, -/*** PIPE_FORMAT_L8_UNORM ***/ - -static void -l8_get_tile_rgba(const ubyte *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src++, pRow += 4) { - pRow[0] = - pRow[1] = - pRow[2] = ubyte_to_float(*src); - pRow[3] = 1.0; - } - p += dst_stride; - } -} - - -static void -l8_put_tile_rgba(ubyte *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r; - r = float_to_ubyte(pRow[0]); - *dst++ = (ubyte) r; - } - p += src_stride; - } -} - - - -/*** PIPE_FORMAT_A8_UNORM ***/ - -static void -a8_get_tile_rgba(const ubyte *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src++, pRow += 4) { - pRow[0] = - pRow[1] = - pRow[2] = 0.0; - pRow[3] = ubyte_to_float(*src); - } - p += dst_stride; - } -} - - -static void -a8_put_tile_rgba(ubyte *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned a; - a = float_to_ubyte(pRow[3]); - *dst++ = (ubyte) a; - } - p += src_stride; - } -} - - - -/*** PIPE_FORMAT_R16_SNORM ***/ - -static void -r16_get_tile_rgba(const short *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src++, pRow += 4) { - pRow[0] = SHORT_TO_FLOAT(src[0]); - pRow[1] = - pRow[2] = 0.0; - pRow[3] = 1.0; - } - p += dst_stride; - } -} - - -static void -r16_put_tile_rgba(short *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, dst++, pRow += 4) { - UNCLAMPED_FLOAT_TO_SHORT(dst[0], pRow[0]); - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_R16G16B16A16_SNORM ***/ - -static void -r16g16b16a16_get_tile_rgba(const short *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src += 4, pRow += 4) { - pRow[0] = SHORT_TO_FLOAT(src[0]); - pRow[1] = SHORT_TO_FLOAT(src[1]); - pRow[2] = SHORT_TO_FLOAT(src[2]); - pRow[3] = SHORT_TO_FLOAT(src[3]); - } - p += dst_stride; - } -} - - -static void -r16g16b16a16_put_tile_rgba(short *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, dst += 4, pRow += 4) { - UNCLAMPED_FLOAT_TO_SHORT(dst[0], pRow[0]); - UNCLAMPED_FLOAT_TO_SHORT(dst[1], pRow[1]); - UNCLAMPED_FLOAT_TO_SHORT(dst[2], pRow[2]); - UNCLAMPED_FLOAT_TO_SHORT(dst[3], pRow[3]); - } - p += src_stride; - } -} - - /*** PIPE_FORMAT_A8B8G8R8_SRGB ***/ /** @@ -919,96 +316,6 @@ l8_srgb_put_tile_rgba(ubyte *dst, } -/*** PIPE_FORMAT_I8_UNORM ***/ - -static void -i8_get_tile_rgba(const ubyte *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src++, pRow += 4) { - pRow[0] = - pRow[1] = - pRow[2] = - pRow[3] = ubyte_to_float(*src); - } - p += dst_stride; - } -} - - -static void -i8_put_tile_rgba(ubyte *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r; - r = float_to_ubyte(pRow[0]); - *dst++ = (ubyte) r; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_L8A8_UNORM ***/ - -static void -a8l8_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - ushort p = *src++; - pRow[0] = - pRow[1] = - pRow[2] = ubyte_to_float(p & 0xff); - pRow[3] = ubyte_to_float(p >> 8); - } - p += dst_stride; - } -} - - -static void -a8l8_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, a; - r = float_to_ubyte(pRow[0]); - a = float_to_ubyte(pRow[3]); - *dst++ = (a << 8) | r; - } - p += src_stride; - } -} - - - - /*** PIPE_FORMAT_Z32_UNORM ***/ /** @@ -1211,51 +518,6 @@ pipe_tile_raw_to_rgba(enum pipe_format format, float *dst, unsigned dst_stride) { switch (format) { - case PIPE_FORMAT_B8G8R8A8_UNORM: - a8r8g8b8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_B8G8R8X8_UNORM: - x8r8g8b8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_A8R8G8B8_UNORM: - b8g8r8a8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_A8B8G8R8_UNORM: - r8g8b8a8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_B5G5R5X1_UNORM: - x1r5g5b5_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_B5G5R5A1_UNORM: - a1r5g5b5_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_B4G4R4A4_UNORM: - a4r4g4b4_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_B5G6R5_UNORM: - r5g6b5_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_R8G8B8_UNORM: - r8g8b8_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_L8_UNORM: - l8_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_A8_UNORM: - a8_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_I8_UNORM: - i8_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_L8A8_UNORM: - a8l8_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_R16_SNORM: - r16_get_tile_rgba((short *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_R16G16B16A16_SNORM: - r16g16b16a16_get_tile_rgba((short *) src, w, h, dst, dst_stride); - break; case PIPE_FORMAT_B8G8R8A8_SRGB: a8r8g8b8_srgb_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); break; @@ -1408,51 +670,6 @@ pipe_put_tile_rgba(struct pipe_context *pipe, return; switch (format) { - case PIPE_FORMAT_B8G8R8A8_UNORM: - a8r8g8b8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_B8G8R8X8_UNORM: - x8r8g8b8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_A8R8G8B8_UNORM: - b8g8r8a8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_A8B8G8R8_UNORM: - r8g8b8a8_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_B5G5R5X1_UNORM: - x1r5g5b5_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_B5G5R5A1_UNORM: - a1r5g5b5_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_B5G6R5_UNORM: - r5g6b5_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_R8G8B8_UNORM: - r8g8b8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_B4G4R4A4_UNORM: - a4r4g4b4_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_L8_UNORM: - l8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_A8_UNORM: - a8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_I8_UNORM: - i8_put_tile_rgba((ubyte *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_L8A8_UNORM: - a8l8_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_R16_SNORM: - r16_put_tile_rgba((short *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_R16G16B16A16_SNORM: - r16g16b16a16_put_tile_rgba((short *) packed, w, h, p, src_stride); - break; case PIPE_FORMAT_B8G8R8A8_SRGB: a8r8g8b8_srgb_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); break; -- cgit v1.2.3 From 711f6428bcc4838abb3f62a2971ee8c53c90eff5 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Mon, 8 Mar 2010 19:58:34 +0000 Subject: scons: Allow any toolchain to be specified in the command line. --- common.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/common.py b/common.py index 928a4496f7..97389ed500 100644 --- a/common.py +++ b/common.py @@ -60,7 +60,6 @@ def AddOptions(opts): allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) opts.Add(EnumOption('platform', 'target platform', default_platform, allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded'))) - opts.Add(EnumOption('toolchain', 'compiler toolchain', 'default', - allowed_values=('default', 'crossmingw', 'winsdk', 'winddk'))) + opts.Add('toolchain', 'compiler toolchain', 'default') opts.Add(BoolOption('llvm', 'use LLVM', 'no')) opts.Add(BoolOption('dri', 'build DRI drivers', default_dri)) -- cgit v1.2.3 From 730cd1baaa301dbdff60ce2867c920d3b52b2111 Mon Sep 17 00:00:00 2001 From: Kurt Daverman Date: Wed, 10 Mar 2010 16:30:22 +0000 Subject: os: Temporarily use posix thread for embedded too. --- src/gallium/auxiliary/os/os_thread.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h index a04df4106f..004dad6b63 100644 --- a/src/gallium/auxiliary/os/os_thread.h +++ b/src/gallium/auxiliary/os/os_thread.h @@ -40,7 +40,7 @@ #include "util/u_debug.h" /* for assert */ -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) #include /* POSIX threads headers */ #include /* for perror() */ @@ -257,7 +257,7 @@ typedef unsigned pipe_condvar; * pipe_barrier */ -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) typedef pthread_barrier_t pipe_barrier; @@ -377,7 +377,7 @@ pipe_semaphore_wait(pipe_semaphore *sema) */ typedef struct { -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) pthread_key_t key; #elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) DWORD key; @@ -392,7 +392,7 @@ typedef struct { static INLINE void pipe_tsd_init(pipe_tsd *tsd) { -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) if (pthread_key_create(&tsd->key, NULL/*free*/) != 0) { perror("pthread_key_create(): failed to allocate key for thread specific data"); exit(-1); @@ -409,7 +409,7 @@ pipe_tsd_get(pipe_tsd *tsd) if (tsd->initMagic != (int) PIPE_TSD_INIT_MAGIC) { pipe_tsd_init(tsd); } -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) return pthread_getspecific(tsd->key); #elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) assert(0); @@ -426,7 +426,7 @@ pipe_tsd_set(pipe_tsd *tsd, void *value) if (tsd->initMagic != (int) PIPE_TSD_INIT_MAGIC) { pipe_tsd_init(tsd); } -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) if (pthread_setspecific(tsd->key, value) != 0) { perror("pthread_set_specific() failed"); exit(-1); -- cgit v1.2.3 From e1c1911435dcab9436f1d204043124f4b1506a1e Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 10 Mar 2010 16:34:09 +0000 Subject: llvmpipe: Disable threads by default on embedded. --- src/gallium/drivers/llvmpipe/lp_rast.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index 8352f17559..e629a3e5f1 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -768,8 +768,12 @@ create_rast_threads(struct lp_rasterizer *rast) /* Multithreading not supported on windows until conditions and barriers are * properly implemented. */ rast->num_threads = 0; +#else +#ifdef PIPE_OS_EMBEDDED + rast->num_threads = 0; #else rast->num_threads = util_cpu_caps.nr_cpus; +#endif rast->num_threads = debug_get_num_option("LP_NUM_THREADS", rast->num_threads); rast->num_threads = MIN2(rast->num_threads, MAX_THREADS); #endif -- cgit v1.2.3 From 6047c89a2309f09a738912280e49db54ba2b2b60 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 11 Mar 2010 16:50:37 +0000 Subject: scons: Don't always link expat. Only needed for DRI. Should be linked in DRI specific subdirectories. --- SConstruct | 1 - 1 file changed, 1 deletion(-) diff --git a/SConstruct b/SConstruct index 5d44b6efde..f32e62f5fe 100644 --- a/SConstruct +++ b/SConstruct @@ -164,7 +164,6 @@ if platform in ('posix', 'linux', 'freebsd', 'darwin'): env.Append(LIBS = [ 'm', 'pthread', - 'expat', 'dl', ]) -- cgit v1.2.3 From cf5cd836def660c1040d9f7a0a59aad1c69dbe37 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 11 Mar 2010 17:52:34 +0000 Subject: scons: Don't always include/links X11 headers/libs. Move it into a separate tool. TODO: Needs to be "tooled" in each SConscript that uses it. --- SConstruct | 12 ------------ scons/x11.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 12 deletions(-) create mode 100644 scons/x11.py diff --git a/SConstruct b/SConstruct index f32e62f5fe..d9230bd904 100644 --- a/SConstruct +++ b/SConstruct @@ -159,8 +159,6 @@ if platform in ('posix', 'linux', 'freebsd', 'darwin'): ]) if platform == 'darwin': env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE']) - env.Append(CPPPATH = ['/usr/X11R6/include']) - env.Append(LIBPATH = ['/usr/X11R6/lib']) env.Append(LIBS = [ 'm', 'pthread', @@ -181,16 +179,6 @@ if dri: if drawllvm: env.Append(CPPDEFINES = ['DRAW_LLVM']) -# libGL -if platform in ('linux', 'freebsd', 'darwin'): - env.Append(LIBS = [ - 'X11', - 'Xext', - 'Xxf86vm', - 'Xdamage', - 'Xfixes', - ]) - # for debugging #print env.Dump() diff --git a/scons/x11.py b/scons/x11.py new file mode 100644 index 0000000000..99bf079626 --- /dev/null +++ b/scons/x11.py @@ -0,0 +1,52 @@ +"""x11 + +Tool-specific initialization for X11 + +""" + +# +# Copyright (c) 2010 VMware, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + + +def generate(env): + env.Append(CPPPATH = ['/usr/X11R6/include']) + env.Append(LIBPATH = ['/usr/X11R6/lib']) + + env.Append(LIBS = [ + 'X11', + 'Xext', + 'Xxf86vm', + 'Xdamage', + 'Xfixes', + ]) + + +def exists(env): + # TODO: actually detect the presence of the headers + if env['platform'] in ('linux', 'freebsd', 'darwin'): + return True + else: + return False + + +# vim:set ts=4 sw=4 et: -- cgit v1.2.3 From 93eee0537f8245c376c5b6b641b3f1d12f993b0f Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 19:43:57 +0100 Subject: scons: Force to consider the util/u_format_pack.py for util/u_format_table.c. --- src/gallium/auxiliary/SConscript | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index db2c13ce5b..0f1cc374c1 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -29,6 +29,10 @@ env.CodeGenerate( source = ['util/u_format.csv'], command = 'python $SCRIPT $SOURCE > $TARGET' ) +env.Depends('util/u_format_table.c', [ + 'util/u_format_parse.py', + 'util/u_format_pack.py', +]) source = [ 'cso_cache/cso_context.c', -- cgit v1.2.3 From 96548d80e541691281a947836b673177542fd400 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 19:53:25 +0100 Subject: mesa: Use a consistent name of the external s3tc library for all windows compilers. --- src/mesa/main/texcompress_s3tc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c index fcd28a4b4e..12c2e903eb 100644 --- a/src/mesa/main/texcompress_s3tc.c +++ b/src/mesa/main/texcompress_s3tc.c @@ -48,7 +48,7 @@ #if FEATURE_texture_s3tc -#ifdef __MINGW32__ +#if defined(_WIN32) || defined(WIN32) #define DXTN_LIBNAME "dxtn.dll" #define RTLD_LAZY 0 #define RTLD_GLOBAL 0 -- cgit v1.2.3 From 3200e708582f75b3566a85228de9a698edbfb022 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 20:05:10 +0100 Subject: python/tests: Read the number of tests to execute from command line. --- progs/gallium/python/tests/texture_blit.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/progs/gallium/python/tests/texture_blit.py b/progs/gallium/python/tests/texture_blit.py index a2e62c89ee..5ae0a7398d 100755 --- a/progs/gallium/python/tests/texture_blit.py +++ b/progs/gallium/python/tests/texture_blit.py @@ -579,7 +579,10 @@ def main(): ctx = dev.context_create() - n = 10000 + try: + n = int(sys.argv[1]) + except: + n = 10000 for i in range(n): format = random.choice(formats.keys()) -- cgit v1.2.3 From 69895725cfe9d4dc917ff6e643af9e6e3a6e093f Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 20:15:17 +0100 Subject: util: Add callback to fetch a single pixel. --- progs/gallium/unit/u_format_test.c | 34 +++ src/gallium/auxiliary/util/u_format.h | 17 +- src/gallium/auxiliary/util/u_format_pack.py | 360 ++++++++++++++------------- src/gallium/auxiliary/util/u_format_table.py | 11 +- 4 files changed, 248 insertions(+), 174 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index e96f0a9d12..ba4e9fab66 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -33,6 +33,37 @@ #include "util/u_format_tests.h" +static boolean +test_format_fetch_float(const struct util_format_description *format_desc, + const struct util_format_test_case *test) +{ + float unpacked[4]; + unsigned i; + boolean success; + + /* + * TODO: test block formats too. + */ + if (format_desc->block.width != 1 && format_desc->block.height != 1) { + return TRUE; + } + + format_desc->fetch_float(unpacked, test->packed, 0, 0); + + success = TRUE; + for (i = 0; i < 4; ++i) + if (test->unpacked[i] != unpacked[i]) + success = FALSE; + + if (!success) { + printf("FAILED: (%f %f %f %f) obtained\n", unpacked[0], unpacked[1], unpacked[2], unpacked[3]); + printf(" (%f %f %f %f) expected\n", test->unpacked[0], test->unpacked[1], test->unpacked[2], test->unpacked[3]); + } + + return success; +} + + static boolean test_format_unpack_float(const struct util_format_description *format_desc, const struct util_format_test_case *test) @@ -225,6 +256,9 @@ test_all(void) { bool success = TRUE; + if (!test_one(&test_format_fetch_float, "fetch_float")) + success = FALSE; + if (!test_one(&test_format_pack_float, "pack_float")) success = FALSE; diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 609d398ebf..8e76e13b66 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -191,21 +191,34 @@ struct util_format_description enum util_format_colorspace colorspace; /** - * Accessor functions. + * Unpack a span of pixel blocks to R8G8B8A8_UNORM. */ - void (*unpack_8unorm)(uint8_t *dst, const uint8_t *src, unsigned nr_blocks); + /** + * Pack a span of pixel blocks from R8G8B8A8_UNORM. + */ void (*pack_8unorm)(uint8_t *dst, const uint8_t *src, unsigned nr_blocks); + /** + * Unpack a span of pixel blocks to R32G32B32A32_FLOAT. + */ void (*unpack_float)(float *dst, const uint8_t *src, unsigned nr_blocks); + /** + * Pack a span of pixel blocks from R32G32B32A32_FLOAT. + */ void (*pack_float)(uint8_t *dst, const float *src, unsigned nr_blocks); + /** + * Fetch a single pixel (i, j) from a block. + */ + void + (*fetch_float)(float *dst, const uint8_t *src, unsigned i, unsigned j); }; diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 4831912f02..c74900ce63 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -324,115 +324,190 @@ def conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=True assert False -def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix): - '''Generate the function to unpack pixels from a particular format''' - - name = format.short_name() - - print 'static INLINE void' - print 'util_format_%s_unpack_%s(%s *dst, const uint8_t *src, unsigned length)' % (name, dst_suffix, dst_native_type) - print '{' +def generate_unpack_kernel(format, dst_channel, dst_native_type): - if is_format_supported(format): - - assert format.layout == PLAIN - - src_native_type = native_type(format) - - print ' while(length--) {' - - if format.is_bitmask(): - depth = format.block_size() - print ' uint%u_t value = *(uint%u_t *)src;' % (depth, depth) + if not is_format_supported(format): + return - # Declare the intermediate variables - for i in range(format.nr_channels()): - src_channel = format.channels[i] - if src_channel.type == UNSIGNED: - print ' uint%u_t %s;' % (depth, src_channel.name) - elif src_channel.type == SIGNED: - print ' int%u_t %s;' % (depth, src_channel.name) + assert format.layout == PLAIN + + src_native_type = native_type(format) + + if format.is_bitmask(): + depth = format.block_size() + print ' uint%u_t value = *(uint%u_t *)src;' % (depth, depth) + + # Declare the intermediate variables + for i in range(format.nr_channels()): + src_channel = format.channels[i] + if src_channel.type == UNSIGNED: + print ' uint%u_t %s;' % (depth, src_channel.name) + elif src_channel.type == SIGNED: + print ' int%u_t %s;' % (depth, src_channel.name) + + print ' #ifdef PIPE_ARCH_BIG_ENDIAN' + print ' value = util_bswap%u(value);' % depth + print ' #endif' + + # Compute the intermediate unshifted values + shift = 0 + for i in range(format.nr_channels()): + src_channel = format.channels[i] + value = 'value' + if src_channel.type == UNSIGNED: + if shift: + value = '%s >> %u' % (value, shift) + if shift + src_channel.size < depth: + value = '(%s) & 0x%x' % (value, (1 << src_channel.size) - 1) + elif src_channel.type == SIGNED: + if shift + src_channel.size < depth: + # Align the sign bit + lshift = depth - (shift + src_channel.size) + value = '%s << %u' % (value, lshift) + # Cast to signed + value = '(int%u_t)(%s) ' % (depth, value) + if src_channel.size < depth: + # Align the LSB bit + rshift = depth - src_channel.size + value = '(%s) >> %u' % (value, rshift) + else: + value = None + + if value is not None: + print ' %s = %s;' % (src_channel.name, value) + + shift += src_channel.size + + # Convert, swizzle, and store final values + for i in range(4): + swizzle = format.swizzles[i] + if swizzle < 4: + src_channel = format.channels[swizzle] + value = src_channel.name + value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + elif swizzle == SWIZZLE_0: + value = '0' + elif swizzle == SWIZZLE_1: + value = get_one(dst_channel) + elif swizzle == SWIZZLE_NONE: + value = '0' + else: + assert False + if format.colorspace == ZS: + if i == 3: + value = get_one(dst_channel) + elif i >= 1: + value = 'dst[0]' + print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) + + else: + print ' union util_format_%s pixel;' % format.short_name() + print ' memcpy(&pixel, src, sizeof pixel);' + bswap_format(format) - print ' #ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth - print ' #endif' + for i in range(4): + swizzle = format.swizzles[i] + if swizzle < 4: + src_channel = format.channels[swizzle] + value = 'pixel.chan.%s' % src_channel.name + value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + elif swizzle == SWIZZLE_0: + value = '0' + elif swizzle == SWIZZLE_1: + value = get_one(dst_channel) + elif swizzle == SWIZZLE_NONE: + value = '0' + else: + assert False + if format.colorspace == ZS: + if i == 3: + value = get_one(dst_channel) + elif i >= 1: + value = 'dst[0]' + print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) - # Compute the intermediate unshifted values - shift = 0 - for i in range(format.nr_channels()): - src_channel = format.channels[i] - value = 'value' - if src_channel.type == UNSIGNED: - if shift: - value = '%s >> %u' % (value, shift) - if shift + src_channel.size < depth: - value = '(%s) & 0x%x' % (value, (1 << src_channel.size) - 1) - elif src_channel.type == SIGNED: - if shift + src_channel.size < depth: - # Align the sign bit - lshift = depth - (shift + src_channel.size) - value = '%s << %u' % (value, lshift) - # Cast to signed - value = '(int%u_t)(%s) ' % (depth, value) - if src_channel.size < depth: - # Align the LSB bit - rshift = depth - src_channel.size - value = '(%s) >> %u' % (value, rshift) - else: - value = None - - if value is not None: - print ' %s = %s;' % (src_channel.name, value) - - shift += src_channel.size + +def generate_pack_kernel(format, src_channel, src_native_type): + + if not is_format_supported(format): + return - # Convert, swizzle, and store final values - for i in range(4): - swizzle = format.swizzles[i] - if swizzle < 4: - src_channel = format.channels[swizzle] - value = src_channel.name - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - elif swizzle == SWIZZLE_0: - value = '0' - elif swizzle == SWIZZLE_1: - value = get_one(dst_channel) - elif swizzle == SWIZZLE_NONE: - value = '0' - else: - assert False + dst_native_type = native_type(format) + + assert format.layout == PLAIN + + inv_swizzle = format.inv_swizzles() + + if format.is_bitmask(): + depth = format.block_size() + print ' uint%u_t value = 0;' % depth + + shift = 0 + for i in range(4): + dst_channel = format.channels[i] + if inv_swizzle[i] is not None: + value ='src[%u]' % inv_swizzle[i] + value = conversion_expr(src_channel, dst_channel, dst_native_type, value) if format.colorspace == ZS: if i == 3: value = get_one(dst_channel) elif i >= 1: - value = 'dst[0]' - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) - - else: - print ' union util_format_%s pixel;' % format.short_name() - print ' memcpy(&pixel, src, sizeof pixel);' - bswap_format(format) + value = '0' + if dst_channel.type in (UNSIGNED, SIGNED): + if shift + dst_channel.size < depth: + value = '(%s) & 0x%x' % (value, (1 << dst_channel.size) - 1) + if shift: + value = '(%s) << %u' % (value, shift) + if dst_channel.type == SIGNED: + # Cast to unsigned + value = '(uint%u_t)(%s) ' % (depth, value) + else: + value = None + if value is not None: + print ' value |= %s;' % (value) + + shift += dst_channel.size + + print '#ifdef PIPE_ARCH_BIG_ENDIAN' + print ' value = util_bswap%u(value);' % depth + print '#endif' - for i in range(4): - swizzle = format.swizzles[i] - if swizzle < 4: - src_channel = format.channels[swizzle] - value = 'pixel.chan.%s' % src_channel.name - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - elif swizzle == SWIZZLE_0: - value = '0' - elif swizzle == SWIZZLE_1: + print ' *(uint%u_t *)dst = value;' % depth + + else: + print ' union util_format_%s pixel;' % format.short_name() + + for i in range(4): + dst_channel = format.channels[i] + width = dst_channel.size + if inv_swizzle[i] is None: + continue + value ='src[%u]' % inv_swizzle[i] + value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + if format.colorspace == ZS: + if i == 3: value = get_one(dst_channel) - elif swizzle == SWIZZLE_NONE: + elif i >= 1: value = '0' - else: - assert False - if format.colorspace == ZS: - if i == 3: - value = get_one(dst_channel) - elif i >= 1: - value = 'dst[0]' - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) + print ' pixel.chan.%s = %s;' % (dst_channel.name, value) + + bswap_format(format) + print ' memcpy(dst, &pixel, sizeof pixel);' + + +def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix): + '''Generate the function to unpack pixels from a particular format''' + + name = format.short_name() + + print 'static INLINE void' + print 'util_format_%s_unpack_%s(%s *dst, const uint8_t *src, unsigned length)' % (name, dst_suffix, dst_native_type) + print '{' + + if is_format_supported(format): + print ' while(length--) {' + + generate_unpack_kernel(format, dst_channel, dst_native_type) print ' src += %u;' % (format.block_size() / 8,) print ' dst += 4;' @@ -452,69 +527,9 @@ def generate_format_pack(format, src_channel, src_native_type, src_suffix): print '{' if is_format_supported(format): - dst_native_type = native_type(format) - - assert format.layout == PLAIN - - inv_swizzle = format.inv_swizzles() - print ' while(length--) {' - if format.is_bitmask(): - depth = format.block_size() - print ' uint%u_t value = 0;' % depth - - shift = 0 - for i in range(4): - dst_channel = format.channels[i] - if inv_swizzle[i] is not None: - value ='src[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - if format.colorspace == ZS: - if i == 3: - value = get_one(dst_channel) - elif i >= 1: - value = '0' - if dst_channel.type in (UNSIGNED, SIGNED): - if shift + dst_channel.size < depth: - value = '(%s) & 0x%x' % (value, (1 << dst_channel.size) - 1) - if shift: - value = '(%s) << %u' % (value, shift) - if dst_channel.type == SIGNED: - # Cast to unsigned - value = '(uint%u_t)(%s) ' % (depth, value) - else: - value = None - if value is not None: - print ' value |= %s;' % (value) - - shift += dst_channel.size - - print '#ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth - print '#endif' - - print ' *(uint%u_t *)dst = value;' % depth - - else: - print ' union util_format_%s pixel;' % format.short_name() - - for i in range(4): - dst_channel = format.channels[i] - width = dst_channel.size - if inv_swizzle[i] is None: - continue - value ='src[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) - if format.colorspace == ZS: - if i == 3: - value = get_one(dst_channel) - elif i >= 1: - value = '0' - print ' pixel.chan.%s = %s;' % (dst_channel.name, value) - - bswap_format(format) - print ' memcpy(dst, &pixel, sizeof pixel);' + generate_pack_kernel(format, src_channel, src_native_type) print ' src += 4;' print ' dst += %u;' % (format.block_size() / 8,) @@ -524,18 +539,20 @@ def generate_format_pack(format, src_channel, src_native_type, src_suffix): print -def generate_unpack(formats, dst_channel, dst_native_type, dst_suffix): - '''Generate the dispatch function to unpack pixels from any format''' +def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix): + '''Generate the function to unpack pixels from a particular format''' - for format in formats: - generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix) + name = format.short_name() + print 'static INLINE void' + print 'util_format_%s_fetch_%s(%s *dst, const uint8_t *src, unsigned i, unsigned j)' % (name, dst_suffix, dst_native_type) + print '{' -def generate_pack(formats, src_channel, src_native_type, src_suffix): - '''Generate the dispatch function to pack pixels to any format''' + if is_format_supported(format): + generate_unpack_kernel(format, dst_channel, dst_native_type) - for format in formats: - generate_format_pack(format, src_channel, src_native_type, src_suffix) + print '}' + print def generate(formats): @@ -555,13 +572,16 @@ def generate(formats): native_type = 'float' suffix = 'float' - generate_unpack(formats, channel, native_type, suffix) - generate_pack(formats, channel, native_type, suffix) + for format in formats: + generate_format_unpack(format, channel, native_type, suffix) + generate_format_pack(format, channel, native_type, suffix) + generate_format_fetch(format, channel, native_type, suffix) channel = Channel(UNSIGNED, True, 8) native_type = 'uint8_t' suffix = '8unorm' - generate_unpack(formats, channel, native_type, suffix) - generate_pack(formats, channel, native_type, suffix) + for format in formats: + generate_format_unpack(format, channel, native_type, suffix) + generate_format_pack(format, channel, native_type, suffix) diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py index fe910d9a77..6877bd6844 100755 --- a/src/gallium/auxiliary/util/u_format_table.py +++ b/src/gallium/auxiliary/util/u_format_table.py @@ -106,6 +106,11 @@ util_format_none_unpack_float(float *dst, const uint8_t *src, unsigned length) static void util_format_none_pack_float(uint8_t *dst, const float *src, unsigned length) { +} + +static void +util_format_none_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ } ''' print 'const struct util_format_description' @@ -125,7 +130,8 @@ util_format_none_pack_float(uint8_t *dst, const float *src, unsigned length) print " &util_format_none_unpack_8unorm," print " &util_format_none_pack_8unorm," print " &util_format_none_unpack_float," - print " &util_format_none_pack_float" + print " &util_format_none_pack_float," + print " &util_format_none_fetch_float" print "};" print @@ -172,7 +178,8 @@ util_format_none_pack_float(uint8_t *dst, const float *src, unsigned length) print " &util_format_%s_unpack_8unorm," % format.short_name() print " &util_format_%s_pack_8unorm," % format.short_name() print " &util_format_%s_unpack_float," % format.short_name() - print " &util_format_%s_pack_float" % format.short_name() + print " &util_format_%s_pack_float," % format.short_name() + print " &util_format_%s_fetch_float" % format.short_name() print "};" print -- cgit v1.2.3 From 9fcf2b87b35240efe8dd8ebe7d2f40268e647902 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 17 Mar 2010 19:50:33 +0000 Subject: util: Silence pointer to integer size mismatch errors. --- src/gallium/auxiliary/util/u_memory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_memory.h b/src/gallium/auxiliary/util/u_memory.h index a2fc597356..53d56599fe 100644 --- a/src/gallium/auxiliary/util/u_memory.h +++ b/src/gallium/auxiliary/util/u_memory.h @@ -88,7 +88,7 @@ mem_dup(const void *src, uint size) /** * Offset of a field in a struct, in bytes. */ -#define Offset(TYPE, MEMBER) ((unsigned)&(((TYPE *)NULL)->MEMBER)) +#define Offset(TYPE, MEMBER) ((uintptr_t)&(((TYPE *)NULL)->MEMBER)) -- cgit v1.2.3 From 329814c6ee8a87d67a55ecf197af9d6e6fb7ade0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 18 Mar 2010 11:27:29 +0000 Subject: util: Describe PIPE_FORMAT_NONE as PIPE_FORMAT_R8_USCALED. Avoids the need to special case PIPE_FORMAT_NONE so often. Conflicts: src/gallium/auxiliary/util/u_format_table.py --- src/gallium/auxiliary/util/u_format.csv | 4 +++ src/gallium/auxiliary/util/u_format.h | 28 +++++++-------- src/gallium/auxiliary/util/u_format_table.py | 51 +--------------------------- 3 files changed, 19 insertions(+), 64 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv index ee91788d71..0cf539247e 100644 --- a/src/gallium/auxiliary/util/u_format.csv +++ b/src/gallium/auxiliary/util/u_format.csv @@ -56,6 +56,10 @@ # internal formats to base in- ternal formats, and desired component # resolutions for each sized internal format." +# None +# Described as regular uint_8 bytes, i.e. PIPE_FORMAT_R8_USCALED +PIPE_FORMAT_NONE , plain, 1, 1, u8 , , , , x001, rgb + # Typical rendertarget formats PIPE_FORMAT_B8G8R8A8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , zyxw, rgb PIPE_FORMAT_B8G8R8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , x8 , zyx1, rgb diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 8e76e13b66..0fad81fe40 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -239,8 +239,8 @@ util_format_name(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return "???"; } @@ -252,8 +252,8 @@ util_format_is_s3tc(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return FALSE; } @@ -265,8 +265,8 @@ util_format_is_depth_or_stencil(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return FALSE; } @@ -278,8 +278,8 @@ util_format_is_depth_and_stencil(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return FALSE; } @@ -328,8 +328,8 @@ util_format_get_blocksizebits(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return 0; } @@ -354,8 +354,8 @@ util_format_get_blockwidth(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return 1; } @@ -367,8 +367,8 @@ util_format_get_blockheight(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); - assert(format); - if (!format) { + assert(desc); + if (!desc) { return 1; } diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py index 6877bd6844..1309044097 100755 --- a/src/gallium/auxiliary/util/u_format_table.py +++ b/src/gallium/auxiliary/util/u_format_table.py @@ -3,7 +3,7 @@ ''' /************************************************************************** * - * Copyright 2009 VMware, Inc. + * Copyright 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -87,53 +87,6 @@ def write_format_table(formats): print print '#include "u_format.h"' print - print ''' -static void -util_format_none_unpack_8unorm(uint8_t *dst, const uint8_t *src, unsigned length) -{ -} - -static void -util_format_none_pack_8unorm(uint8_t *dst, const uint8_t *src, unsigned length) -{ -} - -static void -util_format_none_unpack_float(float *dst, const uint8_t *src, unsigned length) -{ -} - -static void -util_format_none_pack_float(uint8_t *dst, const float *src, unsigned length) -{ -} - -static void -util_format_none_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) -{ -} - ''' - print 'const struct util_format_description' - print 'util_format_none_description = {' - print " PIPE_FORMAT_NONE," - print " \"PIPE_FORMAT_NONE\"," - print " \"none\"," - print " {0, 0, 0}," - print " 0," - print " 0," - print " 0," - print " 0," - print " 0," - print " {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}," - print " {0, 0, 0, 0}," - print " 0," - print " &util_format_none_unpack_8unorm," - print " &util_format_none_pack_8unorm," - print " &util_format_none_unpack_float," - print " &util_format_none_pack_float," - print " &util_format_none_fetch_float" - print "};" - print u_format_pack.generate(formats) @@ -191,8 +144,6 @@ util_format_none_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigne print " }" print print " switch (format) {" - print " case PIPE_FORMAT_NONE:" - print " return &util_format_none_description;" for format in formats: print " case %s:" % format.name print " return &util_format_%s_description;" % (format.short_name(),) -- cgit v1.2.3 From b8012643e1f5f6e49593ec8f04d3721df53e6afb Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Wed, 31 Mar 2010 21:54:54 +0200 Subject: util: First stab at half-float conversion. --- src/gallium/auxiliary/util/u_format_pack.py | 101 +++++++++++++++------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index c74900ce63..26f8748604 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -43,6 +43,45 @@ import math from u_format_parse import * +def generate_f16_to_f32(): + '''Naive implementation, need something faster that operates on bits''' + + print ''' +static float +f16_to_f32(uint16_t h) +{ + unsigned mantissa = h & 0x3ff; + unsigned exponent = (h >> 10) & 0x1f; + float sign = (h & 0x8000) ? -1.0f : 1.0f; + + if (exponent == 0) { + if (mantissa == 0) { + return sign * 0.0f; + } + return sign * powf(2.0f, -14.0f) * (float)mantissa / 1024.0f; + } + if (exponent == 31) { + if (mantissa == 0) { + /* XXX: infinity */ + return sign * 100000.0f; + } + /* XXX: NaN */ + return 1000.0f; + } + return sign * powf(2.0f, (float)exponent - 15.0f) * (1.0f + (float)mantissa / 1024.0f); +} +''' + +def generate_f32_to_f16(): + print ''' +static uint16_t +f32_to_f16(float f) +{ + /* TODO */ + return 0; +} +''' + def generate_format_type(format): '''Generate a structure that describes the format.''' @@ -127,9 +166,6 @@ def is_format_supported(format): channel = format.channels[i] if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT): return False - if channel.type == FLOAT: - if channel.size not in (32, 64): - return False # We can only read a color from a depth/stencil format if the depth channel is present if format.colorspace == 'zs' and format.swizzles[0] == SWIZZLE_NONE: @@ -153,7 +189,9 @@ def native_type(format): elif channel.type == SIGNED: return 'int%u_t' % channel.size elif channel.type == FLOAT: - if channel.size == 32: + if channel.size == 16: + return 'uint16_t' + elif channel.size == 32: return 'float' elif channel.size == 64: return 'double' @@ -202,31 +240,6 @@ def get_one(type): return (1 << get_one_shift(type)) - 1 -def generate_clamp(): - '''Code generate the clamping functions for each type. - - We don't use a macro so that arguments with side effects, - like *src_pixel++ are correctly handled. - ''' - - for suffix, native_type in [ - ('', 'double'), - ('f', 'float'), - ('ui', 'unsigned int'), - ('si', 'int'), - ]: - print 'static INLINE %s' % native_type - print 'clamp%s(%s value, %s lbound, %s ubound)' % (suffix, native_type, native_type, native_type) - print '{' - print ' if(value < lbound)' - print ' return lbound;' - print ' if(value > ubound)' - print ' return ubound;' - print ' return value;' - print '}' - print - - def clamp_expr(src_channel, dst_channel, dst_native_type, value): '''Generate the expression to clamp the value in the source type to the destination type range.''' @@ -234,21 +247,6 @@ def clamp_expr(src_channel, dst_channel, dst_native_type, value): if src_channel == dst_channel: return value - # Pick the approriate clamp function - if src_channel.type == FLOAT: - if src_channel.size == 32: - func = 'clampf' - elif src_channel.size == 64: - func = 'clamp' - else: - assert False - elif src_channel.type == UNSIGNED: - func = 'clampui' - elif src_channel.type == SIGNED: - func = 'clampsi' - else: - assert False - src_min = src_channel.min() src_max = src_channel.max() dst_min = dst_channel.min() @@ -273,7 +271,17 @@ def conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=True return value if src_channel.type == FLOAT and dst_channel.type == FLOAT: - return '(%s)%s' % (dst_native_type, value) + if src_channel.size == dst_channel.size: + return value + if src_channel.size == 64: + value = '(float)%s' % (value) + elif src_channel.size == 16: + value = 'f16_to_f32(%s)' % (value) + if dst_channel.size == 16: + value = 'f32_to_f16(%s)' % (value) + elif dst_channel.size == 64: + value = '(double)%s' % (value) + return value if clamp: value = clamp_expr(src_channel, dst_channel, dst_native_type, value) @@ -562,7 +570,8 @@ def generate(formats): print '#include "u_format.h"' print - generate_clamp() + generate_f16_to_f32() + generate_f32_to_f16() for format in formats: if is_format_supported(format): -- cgit v1.2.3 From 018aae950df449a18d7d69de54d51af587be94c6 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 21:16:16 +0100 Subject: util: Make the accessors bidimensional again. Otherwise there's no way to unpack blocks with height >1 --- progs/gallium/unit/u_format_test.c | 8 ++-- src/gallium/auxiliary/util/u_format.c | 36 ++------------- src/gallium/auxiliary/util/u_format.h | 28 ++++++++---- src/gallium/auxiliary/util/u_format_pack.py | 70 +++++++++++++++++------------ 4 files changed, 69 insertions(+), 73 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index ba4e9fab66..54cb6b879e 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -72,7 +72,7 @@ test_format_unpack_float(const struct util_format_description *format_desc, unsigned i; boolean success; - format_desc->unpack_float(unpacked, test->packed, 1); + format_desc->unpack_float(unpacked, 0, test->packed, 0, 1, 1); success = TRUE; for (i = 0; i < 4; ++i) @@ -102,7 +102,7 @@ test_format_pack_float(const struct util_format_description *format_desc, for (i = 0; i < 4; ++i) unpacked[i] = (float) test->unpacked[i]; - format_desc->pack_float(packed, unpacked, 1); + format_desc->pack_float(packed, 0, unpacked, 0, 1, 1); success = TRUE; for (i = 0; i < UTIL_FORMAT_MAX_PACKED_BYTES; ++i) @@ -160,7 +160,7 @@ test_format_unpack_8unorm(const struct util_format_description *format_desc, unsigned i; boolean success; - format_desc->unpack_8unorm(unpacked, test->packed, 1); + format_desc->unpack_8unorm(unpacked, 0, test->packed, 0, 1, 1); convert_float_to_8unorm(expected, test->unpacked); @@ -196,7 +196,7 @@ test_format_pack_8unorm(const struct util_format_description *format_desc, memset(packed, 0, sizeof packed); - format_desc->pack_8unorm(packed, unpacked, 1); + format_desc->pack_8unorm(packed, 0, unpacked, 0, 1, 1); success = TRUE; for (i = 0; i < UTIL_FORMAT_MAX_PACKED_BYTES; ++i) diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index 11ef839ec1..7f16cf7d01 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -44,8 +44,6 @@ util_format_read_4f(enum pipe_format format, const struct util_format_description *format_desc; const uint8_t *src_row; float *dst_row; - unsigned row_blocks; - unsigned i; format_desc = util_format_description(format); @@ -54,13 +52,8 @@ util_format_read_4f(enum pipe_format format, src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8); dst_row = dst; - row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; - for (i = 0; i < h; i += format_desc->block.height) { - format_desc->unpack_float(dst_row, src_row, row_blocks); - src_row += src_stride; - dst_row += dst_stride/sizeof(*dst_row); - } + format_desc->unpack_float(dst_row, dst_stride, src_row, src_stride, w, h); } @@ -73,8 +66,6 @@ util_format_write_4f(enum pipe_format format, const struct util_format_description *format_desc; uint8_t *dst_row; const float *src_row; - unsigned row_blocks; - unsigned i; format_desc = util_format_description(format); @@ -83,13 +74,8 @@ util_format_write_4f(enum pipe_format format, dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8); src_row = src; - row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; - for (i = 0; i < h; i += format_desc->block.height) { - format_desc->pack_float(dst_row, src_row, row_blocks); - dst_row += dst_stride; - src_row += src_stride/sizeof(*src_row); - } + format_desc->pack_float(dst_row, dst_stride, src_row, src_stride, w, h); } @@ -99,8 +85,6 @@ util_format_read_4ub(enum pipe_format format, uint8_t *dst, unsigned dst_stride, const struct util_format_description *format_desc; const uint8_t *src_row; uint8_t *dst_row; - unsigned row_blocks; - unsigned i; format_desc = util_format_description(format); @@ -109,13 +93,8 @@ util_format_read_4ub(enum pipe_format format, uint8_t *dst, unsigned dst_stride, src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8); dst_row = dst; - row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; - for (i = 0; i < h; i += format_desc->block.height) { - format_desc->unpack_8unorm(dst_row, src_row, row_blocks); - src_row += src_stride; - dst_row += dst_stride/sizeof(*dst_row); - } + format_desc->unpack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } @@ -125,8 +104,6 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ const struct util_format_description *format_desc; uint8_t *dst_row; const uint8_t *src_row; - unsigned row_blocks; - unsigned i; format_desc = util_format_description(format); @@ -135,12 +112,7 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8); src_row = src; - row_blocks = (w + format_desc->block.width - 1) / format_desc->block.width; - for (i = 0; i < h; i += format_desc->block.height) { - format_desc->pack_8unorm(dst_row, src_row, row_blocks); - dst_row += dst_stride; - src_row += src_stride/sizeof(*src_row); - } + format_desc->pack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 0fad81fe40..93818a3161 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -191,34 +191,44 @@ struct util_format_description enum util_format_colorspace colorspace; /** - * Unpack a span of pixel blocks to R8G8B8A8_UNORM. + * Unpack pixel blocks to R8G8B8A8_UNORM. */ void - (*unpack_8unorm)(uint8_t *dst, const uint8_t *src, unsigned nr_blocks); + (*unpack_8unorm)(uint8_t *dst, unsigned dst_stride, + const uint8_t *src, unsigned src_stride, + unsigned width, unsigned height); /** - * Pack a span of pixel blocks from R8G8B8A8_UNORM. + * Pack pixel blocks from R8G8B8A8_UNORM. */ void - (*pack_8unorm)(uint8_t *dst, const uint8_t *src, unsigned nr_blocks); + (*pack_8unorm)(uint8_t *dst, unsigned dst_stride, + const uint8_t *src, unsigned src_stride, + unsigned width, unsigned height); /** - * Unpack a span of pixel blocks to R32G32B32A32_FLOAT. + * Unpack pixel blocks to R32G32B32A32_FLOAT. */ void - (*unpack_float)(float *dst, const uint8_t *src, unsigned nr_blocks); + (*unpack_float)(float *dst, unsigned dst_stride, + const uint8_t *src, unsigned src_stride, + unsigned width, unsigned height); /** - * Pack a span of pixel blocks from R32G32B32A32_FLOAT. + * Pack pixel blocks from R32G32B32A32_FLOAT. */ void - (*pack_float)(uint8_t *dst, const float *src, unsigned nr_blocks); + (*pack_float)(uint8_t *dst, unsigned dst_stride, + const float *src, unsigned src_stride, + unsigned width, unsigned height); /** * Fetch a single pixel (i, j) from a block. */ void - (*fetch_float)(float *dst, const uint8_t *src, unsigned i, unsigned j); + (*fetch_float)(float *dst, + const uint8_t *src, + unsigned i, unsigned j); }; diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 26f8748604..73309cca5c 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -343,19 +343,19 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): if format.is_bitmask(): depth = format.block_size() - print ' uint%u_t value = *(uint%u_t *)src;' % (depth, depth) + print ' uint%u_t value = *(uint%u_t *)src;' % (depth, depth) # Declare the intermediate variables for i in range(format.nr_channels()): src_channel = format.channels[i] if src_channel.type == UNSIGNED: - print ' uint%u_t %s;' % (depth, src_channel.name) + print ' uint%u_t %s;' % (depth, src_channel.name) elif src_channel.type == SIGNED: - print ' int%u_t %s;' % (depth, src_channel.name) + print ' int%u_t %s;' % (depth, src_channel.name) - print ' #ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth - print ' #endif' + print '#ifdef PIPE_ARCH_BIG_ENDIAN' + print ' value = util_bswap%u(value);' % depth + print '#endif' # Compute the intermediate unshifted values shift = 0 @@ -382,7 +382,7 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): value = None if value is not None: - print ' %s = %s;' % (src_channel.name, value) + print ' %s = %s;' % (src_channel.name, value) shift += src_channel.size @@ -406,11 +406,11 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): value = get_one(dst_channel) elif i >= 1: value = 'dst[0]' - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) + print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) else: - print ' union util_format_%s pixel;' % format.short_name() - print ' memcpy(&pixel, src, sizeof pixel);' + print ' union util_format_%s pixel;' % format.short_name() + print ' memcpy(&pixel, src, sizeof pixel);' bswap_format(format) for i in range(4): @@ -432,7 +432,7 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): value = get_one(dst_channel) elif i >= 1: value = 'dst[0]' - print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) + print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i]) def generate_pack_kernel(format, src_channel, src_native_type): @@ -448,7 +448,7 @@ def generate_pack_kernel(format, src_channel, src_native_type): if format.is_bitmask(): depth = format.block_size() - print ' uint%u_t value = 0;' % depth + print ' uint%u_t value = 0;' % depth shift = 0 for i in range(4): @@ -472,18 +472,18 @@ def generate_pack_kernel(format, src_channel, src_native_type): else: value = None if value is not None: - print ' value |= %s;' % (value) + print ' value |= %s;' % (value) shift += dst_channel.size print '#ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth + print ' value = util_bswap%u(value);' % depth print '#endif' - print ' *(uint%u_t *)dst = value;' % depth + print ' *(uint%u_t *)dst = value;' % depth else: - print ' union util_format_%s pixel;' % format.short_name() + print ' union util_format_%s pixel;' % format.short_name() for i in range(4): dst_channel = format.channels[i] @@ -497,10 +497,10 @@ def generate_pack_kernel(format, src_channel, src_native_type): value = get_one(dst_channel) elif i >= 1: value = '0' - print ' pixel.chan.%s = %s;' % (dst_channel.name, value) + print ' pixel.chan.%s = %s;' % (dst_channel.name, value) bswap_format(format) - print ' memcpy(dst, &pixel, sizeof pixel);' + print ' memcpy(dst, &pixel, sizeof pixel);' def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix): @@ -509,16 +509,23 @@ def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix): name = format.short_name() print 'static INLINE void' - print 'util_format_%s_unpack_%s(%s *dst, const uint8_t *src, unsigned length)' % (name, dst_suffix, dst_native_type) + print 'util_format_%s_unpack_%s(%s *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, dst_suffix, dst_native_type) print '{' if is_format_supported(format): - print ' while(length--) {' - + print ' unsigned x, y;' + print ' for(y = 0; y < height; y += %u) {' % (format.block_height,) + print ' %s *dst = dst_row;' % (dst_native_type) + print ' const uint8_t *src = src_row;' + print ' for(x = 0; x < width; x += %u) {' % (format.block_width,) + generate_unpack_kernel(format, dst_channel, dst_native_type) - print ' src += %u;' % (format.block_size() / 8,) - print ' dst += 4;' + print ' src += %u;' % (format.block_size() / 8,) + print ' dst += 4;' + print ' }' + print ' src_row += src_stride;' + print ' dst_row += dst_stride/sizeof(*dst_row);' print ' }' print '}' @@ -531,18 +538,25 @@ def generate_format_pack(format, src_channel, src_native_type, src_suffix): name = format.short_name() print 'static INLINE void' - print 'util_format_%s_pack_%s(uint8_t *dst, const %s *src, unsigned length)' % (name, src_suffix, src_native_type) + print 'util_format_%s_pack_%s(uint8_t *dst_row, unsigned dst_stride, const %s *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, src_suffix, src_native_type) print '{' if is_format_supported(format): - print ' while(length--) {' + print ' unsigned x, y;' + print ' for(y = 0; y < height; y += %u) {' % (format.block_height,) + print ' const %s *src = src_row;' % (src_native_type) + print ' uint8_t *dst = dst_row;' + print ' for(x = 0; x < width; x += %u) {' % (format.block_width,) generate_pack_kernel(format, src_channel, src_native_type) - print ' src += 4;' - print ' dst += %u;' % (format.block_size() / 8,) + print ' src += 4;' + print ' dst += %u;' % (format.block_size() / 8,) + print ' }' + print ' dst_row += dst_stride;' + print ' src_row += src_stride/sizeof(*src_row);' print ' }' - + print '}' print -- cgit v1.2.3 From 36e92a0494f8a4d2d840d08ffece6719bc8260d6 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 21:27:07 +0100 Subject: libgl-xlib: Fix missing X11 symbols. --- src/gallium/targets/libgl-xlib/SConscript | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript index efa7e797d1..c1614d4a9f 100644 --- a/src/gallium/targets/libgl-xlib/SConscript +++ b/src/gallium/targets/libgl-xlib/SConscript @@ -43,6 +43,8 @@ sources = [ 'xlib.c', ] +env.Tool('x11') + if 'softpipe' in env['drivers']: env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE') env.Prepend(LIBS = [softpipe]) -- cgit v1.2.3 From b5d073b39d19c261ffdce21b1adb297182654bd0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 21:37:57 +0100 Subject: llvmpipe: Don't call unused generate_clamp(). --- src/gallium/drivers/llvmpipe/lp_tile_soa.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index a73da7d1ed..6a3ede02a4 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -349,8 +349,6 @@ def main(): print '};' print - generate_clamp() - channel = Channel(UNSIGNED, True, 8) native_type = 'uint8_t' suffix = '4ub' -- cgit v1.2.3 From 9388ce41917fa4c706c5e284d960e1ca648ee935 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 22:46:42 +0100 Subject: util: Hook into libtxc_dxtn.so (WIP). --- src/gallium/auxiliary/Makefile | 1 + src/gallium/auxiliary/SConscript | 1 + src/gallium/auxiliary/util/u_format_pack.py | 12 +- src/gallium/auxiliary/util/u_format_s3tc.c | 510 +++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format_s3tc.h | 218 ++++++++++++ src/gallium/auxiliary/util/u_format_table.py | 1 + 6 files changed, 738 insertions(+), 5 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_format_s3tc.c create mode 100644 src/gallium/auxiliary/util/u_format_s3tc.h diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 4df3fbd132..4c629924b9 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -106,6 +106,7 @@ C_SOURCES = \ util/u_dl.c \ util/u_draw_quad.c \ util/u_format.c \ + util/u_format_s3tc.c \ util/u_format_table.c \ util/u_format_tests.c \ util/u_gen_mipmap.c \ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index 0f1cc374c1..ed719f9f1a 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -140,6 +140,7 @@ source = [ 'util/u_dl.c', 'util/u_draw_quad.c', 'util/u_format.c', + 'util/u_format_s3tc.c', 'util/u_format_table.c', 'util/u_format_tests.c', 'util/u_gen_mipmap.c', diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 73309cca5c..95c0c79be9 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -596,15 +596,17 @@ def generate(formats): suffix = 'float' for format in formats: - generate_format_unpack(format, channel, native_type, suffix) - generate_format_pack(format, channel, native_type, suffix) - generate_format_fetch(format, channel, native_type, suffix) + if format.layout != 's3tc': + generate_format_unpack(format, channel, native_type, suffix) + generate_format_pack(format, channel, native_type, suffix) + generate_format_fetch(format, channel, native_type, suffix) channel = Channel(UNSIGNED, True, 8) native_type = 'uint8_t' suffix = '8unorm' for format in formats: - generate_format_unpack(format, channel, native_type, suffix) - generate_format_pack(format, channel, native_type, suffix) + if format.layout != 's3tc': + generate_format_unpack(format, channel, native_type, suffix) + generate_format_pack(format, channel, native_type, suffix) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c new file mode 100644 index 0000000000..4fe00b0e43 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -0,0 +1,510 @@ +/************************************************************************** + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * Copyright (c) 2008 VMware, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#include "u_dl.h" +#include "u_math.h" +#include "u_format.h" +#include "u_format_s3tc.h" + + +#if defined(_WIN32) || defined(WIN32) +#define DXTN_LIBNAME "dxtn.dll" +#else +#define DXTN_LIBNAME "libtxc_dxtn.so" +#endif + + +boolean util_format_s3tc_enabled = FALSE; + +util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = NULL; + +util_format_dxtn_pack_t util_format_dxtn_pack = NULL; + + +void +util_format_s3tc_init(void) +{ + static struct util_dl_library * + library = NULL; + + if (util_format_s3tc_enabled) + return; + + if (!library) { + library = util_dl_open(DXTN_LIBNAME); + if (!library) { + debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " + "compression/decompression unavailable"); + } + else { + util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgb_dxt1"); + util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt1"); + util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt3"); + util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt5"); + util_format_dxtn_pack = (util_format_dxtn_pack_t) + util_dl_get_proc_address(library, "tx_compress_dxtn"); + + if (util_format_dxt1_rgb_fetch || + util_format_dxt1_rgba_fetch || + util_format_dxt3_rgba_fetch || + util_format_dxt5_rgba_fetch || + util_format_dxtn_pack) { + util_format_s3tc_enabled = TRUE; + debug_printf("software DXTn compression/decompression available"); + + } else { + debug_printf("couldn't reference all symbols in " + DXTN_LIBNAME ", software DXTn compression/decompression " + "unavailable"); + } + } + } +} + + +/* + * Pixel fetch. + */ + +void +util_format_dxt1_rgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt1_rgb_fetch) { + util_format_dxt1_rgb_fetch(0, src, i, j, dst); + } +} + +void +util_format_dxt1_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt1_rgba_fetch) { + util_format_dxt1_rgba_fetch(0, src, i, j, dst); + } +} + +void +util_format_dxt3_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt3_rgba_fetch) { + util_format_dxt3_rgba_fetch(0, src, i, j, dst); + } +} + +void +util_format_dxt5_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt5_rgba_fetch) { + util_format_dxt5_rgba_fetch(0, src, i, j, dst); + } +} + +void +util_format_dxt1_rgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt1_rgb_fetch) { + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; + } +} + +void +util_format_dxt1_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt1_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } +} + +void +util_format_dxt3_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt3_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } +} + +void +util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + if (util_format_dxt5_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } +} + + +/* + * Block decompression. + * + * FIXME + */ + +void +util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + +} + +void +util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + if (util_format_dxt1_rgb_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; + } + } + src += 8; + } + src_row += src_stride; + } + } +} + +void +util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + if (util_format_dxt1_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } + } + src += 8; + } + src_row += src_stride; + } + } +} + +void +util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + if (util_format_dxt3_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } + } + src += 16; + } + src_row += src_stride; + } + } +} + +void +util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + if (util_format_dxt5_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } + } + src += 16; + } + src_row += src_stride; + } + } +} + + +/* + * Block compression. + * + * FIXME + */ + +void +util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + +void +util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ +} + + +/* + * SRGB variants. + * + * FIXME: shunts to RGB for now + */ + +void +util_format_dxt1_srgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgb_unpack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgb_pack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt1_rgb_fetch_8unorm(dst, src, i, j); +} + +void +util_format_dxt1_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgba_unpack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgba_pack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt1_rgba_fetch_8unorm(dst, src, i, j); +} + +void +util_format_dxt3_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt3_rgba_unpack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt3_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt3_rgba_pack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt3_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt3_rgba_fetch_8unorm(dst, src, i, j); +} + +void +util_format_dxt5_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt5_rgba_unpack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt5_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt5_rgba_pack_8unorm(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt5_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt5_rgba_fetch_8unorm(dst, src, i, j); +} + +void +util_format_dxt1_srgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgb_unpack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgb_pack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt1_rgb_fetch_float(dst, src, i, j); +} + +void +util_format_dxt1_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgba_unpack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt1_rgba_pack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt1_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt1_rgba_fetch_float(dst, src, i, j); +} + +void +util_format_dxt3_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt3_rgba_unpack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt3_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt3_rgba_pack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt3_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt3_rgba_fetch_float(dst, src, i, j); +} + +void +util_format_dxt5_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt5_rgba_unpack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt5_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) +{ + util_format_dxt5_rgba_pack_float(dst_row, dst_stride, src_row, src_stride, width, height); +} + +void +util_format_dxt5_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) +{ + util_format_dxt5_rgba_fetch_float(dst, src, i, j); +} + diff --git a/src/gallium/auxiliary/util/u_format_s3tc.h b/src/gallium/auxiliary/util/u_format_s3tc.h new file mode 100644 index 0000000000..5c3a9dd22c --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_s3tc.h @@ -0,0 +1,218 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +#ifndef U_FORMAT_S3TC_H_ +#define U_FORMAT_S3TC_H_ + + +#include "pipe/p_compiler.h" + + +enum util_format_dxtn { + UTIL_FORMAT_DXT1_RGB = 0x83F0, + UTIL_FORMAT_DXT1_RGBA = 0x83F1, + UTIL_FORMAT_DXT3_RGBA = 0x83F2, + UTIL_FORMAT_DXT5_RGBA = 0x83F3 +}; + + +typedef void +(*util_format_dxtn_fetch_t)( int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ); + +typedef void +(*util_format_dxtn_pack_t)( int src_comps, + int width, int height, + const uint8_t *src, + enum util_format_dxtn dst_format, + uint8_t *dst, + int dst_stride); + +extern boolean util_format_s3tc_enabled; + +extern util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch; +extern util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch; +extern util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch; +extern util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch; + +extern util_format_dxtn_pack_t util_format_dxtn_pack; + + +void +util_format_s3tc_init(void); + + +void +util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_srgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt3_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt5_srgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_srgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_srgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j); + + +void +util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_srgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt1_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt1_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt3_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt3_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + +void +util_format_dxt5_srgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_srgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height); + +void +util_format_dxt5_srgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j); + + +#endif /* U_FORMAT_S3TC_H_ */ diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py index 1309044097..94a4331b15 100755 --- a/src/gallium/auxiliary/util/u_format_table.py +++ b/src/gallium/auxiliary/util/u_format_table.py @@ -86,6 +86,7 @@ def write_format_table(formats): print __doc__.strip() print print '#include "u_format.h"' + print '#include "u_format_s3tc.h"' print u_format_pack.generate(formats) -- cgit v1.2.3 From f45d43a17fa1f4de50e1cf3e54d3edfdff91399d Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 31 Mar 2010 22:47:11 +0100 Subject: softpipe: Use S3TC when avaiilable, --- src/gallium/drivers/softpipe/sp_screen.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index 757dc86128..be64048abf 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -27,6 +27,7 @@ #include "util/u_memory.h" +#include "util/u_format_s3tc.h" #include "pipe/p_defines.h" #include "pipe/p_screen.h" @@ -155,20 +156,20 @@ softpipe_is_format_supported( struct pipe_screen *screen, target == PIPE_TEXTURE_CUBE); switch(format) { - case PIPE_FORMAT_L16_UNORM: case PIPE_FORMAT_YUYV: case PIPE_FORMAT_UYVY: + return FALSE; + case PIPE_FORMAT_DXT1_RGB: case PIPE_FORMAT_DXT1_RGBA: case PIPE_FORMAT_DXT3_RGBA: case PIPE_FORMAT_DXT5_RGBA: + return util_format_s3tc_enabled; + case PIPE_FORMAT_Z32_FLOAT: - case PIPE_FORMAT_R8G8_SNORM: - case PIPE_FORMAT_R5SG5SB6U_NORM: - case PIPE_FORMAT_R8SG8SB8UX8U_NORM: - case PIPE_FORMAT_R8G8B8A8_SNORM: case PIPE_FORMAT_NONE: return FALSE; + default: break; } @@ -240,6 +241,8 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; + util_format_s3tc_init(); + softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); softpipe_init_screen_fence_funcs(&screen->base); -- cgit v1.2.3 From 39e116e3a0dce1a13dbb4395585cd3873e5ed073 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 1 Apr 2010 01:13:26 +0200 Subject: r300g: format handling cleanup --- src/gallium/drivers/r300/r300_state_inlines.h | 15 +++++++-------- src/gallium/drivers/r300/r300_texture.c | 25 +++++++++---------------- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/gallium/drivers/r300/r300_state_inlines.h b/src/gallium/drivers/r300/r300_state_inlines.h index 02d09c008c..8a690039b6 100644 --- a/src/gallium/drivers/r300/r300_state_inlines.h +++ b/src/gallium/drivers/r300/r300_state_inlines.h @@ -367,7 +367,6 @@ static INLINE uint16_t r300_translate_vertex_data_type(enum pipe_format format) { uint32_t result = 0; const struct util_format_description *desc; - unsigned components = util_format_get_nr_components(format); desc = util_format_description(format); @@ -380,17 +379,17 @@ r300_translate_vertex_data_type(enum pipe_format format) { switch (desc->channel[0].type) { /* Half-floats, floats, doubles */ case UTIL_FORMAT_TYPE_FLOAT: - switch (util_format_get_component_bits(format, UTIL_FORMAT_COLORSPACE_RGB, 0)) { + switch (desc->channel[0].size) { case 16: /* XXX Supported only on RV350 and later. */ - if (components > 2) { + if (desc->nr_channels > 2) { result = R300_DATA_TYPE_FLT16_4; } else { result = R300_DATA_TYPE_FLT16_2; } break; case 32: - result = R300_DATA_TYPE_FLOAT_1 + (components - 1); + result = R300_DATA_TYPE_FLOAT_1 + (desc->nr_channels - 1); break; default: fprintf(stderr, "r300: Bad format %s in %s:%d\n", @@ -402,12 +401,12 @@ r300_translate_vertex_data_type(enum pipe_format format) { case UTIL_FORMAT_TYPE_UNSIGNED: /* Signed ints */ case UTIL_FORMAT_TYPE_SIGNED: - switch (util_format_get_component_bits(format, UTIL_FORMAT_COLORSPACE_RGB, 0)) { + switch (desc->channel[0].size) { case 8: result = R300_DATA_TYPE_BYTE; break; case 16: - if (components > 2) { + if (desc->nr_channels > 2) { result = R300_DATA_TYPE_SHORT_4; } else { result = R300_DATA_TYPE_SHORT_2; @@ -416,8 +415,8 @@ r300_translate_vertex_data_type(enum pipe_format format) { default: fprintf(stderr, "r300: Bad format %s in %s:%d\n", util_format_name(format), __FUNCTION__, __LINE__); - fprintf(stderr, "r300: util_format_get_component_bits(format, UTIL_FORMAT_COLORSPACE_RGB, 0) == %d\n", - util_format_get_component_bits(format, UTIL_FORMAT_COLORSPACE_RGB, 0)); + fprintf(stderr, "r300: desc->channel[0].size == %d\n", + desc->channel[0].size); assert(0); } break; diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 28cc822b13..92c29b53fd 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -73,7 +73,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) { uint32_t result = 0; const struct util_format_description *desc; - unsigned components = 0, i; + unsigned i; boolean uniform = TRUE; const uint32_t swizzle_shift[4] = { R300_TX_FORMAT_R_SHIFT, @@ -177,28 +177,21 @@ static uint32_t r300_translate_texformat(enum pipe_format format) } } - /* Get the number of components. */ - for (i = 0; i < 4; i++) { - if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) { - ++components; - } - } - /* Add sign. */ - for (i = 0; i < components; i++) { + for (i = 0; i < desc->nr_channels; i++) { if (desc->channel[i].type == UTIL_FORMAT_TYPE_SIGNED) { result |= sign_bit[i]; } } /* See whether the components are of the same size. */ - for (i = 1; i < components; i++) { + for (i = 1; i < desc->nr_channels; i++) { uniform = uniform && desc->channel[0].size == desc->channel[i].size; } /* Non-uniform formats. */ if (!uniform) { - switch (components) { + switch (desc->nr_channels) { case 3: if (desc->channel[0].size == 5 && desc->channel[1].size == 6 && @@ -240,7 +233,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) switch (desc->channel[0].size) { case 4: - switch (components) { + switch (desc->nr_channels) { case 2: return R300_TX_FORMAT_Y4X4 | result; case 4: @@ -249,7 +242,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) return ~0; case 8: - switch (components) { + switch (desc->nr_channels) { case 1: return R300_TX_FORMAT_X8 | result; case 2: @@ -260,7 +253,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) return ~0; case 16: - switch (components) { + switch (desc->nr_channels) { case 1: return R300_TX_FORMAT_X16 | result; case 2: @@ -276,7 +269,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) case UTIL_FORMAT_TYPE_FLOAT: switch (desc->channel[0].size) { case 16: - switch (components) { + switch (desc->nr_channels) { case 1: return R300_TX_FORMAT_16F | result; case 2: @@ -287,7 +280,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) return ~0; case 32: - switch (components) { + switch (desc->nr_channels) { case 1: return R300_TX_FORMAT_32F | result; case 2: -- cgit v1.2.3 From 3252651fb291d7e6e4af5fed8ab461f603574cd6 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 1 Apr 2010 02:14:52 +0200 Subject: r300g: add RGTC texture support The CS checker already knows about this. --- src/gallium/drivers/r300/r300_reg.h | 20 ++++++++++++++++++++ src/gallium/drivers/r300/r300_screen.c | 9 +++++++++ src/gallium/drivers/r300/r300_texture.c | 28 +++++++++++++++++++++++++++- 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h index 1c2b252887..0d6b7654f3 100644 --- a/src/gallium/drivers/r300/r300_reg.h +++ b/src/gallium/drivers/r300/r300_reg.h @@ -1556,6 +1556,26 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_TX_FORMAT_32F_32F 0x1C # define R300_TX_FORMAT_32F_32F_32F_32F 0x1D # define R300_TX_FORMAT_W24_FP 0x1E +# define R400_TX_FORMAT_ATI2N 0x1F + +/* These need TX_FORMAT2_[0-15].TXFORMAT_MSB set. + + My guess is the 10-bit formats are the 8-bit ones but with filtering being + performed with the precision of 10 bits per channel. This makes sense + with sRGB textures since the conversion to linear space reduces the precision + significantly so the shader gets approximately the 8-bit precision + in the end. It might also improve the quality of HDR rendering where + high-precision filtering is desirable. + + Again, this is guessed, the formats might mean something entirely else. + The others should be fine. */ +# define R500_TX_FORMAT_X1 0x0 +# define R500_TX_FORMAT_X1_REV 0x1 +# define R500_TX_FORMAT_X10 0x2 +# define R500_TX_FORMAT_Y10X10 0x3 +# define R500_TX_FORMAT_W10Z10Y10X10 0x4 +# define R500_TX_FORMAT_ATI1N 0x5 + # define R300_TX_FORMAT_SIGNED_W (1 << 5) # define R300_TX_FORMAT_SIGNED_Z (1 << 6) diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 090964b025..50e5e9307e 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -207,9 +207,14 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, { uint32_t retval = 0; boolean is_r500 = r300_screen(screen)->caps->is_r500; + boolean is_r400 = r300_screen(screen)->caps->is_r400; boolean is_z24 = format == PIPE_FORMAT_X8Z24_UNORM || format == PIPE_FORMAT_S8_USCALED_Z24_UNORM; boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM; + boolean is_ati1n = format == PIPE_FORMAT_RGTC1_UNORM || + format == PIPE_FORMAT_RGTC1_SNORM; + boolean is_ati2n = format == PIPE_FORMAT_RGTC2_UNORM || + format == PIPE_FORMAT_RGTC2_SNORM; if (target >= PIPE_MAX_TEXTURE_TYPES) { fprintf(stderr, "r300: Implementation error: Received bogus texture " @@ -221,6 +226,10 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, if ((usage & PIPE_TEXTURE_USAGE_SAMPLER) && /* Z24 cannot be sampled from on non-r5xx. */ (is_r500 || !is_z24) && + /* ATI1N is r5xx-only. */ + (is_r500 || !is_ati1n) && + /* ATI2N is supported on r4xx-r5xx. */ + (is_r400 || is_r500 || !is_ati2n) && r300_is_sampler_format_supported(format)) { retval |= PIPE_TEXTURE_USAGE_SAMPLER; } diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 92c29b53fd..d4a64092c7 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -158,7 +158,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) } } - /* Compressed formats. */ + /* S3TC formats. */ if (desc->layout == UTIL_FORMAT_LAYOUT_S3TC) { switch (format) { case PIPE_FORMAT_DXT1_RGB: @@ -184,6 +184,20 @@ static uint32_t r300_translate_texformat(enum pipe_format format) } } + /* RGTC formats. */ + if (desc->layout == UTIL_FORMAT_LAYOUT_RGTC) { + switch (format) { + case PIPE_FORMAT_RGTC1_UNORM: + case PIPE_FORMAT_RGTC1_SNORM: + return R500_TX_FORMAT_ATI1N | result; + case PIPE_FORMAT_RGTC2_UNORM: + case PIPE_FORMAT_RGTC2_SNORM: + return R400_TX_FORMAT_ATI2N | result; + default: + return ~0; /* Unsupported/unknown. */ + } + } + /* See whether the components are of the same size. */ for (i = 1; i < desc->nr_channels; i++) { uniform = uniform && desc->channel[0].size == desc->channel[i].size; @@ -295,6 +309,17 @@ static uint32_t r300_translate_texformat(enum pipe_format format) return ~0; /* Unsupported/unknown. */ } +static uint32_t r500_tx_format_msb_bit(enum pipe_format format) +{ + switch (format) { + case PIPE_FORMAT_RGTC1_UNORM: + case PIPE_FORMAT_RGTC1_SNORM: + return R500_TXFORMAT_MSB; + default: + return 0; + } +} + /* Buffer formats. */ /* Colorbuffer formats. This is the unswizzled format of the RB3D block's @@ -520,6 +545,7 @@ static void r300_setup_texture_state(struct r300_screen* screen, struct r300_tex if (pt->height0 > 2048) { state->format2 |= R500_TXHEIGHT_BIT11; } + state->format2 |= r500_tx_format_msb_bit(pt->format); } SCREEN_DBG(screen, DBG_TEX, "r300: Set texture state (%dx%d, %d levels)\n", -- cgit v1.2.3 From 2ab737557258148d52d9b9e983e4b18560b7a460 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 1 Apr 2010 02:21:06 +0200 Subject: r300g: add RGBA16F colorbuffer support Disabled by default due to unresolved IP issues. --- src/gallium/drivers/r300/r300_texture.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index d4a64092c7..e0dee44b54 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -33,6 +33,9 @@ #include "r300_state_inlines.h" #include "r300_winsys.h" +/* XXX Enable float textures here. */ +/*#define ENABLE_FLOAT_TEXTURES*/ + #define TILE_WIDTH 0 #define TILE_HEIGHT 1 @@ -278,8 +281,7 @@ static uint32_t r300_translate_texformat(enum pipe_format format) } return ~0; -/* XXX Enable float textures here. */ -#if 0 +#if defined(ENABLE_FLOAT_TEXTURES) case UTIL_FORMAT_TYPE_FLOAT: switch (desc->channel[0].size) { case 16: @@ -360,12 +362,13 @@ static uint32_t r300_translate_colorformat(enum pipe_format format) /* 64-bit buffers. */ case PIPE_FORMAT_R16G16B16A16_UNORM: case PIPE_FORMAT_R16G16B16A16_SNORM: - //case PIPE_FORMAT_R16G16B16A16_FLOAT: /* not in pipe_format */ +#if defined(ENABLE_FLOAT_TEXTURES) + case PIPE_FORMAT_R16G16B16A16_FLOAT: +#endif return R300_COLOR_FORMAT_ARGB16161616; -/* XXX Enable float textures here. */ -#if 0 /* 128-bit buffers. */ +#if defined(ENABLE_FLOAT_TEXTURES) case PIPE_FORMAT_R32G32B32A32_FLOAT: return R300_COLOR_FORMAT_ARGB32323232; #endif -- cgit v1.2.3 From 2fb655d1dbb3f8425aeff1597271262661ef206b Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 31 Mar 2010 21:30:37 -0400 Subject: gallivm: convert floats to doubles printf can't handle floats, convert them to doubles so that we can actually print floats. --- src/gallium/auxiliary/gallivm/lp_bld_printf.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c index 78c9ec778b..e4fa2c264c 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c @@ -104,8 +104,15 @@ lp_build_printf(LLVMBuilderRef builder, const char *fmt, ...) params[0] = LLVMBuildGEP(builder, fmtarg, index, 2, ""); va_start(arglist, fmt); - for (i = 1; i <= argcount; i++) - params[i] = va_arg(arglist, LLVMValueRef); + for (i = 1; i <= argcount; i++) { + LLVMValueRef val = va_arg(arglist, LLVMValueRef); + LLVMTypeRef type = LLVMTypeOf(val); + /* printf wants doubles, so lets convert so that + * we can actually print them */ + if (LLVMGetTypeKind(type) == LLVMFloatTypeKind) + val = LLVMBuildFPExt(builder, val, LLVMDoubleType(), ""); + params[i] = val; + } va_end(arglist); return LLVMBuildCall(builder, func_printf, params, argcount + 1, ""); -- cgit v1.2.3 From ae5487d4276007e466b6a7c783d6fb740f9539c5 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 31 Mar 2010 22:15:12 -0400 Subject: draw llvm: fix iteration over buffers fetching was converting garbage --- src/gallium/auxiliary/draw/draw_llvm.c | 25 ++++++++++++++++++++++-- src/gallium/auxiliary/draw/draw_llvm_translate.c | 5 +++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 6347acb0b9..2978621826 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -10,6 +10,7 @@ #include "gallivm/lp_bld_flow.h" #include "gallivm/lp_bld_debug.h" #include "gallivm/lp_bld_tgsi.h" +#include "gallivm/lp_bld_printf.h" #include "util/u_cpu_detect.h" @@ -229,6 +230,23 @@ generate_vs(struct draw_llvm *llvm, NULL/*sampler*/); } + +static void print_vectorf(LLVMBuilderRef builder, + LLVMValueRef vec) +{ + LLVMValueRef val[4]; + val[0] = LLVMBuildExtractElement(builder, vec, + LLVMConstInt(LLVMInt32Type(), 0, 0), ""); + val[1] = LLVMBuildExtractElement(builder, vec, + LLVMConstInt(LLVMInt32Type(), 1, 0), ""); + val[2] = LLVMBuildExtractElement(builder, vec, + LLVMConstInt(LLVMInt32Type(), 2, 0), ""); + val[3] = LLVMBuildExtractElement(builder, vec, + LLVMConstInt(LLVMInt32Type(), 3, 0), ""); + lp_build_printf(builder, "vector = [%f, %f, %f, %f]\n", + val[0], val[1], val[2], val[3]); +} + static void generate_fetch(LLVMBuilderRef builder, LLVMValueRef vbuffers_ptr, @@ -244,6 +262,8 @@ generate_fetch(LLVMBuilderRef builder, LLVMConstInt(LLVMInt32Type(), vbuf->stride, 0), index, ""); + vbuffer_ptr = LLVMBuildLoad(builder, vbuffer_ptr, "vbuffer"); + stride = LLVMBuildAdd(builder, stride, LLVMConstInt(LLVMInt32Type(), vbuf->buffer_offset, 0), ""); @@ -251,6 +271,7 @@ generate_fetch(LLVMBuilderRef builder, LLVMConstInt(LLVMInt32Type(), velem->src_offset, 0), ""); + /*lp_build_printf(builder, "vbuf index = %d, stride is %d\n", indices, stride);*/ vbuffer_ptr = LLVMBuildGEP(builder, vbuffer_ptr, &stride, 1, ""); *res = draw_llvm_translate_from(builder, vbuffer_ptr, velem->src_format); @@ -386,6 +407,7 @@ draw_llvm_generate(struct draw_llvm *llvm) end = lp_build_add(&bld, start, count); step = LLVMConstInt(LLVMInt32Type(), max_vertices, 0); + lp_build_loop_begin(builder, start, &lp_loop); { LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; @@ -404,6 +426,7 @@ draw_llvm_generate(struct draw_llvm *llvm) velem->vertex_buffer_index]; generate_fetch(builder, vbuffers_ptr, &aos_attribs[j][i], velem, vbuf, true_index); + /*print_vectorf(builder, aos_attribs[j][i]);*/ } } convert_to_soa(builder, aos_attribs, inputs, @@ -416,7 +439,6 @@ draw_llvm_generate(struct draw_llvm *llvm) ptr_aos, context_ptr, io); - LLVMDumpModule(llvm->module); } lp_build_loop_end(builder, end, step, &lp_loop); @@ -441,7 +463,6 @@ draw_llvm_generate(struct draw_llvm *llvm) LLVMDumpValue(function); debug_printf("\n"); } - llvm->jit_func = (draw_jit_vert_func)LLVMGetPointerToGlobal(llvm->draw->engine, function); if (1) diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index 260568aaa4..bc17d3861a 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -10,6 +10,7 @@ #include "gallivm/lp_bld_flow.h" #include "gallivm/lp_bld_debug.h" #include "gallivm/lp_bld_tgsi.h" +#include "gallivm/lp_bld_printf.h" #include "util/u_memory.h" #include "pipe/p_state.h" @@ -431,10 +432,10 @@ fetch(LLVMBuilderRef builder, for (i = 0; i < nr_components; ++i) { LLVMValueRef src_index = LLVMConstInt(LLVMInt32Type(), offset, 0); LLVMValueRef dst_index = LLVMConstInt(LLVMInt32Type(), i, 0); - LLVMValueRef src_tmp = LLVMBuildGEP(builder, ptr, &src_index, 1, ""); + LLVMValueRef src_tmp; LLVMValueRef component; - src_tmp = LLVMBuildLoad(builder, src_tmp, ""); + src_tmp = LLVMBuildGEP(builder, ptr, &src_index, 1, "src_tmp"); /* convert src_tmp to float */ component = func(builder, src_tmp); -- cgit v1.2.3 From 732685175773e3fce2e72836264e2081978e16fb Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Thu, 1 Apr 2010 06:17:10 +0200 Subject: util/format: fix big endian compilation by not trying to byteswap single bytes Conceivably, we could also have a dummy util_bswap8, but it seems better to not emit it in the first place. --- src/gallium/auxiliary/util/u_format_pack.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 95c0c79be9..90c1ae9e21 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -147,7 +147,7 @@ def generate_srgb_tables(): def bswap_format(format): '''Generate a structure that describes the format.''' - if format.is_bitmask() and not format.is_array(): + if format.is_bitmask() and not format.is_array() and format.block_size() > 8: print '#ifdef PIPE_ARCH_BIG_ENDIAN' print ' pixel.value = util_bswap%u(pixel.value);' % format.block_size() print '#endif' @@ -353,9 +353,10 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): elif src_channel.type == SIGNED: print ' int%u_t %s;' % (depth, src_channel.name) - print '#ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth - print '#endif' + if depth > 8: + print '#ifdef PIPE_ARCH_BIG_ENDIAN' + print ' value = util_bswap%u(value);' % depth + print '#endif' # Compute the intermediate unshifted values shift = 0 @@ -476,9 +477,10 @@ def generate_pack_kernel(format, src_channel, src_native_type): shift += dst_channel.size - print '#ifdef PIPE_ARCH_BIG_ENDIAN' - print ' value = util_bswap%u(value);' % depth - print '#endif' + if depth > 8: + print '#ifdef PIPE_ARCH_BIG_ENDIAN' + print ' value = util_bswap%u(value);' % depth + print '#endif' print ' *(uint%u_t *)dst = value;' % depth -- cgit v1.2.3 From e6be593fbf7ab7683c0b8233939623438a23ec41 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Wed, 31 Mar 2010 23:36:06 -0700 Subject: r300g: Remove unnecessary header. --- src/gallium/drivers/r300/r300_texture.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index e0dee44b54..e7bac615df 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -30,7 +30,6 @@ #include "r300_context.h" #include "r300_texture.h" #include "r300_screen.h" -#include "r300_state_inlines.h" #include "r300_winsys.h" /* XXX Enable float textures here. */ -- cgit v1.2.3 From bef912abd3345268168fdff82b4a36f64f1d78a0 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Wed, 31 Mar 2010 23:44:29 -0700 Subject: mesa: Remove unnecessary header. --- src/mesa/main/transformfeedback.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index 3490110bae..d988fc6b9a 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -33,7 +33,6 @@ #include "buffers.h" #include "bufferobj.h" #include "context.h" -#include "enums.h" #include "transformfeedback.h" #include "shader/prog_parameter.h" -- cgit v1.2.3 From 16f568a1830ea17da82683f97e016cdc0aae0c65 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 1 Apr 2010 00:10:28 -0700 Subject: glx: Fix compilation errors on non-GLX_DIRECT_RENDERING builds. driContext field for __GLXcontextRec struct is only defined if GLX_DIRECT_RENDERING is set. --- src/glx/glxcmds.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 49cbce72f8..8f809dc525 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -1917,6 +1917,7 @@ __glXSwapIntervalSGI(int interval) #endif psc = GetGLXScreenConfigs( gc->currentDpy, gc->screen); +#ifdef GLX_DIRECT_RENDERING if (gc->driContext && psc->driScreen && psc->driScreen->setSwapInterval) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable, @@ -1924,6 +1925,7 @@ __glXSwapIntervalSGI(int interval) psc->driScreen->setSwapInterval(pdraw, interval); return 0; } +#endif dpy = gc->currentDpy; opcode = __glXSetupForCommand(dpy); @@ -1974,6 +1976,7 @@ __glXSwapIntervalMESA(unsigned int interval) } #endif +#ifdef GLX_DIRECT_RENDERING if (gc != NULL && gc->driContext) { __GLXscreenConfigs *psc; @@ -1985,6 +1988,7 @@ __glXSwapIntervalMESA(unsigned int interval) return 0; } } +#endif return GLX_BAD_CONTEXT; } @@ -2137,9 +2141,14 @@ __glXGetVideoSyncSGI(unsigned int *count) __GLXscreenConfigs *psc; __GLXDRIdrawable *pdraw; - if (!gc || !gc->driContext) + if (!gc) return GLX_BAD_CONTEXT; +#ifdef GLX_DIRECT_RENDERING + if (!gc->driContext) + return GLX_BAD_CONTEXT; +#endif + psc = GetGLXScreenConfigs(gc->currentDpy, gc->screen); pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable, NULL); @@ -2177,9 +2186,14 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) if (divisor <= 0 || remainder < 0) return GLX_BAD_VALUE; - if (!gc || !gc->driContext) + if (!gc) return GLX_BAD_CONTEXT; +#ifdef GLX_DIRECT_RENDERING + if (!gc->driContext) + return GLX_BAD_CONTEXT; +#endif + psc = GetGLXScreenConfigs( gc->currentDpy, gc->screen); pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable, NULL); @@ -2494,9 +2508,14 @@ __glXSwapBuffersMscOML(Display * dpy, GLXDrawable drawable, __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, &screen); __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); - if (!pdraw || !gc || !gc->driContext) /* no GLX for this */ + if (!pdraw || !gc) /* no GLX for this */ return -1; +#ifdef GLX_DIRECT_RENDERING + if (!gc->driContext) + return -1; +#endif + /* The OML_sync_control spec says these should "generate a GLX_BAD_VALUE * error", but it also says "It [glXSwapBuffersMscOML] will return a value * of -1 if the function failed because of errors detected in the input -- cgit v1.2.3 From 898ddd6b00ffbb515c83025b1e51092752c182a7 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 11:31:03 +0100 Subject: llvmpipe: Fix (un)swizzling, broken due to use of VOID channels. --- src/gallium/drivers/llvmpipe/lp_tile_soa.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index 6a3ede02a4..4157000bc5 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -94,12 +94,17 @@ def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): print ' %s %s = %s;' % (dst_native_type, names[i], value) shift += width else: + for i in range(4): + if names[i]: + print ' %s %s;' % (dst_native_type, names[i]) for i in range(4): src_channel = format.channels[i] if names[i]: value = '(*src_pixel++)' value = conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=False) - print ' %s %s = %s;' % (dst_native_type, names[i], value) + print ' %s = %s;' % (names[i], value) + elif src_channel.size: + print ' ++src_pixel;' else: assert False @@ -230,6 +235,8 @@ def emit_tile_pixel_write_code(format, src_channel): value = 'TILE_PIXEL(src, x, y, %u)' % inv_swizzle[i] value = conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=False) print ' *dst_pixel++ = %s;' % value + else: + print ' ++dst_pixel;' else: assert False @@ -251,7 +258,8 @@ def generate_format_write(format, src_channel, src_native_type, src_suffix): and format.block_size() <= 32 \ and format.is_pot() \ and not format.is_mixed() \ - and format.channels[0].type == UNSIGNED: + and (format.channels[0].type == UNSIGNED \ + or format.channels[1].type == UNSIGNED): emit_unrolled_write_code(format, src_channel) else: emit_tile_pixel_write_code(format, src_channel) -- cgit v1.2.3 From f706f12bbfe5356a5e167d162e25cb9d91df781c Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 11:52:00 +0100 Subject: util: Add half float test cases. --- src/gallium/auxiliary/util/u_format_tests.c | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index 4c4cc067a5..a95c4c1566 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -544,6 +544,41 @@ util_format_test_cases[] = {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x3f800000), { 0.0, 0.0, 0.0, 1.0}}, {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xbf800000), { 0.0, 0.0, 0.0, -1.0}}, {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000), { 1.0, 1.0, 1.0, 1.0}}, + + /* + * Half float formats + */ + + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x3c00), { 1.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0xbc00), { -1.0, 0.0, 0.0, 1.0}}, + + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xbc00, 0x0000), {-1.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x3c00), { 0.0, 1.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xbc00), { 0.0, -1.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x3c00), { 1.0, 1.0, 0.0, 1.0}}, + + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xbc00, 0x0000, 0x0000), {-1.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x3c00, 0x0000), { 0.0, 1.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xbc00, 0x0000), { 0.0, -1.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x3c00), { 0.0, 0.0, 1.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xbc00), { 0.0, 0.0, -1.0, 1.0}}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x3c00, 0x3c00), { 1.0, 1.0, 1.0, 1.0}}, + + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x0000, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xbc00, 0x0000, 0x0000, 0x0000), {-1.0, 0.0, 0.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x3c00, 0x0000, 0x0000), { 0.0, 1.0, 0.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xbc00, 0x0000, 0x0000), { 0.0, -1.0, 0.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x3c00, 0x0000), { 0.0, 0.0, 1.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xbc00, 0x0000), { 0.0, 0.0, -1.0, 0.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x3c00), { 0.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xbc00), { 0.0, 0.0, 0.0, -1.0}}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x3c00, 0x3c00, 0x3c00), { 1.0, 1.0, 1.0, 1.0}}, }; -- cgit v1.2.3 From 110e039d0df08ae1642adf4bd20f07992b9ffe9c Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 11:52:54 +0100 Subject: gallium/unit: Install test in build/xxx/bin --- progs/gallium/unit/SConscript | 2 ++ 1 file changed, 2 insertions(+) diff --git a/progs/gallium/unit/SConscript b/progs/gallium/unit/SConscript index 9891440df6..a8c39c152b 100644 --- a/progs/gallium/unit/SConscript +++ b/progs/gallium/unit/SConscript @@ -13,6 +13,8 @@ for prog in progs: target = prog, source = prog + '.c', ) + + env.InstallProgram(prog) # http://www.scons.org/wiki/UnitTests test_alias = env.Alias('unit', [prog], prog[0].abspath) -- cgit v1.2.3 From 3ff175d6de89ad92d167362355501f99d06f0f97 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Wed, 24 Mar 2010 18:12:45 +0100 Subject: gallium/util: add fast half float conversion functions This adds a fast half float conversion facility to Gallium. Mesa already contains such a facility, but using a much worse algorithm. This one is an implementation of www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf and uses a branch-less algorithm with some lookup tables small enough to fit in the L1 cache. Ideally, Mesa should start using these functions too, but I'm not sure how to arrange that with the current build system. A new "u_gctors.cpp" is added that defines a global C++ constructor allowing to initialize to conversion lookup tables at library init. --- src/gallium/auxiliary/Makefile | 4 ++ src/gallium/auxiliary/util/u_gctors.cpp | 17 +++++ src/gallium/auxiliary/util/u_half.c | 123 ++++++++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_half.h | 55 ++++++++++++++ 4 files changed, 199 insertions(+) create mode 100644 src/gallium/auxiliary/util/u_gctors.cpp create mode 100644 src/gallium/auxiliary/util/u_half.c create mode 100644 src/gallium/auxiliary/util/u_half.h diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 4c629924b9..14c0fb1840 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -110,6 +110,7 @@ C_SOURCES = \ util/u_format_table.c \ util/u_format_tests.c \ util/u_gen_mipmap.c \ + util/u_half.c \ util/u_handle_table.c \ util/u_hash_table.c \ util/u_hash.c \ @@ -138,6 +139,9 @@ C_SOURCES = \ #vl/vl_csc.c \ #vl/vl_shader_build.c \ +CPP_SOURCES = \ + util/u_gctors.cpp + GALLIVM_SOURCES = \ gallivm/lp_bld_alpha.c \ gallivm/lp_bld_arit.c \ diff --git a/src/gallium/auxiliary/util/u_gctors.cpp b/src/gallium/auxiliary/util/u_gctors.cpp new file mode 100644 index 0000000000..9ea9819d73 --- /dev/null +++ b/src/gallium/auxiliary/util/u_gctors.cpp @@ -0,0 +1,17 @@ +/* this file uses the C++ global constructor mechanism to automatically + initialize global data + + __attribute__((constructor)) allows to do this in C, but is GCC-only +*/ + +extern "C" void util_half_init_tables(void); + +struct util_gctor_t +{ + util_gctor_t() + { + util_half_init_tables(); + } +}; + +static struct util_gctor_t util_gctor; diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c new file mode 100644 index 0000000000..8865acb76b --- /dev/null +++ b/src/gallium/auxiliary/util/u_half.c @@ -0,0 +1,123 @@ +#include "util/u_half.h" + +/* see www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf + * "Fast Half Float Conversions" by Jeroen van der Zijp, Nov 2008 + */ + +/* Note that using a 64K * 4 table is a terrible idea since it will not fit + * in the L1 cache and will massively pollute the L2 cache as well + * + * These should instead fit in the L1 cache. + * + * TODO: we could use a denormal bias table instead of the mantissa/offset + * tables: this would reduce the L1 cache usage from 8704 to 2304 bytes + * but would involve more computation + * + * Note however that if denormals are never encountered, the L1 cache usage + * is only about 4608 bytes anyway. + */ +uint32_t util_half_to_float_mantissa_table[2048]; +uint32_t util_half_to_float_exponent_table[64]; +uint32_t util_half_to_float_offset_table[64]; +uint16_t util_float_to_half_base_table[512]; +uint8_t util_float_to_half_shift_table[512]; + +/* called by u_gctors.cpp, which defines the prototype itself */ +void util_half_init_tables(void); + +void util_half_init_tables(void) +{ + int i; + + /* zero */ + util_half_to_float_mantissa_table[0] = 0; + + /* denormals */ + for(i = 1; i < 1024; ++i) { + unsigned int m = i << 13; + unsigned int e = 0; + + /* Normalize number */ + while(!(m & 0x00800000)) { + e -= 0x00800000; + m<<=1; + } + m &= ~0x00800000; + e+= 0x38800000; + util_half_to_float_mantissa_table[i] = m | e; + } + + /* normals */ + for(i = 1024; i < 2048; ++i) + util_half_to_float_mantissa_table[i] = ((i-1024)<<13); + + /* positive zero or denormals */ + util_half_to_float_exponent_table[0] = 0; + + /* positive numbers */ + for(i = 1; i <= 30; ++i) + util_half_to_float_exponent_table[i] = 0x38000000 + (i << 23); + + /* positive infinity/NaN */ + util_half_to_float_exponent_table[31] = 0x7f800000; + + /* negative zero or denormals */ + util_half_to_float_exponent_table[32] = 0x80000000; + + /* negative numbers */ + for(i = 33; i <= 62; ++i) + util_half_to_float_exponent_table[i] = 0xb8000000 + ((i - 32) << 23); + + /* negative infinity/NaN */ + util_half_to_float_exponent_table[63] = 0xff800000; + + /* positive zero or denormals */ + util_half_to_float_offset_table[0] = 0; + + /* positive normals */ + for(i = 1; i < 32; ++i) + util_half_to_float_offset_table[i] = 1024; + + /* negative zero or denormals */ + util_half_to_float_offset_table[32] = 0; + + /* negative normals */ + for(i = 33; i < 64; ++i) + util_half_to_float_offset_table[i] = 1024; + + + + /* very small numbers mapping to zero */ + for(i = -127; i < -24; ++i) { + util_float_to_half_base_table[127 + i] = 0; + util_float_to_half_shift_table[127 + i] = 24; + } + + /* small numbers mapping to denormals */ + for(i = -24; i < -14; ++i) { + util_float_to_half_base_table[127 + i] = 0x0400 >> (-14 - i); + util_float_to_half_shift_table[127 + i] = -i - 1; + } + + /* normal numbers */ + for(i = -14; i < 16; ++i) { + util_float_to_half_base_table[127 + i] = (i + 15) << 10; + util_float_to_half_shift_table[127 + i] = 13; + } + + /* large numbers mapping to infinity */ + for(i = 16; i < 128; ++i) { + util_float_to_half_base_table[127 + i] = 0x7c00; + util_float_to_half_shift_table[127 + i] = 24; + } + + /* infinity and NaNs */ + util_float_to_half_base_table[255] = 0x7c00; + util_float_to_half_shift_table[255] = 13; + + /* negative numbers */ + for(i = 0; i < 256; ++i) { + util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; + util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; + } +} diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h new file mode 100644 index 0000000000..464d43df8a --- /dev/null +++ b/src/gallium/auxiliary/util/u_half.h @@ -0,0 +1,55 @@ +#ifndef U_HALF_H +#define U_HALF_H + +#include "pipe/p_compiler.h" + +extern uint32_t util_half_to_float_mantissa_table[2048]; +extern uint32_t util_half_to_float_exponent_table[64]; +extern uint32_t util_half_to_float_offset_table[64]; +extern uint16_t util_float_to_half_base_table[512]; +extern uint8_t util_float_to_half_shift_table[512]; + +/* + * Note that if the half float is a signaling NaN, the x87 FPU will turn + * it into a quiet NaN immediately upon loading into a float. + * + * Additionally, denormals may be flushed to zero. + * + * To avoid this, use the floatui functions instead of the float ones + * when just doing conversion rather than computation on the resulting + * floats. + */ + +static INLINE uint32_t +util_half_to_floatui(half h) +{ + unsigned exp = h >> 10; + return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] + + util_half_to_float_exponent_table[exp]; +} + +static INLINE float +util_half_to_float(half h) +{ + union {float f; uint32_t v;} r; + r.v = util_half_to_floatui(h); + return r.f; +} + +static INLINE half +util_floatui_to_half(uint32_t v) +{ + unsigned signexp = v >> 23; + return util_float_to_half_base_table[signexp] + + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); +} + +static INLINE half +util_float_to_half(float f) +{ + union {float f; uint32_t v;} i; + i.f = f; + return util_floatui_to_half(i.v); +} + +#endif /* U_HALF_H */ -- cgit v1.2.3 From 5a359df2195583f94f7d6bcd28144677630df03b Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Thu, 1 Apr 2010 09:51:54 +0200 Subject: gallium: Integrate util_half with scons. --- src/gallium/auxiliary/SConscript | 2 ++ src/gallium/include/pipe/p_compiler.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index ed719f9f1a..02b8045096 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -143,7 +143,9 @@ source = [ 'util/u_format_s3tc.c', 'util/u_format_table.c', 'util/u_format_tests.c', + 'util/u_gctors.cpp', 'util/u_gen_mipmap.c', + 'util/u_half.c', 'util/u_handle_table.c', 'util/u_hash.c', 'util/u_hash_table.c', diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index e2766d15cd..d645fd09bf 100644 --- a/src/gallium/include/pipe/p_compiler.h +++ b/src/gallium/include/pipe/p_compiler.h @@ -74,6 +74,7 @@ typedef unsigned char boolean; #define FALSE false #endif +typedef unsigned short half; /* Function inlining */ #ifndef INLINE -- cgit v1.2.3 From b7bca4b28cb5b12bc84391c53ea932cfd117dc52 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Thu, 1 Apr 2010 09:52:40 +0200 Subject: util: Use u_half to perform half <--> float conversions. --- src/gallium/auxiliary/util/u_format_pack.py | 53 ++++------------------------- 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 90c1ae9e21..d36c637738 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -43,45 +43,6 @@ import math from u_format_parse import * -def generate_f16_to_f32(): - '''Naive implementation, need something faster that operates on bits''' - - print ''' -static float -f16_to_f32(uint16_t h) -{ - unsigned mantissa = h & 0x3ff; - unsigned exponent = (h >> 10) & 0x1f; - float sign = (h & 0x8000) ? -1.0f : 1.0f; - - if (exponent == 0) { - if (mantissa == 0) { - return sign * 0.0f; - } - return sign * powf(2.0f, -14.0f) * (float)mantissa / 1024.0f; - } - if (exponent == 31) { - if (mantissa == 0) { - /* XXX: infinity */ - return sign * 100000.0f; - } - /* XXX: NaN */ - return 1000.0f; - } - return sign * powf(2.0f, (float)exponent - 15.0f) * (1.0f + (float)mantissa / 1024.0f); -} -''' - -def generate_f32_to_f16(): - print ''' -static uint16_t -f32_to_f16(float f) -{ - /* TODO */ - return 0; -} -''' - def generate_format_type(format): '''Generate a structure that describes the format.''' @@ -271,18 +232,18 @@ def conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=True return value if src_channel.type == FLOAT and dst_channel.type == FLOAT: - if src_channel.size == dst_channel.size: - return value if src_channel.size == 64: value = '(float)%s' % (value) elif src_channel.size == 16: - value = 'f16_to_f32(%s)' % (value) + value = 'util_half_to_float(%s)' % (value) + if dst_channel.size == 16: - value = 'f32_to_f16(%s)' % (value) + value = 'util_float_to_half(%s)' % (value) elif dst_channel.size == 64: value = '(double)%s' % (value) + return value - + if clamp: value = clamp_expr(src_channel, dst_channel, dst_native_type, value) @@ -584,11 +545,9 @@ def generate(formats): print '#include "pipe/p_compiler.h"' print '#include "u_math.h"' print '#include "u_format.h"' + print '#include "u_half.h"' print - generate_f16_to_f32() - generate_f32_to_f16() - for format in formats: if is_format_supported(format): generate_format_type(format) -- cgit v1.2.3 From 943408533d2ccbb3743dcbdf143f1d23d23f29a9 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Thu, 1 Apr 2010 13:56:03 +0200 Subject: util: Generate correct format conversions for half floats. --- src/gallium/auxiliary/util/u_format_pack.py | 98 +++++++++++++++++------------ 1 file changed, 59 insertions(+), 39 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index d36c637738..390be0c3b2 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -231,66 +231,86 @@ def conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=True if src_channel == dst_channel: return value - if src_channel.type == FLOAT and dst_channel.type == FLOAT: - if src_channel.size == 64: - value = '(float)%s' % (value) - elif src_channel.size == 16: - value = 'util_half_to_float(%s)' % (value) + src_type = src_channel.type + src_size = src_channel.size + src_norm = src_channel.norm - if dst_channel.size == 16: - value = 'util_float_to_half(%s)' % (value) - elif dst_channel.size == 64: - value = '(double)%s' % (value) - - return value + # Promote half to float + if src_type == FLOAT and src_size == 16: + value = 'util_half_to_float(%s)' % value + src_size = 32 if clamp: - value = clamp_expr(src_channel, dst_channel, dst_native_type, value) - - if dst_channel.type == FLOAT: - if src_channel.norm: - one = get_one(src_channel) - if src_channel.size <= 23: - scale = '(1.0f/0x%x)' % one - else: - # bigger than single precision mantissa, use double - scale = '(1.0/0x%x)' % one - value = '(%s * %s)' % (value, scale) - return '(%s)%s' % (dst_native_type, value) - - if src_channel.type == FLOAT: - if dst_channel.norm: - dst_one = get_one(dst_channel) - if dst_channel.size <= 23: - scale = '0x%x' % dst_one - else: - # bigger than single precision mantissa, use double - scale = '(double)0x%x' % dst_one - value = '(%s * %s)' % (value, scale) - return '(%s)%s' % (dst_native_type, value) + if dst_channel.type != FLOAT or src_type != FLOAT: + value = clamp_expr(src_channel, dst_channel, dst_native_type, value) - if src_channel.type in (SIGNED, UNSIGNED) and dst_channel.type in (SIGNED, UNSIGNED): - if not src_channel.norm and not dst_channel.norm: + if src_type in (SIGNED, UNSIGNED) and dst_channel.type in (SIGNED, UNSIGNED): + if not src_norm and not dst_channel.norm: # neither is normalized -- just cast return '(%s)%s' % (dst_native_type, value) src_one = get_one(src_channel) dst_one = get_one(dst_channel) - if src_one > dst_one and src_channel.norm and dst_channel.norm: + if src_one > dst_one and src_norm and dst_channel.norm: # We can just bitshift src_shift = get_one_shift(src_channel) dst_shift = get_one_shift(dst_channel) value = '(%s >> %s)' % (value, src_shift - dst_shift) else: # We need to rescale using an intermediate type big enough to hold the multiplication of both - tmp_native_type = intermediate_native_type(src_channel.size + dst_channel.size, src_channel.sign and dst_channel.sign) + tmp_native_type = intermediate_native_type(src_size + dst_channel.size, src_channel.sign and dst_channel.sign) value = '((%s)%s)' % (tmp_native_type, value) value = '(%s * 0x%x / 0x%x)' % (value, dst_one, src_one) value = '(%s)%s' % (dst_native_type, value) return value - assert False + # Promote to either float or double + if src_type != FLOAT: + if src_norm: + one = get_one(src_channel) + if src_size <= 23: + value = '(%s * (1.0f/0x%x))' % (value, one) + if dst_channel.size <= 32: + value = '(float)%s' % value + src_size = 32 + else: + # bigger than single precision mantissa, use double + value = '(%s * (1.0/0x%x))' % (value, one) + src_size = 64 + src_norm = False + else: + if src_size <= 23 or dst_channel.size <= 32: + value = '(float)%s' % value + src_size = 32 + else: + # bigger than single precision mantissa, use double + value = '(double)%s' % value + src_size = 64 + src_type = FLOAT + + # Convert double or float to non-float + if dst_channel.type != FLOAT: + if dst_channel.norm: + dst_one = get_one(dst_channel) + if dst_channel.size <= 23: + value = '(%s * 0x%x)' % (value, dst_one) + else: + # bigger than single precision mantissa, use double + value = '(%s * (double)0x%x)' % (value, dst_one) + value = '(%s)%s' % (dst_native_type, value) + else: + # Cast double to float when converting to either half or float + if dst_channel.size <= 32 and src_size > 32: + value = '(float)%s' % value + src_size = 32 + + if dst_channel.size == 16: + value = 'util_float_to_half(%s)' % value + elif dst_channel.size == 64 and src_size < 64: + value = '(double)%s' % value + + return value def generate_unpack_kernel(format, dst_channel, dst_native_type): -- cgit v1.2.3 From d0995544923d8b67098627a8a9e7729613377789 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 13:12:43 +0100 Subject: util: Allow to have block format test cases --- progs/gallium/unit/u_format_test.c | 213 ++++--- src/gallium/auxiliary/util/u_format_tests.c | 903 ++++++++++++++-------------- src/gallium/auxiliary/util/u_format_tests.h | 4 +- 3 files changed, 603 insertions(+), 517 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 54cb6b879e..5d8ffcc6b2 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -33,31 +33,109 @@ #include "util/u_format_tests.h" -static boolean -test_format_fetch_float(const struct util_format_description *format_desc, - const struct util_format_test_case *test) +static void +print_packed(const struct util_format_description *format_desc, + const char *prefix, + const uint8_t *packed, + const char *suffix) { - float unpacked[4]; unsigned i; - boolean success; + const char *sep = ""; + + printf("%s", prefix); + for (i = 0; i < format_desc->block.bits/8; ++i) { + printf("%s%02x", sep, packed[i]); + sep = " "; + } + printf("%s", suffix); +} + - /* - * TODO: test block formats too. - */ - if (format_desc->block.width != 1 && format_desc->block.height != 1) { - return TRUE; +static void +print_unpacked_doubl(const struct util_format_description *format_desc, + const char *prefix, + const double unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4], + const char *suffix) +{ + unsigned i, j; + const char *sep = ""; + + printf("%s", prefix); + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + printf("%s{%f, %f, %f, %f}", sep, unpacked[i][j][0], unpacked[i][j][1], unpacked[i][j][2], unpacked[i][j][3]); + sep = ", "; + } + sep = ",\n"; } + printf("%s", suffix); +} + + +static void +print_unpacked_float(const struct util_format_description *format_desc, + const char *prefix, + const float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4], + const char *suffix) +{ + unsigned i, j; + const char *sep = ""; + + printf("%s", prefix); + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + printf("%s{%f, %f, %f, %f}", sep, unpacked[i][j][0], unpacked[i][j][1], unpacked[i][j][2], unpacked[i][j][3]); + sep = ", "; + } + sep = ",\n"; + } + printf("%s", suffix); +} + + +static void +print_unpacked_8unorm(const struct util_format_description *format_desc, + const char *prefix, + const uint8_t unpacked[][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4], + const char *suffix) +{ + unsigned i, j; + const char *sep = ""; + + printf("%s", prefix); + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + printf("%s{0x%02x, 0x%02x, 0x%02x, 0x%02x}", sep, unpacked[i][j][0], unpacked[i][j][1], unpacked[i][j][2], unpacked[i][j][3]); + sep = ", "; + } + } + printf("%s", suffix); +} - format_desc->fetch_float(unpacked, test->packed, 0, 0); + +static boolean +test_format_fetch_float(const struct util_format_description *format_desc, + const struct util_format_test_case *test) +{ + float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + unsigned i, j, k; + boolean success; success = TRUE; - for (i = 0; i < 4; ++i) - if (test->unpacked[i] != unpacked[i]) - success = FALSE; + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + format_desc->fetch_float(unpacked[i][j], test->packed, j, i); + for (k = 0; k < 4; ++k) { + if (test->unpacked[i][j][k] != unpacked[i][j][k]) { + success = FALSE; + } + } + } + } if (!success) { - printf("FAILED: (%f %f %f %f) obtained\n", unpacked[0], unpacked[1], unpacked[2], unpacked[3]); - printf(" (%f %f %f %f) expected\n", test->unpacked[0], test->unpacked[1], test->unpacked[2], test->unpacked[3]); + print_unpacked_float(format_desc, "FAILED: ", unpacked, " obtained\n"); + print_unpacked_doubl(format_desc, " ", test->unpacked, " expected\n"); } return success; @@ -68,20 +146,26 @@ static boolean test_format_unpack_float(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - float unpacked[4]; - unsigned i; + float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + unsigned i, j, k; boolean success; - format_desc->unpack_float(unpacked, 0, test->packed, 0, 1, 1); + format_desc->unpack_float(&unpacked[0][0][0], sizeof unpacked[0], test->packed, 0, format_desc->block.width, format_desc->block.height); success = TRUE; - for (i = 0; i < 4; ++i) - if (test->unpacked[i] != unpacked[i]) - success = FALSE; + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + for (k = 0; k < 4; ++k) { + if (test->unpacked[i][j][k] != unpacked[i][j][k]) { + success = FALSE; + } + } + } + } if (!success) { - printf("FAILED: (%f %f %f %f) obtained\n", unpacked[0], unpacked[1], unpacked[2], unpacked[3]); - printf(" (%f %f %f %f) expected\n", test->unpacked[0], test->unpacked[1], test->unpacked[2], test->unpacked[3]); + print_unpacked_float(format_desc, "FAILED: ", unpacked, " obtained\n"); + print_unpacked_doubl(format_desc, " ", test->unpacked, " expected\n"); } return success; @@ -89,38 +173,34 @@ test_format_unpack_float(const struct util_format_description *format_desc, static boolean + test_format_pack_float(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - float unpacked[4]; + float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES]; - unsigned i; + unsigned i, j, k; boolean success; memset(packed, 0, sizeof packed); + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + for (k = 0; k < 4; ++k) { + unpacked[i][j][k] = (float) test->unpacked[i][j][k]; + } + } + } - for (i = 0; i < 4; ++i) - unpacked[i] = (float) test->unpacked[i]; - - format_desc->pack_float(packed, 0, unpacked, 0, 1, 1); + format_desc->pack_float(packed, 0, &unpacked[0][0][0], sizeof unpacked[0], format_desc->block.width, format_desc->block.height); success = TRUE; - for (i = 0; i < UTIL_FORMAT_MAX_PACKED_BYTES; ++i) + for (i = 0; i < format_desc->block.bits/8; ++i) if ((test->packed[i] & test->mask[i]) != (packed[i] & test->mask[i])) success = FALSE; if (!success) { - /* TODO: print more than 4 bytes */ - printf("FAILED: (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) obtained\n", - packed[0], packed[1], packed[2], packed[3], - packed[4], packed[5], packed[6], packed[7], - packed[8], packed[9], packed[10], packed[11], - packed[12], packed[13], packed[14], packed[15]); - printf(" (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) expected\n", - test->packed[0], test->packed[1], test->packed[2], test->packed[3], - test->packed[4], test->packed[5], test->packed[6], test->packed[7], - test->packed[8], test->packed[9], test->packed[10], test->packed[11], - test->packed[12], test->packed[13], test->packed[14], test->packed[15]); + print_packed(format_desc, "FAILED: ", packed, " obtained\n"); + print_packed(format_desc, " ", test->packed, " expected\n"); } return success; @@ -133,7 +213,7 @@ convert_float_to_8unorm(uint8_t *dst, const double *src) unsigned i; boolean accurate = TRUE; - for (i = 0; i < 4; ++i) { + for (i = 0; i < UTIL_FORMAT_MAX_UNPACKED_HEIGHT*UTIL_FORMAT_MAX_UNPACKED_WIDTH*4; ++i) { if (src[i] < 0.0) { accurate = FALSE; dst[i] = 0; @@ -155,23 +235,29 @@ static boolean test_format_unpack_8unorm(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - uint8_t unpacked[4]; - uint8_t expected[4]; - unsigned i; + uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + uint8_t expected[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + unsigned i, j, k; boolean success; - format_desc->unpack_8unorm(unpacked, 0, test->packed, 0, 1, 1); + format_desc->unpack_8unorm(&unpacked[0][0][0], 0, test->packed, 0, 1, 1); - convert_float_to_8unorm(expected, test->unpacked); + convert_float_to_8unorm(&expected[0][0][0], &test->unpacked[0][0][0]); success = TRUE; - for (i = 0; i < 4; ++i) - if (expected[i] != unpacked[i]) - success = FALSE; + for (i = 0; i < format_desc->block.height; ++i) { + for (j = 0; j < format_desc->block.width; ++j) { + for (k = 0; k < 4; ++k) { + if (expected[i][j][k] != unpacked[i][j][k]) { + success = FALSE; + } + } + } + } if (!success) { - printf("FAILED: (0x%02x 0x%02x 0x%02x 0x%02x) obtained\n", unpacked[0], unpacked[1], unpacked[2], unpacked[3]); - printf(" (0x%02x 0x%02x 0x%02x 0x%02x) expected\n", expected[0], expected[1], expected[2], expected[3]); + print_unpacked_8unorm(format_desc, "FAILED: ", unpacked, " obtained\n"); + print_unpacked_8unorm(format_desc, " ", expected, " expected\n"); } return success; @@ -182,12 +268,12 @@ static boolean test_format_pack_8unorm(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - uint8_t unpacked[4]; + uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES]; unsigned i; boolean success; - if (!convert_float_to_8unorm(unpacked, test->unpacked)) { + if (!convert_float_to_8unorm(&unpacked[0][0][0], &test->unpacked[0][0][0])) { /* * Skip test cases which cannot be represented by four unorm bytes. */ @@ -196,25 +282,16 @@ test_format_pack_8unorm(const struct util_format_description *format_desc, memset(packed, 0, sizeof packed); - format_desc->pack_8unorm(packed, 0, unpacked, 0, 1, 1); + format_desc->pack_8unorm(packed, 0, &unpacked[0][0][0], sizeof unpacked[0], 1, 1); success = TRUE; - for (i = 0; i < UTIL_FORMAT_MAX_PACKED_BYTES; ++i) + for (i = 0; i < format_desc->block.bits/8; ++i) if ((test->packed[i] & test->mask[i]) != (packed[i] & test->mask[i])) success = FALSE; if (!success) { - /* TODO: print more than 4 bytes */ - printf("FAILED: (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) obtained\n", - packed[0], packed[1], packed[2], packed[3], - packed[4], packed[5], packed[6], packed[7], - packed[8], packed[9], packed[10], packed[11], - packed[12], packed[13], packed[14], packed[15]); - printf(" (%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x) expected\n", - test->packed[0], test->packed[1], test->packed[2], test->packed[3], - test->packed[4], test->packed[5], test->packed[6], test->packed[7], - test->packed[8], test->packed[9], test->packed[10], test->packed[11], - test->packed[12], test->packed[13], test->packed[14], test->packed[15]); + print_packed(format_desc, "FAILED: ", packed, " obtained\n"); + print_packed(format_desc, " ", test->packed, " expected\n"); } return success; diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index a95c4c1566..a2195fb1a9 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -49,6 +49,12 @@ #define PACKED_3x32(x, y, z) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, (y) & 0xff, ((y) >> 8) & 0xff, ((y) >> 16) & 0xff, (y) >> 24, (z) & 0xff, ((z) >> 8) & 0xff, ((z) >> 16) & 0xff, (z) >> 24, 0, 0, 0, 0} #define PACKED_4x32(x, y, z, w) {(x) & 0xff, ((x) >> 8) & 0xff, ((x) >> 16) & 0xff, (x) >> 24, (y) & 0xff, ((y) >> 8) & 0xff, ((y) >> 16) & 0xff, (y) >> 24, (z) & 0xff, ((z) >> 8) & 0xff, ((z) >> 16) & 0xff, (z) >> 24, (w) & 0xff, ((w) >> 8) & 0xff, ((w) >> 16) & 0xff, (w) >> 24} +#define UNPACKED_1x1(r, g, b, a) \ + {{{r, g, b, a}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}} + /** * Test cases. @@ -67,105 +73,105 @@ util_format_test_cases[] = * 32-bit rendertarget formats */ - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x3ff00000), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8A8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x3ff00000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, /* * 16-bit rendertarget formats */ - {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x03e0), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x7c00), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x7fff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x03e0), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7c00), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00f0), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0f00), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x07e0), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf800), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x001f), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x03e0), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x7c00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G5R5X1_UNORM, PACKED_1x16(0x7fff), PACKED_1x16(0x7fff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x03e0), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7c00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00f0), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0f00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x001f), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x07e0), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xf800), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B5G6R5_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, /* * Luminance/intensity/alpha formats */ - {PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, - {PIPE_FORMAT_A8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_A8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {0.0, 0.0, 0.0, 1.0}}, + {PIPE_FORMAT_A8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, - {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, - {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), {1.0, 1.0, 1.0, 0.0}}, - {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xff00), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), UNPACKED_1x1(1.0, 1.0, 1.0, 0.0)}, + {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xff00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, - {PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, /* * TODO: SRGB formats @@ -175,19 +181,19 @@ util_format_test_cases[] = * Mixed-signed formats */ - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x81, 0x00, 0x00, 0x00), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x81, 0x00, 0x00), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x00, 0xff, 0x00), { 0.0, 0.0, 1.0, 1.0}}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x81, 0x00, 0x00, 0x00), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x81, 0x00, 0x00), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0011), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x01e0), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0220), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0xfc00), { 0.0, 0.0, 1.0, 1.0}}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0011), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x01e0), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0220), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0xfc00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, /* * TODO: Depth-stencil formats @@ -201,209 +207,210 @@ util_format_test_cases[] = * TODO: Compressed formats */ + /* * Standard 8-bit integer formats */ - {PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), {1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), {1.0, 1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0xff), {255.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), {255.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), { 0.0, 255.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), {255.0, 255.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), {255.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), { 0.0, 255.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), { 0.0, 0.0, 255.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), {255.0, 255.0, 255.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), {255.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), { 0.0, 255.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), { 0.0, 0.0, 255.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), { 0.0, 0.0, 0.0, 255.0}}, - {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), {255.0, 255.0, 255.0, 255.0}}, - - {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x7f), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x81), {-1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x81, 0x00), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x81), { 0.0, -1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x81, 0x00, 0x00), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x81, 0x00), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), { 0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x81), { 0.0, 0.0, -1.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), { 1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x81, 0x00, 0x00, 0x00), {-1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), { 0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x81, 0x00, 0x00), { 0.0, -1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), { 0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x81, 0x00), { 0.0, 0.0, -1.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x81), { 0.0, 0.0, 0.0, -1.0}}, - - {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x7f), { 127.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x80), {-128.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), { 127.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x80, 0x00), {-128.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), { 0.0, 127.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x80), { 0.0, -128.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), { 127.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x80, 0x00, 0x00), {-128.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), { 0.0, 127.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x80, 0x00), { 0.0, -128.0, 0.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), { 0.0, 0.0, 127.0, 1.0}}, - {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x80), { 0.0, 0.0, -128.0, 1.0}}, - - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), { 127.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0x00, 0x00, 0x00), {-128.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), { 0.0, 127.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x80, 0x00, 0x00), { 0.0, -128.0, 0.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), { 0.0, 0.0, 127.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x80, 0x00), { 0.0, 0.0, -128.0, 0.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), { 0.0, 0.0, 0.0, 127.0}}, - {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x80), { 0.0, 0.0, 0.0, -128.0}}, + {PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_UNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), UNPACKED_1x1(1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_UNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8A8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_USCALED, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(255.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0x00), UNPACKED_1x1(255.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0xff), UNPACKED_1x1( 0.0, 255.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_USCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0xff, 0xff), UNPACKED_1x1(255.0, 255.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), UNPACKED_1x1(255.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), UNPACKED_1x1( 0.0, 255.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), UNPACKED_1x1( 0.0, 0.0, 255.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_USCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), UNPACKED_1x1(255.0, 255.0, 255.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), UNPACKED_1x1(255.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), UNPACKED_1x1( 0.0, 255.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_1x1( 0.0, 0.0, 255.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), UNPACKED_1x1( 0.0, 0.0, 0.0, 255.0)}, + {PIPE_FORMAT_R8G8B8A8_USCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), UNPACKED_1x1(255.0, 255.0, 255.0, 255.0)}, + + {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x7f), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_SNORM, PACKED_1x8(0xff), PACKED_1x8(0x81), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x81, 0x00), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x81), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x81, 0x00, 0x00), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x81, 0x00), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SNORM, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x81), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x81, 0x00, 0x00, 0x00), UNPACKED_1x1(-1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x81, 0x00, 0x00), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x81, 0x00), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8A8_SNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x81), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + + {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x7f), UNPACKED_1x1( 127.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8_SSCALED, PACKED_1x8(0xff), PACKED_1x8(0x80), UNPACKED_1x1(-128.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), UNPACKED_1x1( 127.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x80, 0x00), UNPACKED_1x1(-128.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), UNPACKED_1x1( 0.0, 127.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_SSCALED, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x80), UNPACKED_1x1( 0.0, -128.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x7f, 0x00, 0x00), UNPACKED_1x1( 127.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x80, 0x00, 0x00), UNPACKED_1x1(-128.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x7f, 0x00), UNPACKED_1x1( 0.0, 127.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x80, 0x00), UNPACKED_1x1( 0.0, -128.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x7f), UNPACKED_1x1( 0.0, 0.0, 127.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SSCALED, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x80), UNPACKED_1x1( 0.0, 0.0, -128.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x7f, 0x00, 0x00, 0x00), UNPACKED_1x1( 127.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0x00, 0x00, 0x00), UNPACKED_1x1(-128.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x7f, 0x00, 0x00), UNPACKED_1x1( 0.0, 127.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x80, 0x00, 0x00), UNPACKED_1x1( 0.0, -128.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x7f, 0x00), UNPACKED_1x1( 0.0, 0.0, 127.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x80, 0x00), UNPACKED_1x1( 0.0, 0.0, -128.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x7f), UNPACKED_1x1( 0.0, 0.0, 0.0, 127.0)}, + {PIPE_FORMAT_R8G8B8A8_SSCALED, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x80), UNPACKED_1x1( 0.0, 0.0, 0.0, -128.0)}, /* * Standard 16-bit integer formats */ - {PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), {1.0, 1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0xffff), {65535.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), {65535.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), { 0.0, 65535.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), {65535.0, 65535.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), {65535.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), { 0.0, 65535.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), { 0.0, 0.0, 65535.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), {65535.0, 65535.0, 65535.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), {65535.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), { 0.0, 65535.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), { 0.0, 0.0, 65535.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), { 0.0, 0.0, 0.0, 65535.0}}, - {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), {65535.0, 65535.0, 65535.0, 65535.0}}, - - {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8001), { -1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8001, 0x0000), { -1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8001), { 0.0, -1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8001, 0x0000, 0x0000), { -1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8001, 0x0000), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8001), { 0.0, 0.0, -1.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8001, 0x0000, 0x0000, 0x0000), { -1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), { 0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8001, 0x0000, 0x0000), { 0.0, -1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), { 0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8001, 0x0000), { 0.0, 0.0, -1.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8001), { 0.0, 0.0, 0.0, -1.0}}, - - {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), { 32767.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x8000), {-32768.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), { 32767.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8000, 0x0000), {-32768.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), { 0.0, 32767.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8000), { 0.0, -32768.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), { 32767.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8000, 0x0000, 0x0000), {-32768.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), { 0.0, 32767.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8000, 0x0000), { 0.0, -32768.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 32767.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8000), { 0.0, 0.0, -32768.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), { 32767.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8000, 0x0000, 0x0000, 0x0000), {-32768.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), { 0.0, 32767.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8000, 0x0000, 0x0000), { 0.0, -32768.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), { 0.0, 0.0, 32767.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8000, 0x0000), { 0.0, 0.0, -32768.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), { 0.0, 0.0, 0.0, 32767.0}}, - {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8000), { 0.0, 0.0, 0.0, -32768.0}}, + {PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_UNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), UNPACKED_1x1(1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_UNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16A16_UNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_USCALED, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(65535.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0x0000), UNPACKED_1x1(65535.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xffff), UNPACKED_1x1( 0.0, 65535.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_USCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xffff, 0xffff), UNPACKED_1x1(65535.0, 65535.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0x0000, 0x0000), UNPACKED_1x1(65535.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xffff, 0x0000), UNPACKED_1x1( 0.0, 65535.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xffff), UNPACKED_1x1( 0.0, 0.0, 65535.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_USCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xffff, 0xffff, 0xffff), UNPACKED_1x1(65535.0, 65535.0, 65535.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0x0000, 0x0000, 0x0000), UNPACKED_1x1(65535.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xffff, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 65535.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xffff, 0x0000), UNPACKED_1x1( 0.0, 0.0, 65535.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xffff), UNPACKED_1x1( 0.0, 0.0, 0.0, 65535.0)}, + {PIPE_FORMAT_R16G16B16A16_USCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), UNPACKED_1x1(65535.0, 65535.0, 65535.0, 65535.0)}, + + {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_SNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8001), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8001, 0x0000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SNORM, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8001), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8001, 0x0000, 0x0000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8001, 0x0000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SNORM, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8001), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8001, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( -1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8001, 0x0000, 0x0000), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8001, 0x0000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16A16_SNORM, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8001), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + + {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x7fff), UNPACKED_1x1( 32767.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_SSCALED, PACKED_1x16(0xffff), PACKED_1x16(0x8000), UNPACKED_1x1(-32768.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x7fff, 0x0000), UNPACKED_1x1( 32767.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x8000, 0x0000), UNPACKED_1x1(-32768.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x7fff), UNPACKED_1x1( 0.0, 32767.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_SSCALED, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x8000), UNPACKED_1x1( 0.0, -32768.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x7fff, 0x0000, 0x0000), UNPACKED_1x1( 32767.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x8000, 0x0000, 0x0000), UNPACKED_1x1(-32768.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x7fff, 0x0000), UNPACKED_1x1( 0.0, 32767.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x8000, 0x0000), UNPACKED_1x1( 0.0, -32768.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x7fff), UNPACKED_1x1( 0.0, 0.0, 32767.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_SSCALED, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x8000), UNPACKED_1x1( 0.0, 0.0, -32768.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x7fff, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 32767.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x8000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1(-32768.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x7fff, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 32767.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x8000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, -32768.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x7fff, 0x0000), UNPACKED_1x1( 0.0, 0.0, 32767.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x8000, 0x0000), UNPACKED_1x1( 0.0, 0.0, -32768.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x7fff), UNPACKED_1x1( 0.0, 0.0, 0.0, 32767.0)}, + {PIPE_FORMAT_R16G16B16A16_SSCALED, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x8000), UNPACKED_1x1( 0.0, 0.0, 0.0, -32768.0)}, /* * Standard 32-bit integer formats @@ -412,173 +419,173 @@ util_format_test_cases[] = * with single precision floats, so that's as far as we test. */ - {PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), {1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0x00000000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xffffffff), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0xffffffff), {1.0, 1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0x00000000, 0x00000000), {1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xffffffff, 0x00000000), {0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xffffffff), {0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), {0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0x00000000, 0x00000000, 0x00000000), {1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xffffffff, 0x00000000, 0x00000000), {0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xffffffff, 0x00000000), {0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xffffffff), {0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), {1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), {16777216.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), {16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), { 0.0, 16777216.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x01000000), {16777216.0, 16777216.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), {16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), { 0.0, 16777216.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 16777216.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x01000000, 0x01000000), {16777216.0, 16777216.0, 16777216.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), {16777216.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), { 0.0, 16777216.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), { 0.0, 0.0, 16777216.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 0.0, 16777216.0}}, - {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x01000000, 0x01000000, 0x01000000), {16777216.0, 16777216.0, 16777216.0, 16777216.0}}, - - {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x7fffffff), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x80000001), { -1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x7fffffff, 0x00000000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x80000001, 0x00000000), { -1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x7fffffff), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x80000001), { 0.0, -1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x7fffffff, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x80000001, 0x00000000, 0x00000000), { -1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x7fffffff, 0x00000000), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x80000001, 0x00000000), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x7fffffff), { 0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x80000001), { 0.0, 0.0, -1.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x7fffffff, 0x00000000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x80000001, 0x00000000, 0x00000000, 0x00000000), { -1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x7fffffff, 0x00000000, 0x00000000), { 0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x80000001, 0x00000000, 0x00000000), { 0.0, -1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x7fffffff, 0x00000000), { 0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x80000001, 0x00000000), { 0.0, 0.0, -1.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x7fffffff), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x80000001), { 0.0, 0.0, 0.0, -1.0}}, - - {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), { 16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), {-16777216.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), { 16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xff000000, 0x00000000), {-16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), { 0.0, 16777216.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xff000000), { 0.0, -16777216.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), { 16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xff000000, 0x00000000, 0x00000000), {-16777216.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), { 0.0, 16777216.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xff000000, 0x00000000), { 0.0, -16777216.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 16777216.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xff000000), { 0.0, 0.0, -16777216.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), { 16777216.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xff000000, 0x00000000, 0x00000000, 0x00000000), {-16777216.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), { 0.0, 16777216.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xff000000, 0x00000000, 0x00000000), { 0.0, -16777216.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), { 0.0, 0.0, 16777216.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xff000000, 0x00000000), { 0.0, 0.0, -16777216.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), { 0.0, 0.0, 0.0, 16777216.0}}, - {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xff000000), { 0.0, 0.0, 0.0, -16777216.0}}, + {PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0x00000000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xffffffff), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_UNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffffffff, 0xffffffff), UNPACKED_1x1(1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0x00000000, 0x00000000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xffffffff, 0x00000000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xffffffff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_UNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xffffffff, 0x00000000, 0x00000000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xffffffff, 0x00000000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xffffffff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32A32_UNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_USCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), UNPACKED_1x1(16777216.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), UNPACKED_1x1(16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_USCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x01000000), UNPACKED_1x1(16777216.0, 16777216.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), UNPACKED_1x1(16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 0.0, 16777216.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_USCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x01000000, 0x01000000), UNPACKED_1x1(16777216.0, 16777216.0, 16777216.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(16777216.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 16777216.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 16777216.0)}, + {PIPE_FORMAT_R32G32B32A32_USCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x01000000, 0x01000000, 0x01000000), UNPACKED_1x1(16777216.0, 16777216.0, 16777216.0, 16777216.0)}, + + {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x7fffffff), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_SNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x80000001), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x7fffffff, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x80000001, 0x00000000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x7fffffff), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SNORM, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x80000001), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x7fffffff, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x80000001, 0x00000000, 0x00000000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x7fffffff, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x80000001, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x7fffffff), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SNORM, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x80000001), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x7fffffff, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x80000001, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( -1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x7fffffff, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x80000001, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x7fffffff, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x80000001, 0x00000000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x7fffffff), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32A32_SNORM, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x80000001), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + + {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0x01000000), UNPACKED_1x1( 16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_SSCALED, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(-16777216.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x01000000, 0x00000000), UNPACKED_1x1( 16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xff000000, 0x00000000), UNPACKED_1x1(-16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_SSCALED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xff000000), UNPACKED_1x1( 0.0, -16777216.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x01000000, 0x00000000, 0x00000000), UNPACKED_1x1( 16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xff000000, 0x00000000, 0x00000000), UNPACKED_1x1(-16777216.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x01000000, 0x00000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xff000000, 0x00000000), UNPACKED_1x1( 0.0, -16777216.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 0.0, 16777216.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_SSCALED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xff000000), UNPACKED_1x1( 0.0, 0.0, -16777216.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x01000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 16777216.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xff000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(-16777216.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x01000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 16777216.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xff000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, -16777216.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x01000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 16777216.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xff000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, -16777216.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x01000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 16777216.0)}, + {PIPE_FORMAT_R32G32B32A32_SSCALED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xff000000), UNPACKED_1x1( 0.0, 0.0, 0.0, -16777216.0)}, /* * Standard 32-bit float formats */ - {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0xbf800000), { -1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xbf800000, 0x00000000), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x3f800000), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xbf800000), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x3f800000), { 1.0, 1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xbf800000, 0x00000000, 0x00000000), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x3f800000, 0x00000000), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xbf800000, 0x00000000), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x3f800000), { 0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xbf800000), { 0.0, 0.0, -1.0, 1.0}}, - {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x3f800000, 0x3f800000), { 1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x00000000, 0x00000000, 0x00000000), { 1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xbf800000, 0x00000000, 0x00000000, 0x00000000), {-1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x3f800000, 0x00000000, 0x00000000), { 0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xbf800000, 0x00000000, 0x00000000), { 0.0, -1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x3f800000, 0x00000000), { 0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xbf800000, 0x00000000), { 0.0, 0.0, -1.0, 0.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x3f800000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xbf800000), { 0.0, 0.0, 0.0, -1.0}}, - {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000), { 1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0xbf800000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xbf800000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x3f800000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xbf800000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FLOAT, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x3f800000, 0x3f800000), UNPACKED_1x1( 1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xbf800000, 0x00000000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x3f800000, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xbf800000, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x3f800000), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xbf800000), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FLOAT, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x3f800000, 0x3f800000, 0x3f800000), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xbf800000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x3f800000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xbf800000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x3f800000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xbf800000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x3f800000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xbf800000), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + {PIPE_FORMAT_R32G32B32A32_FLOAT, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, /* * Half float formats */ - {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x3c00), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0xbc00), { -1.0, 0.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xbc00, 0x0000), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x3c00), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xbc00), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x3c00), { 1.0, 1.0, 0.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xbc00, 0x0000, 0x0000), {-1.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x3c00, 0x0000), { 0.0, 1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xbc00, 0x0000), { 0.0, -1.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x3c00), { 0.0, 0.0, 1.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xbc00), { 0.0, 0.0, -1.0, 1.0}}, - {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x3c00, 0x3c00), { 1.0, 1.0, 1.0, 1.0}}, - - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), { 0.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x0000, 0x0000, 0x0000), { 1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xbc00, 0x0000, 0x0000, 0x0000), {-1.0, 0.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x3c00, 0x0000, 0x0000), { 0.0, 1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xbc00, 0x0000, 0x0000), { 0.0, -1.0, 0.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x3c00, 0x0000), { 0.0, 0.0, 1.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xbc00, 0x0000), { 0.0, 0.0, -1.0, 0.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x3c00), { 0.0, 0.0, 0.0, 1.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xbc00), { 0.0, 0.0, 0.0, -1.0}}, - {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x3c00, 0x3c00, 0x3c00), { 1.0, 1.0, 1.0, 1.0}}, + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0x3c00), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16_FLOAT, PACKED_1x16(0xffff), PACKED_1x16(0xbc00), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0xbc00, 0x0000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0x3c00), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x0000, 0xbc00), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16_FLOAT, PACKED_2x16(0xffff, 0xffff), PACKED_2x16(0x3c00, 0x3c00), UNPACKED_1x1( 1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x0000, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0xbc00, 0x0000, 0x0000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x3c00, 0x0000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0xbc00, 0x0000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0x3c00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x0000, 0x0000, 0xbc00), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + {PIPE_FORMAT_R16G16B16_FLOAT, PACKED_3x16(0xffff, 0xffff, 0xffff), PACKED_3x16(0x3c00, 0x3c00, 0x3c00), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x0000, 0x0000, 0x0000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0xbc00, 0x0000, 0x0000, 0x0000), UNPACKED_1x1(-1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x3c00, 0x0000, 0x0000), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0xbc00, 0x0000, 0x0000), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x3c00, 0x0000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0xbc00, 0x0000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x3c00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xbc00), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x3c00, 0x3c00, 0x3c00), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, }; diff --git a/src/gallium/auxiliary/util/u_format_tests.h b/src/gallium/auxiliary/util/u_format_tests.h index 2d4d9d5fa9..f59563f4f4 100644 --- a/src/gallium/auxiliary/util/u_format_tests.h +++ b/src/gallium/auxiliary/util/u_format_tests.h @@ -35,6 +35,8 @@ #define UTIL_FORMAT_MAX_PACKED_BYTES 16 +#define UTIL_FORMAT_MAX_UNPACKED_WIDTH 4 +#define UTIL_FORMAT_MAX_UNPACKED_HEIGHT 4 /** @@ -55,7 +57,7 @@ struct util_format_test_case /** * RGBA. */ - double unpacked[4]; + double unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; }; -- cgit v1.2.3 From 9899ebd2fcb099279320d0bf77221d6b1e6e7cd9 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 13:20:00 +0100 Subject: llvmpipe: Fix build... --- src/gallium/drivers/llvmpipe/lp_tile_soa.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index 4157000bc5..c1226e499c 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -45,6 +45,28 @@ sys.path.insert(0, os.path.join(os.path.dirname(sys.argv[0]), '../../auxiliary/u from u_format_pack import * +def is_format_supported(format): + '''Determines whether we actually have the plumbing necessary to generate the + to read/write to/from this format.''' + + # FIXME: Ideally we would support any format combination here. + + if format.layout != PLAIN: + return False + + for i in range(4): + channel = format.channels[i] + if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT): + return False + if channel.type == FLOAT and channel.size not in (32 ,64): + return False + + if format.colorspace not in ('rgb', 'srgb'): + return False + + return True + + def generate_format_read(format, dst_channel, dst_native_type, dst_suffix): '''Generate the function to read pixels from a particular format''' @@ -333,6 +355,7 @@ def main(): print '#include "pipe/p_compiler.h"' print '#include "util/u_format.h"' print '#include "util/u_math.h"' + print '#include "util/u_half.h"' print '#include "lp_tile_soa.h"' print print 'const unsigned char' -- cgit v1.2.3 From ca6aacf842c0075f12907d13fec89cc7f1eac4f0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 13:34:24 +0100 Subject: util: Add test case for PIPE_FORMAT_DXT1_RGB. --- progs/gallium/unit/u_format_test.c | 42 +++++++++++++++++++++++++---- src/gallium/auxiliary/util/u_format_tests.c | 32 ++++++++++++++++++++++ 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 5d8ffcc6b2..9cead79589 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -28,9 +28,28 @@ #include #include +#include #include "util/u_format.h" #include "util/u_format_tests.h" +#include "util/u_format_s3tc.h" + + +static boolean +compare_float(float x, float y) +{ + float error = y - x; + + if (error < 0.0f) + error = -error; + + if (error > FLT_EPSILON) { + printf("error = %g\n", error); + return FALSE; + } + + return TRUE; +} static void @@ -126,7 +145,7 @@ test_format_fetch_float(const struct util_format_description *format_desc, for (j = 0; j < format_desc->block.width; ++j) { format_desc->fetch_float(unpacked[i][j], test->packed, j, i); for (k = 0; k < 4; ++k) { - if (test->unpacked[i][j][k] != unpacked[i][j][k]) { + if (!compare_float(test->unpacked[i][j][k], unpacked[i][j][k])) { success = FALSE; } } @@ -156,7 +175,7 @@ test_format_unpack_float(const struct util_format_description *format_desc, for (i = 0; i < format_desc->block.height; ++i) { for (j = 0; j < format_desc->block.width; ++j) { for (k = 0; k < 4; ++k) { - if (test->unpacked[i][j][k] != unpacked[i][j][k]) { + if (!compare_float(test->unpacked[i][j][k], unpacked[i][j][k])) { success = FALSE; } } @@ -313,15 +332,26 @@ test_one(test_func_t func, const char *suffix) for (i = 0; i < util_format_nr_test_cases; ++i) { const struct util_format_test_case *test = &util_format_test_cases[i]; const struct util_format_description *format_desc; + bool skip = FALSE; + format_desc = util_format_description(test->format); + if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC && + !util_format_s3tc_enabled) { + skip = TRUE; + } + if (test->format != last_format) { - printf("Testing util_format_%s_%s ...\n", format_desc->short_name, suffix); + printf("%s util_format_%s_%s ...\n", + skip ? "Skipping" : "Testing", format_desc->short_name, suffix); last_format = test->format; } - if (!func(format_desc, &util_format_test_cases[i])) - success = FALSE; + if (!skip) { + if (!func(format_desc, &util_format_test_cases[i])) { + success = FALSE; + } + } } return success; @@ -356,6 +386,8 @@ int main(int argc, char **argv) { boolean success; + util_format_s3tc_init(); + success = test_all(); return success ? 0 : 1; diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index a2195fb1a9..816f4fd985 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -38,6 +38,7 @@ #define PACKED_2x8(x, y) {x, y, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} #define PACKED_3x8(x, y, z) {x, y, z, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} #define PACKED_4x8(x, y, z, w) {x, y, z, w, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#define PACKED_8x8(a, b, c, d, e, f, g, h) {a, b, c, d, e, f, g, h, 0, 0, 0, 0, 0, 0, 0, 0} #define PACKED_1x16(x) {(x) & 0xff, (x) >> 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} #define PACKED_2x16(x, y) {(x) & 0xff, (x) >> 8, (y) & 0xff, (y) >> 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} @@ -207,6 +208,37 @@ util_format_test_cases[] = * TODO: Compressed formats */ + { + PIPE_FORMAT_DXT1_RGB, + PACKED_8x8(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff), + PACKED_8x8(0xf2, 0xd7, 0xb0, 0x20, 0xae, 0x2c, 0x6f, 0x97), + { + { + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, + 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0 + }, + { + 0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0, + 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, + 0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0 + }, + { + 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, + 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, + 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0 + }, + { + 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, + 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0, + 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0, + 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0 + } + } + }, /* * Standard 8-bit integer formats -- cgit v1.2.3 From 8548efbe1d2ebc9cfe5636d3e0f3064958ad0644 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 14:43:35 +0100 Subject: util: Get DXT1_RGB format working correctly. --- progs/gallium/unit/u_format_test.c | 21 ++++++++++-- src/gallium/auxiliary/util/u_format_s3tc.c | 55 +++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 9cead79589..be47b15d90 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -44,7 +44,6 @@ compare_float(float x, float y) error = -error; if (error > FLT_EPSILON) { - printf("error = %g\n", error); return FALSE; } @@ -201,6 +200,15 @@ test_format_pack_float(const struct util_format_description *format_desc, unsigned i, j, k; boolean success; + if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) { + /* + * Skip S3TC as packed representation is not canonical. + * + * TODO: Do a round trip conversion. + */ + return TRUE; + } + memset(packed, 0, sizeof packed); for (i = 0; i < format_desc->block.height; ++i) { for (j = 0; j < format_desc->block.width; ++j) { @@ -259,7 +267,7 @@ test_format_unpack_8unorm(const struct util_format_description *format_desc, unsigned i, j, k; boolean success; - format_desc->unpack_8unorm(&unpacked[0][0][0], 0, test->packed, 0, 1, 1); + format_desc->unpack_8unorm(&unpacked[0][0][0], sizeof unpacked[0], test->packed, 0, 1, 1); convert_float_to_8unorm(&expected[0][0][0], &test->unpacked[0][0][0]); @@ -292,6 +300,15 @@ test_format_pack_8unorm(const struct util_format_description *format_desc, unsigned i; boolean success; + if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) { + /* + * Skip S3TC as packed representation is not canonical. + * + * TODO: Do a round trip conversion. + */ + return TRUE; + } + if (!convert_float_to_8unorm(&unpacked[0][0][0], &test->unpacked[0][0][0])) { /* * Skip test cases which cannot be represented by four unorm bytes. diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 4fe00b0e43..bb1d6d5ee0 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -188,12 +188,43 @@ util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, un void util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxt1_rgb_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt1_rgb_fetch(0, src, i, j, dst); + } + } + src += 8; + } + src_row += src_stride; + } + } } void util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - + if (util_format_dxt1_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt1_rgba_fetch(0, src, i, j, dst); + } + } + src += 8; + } + src_row += src_stride; + } + } } void @@ -320,6 +351,28 @@ util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][3]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 3; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; + } + } + } + util_format_dxtn_pack(3, 4, 4, src, UTIL_FORMAT_DXT1_RGB, dst, dst_stride); + src += 4*4; + dst += 8; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void -- cgit v1.2.3 From 08eb07bc83c9ba81ad5b497b8991d1069e17f4d7 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 15:07:14 +0100 Subject: util: Add support for other DXTn RGBA formats. --- progs/gallium/unit/u_format_test.c | 4 +- src/gallium/auxiliary/util/u_format_s3tc.c | 192 +++++++++++++++++++++++++++- src/gallium/auxiliary/util/u_format_tests.c | 128 ++++++++++++++++--- 3 files changed, 300 insertions(+), 24 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index be47b15d90..b8c54aec8d 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -200,7 +200,7 @@ test_format_pack_float(const struct util_format_description *format_desc, unsigned i, j, k; boolean success; - if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) { + if (test->format == PIPE_FORMAT_DXT1_RGBA) { /* * Skip S3TC as packed representation is not canonical. * @@ -300,7 +300,7 @@ test_format_pack_8unorm(const struct util_format_description *format_desc, unsigned i; boolean success; - if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) { + if (test->format == PIPE_FORMAT_DXT1_RGBA) { /* * Skip S3TC as packed representation is not canonical. * diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index bb1d6d5ee0..268f0e8dfa 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -181,8 +181,6 @@ util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, un /* * Block decompression. - * - * FIXME */ void @@ -230,11 +228,43 @@ util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxt3_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt3_rgba_fetch(0, src, i, j, dst); + } + } + src += 16; + } + src_row += src_stride; + } + } } void util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxt5_rgba_fetch) { + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt5_rgba_fetch(0, src, i, j, dst); + } + } + src += 16; + } + src_row += src_stride; + } + } } void @@ -344,8 +374,6 @@ util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui /* * Block compression. - * - * FIXME */ void @@ -365,7 +393,7 @@ util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const ui } } } - util_format_dxtn_pack(3, 4, 4, src, UTIL_FORMAT_DXT1_RGB, dst, dst_stride); + util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); src += 4*4; dst += 8; } @@ -378,36 +406,190 @@ util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); + src += 4*4; + dst += 8; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][3]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 3; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); + } + } + } + util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); + src += 4*4; + dst += 8; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); + src += 4*4; + dst += 8; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } void util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { + if (util_format_dxtn_pack) { + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); + } + } + } + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; + } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); + } + } } diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index 816f4fd985..0f81dcb79b 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -205,7 +205,7 @@ util_format_test_cases[] = */ /* - * TODO: Compressed formats + * Compressed formats */ { @@ -214,31 +214,125 @@ util_format_test_cases[] = PACKED_8x8(0xf2, 0xd7, 0xb0, 0x20, 0xae, 0x2c, 0x6f, 0x97), { { - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, - 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0 + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0}, + {0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0}, + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0}, + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0} }, { - 0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0, - 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, - 0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0 + {0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0}, + {0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0}, + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0}, + {0xd6/255.0, 0xff/255.0, 0x94/255.0, 0xff/255.0} }, { - 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, - 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0, - 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0 + {0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0}, + {0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0}, + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0}, + {0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0} }, { - 0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0, - 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0, - 0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0, - 0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0 + {0x5d/255.0, 0x62/255.0, 0x89/255.0, 0xff/255.0}, + {0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0}, + {0x21/255.0, 0x14/255.0, 0x84/255.0, 0xff/255.0}, + {0x99/255.0, 0xb0/255.0, 0x8e/255.0, 0xff/255.0} } } }, + { + PIPE_FORMAT_DXT1_RGBA, + PACKED_8x8(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff), + PACKED_8x8(0xff, 0x2f, 0xa4, 0x72, 0xeb, 0xb2, 0xbd, 0xbe), + { + { + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0}, + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0} + }, + { + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0}, + {0x29/255.0, 0xff/255.0, 0xff/255.0, 0xff/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0} + }, + { + {0x73/255.0, 0x55/255.0, 0x21/255.0, 0xff/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0} + }, + { + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x00/255.0, 0x00/255.0, 0x00/255.0, 0x00/255.0}, + {0x4e/255.0, 0xaa/255.0, 0x90/255.0, 0xff/255.0} + } + } + }, + { + PIPE_FORMAT_DXT3_RGBA, + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + {0xe7, 0x4a, 0x8f, 0x96, 0x5b, 0xc1, 0x1c, 0x84, 0xf6, 0x8f, 0xab, 0x32, 0x2a, 0x9a, 0x95, 0x5a}, + { + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x77/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xee/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xaa/255.0}, + {0x8c/255.0, 0xff/255.0, 0xb5/255.0, 0x44/255.0} + }, + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xff/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x88/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x66/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x99/255.0} + }, + { + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0xbb/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x55/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x11/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xcc/255.0} + }, + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xcc/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x11/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x44/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x88/255.0} + } + } + }, + { + PIPE_FORMAT_DXT5_RGBA, + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + {0xf8, 0x11, 0xc5, 0x0c, 0x9a, 0x73, 0xb4, 0x9c, 0xf6, 0x8f, 0xab, 0x32, 0x2a, 0x9a, 0x95, 0x5a}, + { + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x74/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xf8/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xb6/255.0}, + {0x8c/255.0, 0xff/255.0, 0xb5/255.0, 0x53/255.0} + }, + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xf8/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x95/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x53/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x95/255.0} + }, + { + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0xb6/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x53/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x11/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xd7/255.0} + }, + { + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0xb6/255.0}, + {0x6d/255.0, 0xc6/255.0, 0x96/255.0, 0x11/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x32/255.0}, + {0x31/255.0, 0x55/255.0, 0x5a/255.0, 0x95/255.0} + } + } + }, + /* * Standard 8-bit integer formats -- cgit v1.2.3 From 982d36667dcb53236cfd9668b56f7e91d49e9f0a Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 15:11:05 +0100 Subject: util: Use u_math.h's union fi instead of redefining it. --- src/gallium/auxiliary/util/u_half.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 464d43df8a..54e7c7458e 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -2,6 +2,7 @@ #define U_HALF_H #include "pipe/p_compiler.h" +#include "u_math.h" extern uint32_t util_half_to_float_mantissa_table[2048]; extern uint32_t util_half_to_float_exponent_table[64]; @@ -31,8 +32,8 @@ util_half_to_floatui(half h) static INLINE float util_half_to_float(half h) { - union {float f; uint32_t v;} r; - r.v = util_half_to_floatui(h); + union fi r; + r.ui = util_half_to_floatui(h); return r.f; } @@ -47,9 +48,9 @@ util_floatui_to_half(uint32_t v) static INLINE half util_float_to_half(float f) { - union {float f; uint32_t v;} i; + union fi i; i.f = f; - return util_floatui_to_half(i.v); + return util_floatui_to_half(i.ui); } #endif /* U_HALF_H */ -- cgit v1.2.3 From 89034b8ae71ca12f9a12935807a33caa686ede00 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 15:15:28 +0100 Subject: util: Declare util_half_init_tables only once. --- src/gallium/auxiliary/util/u_gctors.cpp | 2 +- src/gallium/auxiliary/util/u_half.c | 3 --- src/gallium/auxiliary/util/u_half.h | 14 ++++++++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_gctors.cpp b/src/gallium/auxiliary/util/u_gctors.cpp index 9ea9819d73..3d2dc5b7ad 100644 --- a/src/gallium/auxiliary/util/u_gctors.cpp +++ b/src/gallium/auxiliary/util/u_gctors.cpp @@ -4,7 +4,7 @@ __attribute__((constructor)) allows to do this in C, but is GCC-only */ -extern "C" void util_half_init_tables(void); +#include "u_half.h" struct util_gctor_t { diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 8865acb76b..62d74d4c6f 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -22,9 +22,6 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -/* called by u_gctors.cpp, which defines the prototype itself */ -void util_half_init_tables(void); - void util_half_init_tables(void) { int i; diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 54e7c7458e..0ca660faf3 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -4,6 +4,12 @@ #include "pipe/p_compiler.h" #include "u_math.h" + +#ifdef __cplusplus +extern "C" { +#endif + + extern uint32_t util_half_to_float_mantissa_table[2048]; extern uint32_t util_half_to_float_exponent_table[64]; extern uint32_t util_half_to_float_offset_table[64]; @@ -53,4 +59,12 @@ util_float_to_half(float f) return util_floatui_to_half(i.ui); } +/* called by u_gctors.cpp, which defines the prototype itself */ +void util_half_init_tables(void); + + +#ifdef __cplusplus +} +#endif + #endif /* U_HALF_H */ -- cgit v1.2.3 From 6b1a8e0f877c780420ba392cb1e55963507dc5cf Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 15:15:57 +0100 Subject: gallium/unit: Invoke util_half_init_tables(). half float formats now pass the tests. --- progs/gallium/unit/u_format_test.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index b8c54aec8d..6ccef23617 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -30,6 +30,7 @@ #include #include +#include "util/u_half.h" #include "util/u_format.h" #include "util/u_format_tests.h" #include "util/u_format_s3tc.h" @@ -403,6 +404,7 @@ int main(int argc, char **argv) { boolean success; + util_half_init_tables(); util_format_s3tc_init(); success = test_all(); -- cgit v1.2.3 From 2da7ef077a494373904f2e8ad4fcd3885c2bba9b Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 15:16:26 +0100 Subject: llvmpipe: More tweaks to the supported texture formats. --- src/gallium/drivers/llvmpipe/lp_screen.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 3d6c7930a0..5ad581bd17 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -191,14 +191,14 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen, break; } - if(tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) { - if(format_desc->block.width != 1 || - format_desc->block.height != 1) - return FALSE; + if(format_desc->block.width != 1 || + format_desc->block.height != 1) + return FALSE; - if(format_desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) - return FALSE; + if(format_desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) + return FALSE; + if(tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) { if(format_desc->colorspace != UTIL_FORMAT_COLORSPACE_RGB && format_desc->colorspace != UTIL_FORMAT_COLORSPACE_SRGB) return FALSE; @@ -228,10 +228,6 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen, if(format_desc->colorspace != UTIL_FORMAT_COLORSPACE_RGB && format_desc->colorspace != UTIL_FORMAT_COLORSPACE_ZS) return FALSE; - - /* not supported yet */ - if (format == PIPE_FORMAT_Z16_UNORM) - return FALSE; } return TRUE; -- cgit v1.2.3 From c727ef01083c873abfaf3c79b28d7cbcd6361bf3 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 11:17:43 +0800 Subject: progs/egl: Move demos a level deeper. Move the demos to "opengl" subdirectory. --- configs/linux-dri | 2 +- configs/linux-egl | 2 +- configure.ac | 2 +- progs/egl/.gitignore | 12 - progs/egl/Makefile | 70 --- progs/egl/demo1.c | 147 ------- progs/egl/demo2.c | 216 ---------- progs/egl/demo3.c | 647 ---------------------------- progs/egl/eglgears.c | 482 --------------------- progs/egl/eglinfo.c | 223 ---------- progs/egl/eglscreen.c | 120 ------ progs/egl/egltri.c | 264 ------------ progs/egl/opengl/.gitignore | 12 + progs/egl/opengl/Makefile | 70 +++ progs/egl/opengl/demo1.c | 147 +++++++ progs/egl/opengl/demo2.c | 216 ++++++++++ progs/egl/opengl/demo3.c | 647 ++++++++++++++++++++++++++++ progs/egl/opengl/eglgears.c | 482 +++++++++++++++++++++ progs/egl/opengl/eglinfo.c | 223 ++++++++++ progs/egl/opengl/eglscreen.c | 120 ++++++ progs/egl/opengl/egltri.c | 264 ++++++++++++ progs/egl/opengl/peglgears.c | 451 +++++++++++++++++++ progs/egl/opengl/xegl_tri.c | 361 ++++++++++++++++ progs/egl/opengl/xeglgears.c | 954 +++++++++++++++++++++++++++++++++++++++++ progs/egl/opengl/xeglthreads.c | 775 +++++++++++++++++++++++++++++++++ progs/egl/peglgears.c | 451 ------------------- progs/egl/xegl_tri.c | 361 ---------------- progs/egl/xeglgears.c | 954 ----------------------------------------- progs/egl/xeglthreads.c | 775 --------------------------------- 29 files changed, 4725 insertions(+), 4725 deletions(-) delete mode 100644 progs/egl/.gitignore delete mode 100644 progs/egl/Makefile delete mode 100644 progs/egl/demo1.c delete mode 100644 progs/egl/demo2.c delete mode 100644 progs/egl/demo3.c delete mode 100644 progs/egl/eglgears.c delete mode 100644 progs/egl/eglinfo.c delete mode 100644 progs/egl/eglscreen.c delete mode 100644 progs/egl/egltri.c create mode 100644 progs/egl/opengl/.gitignore create mode 100644 progs/egl/opengl/Makefile create mode 100644 progs/egl/opengl/demo1.c create mode 100644 progs/egl/opengl/demo2.c create mode 100644 progs/egl/opengl/demo3.c create mode 100644 progs/egl/opengl/eglgears.c create mode 100644 progs/egl/opengl/eglinfo.c create mode 100644 progs/egl/opengl/eglscreen.c create mode 100644 progs/egl/opengl/egltri.c create mode 100644 progs/egl/opengl/peglgears.c create mode 100644 progs/egl/opengl/xegl_tri.c create mode 100644 progs/egl/opengl/xeglgears.c create mode 100644 progs/egl/opengl/xeglthreads.c delete mode 100644 progs/egl/peglgears.c delete mode 100644 progs/egl/xegl_tri.c delete mode 100644 progs/egl/xeglgears.c delete mode 100644 progs/egl/xeglthreads.c diff --git a/configs/linux-dri b/configs/linux-dri index e21a3e9594..9017becdaf 100644 --- a/configs/linux-dri +++ b/configs/linux-dri @@ -52,7 +52,7 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ # Directories SRC_DIRS := glx egl $(SRC_DIRS) -PROGRAM_DIRS := egl $(PROGRAM_DIRS) +PROGRAM_DIRS := egl/opengl $(PROGRAM_DIRS) # EGL directories EGL_DRIVERS_DIRS = glx diff --git a/configs/linux-egl b/configs/linux-egl index 28165ed5b5..cd664b4171 100644 --- a/configs/linux-egl +++ b/configs/linux-egl @@ -48,7 +48,7 @@ GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ # Directories SRC_DIRS = gallium mesa gallium/winsys gallium/targets glu egl -PROGRAM_DIRS = egl +PROGRAM_DIRS = egl/opengl DRIVER_DIRS = dri GALLIUM_WINSYS_DIRS = egl_drm diff --git a/configure.ac b/configure.ac index f2e87f4d4c..5647442ea1 100644 --- a/configure.ac +++ b/configure.ac @@ -954,7 +954,7 @@ if test "x$enable_egl" = xyes; then fi if test "$with_demos" = yes; then - PROGRAM_DIRS="$PROGRAM_DIRS egl" + PROGRAM_DIRS="$PROGRAM_DIRS egl/opengl" fi fi AC_SUBST([EGL_LIB_DEPS]) diff --git a/progs/egl/.gitignore b/progs/egl/.gitignore deleted file mode 100644 index 7a13d4686a..0000000000 --- a/progs/egl/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -demo1 -demo2 -demo3 -eglgears -eglinfo -eglscreen -egltri -peglgears -xeglbindtex -xeglgears -xeglthreads -xegl_tri diff --git a/progs/egl/Makefile b/progs/egl/Makefile deleted file mode 100644 index 890240f9a3..0000000000 --- a/progs/egl/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# progs/egl/Makefile - -TOP = ../.. -include $(TOP)/configs/current - - -INCLUDE_DIRS = -I$(TOP)/include - -HEADERS = $(TOP)/include/GLES/egl.h -LIB_DEP = $(TOP)/$(LIB_DIR)/libEGL.so - -LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL - -PROGRAMS = \ - demo1 \ - demo2 \ - demo3 \ - egltri \ - eglinfo \ - eglgears \ - eglscreen \ - peglgears \ - xeglgears \ - xeglthreads \ - xegl_tri - - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - - -default: $(PROGRAMS) - -demo1: demo1.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - -demo2: demo2.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - -demo3: demo3.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - -egltri: egltri.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - -eglinfo: eglinfo.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) - -eglgears: eglgears.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm - -eglscreen: eglscreen.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - -peglgears: peglgears.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm - -xeglgears: xeglgears.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) - -xeglthreads: xeglthreads.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lpthread -lm $(X11_LIBS) - -xegl_tri: xegl_tri.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) - -clean: - -rm -f *.o *~ - -rm -f $(PROGRAMS) diff --git a/progs/egl/demo1.c b/progs/egl/demo1.c deleted file mode 100644 index d892734ee5..0000000000 --- a/progs/egl/demo1.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Exercise EGL API functions - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include - - -/** - * Test EGL_MESA_screen_surface functions - */ -static void -TestScreens(EGLDisplay dpy) -{ -#define MAX 8 - EGLScreenMESA screens[MAX]; - EGLint numScreens; - EGLint i; - - eglGetScreensMESA(dpy, screens, MAX, &numScreens); - printf("Found %d screens\n", numScreens); - for (i = 0; i < numScreens; i++) { - printf(" Screen %d handle: %d\n", i, (int) screens[i]); - } -} - -/** - * Print table of all available configurations. - */ -static void -PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs) -{ - EGLint i; - - printf("Configurations:\n"); - printf(" bf lv d st colorbuffer dp st supported \n"); - printf(" id sz l b ro r g b a th cl surfaces \n"); - printf("----------------------------------------------\n"); - for (i = 0; i < numConfigs; i++) { - EGLint id, size, level; - EGLint red, green, blue, alpha; - EGLint depth, stencil; - EGLint surfaces; - EGLint doubleBuf = 1, stereo = 0; - char surfString[100] = ""; - - eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); - eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size); - eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level); - - eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); - eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green); - eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue); - eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha); - eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); - eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil); - eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces); - - if (surfaces & EGL_WINDOW_BIT) - strcat(surfString, "win,"); - if (surfaces & EGL_PBUFFER_BIT) - strcat(surfString, "pb,"); - if (surfaces & EGL_PIXMAP_BIT) - strcat(surfString, "pix,"); - if (strlen(surfString) > 0) - surfString[strlen(surfString) - 1] = 0; - - printf("0x%02x %2d %2d %c %c %2d %2d %2d %2d %2d %2d %-12s\n", - id, size, level, - doubleBuf ? 'y' : '.', - stereo ? 'y' : '.', - red, green, blue, alpha, - depth, stencil, surfString); - } -} - - - -int -main(int argc, char *argv[]) -{ - int maj, min; - EGLContext ctx; - EGLSurface pbuffer; - EGLConfig *configs; - EGLint numConfigs; - EGLBoolean b; - const EGLint pbufAttribs[] = { - EGL_WIDTH, 500, - EGL_HEIGHT, 500, - EGL_NONE - }; - - EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("demo: eglInitialize failed\n"); - exit(1); - } - - printf("EGL version = %d.%d\n", maj, min); - printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - eglGetConfigs(d, NULL, 0, &numConfigs); - configs = malloc(sizeof(*configs) *numConfigs); - eglGetConfigs(d, configs, numConfigs, &numConfigs); - - PrintConfigs(d, configs, numConfigs); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("failed to create context\n"); - return 0; - } - - pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs); - if (pbuffer == EGL_NO_SURFACE) { - printf("failed to create pbuffer\n"); - return 0; - } - - free(configs); - - b = eglMakeCurrent(d, pbuffer, pbuffer, ctx); - if (!b) { - printf("make current failed\n"); - return 0; - } - - b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - - TestScreens(d); - - eglDestroySurface(d, pbuffer); - eglDestroyContext(d, ctx); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/demo2.c b/progs/egl/demo2.c deleted file mode 100644 index b9e92f62ac..0000000000 --- a/progs/egl/demo2.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Exercise EGL API functions - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*#define FRONTBUFFER*/ - -static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2, - GLfloat r, GLfloat g, GLfloat b) -{ - GLfloat v[4][2], c[4][4]; - int i; - - v[0][0] = x1; v[0][1] = y1; - v[1][0] = x2; v[1][1] = y1; - v[2][0] = x2; v[2][1] = y2; - v[3][0] = x1; v[3][1] = y2; - - for (i = 0; i < 4; i++) { - c[i][0] = r; - c[i][1] = g; - c[i][2] = b; - c[i][3] = 1.0; - } - - glVertexPointer(2, GL_FLOAT, 0, v); - glColorPointer(4, GL_FLOAT, 0, v); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); -} - - -static void redraw(EGLDisplay dpy, EGLSurface surf, int rot) -{ - GLfloat r, g, b; - - printf("Redraw event\n"); - - glClearColor( rand()/(float)RAND_MAX, - rand()/(float)RAND_MAX, - rand()/(float)RAND_MAX, - 1); - - glClear( GL_COLOR_BUFFER_BIT ); - - r = rand()/(float)RAND_MAX; - g = rand()/(float)RAND_MAX; - b = rand()/(float)RAND_MAX; - - glPushMatrix(); - glRotatef(rot, 0, 0, 1); - glScalef(.5, .5, .5); - _subset_Rectf( -1, -1, 1, 1, r, g, b ); - glPopMatrix(); - -#ifdef FRONTBUFFER - glFlush(); -#else - eglSwapBuffers( dpy, surf ); -#endif - glFinish(); -} - - -/** - * Test EGL_MESA_screen_surface functions - */ -static void -TestScreens(EGLDisplay dpy) -{ -#define MAX 8 - EGLScreenMESA screens[MAX]; - EGLint numScreens; - EGLint i; - - eglGetScreensMESA(dpy, screens, MAX, &numScreens); - printf("Found %d screens\n", numScreens); - for (i = 0; i < numScreens; i++) { - printf(" Screen %d handle: %d\n", i, (int) screens[i]); - } -} - - -int -main(int argc, char *argv[]) -{ - int maj, min; - EGLContext ctx; - EGLSurface pbuffer, screen_surf; - EGLConfig configs[10]; - EGLint numConfigs, i; - EGLBoolean b; - const EGLint pbufAttribs[] = { - EGL_WIDTH, 500, - EGL_HEIGHT, 500, - EGL_NONE - }; - EGLint screenAttribs[32]; - EGLModeMESA mode; - EGLScreenMESA screen; - EGLint count; - - EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("demo: eglInitialize failed\n"); - exit(1); - } - - printf("EGL version = %d.%d\n", maj, min); - printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - if (!strstr(eglQueryString(d, EGL_EXTENSIONS), - "EGL_MESA_screen_surface")) { - printf("EGL_MESA_screen_surface is not supported\n"); - exit(1); - } - - eglGetConfigs(d, configs, 10, &numConfigs); - printf("Got %d EGL configs:\n", numConfigs); - for (i = 0; i < numConfigs; i++) { - EGLint id, red, depth; - eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); - eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); - eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); - printf("%2d: Red Size = %d Depth Size = %d\n", id, red, depth); - } - - eglGetScreensMESA(d, &screen, 1, &count); - eglGetModesMESA(d, screen, &mode, 1, &count); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("failed to create context\n"); - return 0; - } - - pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs); - if (pbuffer == EGL_NO_SURFACE) { - printf("failed to create pbuffer\n"); - return 0; - } - - b = eglMakeCurrent(d, pbuffer, pbuffer, ctx); - if (!b) { - printf("make current failed\n"); - return 0; - } - - b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - - i = 0; - screenAttribs[i++] = EGL_WIDTH; - eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]); - screenAttribs[i++] = EGL_HEIGHT; - eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]); - screenAttribs[i] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("failed to create screen surface\n"); - return 0; - } - - eglShowScreenSurfaceMESA(d, screen, screen_surf, mode); - - b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); - if (!b) { - printf("make current failed\n"); - return 0; - } - - glViewport(0, 0, 1024, 768); - - glClearColor( 0, - 1.0, - 0, - 1); - - glClear( GL_COLOR_BUFFER_BIT ); - - - TestScreens(d); - - glShadeModel( GL_FLAT ); - - for (i = 0; i < 6; i++) { - redraw(d, screen_surf, i*10 ); - - printf("sleep(1)\n"); - sleep(1); - } - - eglDestroySurface(d, pbuffer); - eglDestroyContext(d, ctx); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/demo3.c b/progs/egl/demo3.c deleted file mode 100644 index 64b9ee652c..0000000000 --- a/progs/egl/demo3.c +++ /dev/null @@ -1,647 +0,0 @@ -/* - * Exercise EGL API functions - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include - - - -#define PIXEL_CENTER(x) ((long)(x) + 0.5) - -#define GAP 10 -#define ROWS 3 -#define COLS 4 - -#define OPENGL_WIDTH 48 -#define OPENGL_HEIGHT 13 - - -GLenum rgb, doubleBuffer, windType; -GLint windW, windH; - -GLenum mode1, mode2; -GLint boxW, boxH; -GLubyte OpenGL_bits[] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, - 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01, - 0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00, - 0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00, - 0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00, - 0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00, - 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a, - 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e, - 0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e, - 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00, -}; - - -static void Init(void) -{ - - mode1 = GL_TRUE; - mode2 = GL_TRUE; -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; -} - -#if 0 -static void RotateColorMask(void) -{ - static GLint rotation = 0; - - rotation = (rotation + 1) & 0x3; - switch (rotation) { - case 0: - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - glIndexMask( 0xff ); - break; - case 1: - glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE); - glIndexMask(0xFE); - break; - case 2: - glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE); - glIndexMask(0xFD); - break; - case 3: - glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE); - glIndexMask(0xFB); - break; - } -} -#endif - -static void Viewport(GLint row, GLint column) -{ - GLint x, y; - - boxW = (windW - (COLS + 1) * GAP) / COLS; - boxH = (windH - (ROWS + 1) * GAP) / ROWS; - - x = GAP + column * (boxW + GAP); - y = GAP + row * (boxH + GAP); - - glViewport(x, y, boxW, boxH); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0); - glMatrixMode(GL_MODELVIEW); - - glEnable(GL_SCISSOR_TEST); - glScissor(x, y, boxW, boxH); -} - -enum { - COLOR_BLACK = 0, - COLOR_RED, - COLOR_GREEN, - COLOR_YELLOW, - COLOR_BLUE, - COLOR_MAGENTA, - COLOR_CYAN, - COLOR_WHITE -}; - -static float RGBMap[9][3] = { - {0, 0, 0}, - {1, 0, 0}, - {0, 1, 0}, - {1, 1, 0}, - {0, 0, 1}, - {1, 0, 1}, - {0, 1, 1}, - {1, 1, 1}, - {0.5, 0.5, 0.5} -}; - -static void SetColor(int c) -{ - glColor3fv(RGBMap[c]); -} - -static void Point(void) -{ - GLint i; - - glBegin(GL_POINTS); - SetColor(COLOR_WHITE); - glVertex2i(0, 0); - for (i = 1; i < 8; i++) { - GLint j = i * 2; - SetColor(COLOR_BLACK+i); - glVertex2i(-j, -j); - glVertex2i(-j, 0); - glVertex2i(-j, j); - glVertex2i(0, j); - glVertex2i(j, j); - glVertex2i(j, 0); - glVertex2i(j, -j); - glVertex2i(0, -j); - } - glEnd(); -} - -static void Lines(void) -{ - GLint i; - - glPushMatrix(); - - glTranslatef(-12, 0, 0); - for (i = 1; i < 8; i++) { - SetColor(COLOR_BLACK+i); - glBegin(GL_LINES); - glVertex2i(-boxW/4, -boxH/4); - glVertex2i(boxW/4, boxH/4); - glEnd(); - glTranslatef(4, 0, 0); - } - - glPopMatrix(); - - glBegin(GL_LINES); - glVertex2i(0, 0); - glEnd(); -} - -static void LineStrip(void) -{ - - glBegin(GL_LINE_STRIP); - SetColor(COLOR_RED); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); - SetColor(COLOR_GREEN); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_BLUE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_WHITE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); - glEnd(); - - glBegin(GL_LINE_STRIP); - glVertex2i(0, 0); - glEnd(); -} - -static void LineLoop(void) -{ - - glBegin(GL_LINE_LOOP); - SetColor(COLOR_RED); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); - SetColor(COLOR_GREEN); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_BLUE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_WHITE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); - glEnd(); - - glEnable(GL_LOGIC_OP); - glLogicOp(GL_XOR); - - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - - SetColor(COLOR_MAGENTA); - glBegin(GL_LINE_LOOP); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8)); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8)); - glEnd(); - glBegin(GL_LINE_LOOP); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5)); - glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5)); - glEnd(); - glDisable(GL_LOGIC_OP); - glDisable(GL_BLEND); - - SetColor(COLOR_GREEN); - glBegin(GL_POINTS); - glVertex2i(0, 0); - glEnd(); - - glBegin(GL_LINE_LOOP); - glVertex2i(0, 0); - glEnd(); -} - -static void Bitmap(void) -{ - - glBegin(GL_LINES); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/2, 0); - glVertex2i(boxW/2, 0); - glVertex2i(0, -boxH/2); - glVertex2i(0, boxH/2); - SetColor(COLOR_RED); - glVertex2i(0, -3); - glVertex2i(0, -3+OPENGL_HEIGHT); - SetColor(COLOR_BLUE); - glVertex2i(0, -3); - glVertex2i(OPENGL_WIDTH, -3); - glEnd(); - - SetColor(COLOR_GREEN); - - glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glRasterPos2i(0, 0); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits); -} - -static void Triangles(void) -{ - - glBegin(GL_TRIANGLES); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, -boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, -boxH/16); - - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, boxH/16); - glEnd(); - - glBegin(GL_TRIANGLES); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void TriangleStrip(void) -{ - - glBegin(GL_TRIANGLE_STRIP); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_BLUE); - glVertex2i(0, -boxH/4); - SetColor(COLOR_WHITE); - glVertex2i(0, boxH/4); - SetColor(COLOR_CYAN); - glVertex2i(boxW/4, -boxH/4); - SetColor(COLOR_YELLOW); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_TRIANGLE_STRIP); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void TriangleFan(void) -{ - GLint vx[8][2]; - GLint x0, y0, x1, y1, x2, y2, x3, y3; - GLint i; - - y0 = -boxH/4; - y1 = y0 + boxH/2/3; - y2 = y1 + boxH/2/3; - y3 = boxH/4; - x0 = -boxW/4; - x1 = x0 + boxW/2/3; - x2 = x1 + boxW/2/3; - x3 = boxW/4; - - vx[0][0] = x0; vx[0][1] = y1; - vx[1][0] = x0; vx[1][1] = y2; - vx[2][0] = x1; vx[2][1] = y3; - vx[3][0] = x2; vx[3][1] = y3; - vx[4][0] = x3; vx[4][1] = y2; - vx[5][0] = x3; vx[5][1] = y1; - vx[6][0] = x2; vx[6][1] = y0; - vx[7][0] = x1; vx[7][1] = y0; - - glBegin(GL_TRIANGLE_FAN); - SetColor(COLOR_WHITE); - glVertex2i(0, 0); - for (i = 0; i < 8; i++) { - SetColor(COLOR_WHITE-i); - glVertex2iv(vx[i]); - } - glEnd(); - - glBegin(GL_TRIANGLE_FAN); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void Rect(void) -{ - - SetColor(COLOR_GREEN); - glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4); -} - -static void PolygonFunc(void) -{ - GLint vx[8][2]; - GLint x0, y0, x1, y1, x2, y2, x3, y3; - GLint i; - - y0 = -boxH/4; - y1 = y0 + boxH/2/3; - y2 = y1 + boxH/2/3; - y3 = boxH/4; - x0 = -boxW/4; - x1 = x0 + boxW/2/3; - x2 = x1 + boxW/2/3; - x3 = boxW/4; - - vx[0][0] = x0; vx[0][1] = y1; - vx[1][0] = x0; vx[1][1] = y2; - vx[2][0] = x1; vx[2][1] = y3; - vx[3][0] = x2; vx[3][1] = y3; - vx[4][0] = x3; vx[4][1] = y2; - vx[5][0] = x3; vx[5][1] = y1; - vx[6][0] = x2; vx[6][1] = y0; - vx[7][0] = x1; vx[7][1] = y0; - - glBegin(GL_POLYGON); - for (i = 0; i < 8; i++) { - SetColor(COLOR_WHITE-i); - glVertex2iv(vx[i]); - } - glEnd(); - - glBegin(GL_POLYGON); - glVertex2i(0, 0); - glVertex2i(100, 100); - glEnd(); -} - -static void Quads(void) -{ - - glBegin(GL_QUADS); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, -boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, -boxH/16); - SetColor(COLOR_WHITE); - glVertex2i(boxW/4, -boxH/4); - - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, boxH/16); - SetColor(COLOR_WHITE); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_QUADS); - glVertex2i(0, 0); - glVertex2i(100, 100); - glVertex2i(-100, 100); - glEnd(); -} - -static void QuadStrip(void) -{ - - glBegin(GL_QUAD_STRIP); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_BLUE); - glVertex2i(0, -boxH/4); - SetColor(COLOR_WHITE); - glVertex2i(0, boxH/4); - SetColor(COLOR_CYAN); - glVertex2i(boxW/4, -boxH/4); - SetColor(COLOR_YELLOW); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_QUAD_STRIP); - glVertex2i(0, 0); - glVertex2i(100, 100); - glVertex2i(-100, 100); - glEnd(); -} - -static void Draw(EGLDisplay dpy, EGLSurface surf) -{ - - glViewport(0, 0, windW, windH); - glDisable(GL_SCISSOR_TEST); - - glPushAttrib(GL_COLOR_BUFFER_BIT); - - glColorMask(1, 1, 1, 1); - glIndexMask(~0); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glPopAttrib(); - - if (mode1) { - glShadeModel(GL_SMOOTH); - } else { - glShadeModel(GL_FLAT); - } - - if (mode2) { - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } else { - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - } - - Viewport(0, 0); Point(); - Viewport(0, 1); Lines(); - Viewport(0, 2); LineStrip(); - Viewport(0, 3); LineLoop(); - - Viewport(1, 0); Bitmap(); - - Viewport(1, 1); TriangleFan(); - Viewport(1, 2); Triangles(); - Viewport(1, 3); TriangleStrip(); - - Viewport(2, 0); Rect(); - Viewport(2, 1); PolygonFunc(); - Viewport(2, 2); Quads(); - Viewport(2, 3); QuadStrip(); - - glFlush(); - - if (doubleBuffer) { - eglSwapBuffers(dpy, surf); - } -} - -static void -write_ppm(const char *filename, const GLubyte *buffer, int width, int height) -{ - const int binary = 0; - FILE *f = fopen( filename, "w" ); - if (f) { - int i, x, y; - const GLubyte *ptr = buffer; - if (binary) { - fprintf(f,"P6\n"); - fprintf(f,"# ppm-file created by osdemo.c\n"); - fprintf(f,"%i %i\n", width,height); - fprintf(f,"255\n"); - fclose(f); - f = fopen( filename, "ab" ); /* reopen in binary append mode */ - for (y=height-1; y>=0; y--) { - for (x=0; x=0; y--) { - for (x=0; x -#include -#include -#include -#include -#include -#include -#include - -#define MAX_CONFIGS 10 -#define MAX_MODES 100 - -#define BENCHMARK - -#ifdef BENCHMARK - -/* XXX this probably isn't very portable */ - -#include -#include - -/* return current time (in seconds) */ -static double -current_time(void) -{ - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - -#else /*BENCHMARK*/ - -/* dummy */ -static double -current_time(void) -{ - /* update this function for other platforms! */ - static double t = 0.0; - static int warn = 1; - if (warn) { - fprintf(stderr, "Warning: current_time() not implemented!!\n"); - warn = 0; - } - return t += 1.0; -} - -#endif /*BENCHMARK*/ - - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static GLint gear1, gear2, gear3; -static GLfloat angle = 0.0; - -#if 0 -static GLfloat eyesep = 5.0; /* Eye separation. */ -static GLfloat fix_point = 40.0; /* Fixation point distance. */ -static GLfloat left, right, asp; /* Stereo frustum params. */ -#endif - - -/* - * - * Draw a gear wheel. You'll probably want to call this function when - * building a display list since we do a lot of trig here. - * - * Input: inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void -gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, - GLint teeth, GLfloat tooth_depth) -{ - GLint i; - GLfloat r0, r1, r2; - GLfloat angle, da; - GLfloat u, v, len; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - da = 2.0 * M_PI / teeth / 4.0; - - glShadeModel(GL_FLAT); - - glNormal3f(0.0, 0.0, 1.0); - - /* draw front face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - if (i < teeth) { - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - } - glEnd(); - - /* draw front sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - glEnd(); - - glNormal3f(0.0, 0.0, -1.0); - - /* draw back face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - if (i < teeth) { - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - } - } - glEnd(); - - /* draw back sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - } - glEnd(); - - /* draw outward faces of teeth */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - u = r2 * cos(angle + da) - r1 * cos(angle); - v = r2 * sin(angle + da) - r1 * sin(angle); - len = sqrt(u * u + v * v); - u /= len; - v /= len; - glNormal3f(v, -u, 0.0); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); - v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); - glNormal3f(v, -u, 0.0); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - } - - glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); - glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); - - glEnd(); - - glShadeModel(GL_SMOOTH); - - /* draw inside radius cylinder */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glNormal3f(-cos(angle), -sin(angle), 0.0); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - } - glEnd(); -} - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - glCallList(gear1); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - glCallList(gear2); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - glCallList(gear3); - glPopMatrix(); - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - - - -static void -init(void) -{ - static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; - static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; - static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; - static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - - /* make the gears */ - gear1 = glGenLists(1); - glNewList(gear1, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - gear(1.0, 4.0, 1.0, 20, 0.7); - glEndList(); - - gear2 = glGenLists(1); - glNewList(gear2, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); - gear(0.5, 2.0, 2.0, 10, 0.7); - glEndList(); - - gear3 = glGenLists(1); - glNewList(gear3, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); - gear(1.3, 2.0, 0.5, 10, 0.7); - glEndList(); - - glEnable(GL_NORMALIZE); -} - - - - -static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr) -{ - double st = current_time(); - double ct = st; - int frames = 0; - GLfloat seconds, fps; - - while (ct - st < ttr) - { - double tt = current_time(); - double dt = tt - ct; - ct = tt; - - /* advance rotation for next frame */ - angle += 70.0 * dt; /* 70 degrees per second */ - if (angle > 3600.0) - angle -= 3600.0; - - draw(); - - eglSwapBuffers(dpy, surf); - - - frames++; - } - - seconds = ct - st; - fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); - -} - - -int -main(int argc, char *argv[]) -{ - int maj, min; - EGLContext ctx; - EGLSurface screen_surf; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - EGLModeMESA mode[MAX_MODES]; - EGLScreenMESA screen; - EGLint count; - EGLint chosenMode = 0; - GLboolean printInfo = GL_FALSE; - EGLint width = 0, height = 0; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) - { - if (strcmp(argv[i], "-info") == 0) - { - printInfo = GL_TRUE; - } - else - printf("Warning: unknown parameter: %s\n", argv[i]); - } - - /* DBR : Create EGL context/surface etc */ - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("eglgears: eglInitialize failed\n"); - exit(1); - } - - printf("eglgears: EGL version = %d.%d\n", maj, min); - printf("eglgears: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - /* XXX use ChooseConfig */ - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - eglGetScreensMESA(d, &screen, 1, &count); - - if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { - printf("eglgears: eglGetModesMESA failed!\n"); - return 0; - } - - /* Print list of modes, and find the one to use */ - printf("eglgears: Found %d modes:\n", count); - for (i = 0; i < count; i++) { - EGLint w, h; - eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - chosenMode = i; - } - } - printf("eglgears: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("eglgears: failed to create context\n"); - return 0; - } - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("eglgears: failed to create screen surface\n"); - return 0; - } - - b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); - if (!b) { - printf("eglgears: show surface failed\n"); - return 0; - } - - b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); - if (!b) { - printf("eglgears: make current failed\n"); - return 0; - } - - if (printInfo) - { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - reshape(width, height); - - glDrawBuffer( GL_BACK ); - - run_gears(d, screen_surf, 5.0); - - eglDestroySurface(d, screen_surf); - eglDestroyContext(d, ctx); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/eglinfo.c b/progs/egl/eglinfo.c deleted file mode 100644 index 961fd9ccc7..0000000000 --- a/progs/egl/eglinfo.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * eglinfo - like glxinfo but for EGL - * - * Brian Paul - * 11 March 2005 - * - * Copyright (C) 2005 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include - -#define MAX_CONFIGS 1000 -#define MAX_MODES 1000 -#define MAX_SCREENS 10 - -/* These are X visual types, so if you're running eglinfo under - * something not X, they probably don't make sense. */ -static const char *vnames[] = { "SG", "GS", "SC", "PC", "TC", "DC" }; - -/** - * Print table of all available configurations. - */ -static void -PrintConfigs(EGLDisplay d) -{ - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - - printf("Configurations:\n"); - printf(" bf lv colorbuffer dp st ms vis cav bi renderable supported\n"); - printf(" id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces \n"); - printf("---------------------------------------------------------------------\n"); - for (i = 0; i < numConfigs; i++) { - EGLint id, size, level; - EGLint red, green, blue, alpha; - EGLint depth, stencil; - EGLint renderable, surfaces; - EGLint vid, vtype, caveat, bindRgb, bindRgba; - EGLint samples, sampleBuffers; - char surfString[100] = ""; - - eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); - eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size); - eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level); - - eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); - eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green); - eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue); - eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha); - eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); - eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil); - eglGetConfigAttrib(d, configs[i], EGL_NATIVE_VISUAL_ID, &vid); - eglGetConfigAttrib(d, configs[i], EGL_NATIVE_VISUAL_TYPE, &vtype); - - eglGetConfigAttrib(d, configs[i], EGL_CONFIG_CAVEAT, &caveat); - eglGetConfigAttrib(d, configs[i], EGL_BIND_TO_TEXTURE_RGB, &bindRgb); - eglGetConfigAttrib(d, configs[i], EGL_BIND_TO_TEXTURE_RGBA, &bindRgba); - eglGetConfigAttrib(d, configs[i], EGL_RENDERABLE_TYPE, &renderable); - eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces); - - eglGetConfigAttrib(d, configs[i], EGL_SAMPLES, &samples); - eglGetConfigAttrib(d, configs[i], EGL_SAMPLE_BUFFERS, &sampleBuffers); - - if (surfaces & EGL_WINDOW_BIT) - strcat(surfString, "win,"); - if (surfaces & EGL_PBUFFER_BIT) - strcat(surfString, "pb,"); - if (surfaces & EGL_PIXMAP_BIT) - strcat(surfString, "pix,"); -#ifdef EGL_MESA_screen_surface - if (surfaces & EGL_SCREEN_BIT_MESA) - strcat(surfString, "scrn,"); -#endif - if (strlen(surfString) > 0) - surfString[strlen(surfString) - 1] = 0; - - printf("0x%02x %2d %2d %2d %2d %2d %2d %2d %2d %2d%2d 0x%02x%s ", - id, size, level, - red, green, blue, alpha, - depth, stencil, - samples, sampleBuffers, vid, vtype < 6 ? vnames[vtype] : "--"); - printf(" %c %c %c %c %c %c %s\n", - (caveat != EGL_NONE) ? 'y' : ' ', - (bindRgba) ? 'a' : (bindRgb) ? 'y' : ' ', - (renderable & EGL_OPENGL_BIT) ? 'y' : ' ', - (renderable & EGL_OPENGL_ES_BIT) ? 'y' : ' ', - (renderable & EGL_OPENGL_ES2_BIT) ? 'y' : ' ', - (renderable & EGL_OPENVG_BIT) ? 'y' : ' ', - surfString); - } -} - - -/** - * Print table of all available configurations. - */ -static void -PrintModes(EGLDisplay d) -{ -#ifdef EGL_MESA_screen_surface - const char *extensions = eglQueryString(d, EGL_EXTENSIONS); - if (strstr(extensions, "EGL_MESA_screen_surface")) { - EGLScreenMESA screens[MAX_SCREENS]; - EGLint numScreens = 1, scrn; - EGLModeMESA modes[MAX_MODES]; - - eglGetScreensMESA(d, screens, MAX_SCREENS, &numScreens); - printf("Number of Screens: %d\n\n", numScreens); - - for (scrn = 0; scrn < numScreens; scrn++) { - EGLint numModes, i; - - eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes); - - printf("Screen %d Modes:\n", scrn); - printf(" id width height refresh name\n"); - printf("-----------------------------------------\n"); - for (i = 0; i < numModes; i++) { - EGLint id, w, h, r; - const char *str; - eglGetModeAttribMESA(d, modes[i], EGL_MODE_ID_MESA, &id); - eglGetModeAttribMESA(d, modes[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, modes[i], EGL_HEIGHT, &h); - eglGetModeAttribMESA(d, modes[i], EGL_REFRESH_RATE_MESA, &r); - str = eglQueryModeStringMESA(d, modes[i]); - printf("0x%02x %5d %5d %.3f %s\n", id, w, h, r / 1000.0, str); - } - } - } -#endif -} - -static void -PrintExtensions(EGLDisplay d) -{ - const char *extensions, *p, *end, *next; - int column; - - printf("EGL extensions string:\n"); - - extensions = eglQueryString(d, EGL_EXTENSIONS); - - column = 0; - end = extensions + strlen(extensions); - - for (p = extensions; p < end; p = next + 1) { - next = strchr(p, ' '); - if (next == NULL) - next = end; - - if (column > 0 && column + next - p + 1 > 70) { - printf("\n"); - column = 0; - } - if (column == 0) - printf(" "); - else - printf(" "); - column += next - p + 1; - - printf("%.*s", (int) (next - p), p); - - p = next + 1; - } - - if (column > 0) - printf("\n"); -} - -int -main(int argc, char *argv[]) -{ - int maj, min; - EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - - if (!eglInitialize(d, &maj, &min)) { - printf("eglinfo: eglInitialize failed\n"); - exit(1); - } - - printf("EGL API version: %d.%d\n", maj, min); - printf("EGL vendor string: %s\n", eglQueryString(d, EGL_VENDOR)); - printf("EGL version string: %s\n", eglQueryString(d, EGL_VERSION)); -#ifdef EGL_VERSION_1_2 - printf("EGL client APIs: %s\n", eglQueryString(d, EGL_CLIENT_APIS)); -#endif - - PrintExtensions(d); - - PrintConfigs(d); - - PrintModes(d); - - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/eglscreen.c b/progs/egl/eglscreen.c deleted file mode 100644 index 520f76ea03..0000000000 --- a/progs/egl/eglscreen.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Stolen from eglgears - * - * Creates a surface and show that on the first screen - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_CONFIGS 10 -#define MAX_MODES 100 - -int -main(int argc, char *argv[]) -{ - int maj, min; - EGLSurface screen_surf; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - EGLModeMESA mode[MAX_MODES]; - EGLScreenMESA screen; - EGLint count; - EGLint chosenMode = 0; - EGLint width = 0, height = 0; - - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("eglscreen: eglInitialize failed\n"); - exit(1); - } - - printf("eglscreen: EGL version = %d.%d\n", maj, min); - printf("eglscreen: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - /* XXX use ChooseConfig */ - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - eglGetScreensMESA(d, &screen, 1, &count); - - if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { - printf("eglscreen: eglGetModesMESA failed!\n"); - return 0; - } - - /* Print list of modes, and find the one to use */ - printf("eglscreen: Found %d modes:\n", count); - for (i = 0; i < count; i++) { - EGLint w, h; - eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - chosenMode = i; - } - } - printf("eglscreen: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("eglscreen: Failed to create screen surface\n"); - return 0; - } - - b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); - if (!b) { - printf("eglscreen: Show surface failed\n"); - return 0; - } - - usleep(5000000); - - eglDestroySurface(d, screen_surf); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/egltri.c b/progs/egl/egltri.c deleted file mode 100644 index 006e06eb03..0000000000 --- a/progs/egl/egltri.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * This program is based on eglgears and xegl_tri. - * Remixed by Jakob Bornecrantz - * - * No command line options. - * Program runs for 5 seconds then exits, outputing framerate to console - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_CONFIGS 10 -#define MAX_MODES 100 - - -/* XXX this probably isn't very portable */ - -#include -#include - -/* return current time (in seconds) */ -static double -current_time(void) -{ - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - -static void draw() -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][3] = { - { 1, 0, 0 }, - { 0, 1, 0 }, - { 0, 0, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(3, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - -static void init() -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - -/* new window size or exposure */ -static void reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - -static void run(EGLDisplay dpy, EGLSurface surf, int ttr) -{ - double st = current_time(); - double ct = st; - int frames = 0; - GLfloat seconds, fps; - - while (ct - st < ttr) - { - ct = current_time(); - - draw(); - - eglSwapBuffers(dpy, surf); - - frames++; - } - - seconds = ct - st; - fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); -} - -int main(int argc, char *argv[]) -{ - int maj, min; - EGLContext ctx; - EGLSurface screen_surf; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - EGLModeMESA mode[MAX_MODES]; - EGLScreenMESA screen; - EGLint count, chosenMode = 0; - GLboolean printInfo = GL_FALSE; - EGLint width = 0, height = 0; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) - { - if (strcmp(argv[i], "-info") == 0) - { - printInfo = GL_TRUE; - } - else - printf("Warning: unknown parameter: %s\n", argv[i]); - } - - /* DBR : Create EGL context/surface etc */ - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("egltri: eglInitialize failed\n"); - exit(1); - } - - printf("egltri: EGL version = %d.%d\n", maj, min); - printf("egltri: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - /* XXX use ChooseConfig */ - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - eglGetScreensMESA(d, &screen, 1, &count); - - if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { - printf("egltri: eglGetModesMESA failed!\n"); - return 0; - } - - /* Print list of modes, and find the one to use */ - printf("egltri: Found %d modes:\n", count); - for (i = 0; i < count; i++) { - EGLint w, h; - eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - chosenMode = i; - } - } - printf("egltri: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("egltri: failed to create context\n"); - return 0; - } - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("egltri: failed to create screen surface\n"); - return 0; - } - - b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); - if (!b) { - printf("egltri: show surface failed\n"); - return 0; - } - - b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); - if (!b) { - printf("egltri: make current failed\n"); - return 0; - } - - if (printInfo) - { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - reshape(width, height); - - glDrawBuffer( GL_BACK ); - - run(d, screen_surf, 5.0); - - eglDestroySurface(d, screen_surf); - eglDestroyContext(d, ctx); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/opengl/.gitignore b/progs/egl/opengl/.gitignore new file mode 100644 index 0000000000..7a13d4686a --- /dev/null +++ b/progs/egl/opengl/.gitignore @@ -0,0 +1,12 @@ +demo1 +demo2 +demo3 +eglgears +eglinfo +eglscreen +egltri +peglgears +xeglbindtex +xeglgears +xeglthreads +xegl_tri diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile new file mode 100644 index 0000000000..50a60c701d --- /dev/null +++ b/progs/egl/opengl/Makefile @@ -0,0 +1,70 @@ +# progs/egl/Makefile + +TOP = ../../.. +include $(TOP)/configs/current + + +INCLUDE_DIRS = -I$(TOP)/include + +HEADERS = $(TOP)/include/GLES/egl.h +LIB_DEP = $(TOP)/$(LIB_DIR)/libEGL.so + +LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL + +PROGRAMS = \ + demo1 \ + demo2 \ + demo3 \ + egltri \ + eglinfo \ + eglgears \ + eglscreen \ + peglgears \ + xeglgears \ + xeglthreads \ + xegl_tri + + +.c.o: + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + + + +default: $(PROGRAMS) + +demo1: demo1.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) + +demo2: demo2.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) + +demo3: demo3.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) + +egltri: egltri.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) + +eglinfo: eglinfo.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) + +eglgears: eglgears.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm + +eglscreen: eglscreen.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) + +peglgears: peglgears.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm + +xeglgears: xeglgears.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) + +xeglthreads: xeglthreads.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lpthread -lm $(X11_LIBS) + +xegl_tri: xegl_tri.o $(HEADERS) $(LIB_DEP) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) + +clean: + -rm -f *.o *~ + -rm -f $(PROGRAMS) diff --git a/progs/egl/opengl/demo1.c b/progs/egl/opengl/demo1.c new file mode 100644 index 0000000000..d892734ee5 --- /dev/null +++ b/progs/egl/opengl/demo1.c @@ -0,0 +1,147 @@ +/* + * Exercise EGL API functions + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include + + +/** + * Test EGL_MESA_screen_surface functions + */ +static void +TestScreens(EGLDisplay dpy) +{ +#define MAX 8 + EGLScreenMESA screens[MAX]; + EGLint numScreens; + EGLint i; + + eglGetScreensMESA(dpy, screens, MAX, &numScreens); + printf("Found %d screens\n", numScreens); + for (i = 0; i < numScreens; i++) { + printf(" Screen %d handle: %d\n", i, (int) screens[i]); + } +} + +/** + * Print table of all available configurations. + */ +static void +PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs) +{ + EGLint i; + + printf("Configurations:\n"); + printf(" bf lv d st colorbuffer dp st supported \n"); + printf(" id sz l b ro r g b a th cl surfaces \n"); + printf("----------------------------------------------\n"); + for (i = 0; i < numConfigs; i++) { + EGLint id, size, level; + EGLint red, green, blue, alpha; + EGLint depth, stencil; + EGLint surfaces; + EGLint doubleBuf = 1, stereo = 0; + char surfString[100] = ""; + + eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); + eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size); + eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level); + + eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); + eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green); + eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue); + eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha); + eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); + eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil); + eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces); + + if (surfaces & EGL_WINDOW_BIT) + strcat(surfString, "win,"); + if (surfaces & EGL_PBUFFER_BIT) + strcat(surfString, "pb,"); + if (surfaces & EGL_PIXMAP_BIT) + strcat(surfString, "pix,"); + if (strlen(surfString) > 0) + surfString[strlen(surfString) - 1] = 0; + + printf("0x%02x %2d %2d %c %c %2d %2d %2d %2d %2d %2d %-12s\n", + id, size, level, + doubleBuf ? 'y' : '.', + stereo ? 'y' : '.', + red, green, blue, alpha, + depth, stencil, surfString); + } +} + + + +int +main(int argc, char *argv[]) +{ + int maj, min; + EGLContext ctx; + EGLSurface pbuffer; + EGLConfig *configs; + EGLint numConfigs; + EGLBoolean b; + const EGLint pbufAttribs[] = { + EGL_WIDTH, 500, + EGL_HEIGHT, 500, + EGL_NONE + }; + + EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &maj, &min)) { + printf("demo: eglInitialize failed\n"); + exit(1); + } + + printf("EGL version = %d.%d\n", maj, min); + printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + + eglGetConfigs(d, NULL, 0, &numConfigs); + configs = malloc(sizeof(*configs) *numConfigs); + eglGetConfigs(d, configs, numConfigs, &numConfigs); + + PrintConfigs(d, configs, numConfigs); + + eglBindAPI(EGL_OPENGL_API); + ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); + if (ctx == EGL_NO_CONTEXT) { + printf("failed to create context\n"); + return 0; + } + + pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs); + if (pbuffer == EGL_NO_SURFACE) { + printf("failed to create pbuffer\n"); + return 0; + } + + free(configs); + + b = eglMakeCurrent(d, pbuffer, pbuffer, ctx); + if (!b) { + printf("make current failed\n"); + return 0; + } + + b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + + TestScreens(d); + + eglDestroySurface(d, pbuffer); + eglDestroyContext(d, ctx); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/demo2.c b/progs/egl/opengl/demo2.c new file mode 100644 index 0000000000..b9e92f62ac --- /dev/null +++ b/progs/egl/opengl/demo2.c @@ -0,0 +1,216 @@ +/* + * Exercise EGL API functions + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include + +#include +#include +#include + +/*#define FRONTBUFFER*/ + +static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2, + GLfloat r, GLfloat g, GLfloat b) +{ + GLfloat v[4][2], c[4][4]; + int i; + + v[0][0] = x1; v[0][1] = y1; + v[1][0] = x2; v[1][1] = y1; + v[2][0] = x2; v[2][1] = y2; + v[3][0] = x1; v[3][1] = y2; + + for (i = 0; i < 4; i++) { + c[i][0] = r; + c[i][1] = g; + c[i][2] = b; + c[i][3] = 1.0; + } + + glVertexPointer(2, GL_FLOAT, 0, v); + glColorPointer(4, GL_FLOAT, 0, v); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); +} + + +static void redraw(EGLDisplay dpy, EGLSurface surf, int rot) +{ + GLfloat r, g, b; + + printf("Redraw event\n"); + + glClearColor( rand()/(float)RAND_MAX, + rand()/(float)RAND_MAX, + rand()/(float)RAND_MAX, + 1); + + glClear( GL_COLOR_BUFFER_BIT ); + + r = rand()/(float)RAND_MAX; + g = rand()/(float)RAND_MAX; + b = rand()/(float)RAND_MAX; + + glPushMatrix(); + glRotatef(rot, 0, 0, 1); + glScalef(.5, .5, .5); + _subset_Rectf( -1, -1, 1, 1, r, g, b ); + glPopMatrix(); + +#ifdef FRONTBUFFER + glFlush(); +#else + eglSwapBuffers( dpy, surf ); +#endif + glFinish(); +} + + +/** + * Test EGL_MESA_screen_surface functions + */ +static void +TestScreens(EGLDisplay dpy) +{ +#define MAX 8 + EGLScreenMESA screens[MAX]; + EGLint numScreens; + EGLint i; + + eglGetScreensMESA(dpy, screens, MAX, &numScreens); + printf("Found %d screens\n", numScreens); + for (i = 0; i < numScreens; i++) { + printf(" Screen %d handle: %d\n", i, (int) screens[i]); + } +} + + +int +main(int argc, char *argv[]) +{ + int maj, min; + EGLContext ctx; + EGLSurface pbuffer, screen_surf; + EGLConfig configs[10]; + EGLint numConfigs, i; + EGLBoolean b; + const EGLint pbufAttribs[] = { + EGL_WIDTH, 500, + EGL_HEIGHT, 500, + EGL_NONE + }; + EGLint screenAttribs[32]; + EGLModeMESA mode; + EGLScreenMESA screen; + EGLint count; + + EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &maj, &min)) { + printf("demo: eglInitialize failed\n"); + exit(1); + } + + printf("EGL version = %d.%d\n", maj, min); + printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + if (!strstr(eglQueryString(d, EGL_EXTENSIONS), + "EGL_MESA_screen_surface")) { + printf("EGL_MESA_screen_surface is not supported\n"); + exit(1); + } + + eglGetConfigs(d, configs, 10, &numConfigs); + printf("Got %d EGL configs:\n", numConfigs); + for (i = 0; i < numConfigs; i++) { + EGLint id, red, depth; + eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); + eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); + eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); + printf("%2d: Red Size = %d Depth Size = %d\n", id, red, depth); + } + + eglGetScreensMESA(d, &screen, 1, &count); + eglGetModesMESA(d, screen, &mode, 1, &count); + + eglBindAPI(EGL_OPENGL_API); + ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); + if (ctx == EGL_NO_CONTEXT) { + printf("failed to create context\n"); + return 0; + } + + pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs); + if (pbuffer == EGL_NO_SURFACE) { + printf("failed to create pbuffer\n"); + return 0; + } + + b = eglMakeCurrent(d, pbuffer, pbuffer, ctx); + if (!b) { + printf("make current failed\n"); + return 0; + } + + b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + + i = 0; + screenAttribs[i++] = EGL_WIDTH; + eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]); + screenAttribs[i++] = EGL_HEIGHT; + eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]); + screenAttribs[i] = EGL_NONE; + + screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); + if (screen_surf == EGL_NO_SURFACE) { + printf("failed to create screen surface\n"); + return 0; + } + + eglShowScreenSurfaceMESA(d, screen, screen_surf, mode); + + b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); + if (!b) { + printf("make current failed\n"); + return 0; + } + + glViewport(0, 0, 1024, 768); + + glClearColor( 0, + 1.0, + 0, + 1); + + glClear( GL_COLOR_BUFFER_BIT ); + + + TestScreens(d); + + glShadeModel( GL_FLAT ); + + for (i = 0; i < 6; i++) { + redraw(d, screen_surf, i*10 ); + + printf("sleep(1)\n"); + sleep(1); + } + + eglDestroySurface(d, pbuffer); + eglDestroyContext(d, ctx); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/demo3.c b/progs/egl/opengl/demo3.c new file mode 100644 index 0000000000..64b9ee652c --- /dev/null +++ b/progs/egl/opengl/demo3.c @@ -0,0 +1,647 @@ +/* + * Exercise EGL API functions + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include + + + +#define PIXEL_CENTER(x) ((long)(x) + 0.5) + +#define GAP 10 +#define ROWS 3 +#define COLS 4 + +#define OPENGL_WIDTH 48 +#define OPENGL_HEIGHT 13 + + +GLenum rgb, doubleBuffer, windType; +GLint windW, windH; + +GLenum mode1, mode2; +GLint boxW, boxH; +GLubyte OpenGL_bits[] = { + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, + 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01, + 0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00, + 0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00, + 0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00, + 0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00, + 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a, + 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e, + 0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e, + 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00, +}; + + +static void Init(void) +{ + + mode1 = GL_TRUE; + mode2 = GL_TRUE; +} + +static void Reshape(int width, int height) +{ + + windW = (GLint)width; + windH = (GLint)height; +} + +#if 0 +static void RotateColorMask(void) +{ + static GLint rotation = 0; + + rotation = (rotation + 1) & 0x3; + switch (rotation) { + case 0: + glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); + glIndexMask( 0xff ); + break; + case 1: + glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE); + glIndexMask(0xFE); + break; + case 2: + glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE); + glIndexMask(0xFD); + break; + case 3: + glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE); + glIndexMask(0xFB); + break; + } +} +#endif + +static void Viewport(GLint row, GLint column) +{ + GLint x, y; + + boxW = (windW - (COLS + 1) * GAP) / COLS; + boxH = (windH - (ROWS + 1) * GAP) / ROWS; + + x = GAP + column * (boxW + GAP); + y = GAP + row * (boxH + GAP); + + glViewport(x, y, boxW, boxH); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0); + glMatrixMode(GL_MODELVIEW); + + glEnable(GL_SCISSOR_TEST); + glScissor(x, y, boxW, boxH); +} + +enum { + COLOR_BLACK = 0, + COLOR_RED, + COLOR_GREEN, + COLOR_YELLOW, + COLOR_BLUE, + COLOR_MAGENTA, + COLOR_CYAN, + COLOR_WHITE +}; + +static float RGBMap[9][3] = { + {0, 0, 0}, + {1, 0, 0}, + {0, 1, 0}, + {1, 1, 0}, + {0, 0, 1}, + {1, 0, 1}, + {0, 1, 1}, + {1, 1, 1}, + {0.5, 0.5, 0.5} +}; + +static void SetColor(int c) +{ + glColor3fv(RGBMap[c]); +} + +static void Point(void) +{ + GLint i; + + glBegin(GL_POINTS); + SetColor(COLOR_WHITE); + glVertex2i(0, 0); + for (i = 1; i < 8; i++) { + GLint j = i * 2; + SetColor(COLOR_BLACK+i); + glVertex2i(-j, -j); + glVertex2i(-j, 0); + glVertex2i(-j, j); + glVertex2i(0, j); + glVertex2i(j, j); + glVertex2i(j, 0); + glVertex2i(j, -j); + glVertex2i(0, -j); + } + glEnd(); +} + +static void Lines(void) +{ + GLint i; + + glPushMatrix(); + + glTranslatef(-12, 0, 0); + for (i = 1; i < 8; i++) { + SetColor(COLOR_BLACK+i); + glBegin(GL_LINES); + glVertex2i(-boxW/4, -boxH/4); + glVertex2i(boxW/4, boxH/4); + glEnd(); + glTranslatef(4, 0, 0); + } + + glPopMatrix(); + + glBegin(GL_LINES); + glVertex2i(0, 0); + glEnd(); +} + +static void LineStrip(void) +{ + + glBegin(GL_LINE_STRIP); + SetColor(COLOR_RED); + glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); + SetColor(COLOR_GREEN); + glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); + SetColor(COLOR_BLUE); + glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); + SetColor(COLOR_WHITE); + glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); + glEnd(); + + glBegin(GL_LINE_STRIP); + glVertex2i(0, 0); + glEnd(); +} + +static void LineLoop(void) +{ + + glBegin(GL_LINE_LOOP); + SetColor(COLOR_RED); + glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); + SetColor(COLOR_GREEN); + glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); + SetColor(COLOR_BLUE); + glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); + SetColor(COLOR_WHITE); + glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); + glEnd(); + + glEnable(GL_LOGIC_OP); + glLogicOp(GL_XOR); + + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + + SetColor(COLOR_MAGENTA); + glBegin(GL_LINE_LOOP); + glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8)); + glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8)); + glEnd(); + glBegin(GL_LINE_LOOP); + glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5)); + glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5)); + glEnd(); + glDisable(GL_LOGIC_OP); + glDisable(GL_BLEND); + + SetColor(COLOR_GREEN); + glBegin(GL_POINTS); + glVertex2i(0, 0); + glEnd(); + + glBegin(GL_LINE_LOOP); + glVertex2i(0, 0); + glEnd(); +} + +static void Bitmap(void) +{ + + glBegin(GL_LINES); + SetColor(COLOR_GREEN); + glVertex2i(-boxW/2, 0); + glVertex2i(boxW/2, 0); + glVertex2i(0, -boxH/2); + glVertex2i(0, boxH/2); + SetColor(COLOR_RED); + glVertex2i(0, -3); + glVertex2i(0, -3+OPENGL_HEIGHT); + SetColor(COLOR_BLUE); + glVertex2i(0, -3); + glVertex2i(OPENGL_WIDTH, -3); + glEnd(); + + SetColor(COLOR_GREEN); + + glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glRasterPos2i(0, 0); + glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits); +} + +static void Triangles(void) +{ + + glBegin(GL_TRIANGLES); + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, -boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/8, -boxH/16); + SetColor(COLOR_BLUE); + glVertex2i(boxW/8, -boxH/16); + + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/8, boxH/16); + SetColor(COLOR_BLUE); + glVertex2i(boxW/8, boxH/16); + glEnd(); + + glBegin(GL_TRIANGLES); + glVertex2i(0, 0); + glVertex2i(-100, 100); + glEnd(); +} + +static void TriangleStrip(void) +{ + + glBegin(GL_TRIANGLE_STRIP); + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, -boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/4, boxH/4); + SetColor(COLOR_BLUE); + glVertex2i(0, -boxH/4); + SetColor(COLOR_WHITE); + glVertex2i(0, boxH/4); + SetColor(COLOR_CYAN); + glVertex2i(boxW/4, -boxH/4); + SetColor(COLOR_YELLOW); + glVertex2i(boxW/4, boxH/4); + glEnd(); + + glBegin(GL_TRIANGLE_STRIP); + glVertex2i(0, 0); + glVertex2i(-100, 100); + glEnd(); +} + +static void TriangleFan(void) +{ + GLint vx[8][2]; + GLint x0, y0, x1, y1, x2, y2, x3, y3; + GLint i; + + y0 = -boxH/4; + y1 = y0 + boxH/2/3; + y2 = y1 + boxH/2/3; + y3 = boxH/4; + x0 = -boxW/4; + x1 = x0 + boxW/2/3; + x2 = x1 + boxW/2/3; + x3 = boxW/4; + + vx[0][0] = x0; vx[0][1] = y1; + vx[1][0] = x0; vx[1][1] = y2; + vx[2][0] = x1; vx[2][1] = y3; + vx[3][0] = x2; vx[3][1] = y3; + vx[4][0] = x3; vx[4][1] = y2; + vx[5][0] = x3; vx[5][1] = y1; + vx[6][0] = x2; vx[6][1] = y0; + vx[7][0] = x1; vx[7][1] = y0; + + glBegin(GL_TRIANGLE_FAN); + SetColor(COLOR_WHITE); + glVertex2i(0, 0); + for (i = 0; i < 8; i++) { + SetColor(COLOR_WHITE-i); + glVertex2iv(vx[i]); + } + glEnd(); + + glBegin(GL_TRIANGLE_FAN); + glVertex2i(0, 0); + glVertex2i(-100, 100); + glEnd(); +} + +static void Rect(void) +{ + + SetColor(COLOR_GREEN); + glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4); +} + +static void PolygonFunc(void) +{ + GLint vx[8][2]; + GLint x0, y0, x1, y1, x2, y2, x3, y3; + GLint i; + + y0 = -boxH/4; + y1 = y0 + boxH/2/3; + y2 = y1 + boxH/2/3; + y3 = boxH/4; + x0 = -boxW/4; + x1 = x0 + boxW/2/3; + x2 = x1 + boxW/2/3; + x3 = boxW/4; + + vx[0][0] = x0; vx[0][1] = y1; + vx[1][0] = x0; vx[1][1] = y2; + vx[2][0] = x1; vx[2][1] = y3; + vx[3][0] = x2; vx[3][1] = y3; + vx[4][0] = x3; vx[4][1] = y2; + vx[5][0] = x3; vx[5][1] = y1; + vx[6][0] = x2; vx[6][1] = y0; + vx[7][0] = x1; vx[7][1] = y0; + + glBegin(GL_POLYGON); + for (i = 0; i < 8; i++) { + SetColor(COLOR_WHITE-i); + glVertex2iv(vx[i]); + } + glEnd(); + + glBegin(GL_POLYGON); + glVertex2i(0, 0); + glVertex2i(100, 100); + glEnd(); +} + +static void Quads(void) +{ + + glBegin(GL_QUADS); + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, -boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/8, -boxH/16); + SetColor(COLOR_BLUE); + glVertex2i(boxW/8, -boxH/16); + SetColor(COLOR_WHITE); + glVertex2i(boxW/4, -boxH/4); + + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/8, boxH/16); + SetColor(COLOR_BLUE); + glVertex2i(boxW/8, boxH/16); + SetColor(COLOR_WHITE); + glVertex2i(boxW/4, boxH/4); + glEnd(); + + glBegin(GL_QUADS); + glVertex2i(0, 0); + glVertex2i(100, 100); + glVertex2i(-100, 100); + glEnd(); +} + +static void QuadStrip(void) +{ + + glBegin(GL_QUAD_STRIP); + SetColor(COLOR_GREEN); + glVertex2i(-boxW/4, -boxH/4); + SetColor(COLOR_RED); + glVertex2i(-boxW/4, boxH/4); + SetColor(COLOR_BLUE); + glVertex2i(0, -boxH/4); + SetColor(COLOR_WHITE); + glVertex2i(0, boxH/4); + SetColor(COLOR_CYAN); + glVertex2i(boxW/4, -boxH/4); + SetColor(COLOR_YELLOW); + glVertex2i(boxW/4, boxH/4); + glEnd(); + + glBegin(GL_QUAD_STRIP); + glVertex2i(0, 0); + glVertex2i(100, 100); + glVertex2i(-100, 100); + glEnd(); +} + +static void Draw(EGLDisplay dpy, EGLSurface surf) +{ + + glViewport(0, 0, windW, windH); + glDisable(GL_SCISSOR_TEST); + + glPushAttrib(GL_COLOR_BUFFER_BIT); + + glColorMask(1, 1, 1, 1); + glIndexMask(~0); + + glClearColor(0.0, 0.0, 0.0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + + glPopAttrib(); + + if (mode1) { + glShadeModel(GL_SMOOTH); + } else { + glShadeModel(GL_FLAT); + } + + if (mode2) { + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + } else { + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + } + + Viewport(0, 0); Point(); + Viewport(0, 1); Lines(); + Viewport(0, 2); LineStrip(); + Viewport(0, 3); LineLoop(); + + Viewport(1, 0); Bitmap(); + + Viewport(1, 1); TriangleFan(); + Viewport(1, 2); Triangles(); + Viewport(1, 3); TriangleStrip(); + + Viewport(2, 0); Rect(); + Viewport(2, 1); PolygonFunc(); + Viewport(2, 2); Quads(); + Viewport(2, 3); QuadStrip(); + + glFlush(); + + if (doubleBuffer) { + eglSwapBuffers(dpy, surf); + } +} + +static void +write_ppm(const char *filename, const GLubyte *buffer, int width, int height) +{ + const int binary = 0; + FILE *f = fopen( filename, "w" ); + if (f) { + int i, x, y; + const GLubyte *ptr = buffer; + if (binary) { + fprintf(f,"P6\n"); + fprintf(f,"# ppm-file created by osdemo.c\n"); + fprintf(f,"%i %i\n", width,height); + fprintf(f,"255\n"); + fclose(f); + f = fopen( filename, "ab" ); /* reopen in binary append mode */ + for (y=height-1; y>=0; y--) { + for (x=0; x=0; y--) { + for (x=0; x +#include +#include +#include +#include +#include +#include +#include + +#define MAX_CONFIGS 10 +#define MAX_MODES 100 + +#define BENCHMARK + +#ifdef BENCHMARK + +/* XXX this probably isn't very portable */ + +#include +#include + +/* return current time (in seconds) */ +static double +current_time(void) +{ + struct timeval tv; +#ifdef __VMS + (void) gettimeofday(&tv, NULL ); +#else + struct timezone tz; + (void) gettimeofday(&tv, &tz); +#endif + return (double) tv.tv_sec + tv.tv_usec / 1000000.0; +} + +#else /*BENCHMARK*/ + +/* dummy */ +static double +current_time(void) +{ + /* update this function for other platforms! */ + static double t = 0.0; + static int warn = 1; + if (warn) { + fprintf(stderr, "Warning: current_time() not implemented!!\n"); + warn = 0; + } + return t += 1.0; +} + +#endif /*BENCHMARK*/ + + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; + +#if 0 +static GLfloat eyesep = 5.0; /* Eye separation. */ +static GLfloat fix_point = 40.0; /* Fixation point distance. */ +static GLfloat left, right, asp; /* Stereo frustum params. */ +#endif + + +/* + * + * Draw a gear wheel. You'll probably want to call this function when + * building a display list since we do a lot of trig here. + * + * Input: inner_radius - radius of hole at center + * outer_radius - radius at center of teeth + * width - width of gear + * teeth - number of teeth + * tooth_depth - depth of tooth + */ +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + if (i < teeth) { + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + if (i < teeth) { + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); +} + + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + + + +static void +init(void) +{ + static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; + static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; + static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; + static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); +} + + + + +static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr) +{ + double st = current_time(); + double ct = st; + int frames = 0; + GLfloat seconds, fps; + + while (ct - st < ttr) + { + double tt = current_time(); + double dt = tt - ct; + ct = tt; + + /* advance rotation for next frame */ + angle += 70.0 * dt; /* 70 degrees per second */ + if (angle > 3600.0) + angle -= 3600.0; + + draw(); + + eglSwapBuffers(dpy, surf); + + + frames++; + } + + seconds = ct - st; + fps = frames / seconds; + printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); + +} + + +int +main(int argc, char *argv[]) +{ + int maj, min; + EGLContext ctx; + EGLSurface screen_surf; + EGLConfig configs[MAX_CONFIGS]; + EGLint numConfigs, i; + EGLBoolean b; + EGLDisplay d; + EGLint screenAttribs[10]; + EGLModeMESA mode[MAX_MODES]; + EGLScreenMESA screen; + EGLint count; + EGLint chosenMode = 0; + GLboolean printInfo = GL_FALSE; + EGLint width = 0, height = 0; + + /* parse cmd line args */ + for (i = 1; i < argc; i++) + { + if (strcmp(argv[i], "-info") == 0) + { + printInfo = GL_TRUE; + } + else + printf("Warning: unknown parameter: %s\n", argv[i]); + } + + /* DBR : Create EGL context/surface etc */ + d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &maj, &min)) { + printf("eglgears: eglInitialize failed\n"); + exit(1); + } + + printf("eglgears: EGL version = %d.%d\n", maj, min); + printf("eglgears: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + + /* XXX use ChooseConfig */ + eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); + eglGetScreensMESA(d, &screen, 1, &count); + + if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { + printf("eglgears: eglGetModesMESA failed!\n"); + return 0; + } + + /* Print list of modes, and find the one to use */ + printf("eglgears: Found %d modes:\n", count); + for (i = 0; i < count; i++) { + EGLint w, h; + eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); + printf("%3d: %d x %d\n", i, w, h); + if (w > width && h > height) { + width = w; + height = h; + chosenMode = i; + } + } + printf("eglgears: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); + + eglBindAPI(EGL_OPENGL_API); + ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); + if (ctx == EGL_NO_CONTEXT) { + printf("eglgears: failed to create context\n"); + return 0; + } + + /* build up screenAttribs array */ + i = 0; + screenAttribs[i++] = EGL_WIDTH; + screenAttribs[i++] = width; + screenAttribs[i++] = EGL_HEIGHT; + screenAttribs[i++] = height; + screenAttribs[i++] = EGL_NONE; + + screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); + if (screen_surf == EGL_NO_SURFACE) { + printf("eglgears: failed to create screen surface\n"); + return 0; + } + + b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); + if (!b) { + printf("eglgears: show surface failed\n"); + return 0; + } + + b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); + if (!b) { + printf("eglgears: make current failed\n"); + return 0; + } + + if (printInfo) + { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + reshape(width, height); + + glDrawBuffer( GL_BACK ); + + run_gears(d, screen_surf, 5.0); + + eglDestroySurface(d, screen_surf); + eglDestroyContext(d, ctx); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/eglinfo.c b/progs/egl/opengl/eglinfo.c new file mode 100644 index 0000000000..961fd9ccc7 --- /dev/null +++ b/progs/egl/opengl/eglinfo.c @@ -0,0 +1,223 @@ +/* + * eglinfo - like glxinfo but for EGL + * + * Brian Paul + * 11 March 2005 + * + * Copyright (C) 2005 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include + +#define MAX_CONFIGS 1000 +#define MAX_MODES 1000 +#define MAX_SCREENS 10 + +/* These are X visual types, so if you're running eglinfo under + * something not X, they probably don't make sense. */ +static const char *vnames[] = { "SG", "GS", "SC", "PC", "TC", "DC" }; + +/** + * Print table of all available configurations. + */ +static void +PrintConfigs(EGLDisplay d) +{ + EGLConfig configs[MAX_CONFIGS]; + EGLint numConfigs, i; + + eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); + + printf("Configurations:\n"); + printf(" bf lv colorbuffer dp st ms vis cav bi renderable supported\n"); + printf(" id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces \n"); + printf("---------------------------------------------------------------------\n"); + for (i = 0; i < numConfigs; i++) { + EGLint id, size, level; + EGLint red, green, blue, alpha; + EGLint depth, stencil; + EGLint renderable, surfaces; + EGLint vid, vtype, caveat, bindRgb, bindRgba; + EGLint samples, sampleBuffers; + char surfString[100] = ""; + + eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id); + eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size); + eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level); + + eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red); + eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green); + eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue); + eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha); + eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth); + eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil); + eglGetConfigAttrib(d, configs[i], EGL_NATIVE_VISUAL_ID, &vid); + eglGetConfigAttrib(d, configs[i], EGL_NATIVE_VISUAL_TYPE, &vtype); + + eglGetConfigAttrib(d, configs[i], EGL_CONFIG_CAVEAT, &caveat); + eglGetConfigAttrib(d, configs[i], EGL_BIND_TO_TEXTURE_RGB, &bindRgb); + eglGetConfigAttrib(d, configs[i], EGL_BIND_TO_TEXTURE_RGBA, &bindRgba); + eglGetConfigAttrib(d, configs[i], EGL_RENDERABLE_TYPE, &renderable); + eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces); + + eglGetConfigAttrib(d, configs[i], EGL_SAMPLES, &samples); + eglGetConfigAttrib(d, configs[i], EGL_SAMPLE_BUFFERS, &sampleBuffers); + + if (surfaces & EGL_WINDOW_BIT) + strcat(surfString, "win,"); + if (surfaces & EGL_PBUFFER_BIT) + strcat(surfString, "pb,"); + if (surfaces & EGL_PIXMAP_BIT) + strcat(surfString, "pix,"); +#ifdef EGL_MESA_screen_surface + if (surfaces & EGL_SCREEN_BIT_MESA) + strcat(surfString, "scrn,"); +#endif + if (strlen(surfString) > 0) + surfString[strlen(surfString) - 1] = 0; + + printf("0x%02x %2d %2d %2d %2d %2d %2d %2d %2d %2d%2d 0x%02x%s ", + id, size, level, + red, green, blue, alpha, + depth, stencil, + samples, sampleBuffers, vid, vtype < 6 ? vnames[vtype] : "--"); + printf(" %c %c %c %c %c %c %s\n", + (caveat != EGL_NONE) ? 'y' : ' ', + (bindRgba) ? 'a' : (bindRgb) ? 'y' : ' ', + (renderable & EGL_OPENGL_BIT) ? 'y' : ' ', + (renderable & EGL_OPENGL_ES_BIT) ? 'y' : ' ', + (renderable & EGL_OPENGL_ES2_BIT) ? 'y' : ' ', + (renderable & EGL_OPENVG_BIT) ? 'y' : ' ', + surfString); + } +} + + +/** + * Print table of all available configurations. + */ +static void +PrintModes(EGLDisplay d) +{ +#ifdef EGL_MESA_screen_surface + const char *extensions = eglQueryString(d, EGL_EXTENSIONS); + if (strstr(extensions, "EGL_MESA_screen_surface")) { + EGLScreenMESA screens[MAX_SCREENS]; + EGLint numScreens = 1, scrn; + EGLModeMESA modes[MAX_MODES]; + + eglGetScreensMESA(d, screens, MAX_SCREENS, &numScreens); + printf("Number of Screens: %d\n\n", numScreens); + + for (scrn = 0; scrn < numScreens; scrn++) { + EGLint numModes, i; + + eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes); + + printf("Screen %d Modes:\n", scrn); + printf(" id width height refresh name\n"); + printf("-----------------------------------------\n"); + for (i = 0; i < numModes; i++) { + EGLint id, w, h, r; + const char *str; + eglGetModeAttribMESA(d, modes[i], EGL_MODE_ID_MESA, &id); + eglGetModeAttribMESA(d, modes[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(d, modes[i], EGL_HEIGHT, &h); + eglGetModeAttribMESA(d, modes[i], EGL_REFRESH_RATE_MESA, &r); + str = eglQueryModeStringMESA(d, modes[i]); + printf("0x%02x %5d %5d %.3f %s\n", id, w, h, r / 1000.0, str); + } + } + } +#endif +} + +static void +PrintExtensions(EGLDisplay d) +{ + const char *extensions, *p, *end, *next; + int column; + + printf("EGL extensions string:\n"); + + extensions = eglQueryString(d, EGL_EXTENSIONS); + + column = 0; + end = extensions + strlen(extensions); + + for (p = extensions; p < end; p = next + 1) { + next = strchr(p, ' '); + if (next == NULL) + next = end; + + if (column > 0 && column + next - p + 1 > 70) { + printf("\n"); + column = 0; + } + if (column == 0) + printf(" "); + else + printf(" "); + column += next - p + 1; + + printf("%.*s", (int) (next - p), p); + + p = next + 1; + } + + if (column > 0) + printf("\n"); +} + +int +main(int argc, char *argv[]) +{ + int maj, min; + EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + + if (!eglInitialize(d, &maj, &min)) { + printf("eglinfo: eglInitialize failed\n"); + exit(1); + } + + printf("EGL API version: %d.%d\n", maj, min); + printf("EGL vendor string: %s\n", eglQueryString(d, EGL_VENDOR)); + printf("EGL version string: %s\n", eglQueryString(d, EGL_VERSION)); +#ifdef EGL_VERSION_1_2 + printf("EGL client APIs: %s\n", eglQueryString(d, EGL_CLIENT_APIS)); +#endif + + PrintExtensions(d); + + PrintConfigs(d); + + PrintModes(d); + + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/eglscreen.c b/progs/egl/opengl/eglscreen.c new file mode 100644 index 0000000000..520f76ea03 --- /dev/null +++ b/progs/egl/opengl/eglscreen.c @@ -0,0 +1,120 @@ +/* + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Stolen from eglgears + * + * Creates a surface and show that on the first screen + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_CONFIGS 10 +#define MAX_MODES 100 + +int +main(int argc, char *argv[]) +{ + int maj, min; + EGLSurface screen_surf; + EGLConfig configs[MAX_CONFIGS]; + EGLint numConfigs, i; + EGLBoolean b; + EGLDisplay d; + EGLint screenAttribs[10]; + EGLModeMESA mode[MAX_MODES]; + EGLScreenMESA screen; + EGLint count; + EGLint chosenMode = 0; + EGLint width = 0, height = 0; + + d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &maj, &min)) { + printf("eglscreen: eglInitialize failed\n"); + exit(1); + } + + printf("eglscreen: EGL version = %d.%d\n", maj, min); + printf("eglscreen: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + + /* XXX use ChooseConfig */ + eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); + eglGetScreensMESA(d, &screen, 1, &count); + + if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { + printf("eglscreen: eglGetModesMESA failed!\n"); + return 0; + } + + /* Print list of modes, and find the one to use */ + printf("eglscreen: Found %d modes:\n", count); + for (i = 0; i < count; i++) { + EGLint w, h; + eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); + printf("%3d: %d x %d\n", i, w, h); + if (w > width && h > height) { + width = w; + height = h; + chosenMode = i; + } + } + printf("eglscreen: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); + + /* build up screenAttribs array */ + i = 0; + screenAttribs[i++] = EGL_WIDTH; + screenAttribs[i++] = width; + screenAttribs[i++] = EGL_HEIGHT; + screenAttribs[i++] = height; + screenAttribs[i++] = EGL_NONE; + + screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); + if (screen_surf == EGL_NO_SURFACE) { + printf("eglscreen: Failed to create screen surface\n"); + return 0; + } + + b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); + if (!b) { + printf("eglscreen: Show surface failed\n"); + return 0; + } + + usleep(5000000); + + eglDestroySurface(d, screen_surf); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/egltri.c b/progs/egl/opengl/egltri.c new file mode 100644 index 0000000000..006e06eb03 --- /dev/null +++ b/progs/egl/opengl/egltri.c @@ -0,0 +1,264 @@ +/* + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * This program is based on eglgears and xegl_tri. + * Remixed by Jakob Bornecrantz + * + * No command line options. + * Program runs for 5 seconds then exits, outputing framerate to console + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_CONFIGS 10 +#define MAX_MODES 100 + + +/* XXX this probably isn't very portable */ + +#include +#include + +/* return current time (in seconds) */ +static double +current_time(void) +{ + struct timeval tv; +#ifdef __VMS + (void) gettimeofday(&tv, NULL ); +#else + struct timezone tz; + (void) gettimeofday(&tv, &tz); +#endif + return (double) tv.tv_sec + tv.tv_usec / 1000000.0; +} + + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + +static void draw() +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][3] = { + { 1, 0, 0 }, + { 0, 1, 0 }, + { 0, 0, 1 } + }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(3, GL_FLOAT, 0, colors); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); +} + +static void init() +{ + glClearColor(0.4, 0.4, 0.4, 0.0); +} + +/* new window size or exposure */ +static void reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + +static void run(EGLDisplay dpy, EGLSurface surf, int ttr) +{ + double st = current_time(); + double ct = st; + int frames = 0; + GLfloat seconds, fps; + + while (ct - st < ttr) + { + ct = current_time(); + + draw(); + + eglSwapBuffers(dpy, surf); + + frames++; + } + + seconds = ct - st; + fps = frames / seconds; + printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); +} + +int main(int argc, char *argv[]) +{ + int maj, min; + EGLContext ctx; + EGLSurface screen_surf; + EGLConfig configs[MAX_CONFIGS]; + EGLint numConfigs, i; + EGLBoolean b; + EGLDisplay d; + EGLint screenAttribs[10]; + EGLModeMESA mode[MAX_MODES]; + EGLScreenMESA screen; + EGLint count, chosenMode = 0; + GLboolean printInfo = GL_FALSE; + EGLint width = 0, height = 0; + + /* parse cmd line args */ + for (i = 1; i < argc; i++) + { + if (strcmp(argv[i], "-info") == 0) + { + printInfo = GL_TRUE; + } + else + printf("Warning: unknown parameter: %s\n", argv[i]); + } + + /* DBR : Create EGL context/surface etc */ + d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &maj, &min)) { + printf("egltri: eglInitialize failed\n"); + exit(1); + } + + printf("egltri: EGL version = %d.%d\n", maj, min); + printf("egltri: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + + /* XXX use ChooseConfig */ + eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); + eglGetScreensMESA(d, &screen, 1, &count); + + if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { + printf("egltri: eglGetModesMESA failed!\n"); + return 0; + } + + /* Print list of modes, and find the one to use */ + printf("egltri: Found %d modes:\n", count); + for (i = 0; i < count; i++) { + EGLint w, h; + eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); + printf("%3d: %d x %d\n", i, w, h); + if (w > width && h > height) { + width = w; + height = h; + chosenMode = i; + } + } + printf("egltri: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); + + eglBindAPI(EGL_OPENGL_API); + ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); + if (ctx == EGL_NO_CONTEXT) { + printf("egltri: failed to create context\n"); + return 0; + } + + /* build up screenAttribs array */ + i = 0; + screenAttribs[i++] = EGL_WIDTH; + screenAttribs[i++] = width; + screenAttribs[i++] = EGL_HEIGHT; + screenAttribs[i++] = height; + screenAttribs[i++] = EGL_NONE; + + screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); + if (screen_surf == EGL_NO_SURFACE) { + printf("egltri: failed to create screen surface\n"); + return 0; + } + + b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); + if (!b) { + printf("egltri: show surface failed\n"); + return 0; + } + + b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); + if (!b) { + printf("egltri: make current failed\n"); + return 0; + } + + if (printInfo) + { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + reshape(width, height); + + glDrawBuffer( GL_BACK ); + + run(d, screen_surf, 5.0); + + eglDestroySurface(d, screen_surf); + eglDestroyContext(d, ctx); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/peglgears.c b/progs/egl/opengl/peglgears.c new file mode 100644 index 0000000000..212d1acf69 --- /dev/null +++ b/progs/egl/opengl/peglgears.c @@ -0,0 +1,451 @@ +/* + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * This is a port of the infamous "glxgears" demo to straight EGL + * Port by Dane Rushton 10 July 2005 + * + * No command line options. + * Program runs for 5 seconds then exits, outputing framerate to console + */ + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_CONFIGS 10 +#define MAX_MODES 100 + +#define BENCHMARK + +#ifdef BENCHMARK + +/* XXX this probably isn't very portable */ + +#include +#include + +/* return current time (in seconds) */ +static double +current_time(void) +{ + struct timeval tv; +#ifdef __VMS + (void) gettimeofday(&tv, NULL ); +#else + struct timezone tz; + (void) gettimeofday(&tv, &tz); +#endif + return (double) tv.tv_sec + tv.tv_usec / 1000000.0; +} + +#else /*BENCHMARK*/ + +/* dummy */ +static double +current_time(void) +{ + /* update this function for other platforms! */ + static double t = 0.0; + static int warn = 1; + if (warn) { + fprintf(stderr, "Warning: current_time() not implemented!!\n"); + warn = 0; + } + return t += 1.0; +} + +#endif /*BENCHMARK*/ + + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; + +#if 0 +static GLfloat eyesep = 5.0; /* Eye separation. */ +static GLfloat fix_point = 40.0; /* Fixation point distance. */ +static GLfloat left, right, asp; /* Stereo frustum params. */ +#endif + + +/* + * + * Draw a gear wheel. You'll probably want to call this function when + * building a display list since we do a lot of trig here. + * + * Input: inner_radius - radius of hole at center + * outer_radius - radius at center of teeth + * width - width of gear + * teeth - number of teeth + * tooth_depth - depth of tooth + */ +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + if (i < teeth) { + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + if (i < teeth) { + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); +} + + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + + + +static void +init(void) +{ + static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; + static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; + static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; + static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); +} + + + + +static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr) +{ + double st = current_time(); + double ct = st; + int frames = 0; + GLfloat seconds, fps; + + while (ct - st < ttr) + { + double tt = current_time(); + double dt = tt - ct; + ct = tt; + + /* advance rotation for next frame */ + angle += 70.0 * dt; /* 70 degrees per second */ + if (angle > 3600.0) + angle -= 3600.0; + + draw(); + + eglSwapBuffers(dpy, surf); + + + frames++; + } + + seconds = ct - st; + fps = frames / seconds; + printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); + +} + + +int +main(int argc, char *argv[]) +{ + int major, minor; + EGLContext ctx; + EGLSurface surface; + EGLConfig configs[MAX_CONFIGS]; + EGLint numConfigs, i; + EGLBoolean b; + EGLDisplay d; + EGLint screenAttribs[10]; + GLboolean printInfo = GL_FALSE; + EGLint width = 300, height = 300; + + /* parse cmd line args */ + for (i = 1; i < argc; i++) + { + if (strcmp(argv[i], "-info") == 0) + { + printInfo = GL_TRUE; + } + else + printf("Warning: unknown parameter: %s\n", argv[i]); + } + + /* DBR : Create EGL context/surface etc */ + d = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(d); + + if (!eglInitialize(d, &major, &minor)) { + printf("peglgears: eglInitialize failed\n"); + return 0; + } + + printf("peglgears: EGL version = %d.%d\n", major, minor); + printf("peglgears: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); + + eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); + + eglBindAPI(EGL_OPENGL_API); + + ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); + if (ctx == EGL_NO_CONTEXT) { + printf("peglgears: failed to create context\n"); + return 0; + } + + /* build up screenAttribs array */ + i = 0; + screenAttribs[i++] = EGL_WIDTH; + screenAttribs[i++] = width; + screenAttribs[i++] = EGL_HEIGHT; + screenAttribs[i++] = height; + screenAttribs[i++] = EGL_NONE; + + surface = eglCreatePbufferSurface(d, configs[0], screenAttribs); + if (surface == EGL_NO_SURFACE) { + printf("peglgears: failed to create pbuffer surface\n"); + return 0; + } + + b = eglMakeCurrent(d, surface, surface, ctx); + if (!b) { + printf("peglgears: make current failed\n"); + return 0; + } + + if (printInfo) + { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + reshape(width, height); + + glDrawBuffer( GL_BACK ); + + run_gears(d, surface, 5.0); + + eglDestroySurface(d, surface); + eglDestroyContext(d, ctx); + eglTerminate(d); + + return 0; +} diff --git a/progs/egl/opengl/xegl_tri.c b/progs/egl/opengl/xegl_tri.c new file mode 100644 index 0000000000..1f1a005a21 --- /dev/null +++ b/progs/egl/opengl/xegl_tri.c @@ -0,0 +1,361 @@ +/* + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Draw a triangle with X/EGL. + * Brian Paul + * 3 June 2008 + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include /* using full OpenGL for now */ +#include + + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + + +static void +draw(void) +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][3] = { + { 1, 0, 0 }, + { 0, 1, 0 }, + { 0, 0, 1 } + }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(3, GL_FLOAT, 0, colors); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + + +static void +init(void) +{ + glClearColor(0.4, 0.4, 0.4, 0.0); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: glXCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "xegl_tri", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengl/xeglgears.c b/progs/egl/opengl/xeglgears.c new file mode 100644 index 0000000000..a6a977d9ff --- /dev/null +++ b/progs/egl/opengl/xeglgears.c @@ -0,0 +1,954 @@ +/* + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Ported to X/EGL/GLES. XXX Actually, uses full OpenGL ATM. + * Brian Paul + * 30 May 2008 + */ + +/* + * Command line options: + * -info print GL implementation information + * + */ + + +#define GL_GLEXT_PROTOTYPES +#define EGL_EGLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +#define BENCHMARK + +#ifdef BENCHMARK + +/* XXX this probably isn't very portable */ + +#include +#include + +/* return current time (in seconds) */ +static double +current_time(void) +{ + struct timeval tv; +#ifdef __VMS + (void) gettimeofday(&tv, NULL ); +#else + struct timezone tz; + (void) gettimeofday(&tv, &tz); +#endif + return (double) tv.tv_sec + tv.tv_usec / 1000000.0; +} + +#else /*BENCHMARK*/ + +/* dummy */ +static double +current_time(void) +{ + /* update this function for other platforms! */ + static double t = 0.0; + static int warn = 1; + if (warn) { + fprintf(stderr, "Warning: current_time() not implemented!!\n"); + warn = 0; + } + return t += 1.0; +} + +#endif /*BENCHMARK*/ + + + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static GLint gear1, gear2, gear3; +static GLfloat angle = 0.0; + +/* + * + * Draw a gear wheel. You'll probably want to call this function when + * building a display list since we do a lot of trig here. + * + * Input: inner_radius - radius of hole at center + * outer_radius - radius at center of teeth + * width - width of gear + * teeth - number of teeth + * tooth_depth - depth of tooth + */ +static void +gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, + GLint teeth, GLfloat tooth_depth) +{ + GLint i; + GLfloat r0, r1, r2; + GLfloat angle, da; + GLfloat u, v, len; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + da = 2.0 * M_PI / teeth / 4.0; + + glShadeModel(GL_FLAT); + + glNormal3f(0.0, 0.0, 1.0); + + /* draw front face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + if (i < teeth) { + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + } + glEnd(); + + /* draw front sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + } + glEnd(); + + glNormal3f(0.0, 0.0, -1.0); + + /* draw back face */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + if (i < teeth) { + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + } + } + glEnd(); + + /* draw back sides of teeth */ + glBegin(GL_QUADS); + da = 2.0 * M_PI / teeth / 4.0; + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + } + glEnd(); + + /* draw outward faces of teeth */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i < teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + + glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); + glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); + u = r2 * cos(angle + da) - r1 * cos(angle); + v = r2 * sin(angle + da) - r1 * sin(angle); + len = sqrt(u * u + v * v); + u /= len; + v /= len; + glNormal3f(v, -u, 0.0); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); + glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + width * 0.5); + glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), + -width * 0.5); + u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); + v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); + glNormal3f(v, -u, 0.0); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + width * 0.5); + glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), + -width * 0.5); + glNormal3f(cos(angle), sin(angle), 0.0); + } + + glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); + glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); + + glEnd(); + + glShadeModel(GL_SMOOTH); + + /* draw inside radius cylinder */ + glBegin(GL_QUAD_STRIP); + for (i = 0; i <= teeth; i++) { + angle = i * 2.0 * M_PI / teeth; + glNormal3f(-cos(angle), -sin(angle), 0.0); + glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); + glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); + } + glEnd(); +} + + +static void +draw(void) +{ + glClearColor(0.2, 0.2, 0.2, 0.2); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + glCallList(gear1); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + glCallList(gear2); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + glCallList(gear3); + glPopMatrix(); + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + + + +static void +init(void) +{ + static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; + static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; + static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; + static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + + /* make the gears */ + gear1 = glGenLists(1); + glNewList(gear1, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); + gear(1.0, 4.0, 1.0, 20, 0.7); + glEndList(); + + gear2 = glGenLists(1); + glNewList(gear2, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); + gear(0.5, 2.0, 2.0, 10, 0.7); + glEndList(); + + gear3 = glGenLists(1); + glNewList(gear3, GL_COMPILE); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); + gear(1.3, 2.0, 0.5, 10, 0.7); + glEndList(); + + glEnable(GL_NORMALIZE); +} + + +struct egl_manager { + EGLNativeDisplayType xdpy; + EGLNativeWindowType xwin; + EGLNativePixmapType xpix; + + EGLDisplay dpy; + EGLConfig conf; + EGLContext ctx; + + EGLSurface win; + EGLSurface pix; + EGLSurface pbuf; + EGLImageKHR image; + + EGLBoolean verbose; + EGLint major, minor; + + GC gc; + GLuint fbo; +}; + +static struct egl_manager * +egl_manager_new(EGLNativeDisplayType xdpy, const EGLint *attrib_list, + EGLBoolean verbose) +{ + struct egl_manager *eman; + const char *ver; + EGLint num_conf; + + eman = calloc(1, sizeof(*eman)); + if (!eman) + return NULL; + + eman->verbose = verbose; + eman->xdpy = xdpy; + + eman->dpy = eglGetDisplay(eman->xdpy); + if (eman->dpy == EGL_NO_DISPLAY) { + printf("eglGetDisplay() failed\n"); + free(eman); + return NULL; + } + + if (!eglInitialize(eman->dpy, &eman->major, &eman->minor)) { + printf("eglInitialize() failed\n"); + free(eman); + return NULL; + } + + ver = eglQueryString(eman->dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", ver); + + if (!eglChooseConfig(eman->dpy, attrib_list, &eman->conf, 1, &num_conf) || + !num_conf) { + printf("eglChooseConfig() failed\n"); + eglTerminate(eman->dpy); + free(eman); + return NULL; + } + + eman->ctx = eglCreateContext(eman->dpy, eman->conf, EGL_NO_CONTEXT, NULL); + if (eman->ctx == EGL_NO_CONTEXT) { + printf("eglCreateContext() failed\n"); + eglTerminate(eman->dpy); + free(eman); + return NULL; + } + + return eman; +} + +static EGLBoolean +egl_manager_create_window(struct egl_manager *eman, const char *name, + EGLint w, EGLint h, EGLBoolean need_surface, + EGLBoolean fullscreen, const EGLint *attrib_list) +{ + XVisualInfo vinfo_template, *vinfo = NULL; + EGLint val, num_vinfo; + Window root; + XSetWindowAttributes attrs; + unsigned long mask; + EGLint x = 0, y = 0; + + if (!eglGetConfigAttrib(eman->dpy, eman->conf, + EGL_NATIVE_VISUAL_ID, &val)) { + printf("eglGetConfigAttrib() failed\n"); + return EGL_FALSE; + } + if (val) { + vinfo_template.visualid = (VisualID) val; + vinfo = XGetVisualInfo(eman->xdpy, VisualIDMask, &vinfo_template, &num_vinfo); + } + /* try harder if window surface is not needed */ + if (!vinfo && !need_surface && + eglGetConfigAttrib(eman->dpy, eman->conf, EGL_BUFFER_SIZE, &val)) { + if (val == 32) + val = 24; + vinfo_template.depth = val; + vinfo = XGetVisualInfo(eman->xdpy, VisualDepthMask, &vinfo_template, &num_vinfo); + } + + if (!vinfo) { + printf("XGetVisualInfo() failed\n"); + return EGL_FALSE; + } + + root = DefaultRootWindow(eman->xdpy); + if (fullscreen) { + x = y = 0; + w = DisplayWidth(eman->xdpy, DefaultScreen(eman->xdpy)); + h = DisplayHeight(eman->xdpy, DefaultScreen(eman->xdpy)); + } + + /* window attributes */ + attrs.background_pixel = 0; + attrs.border_pixel = 0; + attrs.colormap = XCreateColormap(eman->xdpy, root, vinfo->visual, AllocNone); + attrs.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + attrs.override_redirect = fullscreen; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect; + + eman->xwin = XCreateWindow(eman->xdpy, root, x, y, w, h, + 0, vinfo->depth, InputOutput, + vinfo->visual, mask, &attrs); + XFree(vinfo); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = w; + sizehints.height = h; + sizehints.flags = USSize | USPosition; + XSetNormalHints(eman->xdpy, eman->xwin, &sizehints); + XSetStandardProperties(eman->xdpy, eman->xwin, name, name, + None, (char **)NULL, 0, &sizehints); + } + + if (need_surface) { + eman->win = eglCreateWindowSurface(eman->dpy, eman->conf, + eman->xwin, attrib_list); + if (eman->win == EGL_NO_SURFACE) { + printf("eglCreateWindowSurface() failed\n"); + XDestroyWindow(eman->xdpy, eman->xwin); + eman->xwin = None; + return EGL_FALSE; + } + } + + eman->gc = XCreateGC(eman->xdpy, eman->xwin, 0, NULL); + + XMapWindow(eman->xdpy, eman->xwin); + + return EGL_TRUE; +} + +static EGLBoolean +egl_manager_create_pixmap(struct egl_manager *eman, EGLNativeWindowType xwin, + EGLBoolean need_surface, const EGLint *attrib_list) +{ + XWindowAttributes attrs; + + if (!XGetWindowAttributes(eman->xdpy, xwin, &attrs)) { + printf("XGetWindowAttributes() failed\n"); + return EGL_FALSE; + } + + eman->xpix = XCreatePixmap(eman->xdpy, xwin, + attrs.width, attrs.height, attrs.depth); + + if (need_surface) { + eman->pix = eglCreatePixmapSurface(eman->dpy, eman->conf, + eman->xpix, attrib_list); + if (eman->pix == EGL_NO_SURFACE) { + printf("eglCreatePixmapSurface() failed\n"); + XFreePixmap(eman->xdpy, eman->xpix); + eman->xpix = None; + return EGL_FALSE; + } + } + + return EGL_TRUE; +} + +static EGLBoolean +egl_manager_create_pbuffer(struct egl_manager *eman, const EGLint *attrib_list) +{ + eman->pbuf = eglCreatePbufferSurface(eman->dpy, eman->conf, attrib_list); + if (eman->pbuf == EGL_NO_SURFACE) { + printf("eglCreatePbufferSurface() failed\n"); + return EGL_FALSE; + } + + return EGL_TRUE; +} + +static void +egl_manager_destroy(struct egl_manager *eman) +{ + eglMakeCurrent(eman->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglTerminate(eman->dpy); + + if (eman->xwin != None) + XDestroyWindow(eman->xdpy, eman->xwin); + if (eman->xpix != None) + XFreePixmap(eman->xdpy, eman->xpix); + + XFreeGC(eman->xdpy, eman->gc); + + free(eman); +} + +enum { + GEARS_WINDOW, + GEARS_PIXMAP, + GEARS_PIXMAP_TEXTURE, + GEARS_PBUFFER, + GEARS_PBUFFER_TEXTURE, + GEARS_RENDERBUFFER +}; + +static void +texture_gears(struct egl_manager *eman, int surface_type) +{ + static const GLint verts[12] = + { -5, -6, -10, 5, -6, -10, -5, 4, 10, 5, 4, 10 }; + static const GLint tex_coords[8] = { 0, 0, 1, 0, 0, 1, 1, 1 }; + + eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); + + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glEnable(GL_TEXTURE_2D); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glVertexPointer(3, GL_INT, 0, verts); + glTexCoordPointer(2, GL_INT, 0, tex_coords); + + if (surface_type == GEARS_PBUFFER_TEXTURE) + eglBindTexImage(eman->dpy, eman->pbuf, EGL_BACK_BUFFER); + + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + glDisable(GL_TEXTURE_2D); + + if (surface_type == GEARS_PBUFFER_TEXTURE) + eglReleaseTexImage(eman->dpy, eman->pbuf, EGL_BACK_BUFFER); + + eglSwapBuffers(eman->dpy, eman->win); +} + +static void +copy_gears(struct egl_manager *eman, + EGLint tile_w, EGLint tile_h, EGLint w, EGLint h) +{ + int x, y; + + eglWaitClient(); + + for (x = 0; x < w; x += tile_w) { + for (y = 0; y < h; y += tile_h) { + + XCopyArea(eman->xdpy, eman->xpix, eman->xwin, eman->gc, + 0, 0, tile_w, tile_h, x, y); + } + } +} + +static void +event_loop(struct egl_manager *eman, EGLint surface_type, EGLint w, EGLint h) +{ + int window_w = w, window_h = h; + + if (surface_type == EGL_PBUFFER_BIT) + printf("there will be no screen update if " + "eglCopyBuffers() is not implemented\n"); + + while (1) { + while (XPending(eman->xdpy) > 0) { + XEvent event; + XNextEvent(eman->xdpy, &event); + switch (event.type) { + case Expose: + /* we'll redraw below */ + break; + case ConfigureNotify: + window_w = event.xconfigure.width; + window_h = event.xconfigure.height; + if (surface_type == EGL_WINDOW_BIT) + reshape(window_w, window_h); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + } + } + + { + static int frames = 0; + static double tRot0 = -1.0, tRate0 = -1.0; + double dt, t = current_time(); + if (tRot0 < 0.0) + tRot0 = t; + dt = t - tRot0; + tRot0 = t; + + /* advance rotation for next frame */ + angle += 70.0 * dt; /* 70 degrees per second */ + if (angle > 3600.0) + angle -= 3600.0; + + switch (surface_type) { + case GEARS_WINDOW: + draw(); + eglSwapBuffers(eman->dpy, eman->win); + break; + + case GEARS_PBUFFER: + draw(); + if (!eglCopyBuffers(eman->dpy, eman->pbuf, eman->xpix)) + break; + copy_gears(eman, w, h, window_w, window_h); + break; + + case GEARS_PBUFFER_TEXTURE: + eglMakeCurrent(eman->dpy, eman->pbuf, eman->pbuf, eman->ctx); + draw(); + texture_gears(eman, surface_type); + break; + + case GEARS_PIXMAP: + draw(); + copy_gears(eman, w, h, window_w, window_h); + break; + + case GEARS_PIXMAP_TEXTURE: + eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx); + draw(); + texture_gears(eman, surface_type); + break; + + case GEARS_RENDERBUFFER: + glBindFramebuffer(GL_FRAMEBUFFER_EXT, eman->fbo); + draw(); + glBindFramebuffer(GL_FRAMEBUFFER_EXT, 0); + texture_gears(eman, surface_type); + break; + } + + frames++; + + if (tRate0 < 0.0) + tRate0 = t; + if (t - tRate0 >= 5.0) { + GLfloat seconds = t - tRate0; + GLfloat fps = frames / seconds; + printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, + fps); + tRate0 = t; + frames = 0; + } + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -fullscreen run in fullscreen mode\n"); + printf(" -info display OpenGL renderer info\n"); + printf(" -pixmap use pixmap surface\n"); + printf(" -pixmap-texture use pixmap surface and texture using EGLImage\n"); + printf(" -pbuffer use pbuffer surface and eglCopyBuffers\n"); + printf(" -pbuffer-texture use pbuffer surface and eglBindTexImage\n"); + printf(" -renderbuffer renderbuffer as EGLImage and bind as texture from\n"); +} + +static const char *names[] = { + "window", + "pixmap", + "pixmap_texture", + "pbuffer", + "pbuffer_texture", + "renderbuffer" +}; + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + char *dpyName = NULL; + struct egl_manager *eman; + EGLint attribs[] = { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, /* may be changed later */ + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE + }; + char win_title[] = "xeglgears (window/pixmap/pbuffer)"; + EGLint surface_type = GEARS_WINDOW; + GLboolean printInfo = GL_FALSE; + GLboolean fullscreen = GL_FALSE; + EGLBoolean ret; + GLuint texture, color_rb, depth_rb; + int i; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else if (strcmp(argv[i], "-fullscreen") == 0) { + fullscreen = GL_TRUE; + } + else if (strcmp(argv[i], "-pixmap") == 0) { + surface_type = GEARS_PIXMAP; + attribs[1] = EGL_PIXMAP_BIT; + } + else if (strcmp(argv[i], "-pixmap-texture") == 0) { + surface_type = GEARS_PIXMAP_TEXTURE; + attribs[1] = EGL_PIXMAP_BIT; + } + else if (strcmp(argv[i], "-pbuffer") == 0) { + surface_type = GEARS_PBUFFER; + attribs[1] = EGL_PBUFFER_BIT; + } + else if (strcmp(argv[i], "-pbuffer-texture") == 0) { + surface_type = GEARS_PBUFFER_TEXTURE; + attribs[1] = EGL_PBUFFER_BIT; + } + else if (strcmp(argv[i], "-renderbuffer") == 0) { + surface_type = GEARS_RENDERBUFFER; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + eglBindAPI(EGL_OPENGL_API); + + eman = egl_manager_new(x_dpy, attribs, printInfo); + if (!eman) { + XCloseDisplay(x_dpy); + return -1; + } + + snprintf(win_title, sizeof(win_title), + "xeglgears (%s)", names[surface_type]); + + ret = egl_manager_create_window(eman, win_title, winWidth, winHeight, + EGL_TRUE, fullscreen, NULL); + if (!ret) + return -1; + + /* create surface(s) */ + switch (surface_type) { + case GEARS_WINDOW: + if (ret) + ret = eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); + break; + case GEARS_PIXMAP: + case GEARS_PIXMAP_TEXTURE: + ret = egl_manager_create_pixmap(eman, eman->xwin, EGL_TRUE, NULL); + if (surface_type == GEARS_PIXMAP_TEXTURE) + eman->image = eglCreateImageKHR (eman->dpy, eman->ctx, + EGL_NATIVE_PIXMAP_KHR, + (EGLClientBuffer) eman->xpix, NULL); + if (ret) + ret = eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx); + break; + case GEARS_PBUFFER: + case GEARS_PBUFFER_TEXTURE: + { + EGLint pbuf_attribs[] = { + EGL_WIDTH, winWidth, + EGL_HEIGHT, winHeight, + EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, + EGL_TEXTURE_TARGET, EGL_TEXTURE_2D, + EGL_NONE + }; + ret = (egl_manager_create_pixmap(eman, eman->xwin, + EGL_TRUE, NULL) && + egl_manager_create_pbuffer(eman, pbuf_attribs)); + if (ret) + ret = eglMakeCurrent(eman->dpy, eman->pbuf, eman->pbuf, eman->ctx); + } + break; + + + case GEARS_RENDERBUFFER: + ret = eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); + if (ret == EGL_FALSE) + printf("failed to make context current\n"); + + glGenFramebuffers(1, &eman->fbo); + glBindFramebuffer(GL_FRAMEBUFFER_EXT, eman->fbo); + + glGenRenderbuffers(1, &color_rb); + glBindRenderbuffer(GL_RENDERBUFFER_EXT, color_rb); + glRenderbufferStorage(GL_RENDERBUFFER_EXT, GL_RGBA, winWidth, winHeight); + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, + GL_COLOR_ATTACHMENT0_EXT, + GL_RENDERBUFFER_EXT, + color_rb); + + eman->image = eglCreateImageKHR(eman->dpy, eman->ctx, + EGL_GL_RENDERBUFFER_KHR, + (EGLClientBuffer) color_rb, NULL); + + glGenRenderbuffers(1, &depth_rb); + glBindRenderbuffer(GL_RENDERBUFFER_EXT, depth_rb); + glRenderbufferStorage(GL_RENDERBUFFER_EXT, + GL_DEPTH_COMPONENT, winWidth, winHeight); + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, + GL_DEPTH_ATTACHMENT_EXT, + GL_RENDERBUFFER_EXT, + depth_rb); + + if (glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE) { + printf("framebuffer not complete\n"); + exit(1); + } + + break; + + default: + ret = EGL_FALSE; + break; + } + + switch (surface_type) { + case GEARS_PIXMAP_TEXTURE: + case GEARS_RENDERBUFFER: + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, eman->image); + break; + case GEARS_PBUFFER_TEXTURE: + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + break; + } + + if (!ret) { + egl_manager_destroy(eman); + XCloseDisplay(x_dpy); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(eman, surface_type, winWidth, winHeight); + + glDeleteLists(gear1, 1); + glDeleteLists(gear2, 1); + glDeleteLists(gear3, 1); + + egl_manager_destroy(eman); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengl/xeglthreads.c b/progs/egl/opengl/xeglthreads.c new file mode 100644 index 0000000000..5787faecb9 --- /dev/null +++ b/progs/egl/opengl/xeglthreads.c @@ -0,0 +1,775 @@ +/* + * Copyright (C) 2000 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Ported to EGL by Chia-I Wu + */ + + +/* + * This program tests EGL thread safety. + * Command line options: + * -p Open a display connection for each thread + * -l Enable application-side locking + * -n Number of threads to create (default is 2) + * -display Specify X display (default is $DISPLAY) + * -t Use texture mapping + * + * Brian Paul 20 July 2000 + */ + + +/* + * Notes: + * - Each thread gets its own EGL context. + * + * - The EGL contexts share texture objects. + * + * - When 't' is pressed to update the texture image, the window/thread which + * has input focus is signalled to change the texture. The other threads + * should see the updated texture the next time they call glBindTexture. + */ + + +#if defined(PTHREADS) /* defined by Mesa on Linux and other platforms */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + * Each window/thread/context: + */ +struct winthread { + Display *Dpy; + int Index; + pthread_t Thread; + Window Win; + EGLDisplay Display; + EGLContext Context; + EGLSurface Surface; + float Angle; + int WinWidth, WinHeight; + GLboolean NewSize; + GLboolean Initialized; + GLboolean MakeNewTexture; +}; + + +#define MAX_WINTHREADS 100 +static struct winthread WinThreads[MAX_WINTHREADS]; +static int NumWinThreads = 0; +static volatile GLboolean ExitFlag = GL_FALSE; + +static GLboolean MultiDisplays = 0; +static GLboolean Locking = 0; +static GLboolean Texture = GL_FALSE; +static GLuint TexObj = 12; +static GLboolean Animate = GL_TRUE; + +static pthread_mutex_t Mutex; +static pthread_cond_t CondVar; +static pthread_mutex_t CondMutex; + + +static void +Error(const char *msg) +{ + fprintf(stderr, "Error: %s\n", msg); + exit(1); +} + + +static void +signal_redraw(void) +{ + pthread_mutex_lock(&CondMutex); + pthread_cond_broadcast(&CondVar); + pthread_mutex_unlock(&CondMutex); +} + + +static void +MakeNewTexture(struct winthread *wt) +{ +#define TEX_SIZE 128 + static float step = 0.0; + GLfloat image[TEX_SIZE][TEX_SIZE][4]; + GLint width; + int i, j; + + for (j = 0; j < TEX_SIZE; j++) { + for (i = 0; i < TEX_SIZE; i++) { + float dt = 5.0 * (j - 0.5 * TEX_SIZE) / TEX_SIZE; + float ds = 5.0 * (i - 0.5 * TEX_SIZE) / TEX_SIZE; + float r = dt * dt + ds * ds + step; + image[j][i][0] = + image[j][i][1] = + image[j][i][2] = 0.75 + 0.25 * cos(r); + image[j][i][3] = 1.0; + } + } + + step += 0.5; + + glBindTexture(GL_TEXTURE_2D, TexObj); + + glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + if (width) { + assert(width == TEX_SIZE); + /* sub-tex replace */ + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TEX_SIZE, TEX_SIZE, + GL_RGBA, GL_FLOAT, image); + } + else { + /* create new */ + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEX_SIZE, TEX_SIZE, 0, + GL_RGBA, GL_FLOAT, image); + } +} + + + +/* draw a colored cube */ +static void +draw_object(void) +{ + glPushMatrix(); + glScalef(0.75, 0.75, 0.75); + + glColor3f(1, 0, 0); + + if (Texture) { + glBindTexture(GL_TEXTURE_2D, TexObj); + glEnable(GL_TEXTURE_2D); + } + else { + glDisable(GL_TEXTURE_2D); + } + + glBegin(GL_QUADS); + + /* -X */ + glColor3f(0, 1, 1); + glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); + glTexCoord2f(1, 0); glVertex3f(-1, 1, -1); + glTexCoord2f(1, 1); glVertex3f(-1, 1, 1); + glTexCoord2f(0, 1); glVertex3f(-1, -1, 1); + + /* +X */ + glColor3f(1, 0, 0); + glTexCoord2f(0, 0); glVertex3f(1, -1, -1); + glTexCoord2f(1, 0); glVertex3f(1, 1, -1); + glTexCoord2f(1, 1); glVertex3f(1, 1, 1); + glTexCoord2f(0, 1); glVertex3f(1, -1, 1); + + /* -Y */ + glColor3f(1, 0, 1); + glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); + glTexCoord2f(1, 0); glVertex3f( 1, -1, -1); + glTexCoord2f(1, 1); glVertex3f( 1, -1, 1); + glTexCoord2f(0, 1); glVertex3f(-1, -1, 1); + + /* +Y */ + glColor3f(0, 1, 0); + glTexCoord2f(0, 0); glVertex3f(-1, 1, -1); + glTexCoord2f(1, 0); glVertex3f( 1, 1, -1); + glTexCoord2f(1, 1); glVertex3f( 1, 1, 1); + glTexCoord2f(0, 1); glVertex3f(-1, 1, 1); + + /* -Z */ + glColor3f(1, 1, 0); + glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); + glTexCoord2f(1, 0); glVertex3f( 1, -1, -1); + glTexCoord2f(1, 1); glVertex3f( 1, 1, -1); + glTexCoord2f(0, 1); glVertex3f(-1, 1, -1); + + /* +Y */ + glColor3f(0, 0, 1); + glTexCoord2f(0, 0); glVertex3f(-1, -1, 1); + glTexCoord2f(1, 0); glVertex3f( 1, -1, 1); + glTexCoord2f(1, 1); glVertex3f( 1, 1, 1); + glTexCoord2f(0, 1); glVertex3f(-1, 1, 1); + + glEnd(); + + glPopMatrix(); +} + + +/* signal resize of given window */ +static void +resize(struct winthread *wt, int w, int h) +{ + wt->NewSize = GL_TRUE; + wt->WinWidth = w; + wt->WinHeight = h; + if (!Animate) + signal_redraw(); +} + + +/* + * We have an instance of this for each thread. + */ +static void +draw_loop(struct winthread *wt) +{ + while (!ExitFlag) { + + if (Locking) + pthread_mutex_lock(&Mutex); + + if (!wt->Initialized) { + eglMakeCurrent(wt->Display, wt->Surface, wt->Surface, wt->Context); + printf("xeglthreads: %d: GL_RENDERER = %s\n", wt->Index, + (char *) glGetString(GL_RENDERER)); + if (Texture /*&& wt->Index == 0*/) { + MakeNewTexture(wt); + } + wt->Initialized = GL_TRUE; + } + + if (Locking) + pthread_mutex_unlock(&Mutex); + + eglBindAPI(EGL_OPENGL_API); + if (eglGetCurrentContext() != wt->Context) { + printf("xeglthreads: current context %p != %p\n", + eglGetCurrentContext(), wt->Context); + } + + glEnable(GL_DEPTH_TEST); + + if (wt->NewSize) { + GLfloat w = (float) wt->WinWidth / (float) wt->WinHeight; + glViewport(0, 0, wt->WinWidth, wt->WinHeight); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-w, w, -1.0, 1.0, 1.5, 10); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0, 0, -2.5); + wt->NewSize = GL_FALSE; + } + + if (wt->MakeNewTexture) { + MakeNewTexture(wt); + wt->MakeNewTexture = GL_FALSE; + } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(wt->Angle, 0, 1, 0); + glRotatef(wt->Angle, 1, 0, 0); + glScalef(0.7, 0.7, 0.7); + draw_object(); + glPopMatrix(); + + if (Locking) + pthread_mutex_lock(&Mutex); + + eglSwapBuffers(wt->Display, wt->Surface); + + if (Locking) + pthread_mutex_unlock(&Mutex); + + if (Animate) { + usleep(5000); + } + else { + /* wait for signal to draw */ + pthread_mutex_lock(&CondMutex); + pthread_cond_wait(&CondVar, &CondMutex); + pthread_mutex_unlock(&CondMutex); + } + wt->Angle += 1.0; + } + eglMakeCurrent(wt->Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); +} + + +static void +keypress(XEvent *event, struct winthread *wt) +{ + char buf[100]; + KeySym keySym; + XComposeStatus stat; + + XLookupString(&event->xkey, buf, sizeof(buf), &keySym, &stat); + + switch (keySym) { + case XK_Escape: + /* tell all threads to exit */ + if (!Animate) { + signal_redraw(); + } + ExitFlag = GL_TRUE; + /*printf("exit draw_loop %d\n", wt->Index);*/ + return; + case XK_t: + case XK_T: + if (Texture) { + wt->MakeNewTexture = GL_TRUE; + if (!Animate) + signal_redraw(); + } + break; + case XK_a: + case XK_A: + Animate = !Animate; + if (Animate) /* yes, prev Animate state! */ + signal_redraw(); + break; + case XK_s: + case XK_S: + if (!Animate) + signal_redraw(); + break; + default: + ; /* nop */ + } +} + + +/* + * The main process thread runs this loop. + * Single display connection for all threads. + */ +static void +event_loop(Display *dpy) +{ + XEvent event; + int i; + + assert(!MultiDisplays); + + while (!ExitFlag) { + + if (Locking) { + while (1) { + int k; + pthread_mutex_lock(&Mutex); + k = XPending(dpy); + if (k) { + XNextEvent(dpy, &event); + pthread_mutex_unlock(&Mutex); + break; + } + pthread_mutex_unlock(&Mutex); + usleep(5000); + } + } + else { + XNextEvent(dpy, &event); + } + + switch (event.type) { + case ConfigureNotify: + /* Find winthread for this event's window */ + for (i = 0; i < NumWinThreads; i++) { + struct winthread *wt = &WinThreads[i]; + if (event.xconfigure.window == wt->Win) { + resize(wt, event.xconfigure.width, + event.xconfigure.height); + break; + } + } + break; + case KeyPress: + for (i = 0; i < NumWinThreads; i++) { + struct winthread *wt = &WinThreads[i]; + if (event.xkey.window == wt->Win) { + keypress(&event, wt); + break; + } + } + break; + default: + /*no-op*/ ; + } + } +} + + +/* + * Separate display connection for each thread. + */ +static void +event_loop_multi(void) +{ + XEvent event; + int w = 0; + + assert(MultiDisplays); + + while (!ExitFlag) { + struct winthread *wt = &WinThreads[w]; + if (XPending(wt->Dpy)) { + XNextEvent(wt->Dpy, &event); + switch (event.type) { + case ConfigureNotify: + resize(wt, event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + keypress(&event, wt); + break; + default: + ; /* nop */ + } + } + w = (w + 1) % NumWinThreads; + usleep(5000); + } +} + + + +/* + * we'll call this once for each thread, before the threads are created. + */ +static void +create_window(struct winthread *wt, EGLContext shareCtx) +{ + Window win; + EGLContext ctx; + EGLSurface surf; + EGLint attribs[] = { EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE }; + EGLConfig config; + EGLint num_configs; + EGLint vid; + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + XVisualInfo *visinfo, visTemplate; + int num_visuals; + int width = 160, height = 160; + int xpos = (wt->Index % 8) * (width + 10); + int ypos = (wt->Index / 8) * (width + 20); + + scrnum = DefaultScreen(wt->Dpy); + root = RootWindow(wt->Dpy, scrnum); + + if (!eglChooseConfig(wt->Display, attribs, &config, 1, &num_configs) || + !num_configs) { + Error("Unable to choose an EGL config"); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(wt->Display, config, EGL_NATIVE_VISUAL_ID, &vid)) { + Error("Unable to get visual id of EGL config\n"); + } + + visTemplate.visualid = vid; + visinfo = XGetVisualInfo(wt->Dpy, VisualIDMask, + &visTemplate, &num_visuals); + if (!visinfo) { + Error("Unable to find RGB, Z, double-buffered visual"); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap(wt->Dpy, root, visinfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow(wt->Dpy, root, xpos, ypos, width, height, + 0, visinfo->depth, InputOutput, + visinfo->visual, mask, &attr); + if (!win) { + Error("Couldn't create window"); + } + + XFree(visinfo); + + { + XSizeHints sizehints; + sizehints.x = xpos; + sizehints.y = ypos; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(wt->Dpy, win, &sizehints); + XSetStandardProperties(wt->Dpy, win, "xeglthreads", "xeglthreads", + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_API); + + ctx = eglCreateContext(wt->Display, config, shareCtx, NULL); + if (!ctx) { + Error("Couldn't create EGL context"); + } + surf = eglCreateWindowSurface(wt->Display, config, win, NULL); + if (!surf) { + Error("Couldn't create EGL surface"); + } + + XMapWindow(wt->Dpy, win); + XSync(wt->Dpy, 0); + + /* save the info for this window/context */ + wt->Win = win; + wt->Context = ctx; + wt->Surface = surf; + wt->Angle = 0.0; + wt->WinWidth = width; + wt->WinHeight = height; + wt->NewSize = GL_TRUE; +} + + +/* + * Called by pthread_create() + */ +static void * +thread_function(void *p) +{ + struct winthread *wt = (struct winthread *) p; + draw_loop(wt); + return NULL; +} + + +/* + * called before exit to wait for all threads to finish + */ +static void +clean_up(void) +{ + int i; + + /* wait for threads to finish */ + for (i = 0; i < NumWinThreads; i++) { + pthread_join(WinThreads[i].Thread, NULL); + } + + for (i = 0; i < NumWinThreads; i++) { + eglDestroyContext(WinThreads[i].Display, WinThreads[i].Context); + XDestroyWindow(WinThreads[i].Dpy, WinThreads[i].Win); + } +} + + +static void +usage(void) +{ + printf("xeglthreads: test of EGL/GL thread safety (any key = exit)\n"); + printf("Usage:\n"); + printf(" xeglthreads [options]\n"); + printf("Options:\n"); + printf(" -display DISPLAYNAME Specify display string\n"); + printf(" -n NUMTHREADS Number of threads to create\n"); + printf(" -p Use a separate display connection for each thread\n"); + printf(" -l Use application-side locking\n"); + printf(" -t Enable texturing\n"); + printf("Keyboard:\n"); + printf(" Esc Exit\n"); + printf(" t Change texture image (requires -t option)\n"); + printf(" a Toggle animation\n"); + printf(" s Step rotation (when not animating)\n"); +} + + +int +main(int argc, char *argv[]) +{ + char *displayName = NULL; + int numThreads = 2; + Display *dpy = NULL; + EGLDisplay *egl_dpy = NULL; + int i; + Status threadStat; + + if (argc == 1) { + usage(); + } + else { + int i; + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0 && i + 1 < argc) { + displayName = argv[i + 1]; + i++; + } + else if (strcmp(argv[i], "-p") == 0) { + MultiDisplays = 1; + } + else if (strcmp(argv[i], "-l") == 0) { + Locking = 1; + } + else if (strcmp(argv[i], "-t") == 0) { + Texture = 1; + } + else if (strcmp(argv[i], "-n") == 0 && i + 1 < argc) { + numThreads = atoi(argv[i + 1]); + if (numThreads < 1) + numThreads = 1; + else if (numThreads > MAX_WINTHREADS) + numThreads = MAX_WINTHREADS; + i++; + } + else { + usage(); + exit(1); + } + } + } + + if (Locking) + printf("xeglthreads: Using explicit locks around Xlib calls.\n"); + else + printf("xeglthreads: No explict locking.\n"); + + if (MultiDisplays) + printf("xeglthreads: Per-thread display connections.\n"); + else + printf("xeglthreads: Single display connection.\n"); + + /* + * VERY IMPORTANT: call XInitThreads() before any other Xlib functions. + */ + if (!MultiDisplays) { + if (!Locking) { + threadStat = XInitThreads(); + if (threadStat) { + printf("XInitThreads() returned %d (success)\n", + (int) threadStat); + } + else { + printf("XInitThreads() returned 0 " + "(failure- this program may fail)\n"); + } + } + + dpy = XOpenDisplay(displayName); + if (!dpy) { + fprintf(stderr, "Unable to open display %s\n", + XDisplayName(displayName)); + return -1; + } + egl_dpy = eglGetDisplay(dpy); + if (!egl_dpy) { + fprintf(stderr, "Unable to get EGL display\n"); + XCloseDisplay(dpy); + return -1; + } + if (!eglInitialize(egl_dpy, NULL, NULL)) { + fprintf(stderr, "Unable to initialize EGL display\n"); + return -1; + } + } + + pthread_mutex_init(&Mutex, NULL); + pthread_mutex_init(&CondMutex, NULL); + pthread_cond_init(&CondVar, NULL); + + printf("xeglthreads: creating windows\n"); + + NumWinThreads = numThreads; + + /* Create the EGL windows and contexts */ + for (i = 0; i < numThreads; i++) { + EGLContext share; + + if (MultiDisplays) { + WinThreads[i].Dpy = XOpenDisplay(displayName); + assert(WinThreads[i].Dpy); + WinThreads[i].Display = eglGetDisplay(WinThreads[i].Dpy); + assert(eglInitialize(WinThreads[i].Display, NULL, NULL)); + } + else { + WinThreads[i].Dpy = dpy; + WinThreads[i].Display = egl_dpy; + } + WinThreads[i].Index = i; + WinThreads[i].Initialized = GL_FALSE; + + share = (Texture && i > 0) ? WinThreads[0].Context : 0; + + create_window(&WinThreads[i], share); + } + + printf("xeglthreads: creating threads\n"); + + /* Create the threads */ + for (i = 0; i < numThreads; i++) { + pthread_create(&WinThreads[i].Thread, NULL, thread_function, + (void*) &WinThreads[i]); + printf("xeglthreads: Created thread %p\n", + (void *) WinThreads[i].Thread); + } + + if (MultiDisplays) + event_loop_multi(); + else + event_loop(dpy); + + clean_up(); + + if (MultiDisplays) { + for (i = 0; i < numThreads; i++) { + eglTerminate(WinThreads[i].Display); + XCloseDisplay(WinThreads[i].Dpy); + } + } + else { + eglTerminate(egl_dpy); + XCloseDisplay(dpy); + } + + return 0; +} + + +#else /* PTHREADS */ + + +#include + +int +main(int argc, char *argv[]) +{ + printf("Sorry, this program wasn't compiled with PTHREADS defined.\n"); + return 0; +} + + +#endif /* PTHREADS */ diff --git a/progs/egl/peglgears.c b/progs/egl/peglgears.c deleted file mode 100644 index 212d1acf69..0000000000 --- a/progs/egl/peglgears.c +++ /dev/null @@ -1,451 +0,0 @@ -/* - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * This is a port of the infamous "glxgears" demo to straight EGL - * Port by Dane Rushton 10 July 2005 - * - * No command line options. - * Program runs for 5 seconds then exits, outputing framerate to console - */ - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_CONFIGS 10 -#define MAX_MODES 100 - -#define BENCHMARK - -#ifdef BENCHMARK - -/* XXX this probably isn't very portable */ - -#include -#include - -/* return current time (in seconds) */ -static double -current_time(void) -{ - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - -#else /*BENCHMARK*/ - -/* dummy */ -static double -current_time(void) -{ - /* update this function for other platforms! */ - static double t = 0.0; - static int warn = 1; - if (warn) { - fprintf(stderr, "Warning: current_time() not implemented!!\n"); - warn = 0; - } - return t += 1.0; -} - -#endif /*BENCHMARK*/ - - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static GLint gear1, gear2, gear3; -static GLfloat angle = 0.0; - -#if 0 -static GLfloat eyesep = 5.0; /* Eye separation. */ -static GLfloat fix_point = 40.0; /* Fixation point distance. */ -static GLfloat left, right, asp; /* Stereo frustum params. */ -#endif - - -/* - * - * Draw a gear wheel. You'll probably want to call this function when - * building a display list since we do a lot of trig here. - * - * Input: inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void -gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, - GLint teeth, GLfloat tooth_depth) -{ - GLint i; - GLfloat r0, r1, r2; - GLfloat angle, da; - GLfloat u, v, len; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - da = 2.0 * M_PI / teeth / 4.0; - - glShadeModel(GL_FLAT); - - glNormal3f(0.0, 0.0, 1.0); - - /* draw front face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - if (i < teeth) { - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - } - glEnd(); - - /* draw front sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - glEnd(); - - glNormal3f(0.0, 0.0, -1.0); - - /* draw back face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - if (i < teeth) { - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - } - } - glEnd(); - - /* draw back sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - } - glEnd(); - - /* draw outward faces of teeth */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - u = r2 * cos(angle + da) - r1 * cos(angle); - v = r2 * sin(angle + da) - r1 * sin(angle); - len = sqrt(u * u + v * v); - u /= len; - v /= len; - glNormal3f(v, -u, 0.0); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); - v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); - glNormal3f(v, -u, 0.0); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - } - - glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); - glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); - - glEnd(); - - glShadeModel(GL_SMOOTH); - - /* draw inside radius cylinder */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glNormal3f(-cos(angle), -sin(angle), 0.0); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - } - glEnd(); -} - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - glCallList(gear1); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - glCallList(gear2); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - glCallList(gear3); - glPopMatrix(); - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - - - -static void -init(void) -{ - static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; - static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; - static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; - static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - - /* make the gears */ - gear1 = glGenLists(1); - glNewList(gear1, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - gear(1.0, 4.0, 1.0, 20, 0.7); - glEndList(); - - gear2 = glGenLists(1); - glNewList(gear2, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); - gear(0.5, 2.0, 2.0, 10, 0.7); - glEndList(); - - gear3 = glGenLists(1); - glNewList(gear3, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); - gear(1.3, 2.0, 0.5, 10, 0.7); - glEndList(); - - glEnable(GL_NORMALIZE); -} - - - - -static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr) -{ - double st = current_time(); - double ct = st; - int frames = 0; - GLfloat seconds, fps; - - while (ct - st < ttr) - { - double tt = current_time(); - double dt = tt - ct; - ct = tt; - - /* advance rotation for next frame */ - angle += 70.0 * dt; /* 70 degrees per second */ - if (angle > 3600.0) - angle -= 3600.0; - - draw(); - - eglSwapBuffers(dpy, surf); - - - frames++; - } - - seconds = ct - st; - fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); - -} - - -int -main(int argc, char *argv[]) -{ - int major, minor; - EGLContext ctx; - EGLSurface surface; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - GLboolean printInfo = GL_FALSE; - EGLint width = 300, height = 300; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) - { - if (strcmp(argv[i], "-info") == 0) - { - printInfo = GL_TRUE; - } - else - printf("Warning: unknown parameter: %s\n", argv[i]); - } - - /* DBR : Create EGL context/surface etc */ - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &major, &minor)) { - printf("peglgears: eglInitialize failed\n"); - return 0; - } - - printf("peglgears: EGL version = %d.%d\n", major, minor); - printf("peglgears: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - - eglBindAPI(EGL_OPENGL_API); - - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("peglgears: failed to create context\n"); - return 0; - } - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - surface = eglCreatePbufferSurface(d, configs[0], screenAttribs); - if (surface == EGL_NO_SURFACE) { - printf("peglgears: failed to create pbuffer surface\n"); - return 0; - } - - b = eglMakeCurrent(d, surface, surface, ctx); - if (!b) { - printf("peglgears: make current failed\n"); - return 0; - } - - if (printInfo) - { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - reshape(width, height); - - glDrawBuffer( GL_BACK ); - - run_gears(d, surface, 5.0); - - eglDestroySurface(d, surface); - eglDestroyContext(d, ctx); - eglTerminate(d); - - return 0; -} diff --git a/progs/egl/xegl_tri.c b/progs/egl/xegl_tri.c deleted file mode 100644 index 1f1a005a21..0000000000 --- a/progs/egl/xegl_tri.c +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Draw a triangle with X/EGL. - * Brian Paul - * 3 June 2008 - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* using full OpenGL for now */ -#include - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - - -static void -draw(void) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][3] = { - { 1, 0, 0 }, - { 0, 1, 0 }, - { 0, 0, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(3, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - - -static void -init(void) -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: glXCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "xegl_tri", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/egl/xeglgears.c b/progs/egl/xeglgears.c deleted file mode 100644 index a6a977d9ff..0000000000 --- a/progs/egl/xeglgears.c +++ /dev/null @@ -1,954 +0,0 @@ -/* - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Ported to X/EGL/GLES. XXX Actually, uses full OpenGL ATM. - * Brian Paul - * 30 May 2008 - */ - -/* - * Command line options: - * -info print GL implementation information - * - */ - - -#define GL_GLEXT_PROTOTYPES -#define EGL_EGLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - - -#define BENCHMARK - -#ifdef BENCHMARK - -/* XXX this probably isn't very portable */ - -#include -#include - -/* return current time (in seconds) */ -static double -current_time(void) -{ - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - -#else /*BENCHMARK*/ - -/* dummy */ -static double -current_time(void) -{ - /* update this function for other platforms! */ - static double t = 0.0; - static int warn = 1; - if (warn) { - fprintf(stderr, "Warning: current_time() not implemented!!\n"); - warn = 0; - } - return t += 1.0; -} - -#endif /*BENCHMARK*/ - - - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static GLint gear1, gear2, gear3; -static GLfloat angle = 0.0; - -/* - * - * Draw a gear wheel. You'll probably want to call this function when - * building a display list since we do a lot of trig here. - * - * Input: inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void -gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, - GLint teeth, GLfloat tooth_depth) -{ - GLint i; - GLfloat r0, r1, r2; - GLfloat angle, da; - GLfloat u, v, len; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - da = 2.0 * M_PI / teeth / 4.0; - - glShadeModel(GL_FLAT); - - glNormal3f(0.0, 0.0, 1.0); - - /* draw front face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - if (i < teeth) { - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - } - glEnd(); - - /* draw front sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - } - glEnd(); - - glNormal3f(0.0, 0.0, -1.0); - - /* draw back face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - if (i < teeth) { - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - } - } - glEnd(); - - /* draw back sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - } - glEnd(); - - /* draw outward faces of teeth */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - u = r2 * cos(angle + da) - r1 * cos(angle); - v = r2 * sin(angle + da) - r1 * sin(angle); - len = sqrt(u * u + v * v); - u /= len; - v /= len; - glNormal3f(v, -u, 0.0); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), - -width * 0.5); - u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); - v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); - glNormal3f(v, -u, 0.0); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), - -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - } - - glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); - glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); - - glEnd(); - - glShadeModel(GL_SMOOTH); - - /* draw inside radius cylinder */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glNormal3f(-cos(angle), -sin(angle), 0.0); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - } - glEnd(); -} - - -static void -draw(void) -{ - glClearColor(0.2, 0.2, 0.2, 0.2); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - glCallList(gear1); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - glCallList(gear2); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - glCallList(gear3); - glPopMatrix(); - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - - - -static void -init(void) -{ - static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; - static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; - static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; - static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - - /* make the gears */ - gear1 = glGenLists(1); - glNewList(gear1, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - gear(1.0, 4.0, 1.0, 20, 0.7); - glEndList(); - - gear2 = glGenLists(1); - glNewList(gear2, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); - gear(0.5, 2.0, 2.0, 10, 0.7); - glEndList(); - - gear3 = glGenLists(1); - glNewList(gear3, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); - gear(1.3, 2.0, 0.5, 10, 0.7); - glEndList(); - - glEnable(GL_NORMALIZE); -} - - -struct egl_manager { - EGLNativeDisplayType xdpy; - EGLNativeWindowType xwin; - EGLNativePixmapType xpix; - - EGLDisplay dpy; - EGLConfig conf; - EGLContext ctx; - - EGLSurface win; - EGLSurface pix; - EGLSurface pbuf; - EGLImageKHR image; - - EGLBoolean verbose; - EGLint major, minor; - - GC gc; - GLuint fbo; -}; - -static struct egl_manager * -egl_manager_new(EGLNativeDisplayType xdpy, const EGLint *attrib_list, - EGLBoolean verbose) -{ - struct egl_manager *eman; - const char *ver; - EGLint num_conf; - - eman = calloc(1, sizeof(*eman)); - if (!eman) - return NULL; - - eman->verbose = verbose; - eman->xdpy = xdpy; - - eman->dpy = eglGetDisplay(eman->xdpy); - if (eman->dpy == EGL_NO_DISPLAY) { - printf("eglGetDisplay() failed\n"); - free(eman); - return NULL; - } - - if (!eglInitialize(eman->dpy, &eman->major, &eman->minor)) { - printf("eglInitialize() failed\n"); - free(eman); - return NULL; - } - - ver = eglQueryString(eman->dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", ver); - - if (!eglChooseConfig(eman->dpy, attrib_list, &eman->conf, 1, &num_conf) || - !num_conf) { - printf("eglChooseConfig() failed\n"); - eglTerminate(eman->dpy); - free(eman); - return NULL; - } - - eman->ctx = eglCreateContext(eman->dpy, eman->conf, EGL_NO_CONTEXT, NULL); - if (eman->ctx == EGL_NO_CONTEXT) { - printf("eglCreateContext() failed\n"); - eglTerminate(eman->dpy); - free(eman); - return NULL; - } - - return eman; -} - -static EGLBoolean -egl_manager_create_window(struct egl_manager *eman, const char *name, - EGLint w, EGLint h, EGLBoolean need_surface, - EGLBoolean fullscreen, const EGLint *attrib_list) -{ - XVisualInfo vinfo_template, *vinfo = NULL; - EGLint val, num_vinfo; - Window root; - XSetWindowAttributes attrs; - unsigned long mask; - EGLint x = 0, y = 0; - - if (!eglGetConfigAttrib(eman->dpy, eman->conf, - EGL_NATIVE_VISUAL_ID, &val)) { - printf("eglGetConfigAttrib() failed\n"); - return EGL_FALSE; - } - if (val) { - vinfo_template.visualid = (VisualID) val; - vinfo = XGetVisualInfo(eman->xdpy, VisualIDMask, &vinfo_template, &num_vinfo); - } - /* try harder if window surface is not needed */ - if (!vinfo && !need_surface && - eglGetConfigAttrib(eman->dpy, eman->conf, EGL_BUFFER_SIZE, &val)) { - if (val == 32) - val = 24; - vinfo_template.depth = val; - vinfo = XGetVisualInfo(eman->xdpy, VisualDepthMask, &vinfo_template, &num_vinfo); - } - - if (!vinfo) { - printf("XGetVisualInfo() failed\n"); - return EGL_FALSE; - } - - root = DefaultRootWindow(eman->xdpy); - if (fullscreen) { - x = y = 0; - w = DisplayWidth(eman->xdpy, DefaultScreen(eman->xdpy)); - h = DisplayHeight(eman->xdpy, DefaultScreen(eman->xdpy)); - } - - /* window attributes */ - attrs.background_pixel = 0; - attrs.border_pixel = 0; - attrs.colormap = XCreateColormap(eman->xdpy, root, vinfo->visual, AllocNone); - attrs.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - attrs.override_redirect = fullscreen; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect; - - eman->xwin = XCreateWindow(eman->xdpy, root, x, y, w, h, - 0, vinfo->depth, InputOutput, - vinfo->visual, mask, &attrs); - XFree(vinfo); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = w; - sizehints.height = h; - sizehints.flags = USSize | USPosition; - XSetNormalHints(eman->xdpy, eman->xwin, &sizehints); - XSetStandardProperties(eman->xdpy, eman->xwin, name, name, - None, (char **)NULL, 0, &sizehints); - } - - if (need_surface) { - eman->win = eglCreateWindowSurface(eman->dpy, eman->conf, - eman->xwin, attrib_list); - if (eman->win == EGL_NO_SURFACE) { - printf("eglCreateWindowSurface() failed\n"); - XDestroyWindow(eman->xdpy, eman->xwin); - eman->xwin = None; - return EGL_FALSE; - } - } - - eman->gc = XCreateGC(eman->xdpy, eman->xwin, 0, NULL); - - XMapWindow(eman->xdpy, eman->xwin); - - return EGL_TRUE; -} - -static EGLBoolean -egl_manager_create_pixmap(struct egl_manager *eman, EGLNativeWindowType xwin, - EGLBoolean need_surface, const EGLint *attrib_list) -{ - XWindowAttributes attrs; - - if (!XGetWindowAttributes(eman->xdpy, xwin, &attrs)) { - printf("XGetWindowAttributes() failed\n"); - return EGL_FALSE; - } - - eman->xpix = XCreatePixmap(eman->xdpy, xwin, - attrs.width, attrs.height, attrs.depth); - - if (need_surface) { - eman->pix = eglCreatePixmapSurface(eman->dpy, eman->conf, - eman->xpix, attrib_list); - if (eman->pix == EGL_NO_SURFACE) { - printf("eglCreatePixmapSurface() failed\n"); - XFreePixmap(eman->xdpy, eman->xpix); - eman->xpix = None; - return EGL_FALSE; - } - } - - return EGL_TRUE; -} - -static EGLBoolean -egl_manager_create_pbuffer(struct egl_manager *eman, const EGLint *attrib_list) -{ - eman->pbuf = eglCreatePbufferSurface(eman->dpy, eman->conf, attrib_list); - if (eman->pbuf == EGL_NO_SURFACE) { - printf("eglCreatePbufferSurface() failed\n"); - return EGL_FALSE; - } - - return EGL_TRUE; -} - -static void -egl_manager_destroy(struct egl_manager *eman) -{ - eglMakeCurrent(eman->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglTerminate(eman->dpy); - - if (eman->xwin != None) - XDestroyWindow(eman->xdpy, eman->xwin); - if (eman->xpix != None) - XFreePixmap(eman->xdpy, eman->xpix); - - XFreeGC(eman->xdpy, eman->gc); - - free(eman); -} - -enum { - GEARS_WINDOW, - GEARS_PIXMAP, - GEARS_PIXMAP_TEXTURE, - GEARS_PBUFFER, - GEARS_PBUFFER_TEXTURE, - GEARS_RENDERBUFFER -}; - -static void -texture_gears(struct egl_manager *eman, int surface_type) -{ - static const GLint verts[12] = - { -5, -6, -10, 5, -6, -10, -5, 4, 10, 5, 4, 10 }; - static const GLint tex_coords[8] = { 0, 0, 1, 0, 0, 1, 1, 1 }; - - eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); - - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glEnable(GL_TEXTURE_2D); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glVertexPointer(3, GL_INT, 0, verts); - glTexCoordPointer(2, GL_INT, 0, tex_coords); - - if (surface_type == GEARS_PBUFFER_TEXTURE) - eglBindTexImage(eman->dpy, eman->pbuf, EGL_BACK_BUFFER); - - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - glDisable(GL_TEXTURE_2D); - - if (surface_type == GEARS_PBUFFER_TEXTURE) - eglReleaseTexImage(eman->dpy, eman->pbuf, EGL_BACK_BUFFER); - - eglSwapBuffers(eman->dpy, eman->win); -} - -static void -copy_gears(struct egl_manager *eman, - EGLint tile_w, EGLint tile_h, EGLint w, EGLint h) -{ - int x, y; - - eglWaitClient(); - - for (x = 0; x < w; x += tile_w) { - for (y = 0; y < h; y += tile_h) { - - XCopyArea(eman->xdpy, eman->xpix, eman->xwin, eman->gc, - 0, 0, tile_w, tile_h, x, y); - } - } -} - -static void -event_loop(struct egl_manager *eman, EGLint surface_type, EGLint w, EGLint h) -{ - int window_w = w, window_h = h; - - if (surface_type == EGL_PBUFFER_BIT) - printf("there will be no screen update if " - "eglCopyBuffers() is not implemented\n"); - - while (1) { - while (XPending(eman->xdpy) > 0) { - XEvent event; - XNextEvent(eman->xdpy, &event); - switch (event.type) { - case Expose: - /* we'll redraw below */ - break; - case ConfigureNotify: - window_w = event.xconfigure.width; - window_h = event.xconfigure.height; - if (surface_type == EGL_WINDOW_BIT) - reshape(window_w, window_h); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - } - } - - { - static int frames = 0; - static double tRot0 = -1.0, tRate0 = -1.0; - double dt, t = current_time(); - if (tRot0 < 0.0) - tRot0 = t; - dt = t - tRot0; - tRot0 = t; - - /* advance rotation for next frame */ - angle += 70.0 * dt; /* 70 degrees per second */ - if (angle > 3600.0) - angle -= 3600.0; - - switch (surface_type) { - case GEARS_WINDOW: - draw(); - eglSwapBuffers(eman->dpy, eman->win); - break; - - case GEARS_PBUFFER: - draw(); - if (!eglCopyBuffers(eman->dpy, eman->pbuf, eman->xpix)) - break; - copy_gears(eman, w, h, window_w, window_h); - break; - - case GEARS_PBUFFER_TEXTURE: - eglMakeCurrent(eman->dpy, eman->pbuf, eman->pbuf, eman->ctx); - draw(); - texture_gears(eman, surface_type); - break; - - case GEARS_PIXMAP: - draw(); - copy_gears(eman, w, h, window_w, window_h); - break; - - case GEARS_PIXMAP_TEXTURE: - eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx); - draw(); - texture_gears(eman, surface_type); - break; - - case GEARS_RENDERBUFFER: - glBindFramebuffer(GL_FRAMEBUFFER_EXT, eman->fbo); - draw(); - glBindFramebuffer(GL_FRAMEBUFFER_EXT, 0); - texture_gears(eman, surface_type); - break; - } - - frames++; - - if (tRate0 < 0.0) - tRate0 = t; - if (t - tRate0 >= 5.0) { - GLfloat seconds = t - tRate0; - GLfloat fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, - fps); - tRate0 = t; - frames = 0; - } - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -fullscreen run in fullscreen mode\n"); - printf(" -info display OpenGL renderer info\n"); - printf(" -pixmap use pixmap surface\n"); - printf(" -pixmap-texture use pixmap surface and texture using EGLImage\n"); - printf(" -pbuffer use pbuffer surface and eglCopyBuffers\n"); - printf(" -pbuffer-texture use pbuffer surface and eglBindTexImage\n"); - printf(" -renderbuffer renderbuffer as EGLImage and bind as texture from\n"); -} - -static const char *names[] = { - "window", - "pixmap", - "pixmap_texture", - "pbuffer", - "pbuffer_texture", - "renderbuffer" -}; - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - char *dpyName = NULL; - struct egl_manager *eman; - EGLint attribs[] = { - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, /* may be changed later */ - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE - }; - char win_title[] = "xeglgears (window/pixmap/pbuffer)"; - EGLint surface_type = GEARS_WINDOW; - GLboolean printInfo = GL_FALSE; - GLboolean fullscreen = GL_FALSE; - EGLBoolean ret; - GLuint texture, color_rb, depth_rb; - int i; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else if (strcmp(argv[i], "-fullscreen") == 0) { - fullscreen = GL_TRUE; - } - else if (strcmp(argv[i], "-pixmap") == 0) { - surface_type = GEARS_PIXMAP; - attribs[1] = EGL_PIXMAP_BIT; - } - else if (strcmp(argv[i], "-pixmap-texture") == 0) { - surface_type = GEARS_PIXMAP_TEXTURE; - attribs[1] = EGL_PIXMAP_BIT; - } - else if (strcmp(argv[i], "-pbuffer") == 0) { - surface_type = GEARS_PBUFFER; - attribs[1] = EGL_PBUFFER_BIT; - } - else if (strcmp(argv[i], "-pbuffer-texture") == 0) { - surface_type = GEARS_PBUFFER_TEXTURE; - attribs[1] = EGL_PBUFFER_BIT; - } - else if (strcmp(argv[i], "-renderbuffer") == 0) { - surface_type = GEARS_RENDERBUFFER; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - eglBindAPI(EGL_OPENGL_API); - - eman = egl_manager_new(x_dpy, attribs, printInfo); - if (!eman) { - XCloseDisplay(x_dpy); - return -1; - } - - snprintf(win_title, sizeof(win_title), - "xeglgears (%s)", names[surface_type]); - - ret = egl_manager_create_window(eman, win_title, winWidth, winHeight, - EGL_TRUE, fullscreen, NULL); - if (!ret) - return -1; - - /* create surface(s) */ - switch (surface_type) { - case GEARS_WINDOW: - if (ret) - ret = eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); - break; - case GEARS_PIXMAP: - case GEARS_PIXMAP_TEXTURE: - ret = egl_manager_create_pixmap(eman, eman->xwin, EGL_TRUE, NULL); - if (surface_type == GEARS_PIXMAP_TEXTURE) - eman->image = eglCreateImageKHR (eman->dpy, eman->ctx, - EGL_NATIVE_PIXMAP_KHR, - (EGLClientBuffer) eman->xpix, NULL); - if (ret) - ret = eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx); - break; - case GEARS_PBUFFER: - case GEARS_PBUFFER_TEXTURE: - { - EGLint pbuf_attribs[] = { - EGL_WIDTH, winWidth, - EGL_HEIGHT, winHeight, - EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, - EGL_TEXTURE_TARGET, EGL_TEXTURE_2D, - EGL_NONE - }; - ret = (egl_manager_create_pixmap(eman, eman->xwin, - EGL_TRUE, NULL) && - egl_manager_create_pbuffer(eman, pbuf_attribs)); - if (ret) - ret = eglMakeCurrent(eman->dpy, eman->pbuf, eman->pbuf, eman->ctx); - } - break; - - - case GEARS_RENDERBUFFER: - ret = eglMakeCurrent(eman->dpy, eman->win, eman->win, eman->ctx); - if (ret == EGL_FALSE) - printf("failed to make context current\n"); - - glGenFramebuffers(1, &eman->fbo); - glBindFramebuffer(GL_FRAMEBUFFER_EXT, eman->fbo); - - glGenRenderbuffers(1, &color_rb); - glBindRenderbuffer(GL_RENDERBUFFER_EXT, color_rb); - glRenderbufferStorage(GL_RENDERBUFFER_EXT, GL_RGBA, winWidth, winHeight); - glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, - GL_COLOR_ATTACHMENT0_EXT, - GL_RENDERBUFFER_EXT, - color_rb); - - eman->image = eglCreateImageKHR(eman->dpy, eman->ctx, - EGL_GL_RENDERBUFFER_KHR, - (EGLClientBuffer) color_rb, NULL); - - glGenRenderbuffers(1, &depth_rb); - glBindRenderbuffer(GL_RENDERBUFFER_EXT, depth_rb); - glRenderbufferStorage(GL_RENDERBUFFER_EXT, - GL_DEPTH_COMPONENT, winWidth, winHeight); - glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, - GL_DEPTH_ATTACHMENT_EXT, - GL_RENDERBUFFER_EXT, - depth_rb); - - if (glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE) { - printf("framebuffer not complete\n"); - exit(1); - } - - break; - - default: - ret = EGL_FALSE; - break; - } - - switch (surface_type) { - case GEARS_PIXMAP_TEXTURE: - case GEARS_RENDERBUFFER: - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, eman->image); - break; - case GEARS_PBUFFER_TEXTURE: - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - break; - } - - if (!ret) { - egl_manager_destroy(eman); - XCloseDisplay(x_dpy); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(eman, surface_type, winWidth, winHeight); - - glDeleteLists(gear1, 1); - glDeleteLists(gear2, 1); - glDeleteLists(gear3, 1); - - egl_manager_destroy(eman); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/egl/xeglthreads.c b/progs/egl/xeglthreads.c deleted file mode 100644 index 5787faecb9..0000000000 --- a/progs/egl/xeglthreads.c +++ /dev/null @@ -1,775 +0,0 @@ -/* - * Copyright (C) 2000 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Ported to EGL by Chia-I Wu - */ - - -/* - * This program tests EGL thread safety. - * Command line options: - * -p Open a display connection for each thread - * -l Enable application-side locking - * -n Number of threads to create (default is 2) - * -display Specify X display (default is $DISPLAY) - * -t Use texture mapping - * - * Brian Paul 20 July 2000 - */ - - -/* - * Notes: - * - Each thread gets its own EGL context. - * - * - The EGL contexts share texture objects. - * - * - When 't' is pressed to update the texture image, the window/thread which - * has input focus is signalled to change the texture. The other threads - * should see the updated texture the next time they call glBindTexture. - */ - - -#if defined(PTHREADS) /* defined by Mesa on Linux and other platforms */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -/* - * Each window/thread/context: - */ -struct winthread { - Display *Dpy; - int Index; - pthread_t Thread; - Window Win; - EGLDisplay Display; - EGLContext Context; - EGLSurface Surface; - float Angle; - int WinWidth, WinHeight; - GLboolean NewSize; - GLboolean Initialized; - GLboolean MakeNewTexture; -}; - - -#define MAX_WINTHREADS 100 -static struct winthread WinThreads[MAX_WINTHREADS]; -static int NumWinThreads = 0; -static volatile GLboolean ExitFlag = GL_FALSE; - -static GLboolean MultiDisplays = 0; -static GLboolean Locking = 0; -static GLboolean Texture = GL_FALSE; -static GLuint TexObj = 12; -static GLboolean Animate = GL_TRUE; - -static pthread_mutex_t Mutex; -static pthread_cond_t CondVar; -static pthread_mutex_t CondMutex; - - -static void -Error(const char *msg) -{ - fprintf(stderr, "Error: %s\n", msg); - exit(1); -} - - -static void -signal_redraw(void) -{ - pthread_mutex_lock(&CondMutex); - pthread_cond_broadcast(&CondVar); - pthread_mutex_unlock(&CondMutex); -} - - -static void -MakeNewTexture(struct winthread *wt) -{ -#define TEX_SIZE 128 - static float step = 0.0; - GLfloat image[TEX_SIZE][TEX_SIZE][4]; - GLint width; - int i, j; - - for (j = 0; j < TEX_SIZE; j++) { - for (i = 0; i < TEX_SIZE; i++) { - float dt = 5.0 * (j - 0.5 * TEX_SIZE) / TEX_SIZE; - float ds = 5.0 * (i - 0.5 * TEX_SIZE) / TEX_SIZE; - float r = dt * dt + ds * ds + step; - image[j][i][0] = - image[j][i][1] = - image[j][i][2] = 0.75 + 0.25 * cos(r); - image[j][i][3] = 1.0; - } - } - - step += 0.5; - - glBindTexture(GL_TEXTURE_2D, TexObj); - - glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); - if (width) { - assert(width == TEX_SIZE); - /* sub-tex replace */ - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TEX_SIZE, TEX_SIZE, - GL_RGBA, GL_FLOAT, image); - } - else { - /* create new */ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEX_SIZE, TEX_SIZE, 0, - GL_RGBA, GL_FLOAT, image); - } -} - - - -/* draw a colored cube */ -static void -draw_object(void) -{ - glPushMatrix(); - glScalef(0.75, 0.75, 0.75); - - glColor3f(1, 0, 0); - - if (Texture) { - glBindTexture(GL_TEXTURE_2D, TexObj); - glEnable(GL_TEXTURE_2D); - } - else { - glDisable(GL_TEXTURE_2D); - } - - glBegin(GL_QUADS); - - /* -X */ - glColor3f(0, 1, 1); - glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); - glTexCoord2f(1, 0); glVertex3f(-1, 1, -1); - glTexCoord2f(1, 1); glVertex3f(-1, 1, 1); - glTexCoord2f(0, 1); glVertex3f(-1, -1, 1); - - /* +X */ - glColor3f(1, 0, 0); - glTexCoord2f(0, 0); glVertex3f(1, -1, -1); - glTexCoord2f(1, 0); glVertex3f(1, 1, -1); - glTexCoord2f(1, 1); glVertex3f(1, 1, 1); - glTexCoord2f(0, 1); glVertex3f(1, -1, 1); - - /* -Y */ - glColor3f(1, 0, 1); - glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); - glTexCoord2f(1, 0); glVertex3f( 1, -1, -1); - glTexCoord2f(1, 1); glVertex3f( 1, -1, 1); - glTexCoord2f(0, 1); glVertex3f(-1, -1, 1); - - /* +Y */ - glColor3f(0, 1, 0); - glTexCoord2f(0, 0); glVertex3f(-1, 1, -1); - glTexCoord2f(1, 0); glVertex3f( 1, 1, -1); - glTexCoord2f(1, 1); glVertex3f( 1, 1, 1); - glTexCoord2f(0, 1); glVertex3f(-1, 1, 1); - - /* -Z */ - glColor3f(1, 1, 0); - glTexCoord2f(0, 0); glVertex3f(-1, -1, -1); - glTexCoord2f(1, 0); glVertex3f( 1, -1, -1); - glTexCoord2f(1, 1); glVertex3f( 1, 1, -1); - glTexCoord2f(0, 1); glVertex3f(-1, 1, -1); - - /* +Y */ - glColor3f(0, 0, 1); - glTexCoord2f(0, 0); glVertex3f(-1, -1, 1); - glTexCoord2f(1, 0); glVertex3f( 1, -1, 1); - glTexCoord2f(1, 1); glVertex3f( 1, 1, 1); - glTexCoord2f(0, 1); glVertex3f(-1, 1, 1); - - glEnd(); - - glPopMatrix(); -} - - -/* signal resize of given window */ -static void -resize(struct winthread *wt, int w, int h) -{ - wt->NewSize = GL_TRUE; - wt->WinWidth = w; - wt->WinHeight = h; - if (!Animate) - signal_redraw(); -} - - -/* - * We have an instance of this for each thread. - */ -static void -draw_loop(struct winthread *wt) -{ - while (!ExitFlag) { - - if (Locking) - pthread_mutex_lock(&Mutex); - - if (!wt->Initialized) { - eglMakeCurrent(wt->Display, wt->Surface, wt->Surface, wt->Context); - printf("xeglthreads: %d: GL_RENDERER = %s\n", wt->Index, - (char *) glGetString(GL_RENDERER)); - if (Texture /*&& wt->Index == 0*/) { - MakeNewTexture(wt); - } - wt->Initialized = GL_TRUE; - } - - if (Locking) - pthread_mutex_unlock(&Mutex); - - eglBindAPI(EGL_OPENGL_API); - if (eglGetCurrentContext() != wt->Context) { - printf("xeglthreads: current context %p != %p\n", - eglGetCurrentContext(), wt->Context); - } - - glEnable(GL_DEPTH_TEST); - - if (wt->NewSize) { - GLfloat w = (float) wt->WinWidth / (float) wt->WinHeight; - glViewport(0, 0, wt->WinWidth, wt->WinHeight); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-w, w, -1.0, 1.0, 1.5, 10); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0, 0, -2.5); - wt->NewSize = GL_FALSE; - } - - if (wt->MakeNewTexture) { - MakeNewTexture(wt); - wt->MakeNewTexture = GL_FALSE; - } - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(wt->Angle, 0, 1, 0); - glRotatef(wt->Angle, 1, 0, 0); - glScalef(0.7, 0.7, 0.7); - draw_object(); - glPopMatrix(); - - if (Locking) - pthread_mutex_lock(&Mutex); - - eglSwapBuffers(wt->Display, wt->Surface); - - if (Locking) - pthread_mutex_unlock(&Mutex); - - if (Animate) { - usleep(5000); - } - else { - /* wait for signal to draw */ - pthread_mutex_lock(&CondMutex); - pthread_cond_wait(&CondVar, &CondMutex); - pthread_mutex_unlock(&CondMutex); - } - wt->Angle += 1.0; - } - eglMakeCurrent(wt->Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); -} - - -static void -keypress(XEvent *event, struct winthread *wt) -{ - char buf[100]; - KeySym keySym; - XComposeStatus stat; - - XLookupString(&event->xkey, buf, sizeof(buf), &keySym, &stat); - - switch (keySym) { - case XK_Escape: - /* tell all threads to exit */ - if (!Animate) { - signal_redraw(); - } - ExitFlag = GL_TRUE; - /*printf("exit draw_loop %d\n", wt->Index);*/ - return; - case XK_t: - case XK_T: - if (Texture) { - wt->MakeNewTexture = GL_TRUE; - if (!Animate) - signal_redraw(); - } - break; - case XK_a: - case XK_A: - Animate = !Animate; - if (Animate) /* yes, prev Animate state! */ - signal_redraw(); - break; - case XK_s: - case XK_S: - if (!Animate) - signal_redraw(); - break; - default: - ; /* nop */ - } -} - - -/* - * The main process thread runs this loop. - * Single display connection for all threads. - */ -static void -event_loop(Display *dpy) -{ - XEvent event; - int i; - - assert(!MultiDisplays); - - while (!ExitFlag) { - - if (Locking) { - while (1) { - int k; - pthread_mutex_lock(&Mutex); - k = XPending(dpy); - if (k) { - XNextEvent(dpy, &event); - pthread_mutex_unlock(&Mutex); - break; - } - pthread_mutex_unlock(&Mutex); - usleep(5000); - } - } - else { - XNextEvent(dpy, &event); - } - - switch (event.type) { - case ConfigureNotify: - /* Find winthread for this event's window */ - for (i = 0; i < NumWinThreads; i++) { - struct winthread *wt = &WinThreads[i]; - if (event.xconfigure.window == wt->Win) { - resize(wt, event.xconfigure.width, - event.xconfigure.height); - break; - } - } - break; - case KeyPress: - for (i = 0; i < NumWinThreads; i++) { - struct winthread *wt = &WinThreads[i]; - if (event.xkey.window == wt->Win) { - keypress(&event, wt); - break; - } - } - break; - default: - /*no-op*/ ; - } - } -} - - -/* - * Separate display connection for each thread. - */ -static void -event_loop_multi(void) -{ - XEvent event; - int w = 0; - - assert(MultiDisplays); - - while (!ExitFlag) { - struct winthread *wt = &WinThreads[w]; - if (XPending(wt->Dpy)) { - XNextEvent(wt->Dpy, &event); - switch (event.type) { - case ConfigureNotify: - resize(wt, event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - keypress(&event, wt); - break; - default: - ; /* nop */ - } - } - w = (w + 1) % NumWinThreads; - usleep(5000); - } -} - - - -/* - * we'll call this once for each thread, before the threads are created. - */ -static void -create_window(struct winthread *wt, EGLContext shareCtx) -{ - Window win; - EGLContext ctx; - EGLSurface surf; - EGLint attribs[] = { EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE }; - EGLConfig config; - EGLint num_configs; - EGLint vid; - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - XVisualInfo *visinfo, visTemplate; - int num_visuals; - int width = 160, height = 160; - int xpos = (wt->Index % 8) * (width + 10); - int ypos = (wt->Index / 8) * (width + 20); - - scrnum = DefaultScreen(wt->Dpy); - root = RootWindow(wt->Dpy, scrnum); - - if (!eglChooseConfig(wt->Display, attribs, &config, 1, &num_configs) || - !num_configs) { - Error("Unable to choose an EGL config"); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(wt->Display, config, EGL_NATIVE_VISUAL_ID, &vid)) { - Error("Unable to get visual id of EGL config\n"); - } - - visTemplate.visualid = vid; - visinfo = XGetVisualInfo(wt->Dpy, VisualIDMask, - &visTemplate, &num_visuals); - if (!visinfo) { - Error("Unable to find RGB, Z, double-buffered visual"); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap(wt->Dpy, root, visinfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow(wt->Dpy, root, xpos, ypos, width, height, - 0, visinfo->depth, InputOutput, - visinfo->visual, mask, &attr); - if (!win) { - Error("Couldn't create window"); - } - - XFree(visinfo); - - { - XSizeHints sizehints; - sizehints.x = xpos; - sizehints.y = ypos; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(wt->Dpy, win, &sizehints); - XSetStandardProperties(wt->Dpy, win, "xeglthreads", "xeglthreads", - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_API); - - ctx = eglCreateContext(wt->Display, config, shareCtx, NULL); - if (!ctx) { - Error("Couldn't create EGL context"); - } - surf = eglCreateWindowSurface(wt->Display, config, win, NULL); - if (!surf) { - Error("Couldn't create EGL surface"); - } - - XMapWindow(wt->Dpy, win); - XSync(wt->Dpy, 0); - - /* save the info for this window/context */ - wt->Win = win; - wt->Context = ctx; - wt->Surface = surf; - wt->Angle = 0.0; - wt->WinWidth = width; - wt->WinHeight = height; - wt->NewSize = GL_TRUE; -} - - -/* - * Called by pthread_create() - */ -static void * -thread_function(void *p) -{ - struct winthread *wt = (struct winthread *) p; - draw_loop(wt); - return NULL; -} - - -/* - * called before exit to wait for all threads to finish - */ -static void -clean_up(void) -{ - int i; - - /* wait for threads to finish */ - for (i = 0; i < NumWinThreads; i++) { - pthread_join(WinThreads[i].Thread, NULL); - } - - for (i = 0; i < NumWinThreads; i++) { - eglDestroyContext(WinThreads[i].Display, WinThreads[i].Context); - XDestroyWindow(WinThreads[i].Dpy, WinThreads[i].Win); - } -} - - -static void -usage(void) -{ - printf("xeglthreads: test of EGL/GL thread safety (any key = exit)\n"); - printf("Usage:\n"); - printf(" xeglthreads [options]\n"); - printf("Options:\n"); - printf(" -display DISPLAYNAME Specify display string\n"); - printf(" -n NUMTHREADS Number of threads to create\n"); - printf(" -p Use a separate display connection for each thread\n"); - printf(" -l Use application-side locking\n"); - printf(" -t Enable texturing\n"); - printf("Keyboard:\n"); - printf(" Esc Exit\n"); - printf(" t Change texture image (requires -t option)\n"); - printf(" a Toggle animation\n"); - printf(" s Step rotation (when not animating)\n"); -} - - -int -main(int argc, char *argv[]) -{ - char *displayName = NULL; - int numThreads = 2; - Display *dpy = NULL; - EGLDisplay *egl_dpy = NULL; - int i; - Status threadStat; - - if (argc == 1) { - usage(); - } - else { - int i; - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0 && i + 1 < argc) { - displayName = argv[i + 1]; - i++; - } - else if (strcmp(argv[i], "-p") == 0) { - MultiDisplays = 1; - } - else if (strcmp(argv[i], "-l") == 0) { - Locking = 1; - } - else if (strcmp(argv[i], "-t") == 0) { - Texture = 1; - } - else if (strcmp(argv[i], "-n") == 0 && i + 1 < argc) { - numThreads = atoi(argv[i + 1]); - if (numThreads < 1) - numThreads = 1; - else if (numThreads > MAX_WINTHREADS) - numThreads = MAX_WINTHREADS; - i++; - } - else { - usage(); - exit(1); - } - } - } - - if (Locking) - printf("xeglthreads: Using explicit locks around Xlib calls.\n"); - else - printf("xeglthreads: No explict locking.\n"); - - if (MultiDisplays) - printf("xeglthreads: Per-thread display connections.\n"); - else - printf("xeglthreads: Single display connection.\n"); - - /* - * VERY IMPORTANT: call XInitThreads() before any other Xlib functions. - */ - if (!MultiDisplays) { - if (!Locking) { - threadStat = XInitThreads(); - if (threadStat) { - printf("XInitThreads() returned %d (success)\n", - (int) threadStat); - } - else { - printf("XInitThreads() returned 0 " - "(failure- this program may fail)\n"); - } - } - - dpy = XOpenDisplay(displayName); - if (!dpy) { - fprintf(stderr, "Unable to open display %s\n", - XDisplayName(displayName)); - return -1; - } - egl_dpy = eglGetDisplay(dpy); - if (!egl_dpy) { - fprintf(stderr, "Unable to get EGL display\n"); - XCloseDisplay(dpy); - return -1; - } - if (!eglInitialize(egl_dpy, NULL, NULL)) { - fprintf(stderr, "Unable to initialize EGL display\n"); - return -1; - } - } - - pthread_mutex_init(&Mutex, NULL); - pthread_mutex_init(&CondMutex, NULL); - pthread_cond_init(&CondVar, NULL); - - printf("xeglthreads: creating windows\n"); - - NumWinThreads = numThreads; - - /* Create the EGL windows and contexts */ - for (i = 0; i < numThreads; i++) { - EGLContext share; - - if (MultiDisplays) { - WinThreads[i].Dpy = XOpenDisplay(displayName); - assert(WinThreads[i].Dpy); - WinThreads[i].Display = eglGetDisplay(WinThreads[i].Dpy); - assert(eglInitialize(WinThreads[i].Display, NULL, NULL)); - } - else { - WinThreads[i].Dpy = dpy; - WinThreads[i].Display = egl_dpy; - } - WinThreads[i].Index = i; - WinThreads[i].Initialized = GL_FALSE; - - share = (Texture && i > 0) ? WinThreads[0].Context : 0; - - create_window(&WinThreads[i], share); - } - - printf("xeglthreads: creating threads\n"); - - /* Create the threads */ - for (i = 0; i < numThreads; i++) { - pthread_create(&WinThreads[i].Thread, NULL, thread_function, - (void*) &WinThreads[i]); - printf("xeglthreads: Created thread %p\n", - (void *) WinThreads[i].Thread); - } - - if (MultiDisplays) - event_loop_multi(); - else - event_loop(dpy); - - clean_up(); - - if (MultiDisplays) { - for (i = 0; i < numThreads; i++) { - eglTerminate(WinThreads[i].Display); - XCloseDisplay(WinThreads[i].Dpy); - } - } - else { - eglTerminate(egl_dpy); - XCloseDisplay(dpy); - } - - return 0; -} - - -#else /* PTHREADS */ - - -#include - -int -main(int argc, char *argv[]) -{ - printf("Sorry, this program wasn't compiled with PTHREADS defined.\n"); - return 0; -} - - -#endif /* PTHREADS */ -- cgit v1.2.3 From 7f231cab2b7c13ba70d6aa694f74b6d6eee6470f Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 13:43:33 +0800 Subject: progs/es: Move OpenGL ES demos to subdirectories of progs/egl. Move progs/es1/xegl -> progs/egl/opengles1, progs/es1/screen -> progs/egl/opengles1/screen, progs/es2/xegl -> progs/egl/opengles2. --- configs/linux-opengl-es | 2 +- progs/egl/opengles1/.gitignore | 11 + progs/egl/opengles1/Makefile | 82 +++++ progs/egl/opengles1/bindtex.c | 474 ++++++++++++++++++++++++++ progs/egl/opengles1/drawtex.c | 427 +++++++++++++++++++++++ progs/egl/opengles1/es1_info.c | 289 ++++++++++++++++ progs/egl/opengles1/msaa.c | 442 ++++++++++++++++++++++++ progs/egl/opengles1/pbuffer.c | 607 +++++++++++++++++++++++++++++++++ progs/egl/opengles1/render_tex.c | 659 ++++++++++++++++++++++++++++++++++++ progs/egl/opengles1/screen/Makefile | 32 ++ progs/egl/opengles1/screen/gears.c | 374 ++++++++++++++++++++ progs/egl/opengles1/screen/tri.c | 129 +++++++ progs/egl/opengles1/screen/winsys.c | 272 +++++++++++++++ progs/egl/opengles1/screen/winsys.h | 36 ++ progs/egl/opengles1/torus.c | 656 +++++++++++++++++++++++++++++++++++ progs/egl/opengles1/tri.c | 470 +++++++++++++++++++++++++ progs/egl/opengles1/two_win.c | 433 +++++++++++++++++++++++ progs/egl/opengles2/.gitignore | 3 + progs/egl/opengles2/Makefile | 51 +++ progs/egl/opengles2/tri.c | 516 ++++++++++++++++++++++++++++ progs/es1/.gitignore | 11 - progs/es1/screen/Makefile | 32 -- progs/es1/screen/gears.c | 374 -------------------- progs/es1/screen/tri.c | 129 ------- progs/es1/screen/winsys.c | 272 --------------- progs/es1/screen/winsys.h | 36 -- progs/es1/xegl/Makefile | 82 ----- progs/es1/xegl/bindtex.c | 474 -------------------------- progs/es1/xegl/drawtex.c | 427 ----------------------- progs/es1/xegl/es1_info.c | 289 ---------------- progs/es1/xegl/msaa.c | 442 ------------------------ progs/es1/xegl/pbuffer.c | 607 --------------------------------- progs/es1/xegl/render_tex.c | 659 ------------------------------------ progs/es1/xegl/torus.c | 656 ----------------------------------- progs/es1/xegl/tri.c | 470 ------------------------- progs/es1/xegl/two_win.c | 433 ----------------------- progs/es2/.gitignore | 3 - progs/es2/xegl/Makefile | 51 --- progs/es2/xegl/tri.c | 516 ---------------------------- 39 files changed, 5964 insertions(+), 5964 deletions(-) create mode 100644 progs/egl/opengles1/.gitignore create mode 100644 progs/egl/opengles1/Makefile create mode 100644 progs/egl/opengles1/bindtex.c create mode 100644 progs/egl/opengles1/drawtex.c create mode 100644 progs/egl/opengles1/es1_info.c create mode 100644 progs/egl/opengles1/msaa.c create mode 100644 progs/egl/opengles1/pbuffer.c create mode 100644 progs/egl/opengles1/render_tex.c create mode 100644 progs/egl/opengles1/screen/Makefile create mode 100644 progs/egl/opengles1/screen/gears.c create mode 100644 progs/egl/opengles1/screen/tri.c create mode 100644 progs/egl/opengles1/screen/winsys.c create mode 100644 progs/egl/opengles1/screen/winsys.h create mode 100644 progs/egl/opengles1/torus.c create mode 100644 progs/egl/opengles1/tri.c create mode 100644 progs/egl/opengles1/two_win.c create mode 100644 progs/egl/opengles2/.gitignore create mode 100644 progs/egl/opengles2/Makefile create mode 100644 progs/egl/opengles2/tri.c delete mode 100644 progs/es1/.gitignore delete mode 100644 progs/es1/screen/Makefile delete mode 100644 progs/es1/screen/gears.c delete mode 100644 progs/es1/screen/tri.c delete mode 100644 progs/es1/screen/winsys.c delete mode 100644 progs/es1/screen/winsys.h delete mode 100644 progs/es1/xegl/Makefile delete mode 100644 progs/es1/xegl/bindtex.c delete mode 100644 progs/es1/xegl/drawtex.c delete mode 100644 progs/es1/xegl/es1_info.c delete mode 100644 progs/es1/xegl/msaa.c delete mode 100644 progs/es1/xegl/pbuffer.c delete mode 100644 progs/es1/xegl/render_tex.c delete mode 100644 progs/es1/xegl/torus.c delete mode 100644 progs/es1/xegl/tri.c delete mode 100644 progs/es1/xegl/two_win.c delete mode 100644 progs/es2/.gitignore delete mode 100644 progs/es2/xegl/Makefile delete mode 100644 progs/es2/xegl/tri.c diff --git a/configs/linux-opengl-es b/configs/linux-opengl-es index 32fe40fb84..ead47136f4 100644 --- a/configs/linux-opengl-es +++ b/configs/linux-opengl-es @@ -7,7 +7,7 @@ CONFIG_NAME = linux-opengl-es # Directories to build LIB_DIR = lib SRC_DIRS = egl glsl mesa/es gallium gallium/winsys gallium/targets -PROGRAM_DIRS = es1/screen es1/xegl es2/xegl +PROGRAM_DIRS = egl/opengles1 egl/opengles2 # egl st needs this DEFINES += -DGLX_DIRECT_RENDERING diff --git a/progs/egl/opengles1/.gitignore b/progs/egl/opengles1/.gitignore new file mode 100644 index 0000000000..8c1c9a8ef9 --- /dev/null +++ b/progs/egl/opengles1/.gitignore @@ -0,0 +1,11 @@ +screen/gears +screen/tri +bindtex +drawtex +es1_info +msaa +pbuffer +render_tex +torus +tri +two_win diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile new file mode 100644 index 0000000000..0dd47edf1b --- /dev/null +++ b/progs/egl/opengles1/Makefile @@ -0,0 +1,82 @@ +# progs/egl/opengles1/Makefile + +TOP = ../../.. +include $(TOP)/configs/current + + +INCLUDE_DIRS = \ + -I$(TOP)/include \ + +HEADERS = $(TOP)/include/GLES/egl.h + + +ES1_LIB_DEPS = \ + $(TOP)/$(LIB_DIR)/libEGL.so \ + $(TOP)/$(LIB_DIR)/libGLESv1_CM.so + + +ES1_LIBS = \ + -L$(TOP)/$(LIB_DIR) -lEGL \ + -L$(TOP)/$(LIB_DIR) -lGLESv1_CM $(LIBDRM_LIB) -lX11 + +PROGRAMS = \ + bindtex \ + drawtex \ + es1_info \ + msaa \ + pbuffer \ + render_tex \ + torus \ + tri \ + two_win + + +.c.o: + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + + + +default: $(PROGRAMS) + + + +bindtex: bindtex.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) bindtex.o $(ES1_LIBS) -o $@ + + +drawtex: drawtex.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) drawtex.o $(ES1_LIBS) -o $@ + + +es1_info: es1_info.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) es1_info.o $(ES1_LIBS) -o $@ + + +msaa: msaa.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) msaa.o $(ES1_LIBS) -o $@ + + +pbuffer: pbuffer.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) pbuffer.o $(ES1_LIBS) -o $@ + + +render_tex: render_tex.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) render_tex.o $(ES1_LIBS) -o $@ + + +torus: torus.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) torus.o $(ES1_LIBS) -o $@ + + +two_win: two_win.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) two_win.o $(ES1_LIBS) -o $@ + + +tri: tri.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) tri.o $(ES1_LIBS) -o $@ + + +clean: + rm -f *.o *~ + rm -f $(PROGRAMS) + diff --git a/progs/egl/opengles1/bindtex.c b/progs/egl/opengles1/bindtex.c new file mode 100644 index 0000000000..c243b5941b --- /dev/null +++ b/progs/egl/opengles1/bindtex.c @@ -0,0 +1,474 @@ +/* + * Simple demo for eglBindTexImage. Based on xegl_tri.c by + * + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The spec says that eglBindTexImage supports only OpenGL ES context, but this + * demo uses OpenGL context. Keep in mind that this is non-standard. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static EGLDisplay dpy; +static EGLContext ctx_win, ctx_pbuf; +static EGLSurface surf_win, surf_pbuf; +static GLuint tex_pbuf; + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; +static GLboolean blend = GL_TRUE; +static GLuint color_flow; + +static void +make_pbuffer(int width, int height) +{ + static const EGLint config_attribs[] = { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_BIND_TO_TEXTURE_RGB, EGL_TRUE, + EGL_NONE + }; + EGLint pbuf_attribs[] = { + EGL_WIDTH, width, + EGL_HEIGHT, height, + EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, + EGL_TEXTURE_TARGET, EGL_TEXTURE_2D, + EGL_NONE + }; + EGLConfig config; + EGLint num_configs; + + if (!eglChooseConfig(dpy, config_attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config for pbuffer\n"); + exit(1); + } + + ctx_pbuf = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL ); + surf_pbuf = eglCreatePbufferSurface(dpy, config, pbuf_attribs); + if (surf_pbuf == EGL_NO_SURFACE) { + printf("failed to allocate pbuffer\n"); + exit(1); + } +} + +static void +use_pbuffer(void) +{ + static int initialized; + + eglMakeCurrent(dpy, surf_pbuf, surf_pbuf, ctx_pbuf); + if (!initialized) { + EGLint width, height; + GLfloat ar; + + initialized = 1; + + eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &width); + eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &height); + ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-ar, ar, -1, 1, 1.0, 10.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + /* y-inverted */ + glScalef(1.0, -1.0, 1.0); + + glTranslatef(0.0, 0.0, -5.0); + + glClearColor(0.2, 0.2, 0.2, 0.0); + + glGenTextures(1, &tex_pbuf); + } +} + +static void +make_window(Display *x_dpy, const char *name, + int x, int y, int width, int height, + Window *winRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_DEPTH_SIZE, 8, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLConfig config; + EGLint num_configs, vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig(dpy, attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + attr.override_redirect = 0; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + ctx_win = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx_win) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + surf_win = eglCreateWindowSurface(dpy, config, win, NULL); + + XFree(visInfo); + + *winRet = win; +} + +static void +use_window(void) +{ + static int initialized; + + eglMakeCurrent(dpy, surf_win, surf_win, ctx_win); + if (!initialized) { + initialized = 1; + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, tex_pbuf); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } +} + +static void +draw_triangle(void) +{ + static const GLfloat verts[3][2] = { + { -3, -3 }, + { 3, -3 }, + { 0, 3 } + }; + GLfloat colors[3][4] = { + { 1, 0, 0, 1 }, + { 0, 1, 0, 1 }, + { 0, 0, 1, 1 } + }; + GLint i; + + /* flow the color */ + for (i = 0; i < 3; i++) { + GLint first = (i + color_flow / 256) % 3; + GLint second = (first + 1) % 3; + GLint third = (second + 1) % 3; + GLfloat c = (color_flow % 256) / 256.0f; + + c = c * c * c; + colors[i][first] = 1.0f - c; + colors[i][second] = c; + colors[i][third] = 0.0f; + } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); +} + +static void +draw_textured_cube(void) +{ + static const GLfloat verts[][2] = { + { -4, -4 }, + { 4, -4 }, + { 4, 4 }, + { -4, 4 } + }; + static const GLfloat colors[][4] = { + { 1, 1, 1, 0.5 }, + { 1, 1, 1, 0.5 }, + { 1, 1, 1, 0.5 }, + { 1, 1, 1, 0.5 } + }; + static const GLfloat texs[][2] = { + { 0, 0 }, + { 1, 0 }, + { 1, 1 }, + { 0, 1 } + }; + static const GLfloat xforms[6][4] = { + { 0, 0, 1, 0 }, + { 90, 0, 1, 0 }, + { 180, 0, 1, 0 }, + { 270, 0, 1, 0 }, + { 90, 1, 0, 0 }, + { -90, 1, 0, 0 } + }; + GLint i; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if (blend) { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + } else { + glEnable(GL_DEPTH_TEST); + glDisable(GL_BLEND); + } + + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); + glTexCoordPointer(2, GL_FLOAT, 0, texs); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + for (i = 0; i < 6; i++) { + glPushMatrix(); + glRotatef(xforms[i][0], xforms[i][1], xforms[i][2], xforms[i][3]); + glTranslatef(0, 0, 4.1); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + glPopMatrix(); + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +} + +static void +draw(void) +{ + use_pbuffer(); + draw_triangle(); + + use_window(); + + eglBindTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + draw_textured_cube(); + + glPopMatrix(); + + eglReleaseTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER); +} + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + use_window(); + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + +static void +event_loop(Display *x_dpy, Window win) +{ + while (1) { + int redraw = 1; + + if (XPending(x_dpy) > 0) { + XEvent event; + XNextEvent(x_dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else if (code == XK_b) { + blend = !blend; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + } + + if (redraw) { + view_rotx += 1.0; + view_roty += 2.0; + view_rotz += 1.5; + color_flow += 20; + draw(); + eglSwapBuffers(dpy, surf_win); + } + } +} + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + Window win; + char *dpyName = NULL; + EGLint egl_major, egl_minor; + const char *s; + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + dpy = eglGetDisplay(x_dpy); + if (!dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + make_window(x_dpy, "color flow", 0, 0, winWidth, winHeight, &win); + make_pbuffer(winWidth, winHeight); + + XMapWindow(x_dpy, win); + + reshape(winWidth, winHeight); + event_loop(x_dpy, win); + + glDeleteTextures(1, &tex_pbuf); + + eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + eglTerminate(dpy); + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/drawtex.c b/progs/egl/opengles1/drawtex.c new file mode 100644 index 0000000000..ca0615e267 --- /dev/null +++ b/progs/egl/opengles1/drawtex.c @@ -0,0 +1,427 @@ +/* + * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. + */ + +/* + * Test GL_OES_draw_texture + * Brian Paul + * August 2008 + */ + +#define GL_GLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +static GLfloat view_posx = 10.0, view_posy = 20.0; +static GLfloat width = 200, height = 200; + + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT); + + glDrawTexfOES(view_posx, view_posy, 0.0, width, height); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + +#ifdef GL_VERSION_ES_CM_1_0 + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); +#else + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -15.0); +} + + +static float +dist(GLuint i, GLuint j, float x, float y) +{ + return sqrt((i-x) * (i-x) + (j-y) * (j-y)); +} + +static void +make_smile_texture(void) +{ +#define SZ 128 + GLenum Filter = GL_LINEAR; + GLubyte image[SZ][SZ][4]; + GLuint i, j; + GLint cropRect[4]; + + for (i = 0; i < SZ; i++) { + for (j = 0; j < SZ; j++) { + GLfloat d_mouth = dist(i, j, SZ/2, SZ/2); + GLfloat d_rt_eye = dist(i, j, SZ*3/4, SZ*3/4); + GLfloat d_lt_eye = dist(i, j, SZ*3/4, SZ*1/4); + if (d_rt_eye < SZ / 8 || d_lt_eye < SZ / 8) { + image[i][j][0] = 20; + image[i][j][1] = 50; + image[i][j][2] = 255; + image[i][j][3] = 255; + } + else if (i < SZ/2 && d_mouth < SZ/3) { + image[i][j][0] = 255; + image[i][j][1] = 20; + image[i][j][2] = 20; + image[i][j][3] = 255; + } + else { + image[i][j][0] = 200; + image[i][j][1] = 200; + image[i][j][2] = 200; + image[i][j][3] = 255; + } + } + } + + glActiveTexture(GL_TEXTURE0); /* unit 0 */ + glBindTexture(GL_TEXTURE_2D, 42); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, + GL_RGBA, GL_UNSIGNED_BYTE, image); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + cropRect[0] = 0; + cropRect[1] = 0; + cropRect[2] = SZ; + cropRect[3] = SZ; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, cropRect); +#undef SZ +} + + + +static void +init(void) +{ + const char *ext = (char *) glGetString(GL_EXTENSIONS); + + if (!strstr(ext, "GL_OES_draw_texture")) { + fprintf(stderr, "Sorry, this program requires GL_OES_draw_texture"); + exit(1); + } + + glClearColor(0.4, 0.4, 0.4, 0.0); + + make_smile_texture(); + glEnable(GL_TEXTURE_2D); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_ES_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + int anim = 0; + + while (1) { + int redraw = 0; + + if (!anim || XPending(dpy)) { + XEvent event; + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_posx -= 1.0; + } + else if (code == XK_Right) { + view_posx += 1.0; + } + else if (code == XK_Up) { + view_posy += 1.0; + } + else if (code == XK_Down) { + view_posy -= 1.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == ' ') { + anim = !anim; + } + else if (buffer[0] == 'w') { + width -= 1.0f; + } + else if (buffer[0] == 'W') { + width += 1.0f; + } + else if (buffer[0] == 'h') { + height -= 1.0f; + } + else if (buffer[0] == 'H') { + height += 1.0f; + } + else if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + } + + if (anim) { + view_posx += 1.0; + view_posy += 2.0; + redraw = 1; + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 400, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "drawtex", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/es1_info.c b/progs/egl/opengles1/es1_info.c new file mode 100644 index 0000000000..93816b5215 --- /dev/null +++ b/progs/egl/opengles1/es1_info.c @@ -0,0 +1,289 @@ +/* + * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. + */ + +/* + * List OpenGL ES extensions. + * Print ES 1 or ES 2 extensions depending on which library we're + * linked with: libGLESv1_CM.so vs libGLESv2.so + */ + +#define GL_GLEXT_PROTOTYPES + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + * Print a list of extensions, with word-wrapping. + */ +static void +print_extension_list(const char *ext) +{ + const char *indentString = " "; + const int indent = 4; + const int max = 79; + int width, i, j; + + if (!ext || !ext[0]) + return; + + width = indent; + printf(indentString); + i = j = 0; + while (1) { + if (ext[j] == ' ' || ext[j] == 0) { + /* found end of an extension name */ + const int len = j - i; + if (width + len > max) { + /* start a new line */ + printf("\n"); + width = indent; + printf(indentString); + } + /* print the extension name between ext[i] and ext[j] */ + while (i < j) { + printf("%c", ext[i]); + i++; + } + /* either we're all done, or we'll continue with next extension */ + width += len + 1; + if (ext[j] == 0) { + break; + } + else { + i++; + j++; + if (ext[j] == 0) + break; + printf(", "); + width += 2; + } + } + j++; + } + printf("\n"); +} + + +static void +info(EGLDisplay egl_dpy) +{ + const char *s; + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + printf("GL_VERSION: %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_EXTENSIONS:\n"); + print_extension_list((char *) glGetString(GL_EXTENSIONS)); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, int es_ver, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + EGLint attribs[] = { + EGL_RENDERABLE_TYPE, 0x0, + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_NONE + }; + EGLint ctx_attribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 0, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (es_ver == 1) + attribs[1] = EGL_OPENGL_ES_BIT; + else + attribs[1] = EGL_OPENGL_ES2_BIT; + ctx_attribs[1] = es_ver; + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_ES_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 400, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + EGLint egl_major, egl_minor, es_ver; + int i; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + es_ver = 1; + /* decide the version from the executable's name */ + if (argc > 0 && argv[0] && strstr(argv[0], "es2")) + es_ver = 2; + make_x_window(x_dpy, egl_dpy, + "ES info", 0, 0, winWidth, winHeight, es_ver, + &win, &egl_ctx, &egl_surf); + + /*XMapWindow(x_dpy, win);*/ + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + info(egl_dpy); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/msaa.c b/progs/egl/opengles1/msaa.c new file mode 100644 index 0000000000..b4c6c63217 --- /dev/null +++ b/progs/egl/opengles1/msaa.c @@ -0,0 +1,442 @@ +/* + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Test MSAA with X/EGL and OpenGL ES 1.x + * Brian Paul + * 15 September 2008 + */ + +#define USE_FULL_GL 0 + + +#include +#include +#include +#include +#include +#include +#include +#include +#if USE_FULL_GL +#include /* use full OpenGL */ +#else +#include /* use OpenGL ES 1.x */ +#include +#endif +#include + + + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; +static GLboolean AA = 0*GL_TRUE; + + +static void +draw(void) +{ + float a; + + static const GLfloat verts[4][2] = { + { -1, -.1 }, + { 1, -.1 }, + { -1, .1 }, + { 1, .1 } + }; + static const GLfloat colors[4][4] = { + { 1, 0, 0, 1 }, + { 0, 1, 0, 1 }, + { 0, 0, 1, 1 }, + { 1, 0, 1, 1 } + }; + + if (AA) { + printf("MSAA enabled\n"); + glEnable(GL_MULTISAMPLE); + } + else { + printf("MSAA disabled\n"); + glDisable(GL_MULTISAMPLE); + } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + for (a = 0; a < 360; a += 20.0) { + glPushMatrix(); + + glRotatef(a, 0, 0, 1); + glTranslatef(1.5, 0, 0); + + /* draw triangle */ + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + + glPopMatrix(); + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ary = 3.0; + GLfloat arx = ary * (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); +#ifdef GL_VERSION_ES_CM_1_0 + glOrthof(-arx, arx, -ary, ary, -1.0, 1.0); +#else + glOrtho(-arx, arx, -ary, ary, -1.0, 1.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + + + +static void +init(void) +{ + printf("Press 'a' to toggle multisample antialiasing\n"); + printf("Press 'Esc' to exit\n"); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_SAMPLES, 1, + EGL_SAMPLE_BUFFERS, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + if (num_configs < 1) { + printf("Error: Unable to find multisample pixel format.\n"); + printf("Try running glxinfo to see if your server supports MSAA.\n"); + exit(1); + } + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + +#if USE_FULL_GL + eglBindAPI(EGL_OPENGL_API); +#else + eglBindAPI(EGL_OPENGL_ES_API); +#endif + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 'a') { + AA = !AA; + redraw = 1; + } + else if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 600, winHeight = 600; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + static struct { + char *name; + GLenum value; + enum {GetString, GetInteger} type; + } info_items[] = { + {"GL_RENDERER", GL_RENDERER, GetString}, + {"GL_VERSION", GL_VERSION, GetString}, + {"GL_VENDOR", GL_VENDOR, GetString}, + {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, + {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, + {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, + }; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "msaa", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { + switch (info_items[i].type) { + case GetString: + printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); + break; + case GetInteger: { + GLint rv = -1; + glGetIntegerv(info_items[i].value, &rv); + printf("%s = %d\n", info_items[i].name, rv); + break; + } + } + } + }; + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/pbuffer.c b/progs/egl/opengles1/pbuffer.c new file mode 100644 index 0000000000..011c2af58f --- /dev/null +++ b/progs/egl/opengles1/pbuffer.c @@ -0,0 +1,607 @@ +/* + * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. + */ + +/* + * Test EGL Pbuffers + * Brian Paul + * August 2008 + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +static int WinWidth = 300, WinHeight = 300; + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + + +static void +Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) +{ + n[0] = nx; + n[1] = ny; + n[2] = nz; +} + +static void +Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) +{ + v[0] = vx; + v[1] = vy; + v[2] = vz; +} + +static void +Texcoord(GLfloat *v, GLfloat s, GLfloat t) +{ + v[0] = s; + v[1] = t; +} + + +/* Borrowed from glut, adapted */ +static void +draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) +{ + int i, j; + GLfloat theta, phi, theta1; + GLfloat cosTheta, sinTheta; + GLfloat cosTheta1, sinTheta1; + GLfloat ringDelta, sideDelta; + GLfloat varray[100][3], narray[100][3], tarray[100][2]; + int vcount; + + glVertexPointer(3, GL_FLOAT, 0, varray); + glNormalPointer(GL_FLOAT, 0, narray); + glTexCoordPointer(2, GL_FLOAT, 0, tarray); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + ringDelta = 2.0 * M_PI / rings; + sideDelta = 2.0 * M_PI / nsides; + + theta = 0.0; + cosTheta = 1.0; + sinTheta = 0.0; + for (i = rings - 1; i >= 0; i--) { + theta1 = theta + ringDelta; + cosTheta1 = cos(theta1); + sinTheta1 = sin(theta1); + + vcount = 0; /* glBegin(GL_QUAD_STRIP); */ + + phi = 0.0; + for (j = nsides; j >= 0; j--) { + GLfloat s0, s1, t; + GLfloat cosPhi, sinPhi, dist; + + phi += sideDelta; + cosPhi = cos(phi); + sinPhi = sin(phi); + dist = R + r * cosPhi; + + s0 = 20.0 * theta / (2.0 * M_PI); + s1 = 20.0 * theta1 / (2.0 * M_PI); + t = 8.0 * phi / (2.0 * M_PI); + + Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); + Texcoord(tarray[vcount], s1, t); + Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); + vcount++; + + Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); + Texcoord(tarray[vcount], s0, t); + Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); + vcount++; + } + + /*glEnd();*/ + assert(vcount <= 100); + glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); + + theta = theta1; + cosTheta = cosTheta1; + sinTheta = sinTheta1; + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +} + + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + glScalef(0.5, 0.5, 0.5); + + draw_torus(1.0, 3.0, 30, 60); + + glPopMatrix(); + + glFinish(); +} + + +/** + * Draw to both the window and pbuffer and compare results. + */ +static void +draw_both(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, + EGLContext egl_ctx) +{ + unsigned *wbuf, *pbuf; + int x = 100, y = 110; + int i, dif; + + wbuf = (unsigned *) malloc(WinWidth * WinHeight * 4); + pbuf = (unsigned *) malloc(WinWidth * WinHeight * 4); + + glPixelStorei(GL_PACK_ALIGNMENT, 1); + + /* first draw to window */ + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent(window) failed\n"); + return; + } + draw(); + glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, wbuf); + printf("Window[%d,%d] = 0x%08x\n", x, y, wbuf[y*WinWidth+x]); + + /* then draw to pbuffer */ + if (!eglMakeCurrent(egl_dpy, egl_pbuf, egl_pbuf, egl_ctx)) { + printf("Error: eglMakeCurrent(pbuffer) failed\n"); + return; + } + draw(); + glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, pbuf); + printf("Pbuffer[%d,%d] = 0x%08x\n", x, y, pbuf[y*WinWidth+x]); + + eglSwapBuffers(egl_dpy, egl_surf); + + /* compare renderings */ + for (dif = i = 0; i < WinWidth * WinHeight; i++) { + if (wbuf[i] != pbuf[i]) { + dif = 1; + break; + } + } + + if (dif) + printf("Difference at %d: 0x%08x vs. 0x%08x\n", i, wbuf[i], pbuf[i]); + else + printf("Window rendering matches Pbuffer rendering!\n"); + + free(wbuf); + free(pbuf); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + WinWidth = width; + WinHeight = height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + +#ifdef GL_VERSION_ES_CM_1_0 + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); +#else + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -15.0); +} + + +static void +make_texture(void) +{ +#define SZ 64 + GLenum Filter = GL_LINEAR; + GLubyte image[SZ][SZ][4]; + GLuint i, j; + + for (i = 0; i < SZ; i++) { + for (j = 0; j < SZ; j++) { + GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); + d = sqrt(d); + if (d < SZ/3) { + image[i][j][0] = 255; + image[i][j][1] = 255; + image[i][j][2] = 255; + image[i][j][3] = 255; + } + else { + image[i][j][0] = 127; + image[i][j][1] = 127; + image[i][j][2] = 127; + image[i][j][3] = 255; + } + } + } + + glActiveTexture(GL_TEXTURE0); /* unit 0 */ + glBindTexture(GL_TEXTURE_2D, 42); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, + GL_RGBA, GL_UNSIGNED_BYTE, image); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); +#undef SZ +} + + + +static void +init(void) +{ + static const GLfloat red[4] = {1, 0, 0, 0}; + static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; + static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; + static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; + static const GLfloat pos[4] = {20, 20, 50, 1}; + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, specular); + + glClearColor(0.4, 0.4, 0.4, 0.0); + glEnable(GL_DEPTH_TEST); + + make_texture(); + glEnable(GL_TEXTURE_2D); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_ES_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static EGLSurface +make_pbuffer(Display *x_dpy, EGLDisplay egl_dpy, int width, int height) +{ + static const EGLint config_attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + EGLConfig config; + EGLSurface pbuf; + EGLint num_configs; + EGLint pbuf_attribs[5]; + + pbuf_attribs[0] = EGL_WIDTH; + pbuf_attribs[1] = width; + pbuf_attribs[2] = EGL_HEIGHT; + pbuf_attribs[3] = height; + pbuf_attribs[4] = EGL_NONE; + + if (!eglChooseConfig( egl_dpy, config_attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL config for pbuffer\n"); + exit(1); + } + + pbuf = eglCreatePbufferSurface(egl_dpy, config, pbuf_attribs); + + return pbuf; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, + EGLContext egl_ctx) +{ + int anim = 0; + + while (1) { + int redraw = 0; + + if (!anim || XPending(dpy)) { + XEvent event; + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + if (event.xconfigure.window == win) + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == ' ') { + anim = !anim; + } + else if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + } + + if (anim) { + view_rotx += 1.0; + view_roty += 2.0; + redraw = 1; + } + + if (redraw) { + draw_both(egl_dpy, egl_surf, egl_pbuf, egl_ctx); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + Display *x_dpy; + Window win; + EGLSurface egl_surf, egl_pbuf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "pbuffer", 0, 0, WinWidth, WinHeight, + &win, &egl_ctx, &egl_surf); + + egl_pbuf = make_pbuffer(x_dpy, egl_dpy, WinWidth, WinHeight); + if (!egl_pbuf) { + printf("Error: eglCreatePBufferSurface() failed\n"); + return -1; + } + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(WinWidth, WinHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf, egl_pbuf, egl_ctx); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/render_tex.c b/progs/egl/opengles1/render_tex.c new file mode 100644 index 0000000000..0200fa4cb0 --- /dev/null +++ b/progs/egl/opengles1/render_tex.c @@ -0,0 +1,659 @@ +/* + * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. + */ + +/* + * Test EGL render to texture. + * Brian Paul + * August 2008 + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static int TexWidth = 256, TexHeight = 256; + +static int WinWidth = 300, WinHeight = 300; + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + +static GLuint DotTexture, RenderTexture; + + +static void +Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) +{ + n[0] = nx; + n[1] = ny; + n[2] = nz; +} + +static void +Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) +{ + v[0] = vx; + v[1] = vy; + v[2] = vz; +} + +static void +Texcoord(GLfloat *v, GLfloat s, GLfloat t) +{ + v[0] = s; + v[1] = t; +} + + +/* Borrowed from glut, adapted */ +static void +draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) +{ + int i, j; + GLfloat theta, phi, theta1; + GLfloat cosTheta, sinTheta; + GLfloat cosTheta1, sinTheta1; + GLfloat ringDelta, sideDelta; + GLfloat varray[100][3], narray[100][3], tarray[100][2]; + int vcount; + + glVertexPointer(3, GL_FLOAT, 0, varray); + glNormalPointer(GL_FLOAT, 0, narray); + glTexCoordPointer(2, GL_FLOAT, 0, tarray); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + ringDelta = 2.0 * M_PI / rings; + sideDelta = 2.0 * M_PI / nsides; + + theta = 0.0; + cosTheta = 1.0; + sinTheta = 0.0; + for (i = rings - 1; i >= 0; i--) { + theta1 = theta + ringDelta; + cosTheta1 = cos(theta1); + sinTheta1 = sin(theta1); + + vcount = 0; /* glBegin(GL_QUAD_STRIP); */ + + phi = 0.0; + for (j = nsides; j >= 0; j--) { + GLfloat s0, s1, t; + GLfloat cosPhi, sinPhi, dist; + + phi += sideDelta; + cosPhi = cos(phi); + sinPhi = sin(phi); + dist = R + r * cosPhi; + + s0 = 20.0 * theta / (2.0 * M_PI); + s1 = 20.0 * theta1 / (2.0 * M_PI); + t = 8.0 * phi / (2.0 * M_PI); + + Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); + Texcoord(tarray[vcount], s1, t); + Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); + vcount++; + + Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); + Texcoord(tarray[vcount], s0, t); + Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); + vcount++; + } + + /*glEnd();*/ + assert(vcount <= 100); + glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); + + theta = theta1; + cosTheta = cosTheta1; + sinTheta = sinTheta1; + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +} + + +static void +draw_torus_to_texture(void) +{ + glViewport(0, 0, TexWidth, TexHeight); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-1, 1, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -15.0); + + glClearColor(0.4, 0.4, 0.4, 0.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glBindTexture(GL_TEXTURE_2D, DotTexture); + + glEnable(GL_LIGHTING); + + glPushMatrix(); + glRotatef(view_roty, 0, 1, 0); + glScalef(0.5, 0.5, 0.5); + + draw_torus(1.0, 3.0, 30, 60); + + glPopMatrix(); + + glDisable(GL_LIGHTING); + +#if 0 + glBindTexture(GL_TEXTURE_2D, RenderTexture); + glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, TexWidth, TexHeight); +#endif + + glFinish(); +} + + +static void +draw_textured_quad(void) +{ + GLfloat ar = (GLfloat) WinWidth / (GLfloat) WinHeight; + + glViewport(0, 0, WinWidth, WinHeight); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -8.0); + + glClearColor(0.4, 0.4, 1.0, 0.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glBindTexture(GL_TEXTURE_2D, RenderTexture); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + static const GLfloat texcoord[4][2] = { + { 0, 0 }, { 1, 0 }, { 0, 1 }, { 1, 1 } + }; + static const GLfloat vertex[4][2] = { + { -1, -1 }, { 1, -1 }, { -1, 1 }, { 1, 1 } + }; + + glVertexPointer(2, GL_FLOAT, 0, vertex); + glTexCoordPointer(2, GL_FLOAT, 0, texcoord); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + } + + glPopMatrix(); +} + + + +static void +draw(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, + EGLContext egl_ctx) +{ + /*printf("Begin draw\n");*/ + + /* first draw torus to pbuffer /texture */ +#if 01 + if (!eglMakeCurrent(egl_dpy, egl_pbuf, egl_pbuf, egl_ctx)) { +#else + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { +#endif + printf("Error: eglMakeCurrent(pbuf) failed\n"); + return; + } + draw_torus_to_texture(); + + /* draw textured quad to window */ + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent(pbuffer) failed\n"); + return; + } + + glBindTexture(GL_TEXTURE_2D, RenderTexture); + eglBindTexImage(egl_dpy, egl_pbuf, EGL_BACK_BUFFER); + draw_textured_quad(); + eglReleaseTexImage(egl_dpy, egl_pbuf, EGL_BACK_BUFFER); + + eglSwapBuffers(egl_dpy, egl_surf); + + /*printf("End draw\n");*/ +} + + + +static void +make_dot_texture(void) +{ +#define SZ 64 + GLenum Filter = GL_LINEAR; + GLubyte image[SZ][SZ][4]; + GLuint i, j; + + for (i = 0; i < SZ; i++) { + for (j = 0; j < SZ; j++) { + GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); + d = sqrt(d); + if (d < SZ/3) { + image[i][j][0] = 255; + image[i][j][1] = 255; + image[i][j][2] = 255; + image[i][j][3] = 255; + } + else { + image[i][j][0] = 127; + image[i][j][1] = 127; + image[i][j][2] = 127; + image[i][j][3] = 255; + } + } + } + + glGenTextures(1, &DotTexture); + glBindTexture(GL_TEXTURE_2D, DotTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, + GL_RGBA, GL_UNSIGNED_BYTE, image); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); +#undef SZ +} + + +static void +make_render_texture(void) +{ + GLenum Filter = GL_LINEAR; + glGenTextures(1, &RenderTexture); + glBindTexture(GL_TEXTURE_2D, RenderTexture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TexWidth, TexHeight, 0, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); +} + + +static void +init(void) +{ + static const GLfloat red[4] = {1, 0, 0, 0}; + static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; + static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; + static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; + static const GLfloat pos[4] = {20, 20, 50, 1}; + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); + + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, specular); + + glEnable(GL_DEPTH_TEST); + + make_dot_texture(); + make_render_texture(); + + printf("DotTexture=%u RenderTexture=%u\n", DotTexture, RenderTexture); + + glEnable(GL_TEXTURE_2D); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_ES_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static EGLSurface +make_pbuffer(Display *x_dpy, EGLDisplay egl_dpy, int width, int height) +{ + static const EGLint config_attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + EGLConfig config; + EGLSurface pbuf; + EGLint num_configs; + EGLint pbuf_attribs[15]; + int i = 0; + + pbuf_attribs[i++] = EGL_WIDTH; + pbuf_attribs[i++] = width; + pbuf_attribs[i++] = EGL_HEIGHT; + pbuf_attribs[i++] = height; + pbuf_attribs[i++] = EGL_TEXTURE_FORMAT; + pbuf_attribs[i++] = EGL_TEXTURE_RGBA; + pbuf_attribs[i++] = EGL_TEXTURE_TARGET; + pbuf_attribs[i++] = EGL_TEXTURE_2D; + pbuf_attribs[i++] = EGL_MIPMAP_TEXTURE; + pbuf_attribs[i++] = EGL_FALSE; + pbuf_attribs[i++] = EGL_NONE; + assert(i <= 15); + + if (!eglChooseConfig( egl_dpy, config_attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL config for pbuffer\n"); + exit(1); + } + + pbuf = eglCreatePbufferSurface(egl_dpy, config, pbuf_attribs); + + return pbuf; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, + EGLContext egl_ctx) +{ + int anim = 0; + + while (1) { + int redraw = 0; + + if (!anim || XPending(dpy)) { + XEvent event; + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + if (event.xconfigure.window == win) { + WinWidth = event.xconfigure.width; + WinHeight = event.xconfigure.height; + } + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == ' ') { + anim = !anim; + } + else if (buffer[0] == 'z') { + view_rotz += 5.0; + } + else if (buffer[0] == 'Z') { + view_rotz -= 5.0; + } + else if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + } + + if (anim) { + view_rotx += 1.0; + view_roty += 2.0; + redraw = 1; + } + + if (redraw) { + draw(egl_dpy, egl_surf, egl_pbuf, egl_ctx); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + Display *x_dpy; + Window win; + EGLSurface egl_surf, egl_pbuf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "render_tex", 0, 0, WinWidth, WinHeight, + &win, &egl_ctx, &egl_surf); + + egl_pbuf = make_pbuffer(x_dpy, egl_dpy, TexWidth, TexHeight); + if (!egl_pbuf) { + printf("Error: eglCreatePBufferSurface() failed\n"); + return -1; + } + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + + event_loop(x_dpy, win, egl_dpy, egl_surf, egl_pbuf, egl_ctx); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/screen/Makefile b/progs/egl/opengles1/screen/Makefile new file mode 100644 index 0000000000..5b2a59c71c --- /dev/null +++ b/progs/egl/opengles1/screen/Makefile @@ -0,0 +1,32 @@ +# progs/egl/opengles1/screen/Makefile + +TOP = ../../../.. +include $(TOP)/configs/current + +ES1_CFLAGS = -I$(TOP)/include +ES1_LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGLESv1_CM + +ES1_LIB_DEPS = \ + $(TOP)/$(LIB_DIR)/libEGL.so \ + $(TOP)/$(LIB_DIR)/libGLESv1_CM.so + +WINSYS_OBJS = winsys.o + +PROGRAMS = \ + gears \ + tri + +.c.o: + $(CC) -c $(ES1_CFLAGS) $(CFLAGS) $< -o $@ + +default: $(PROGRAMS) + +gears: gears.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) + +tri: tri.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) + +clean: + -rm -f *.o *~ + -rm -f $(PROGRAMS) diff --git a/progs/egl/opengles1/screen/gears.c b/progs/egl/opengles1/screen/gears.c new file mode 100644 index 0000000000..c7625826b9 --- /dev/null +++ b/progs/egl/opengles1/screen/gears.c @@ -0,0 +1,374 @@ +/* + * Copyright (C) 2009 Chia-I Wu + * + * Based on eglgears by + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include +#include "winsys.h" + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + + +struct gear { + GLuint vbo; + GLfloat *vertices; + GLsizei stride; + + GLint num_teeth; +}; + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static struct gear gears[3]; +static GLfloat angle = 0.0; + +/* + * Initialize a gear wheel. + * + * Input: gear - gear to initialize + * inner_radius - radius of hole at center + * outer_radius - radius at center of teeth + * width - width of gear + * teeth - number of teeth + * tooth_depth - depth of tooth + */ +static void +init_gear(struct gear *gear, GLfloat inner_radius, GLfloat outer_radius, + GLfloat width, GLint teeth, GLfloat tooth_depth) +{ + GLfloat r0, r1, r2; + GLfloat a0, da; + GLint verts_per_tooth, total_verts, total_size; + GLint count, i; + GLfloat *verts; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + a0 = 2.0 * M_PI / teeth; + da = a0 / 4.0; + + gear->vbo = 0; + gear->vertices = NULL; + gear->stride = sizeof(GLfloat) * 6; /* XYZ + normal */ + gear->num_teeth = teeth; + + verts_per_tooth = 10 + 4; + total_verts = teeth * verts_per_tooth; + total_size = total_verts * gear->stride; + + verts = malloc(total_size); + if (!verts) { + printf("failed to allocate vertices\n"); + return; + } + +#define GEAR_VERT(r, n, sign) \ + do { \ + verts[count * 6 + 0] = (r) * vx[n]; \ + verts[count * 6 + 1] = (r) * vy[n]; \ + verts[count * 6 + 2] = (sign) * width * 0.5; \ + verts[count * 6 + 3] = normal[0]; \ + verts[count * 6 + 4] = normal[1]; \ + verts[count * 6 + 5] = normal[2]; \ + count++; \ + } while (0) + + count = 0; + for (i = 0; i < teeth; i++) { + GLfloat normal[3]; + GLfloat vx[5], vy[5]; + GLfloat u, v; + + normal[0] = 0.0; + normal[1] = 0.0; + normal[2] = 0.0; + + vx[0] = cos(i * a0 + 0 * da); + vy[0] = sin(i * a0 + 0 * da); + vx[1] = cos(i * a0 + 1 * da); + vy[1] = sin(i * a0 + 1 * da); + vx[2] = cos(i * a0 + 2 * da); + vy[2] = sin(i * a0 + 2 * da); + vx[3] = cos(i * a0 + 3 * da); + vy[3] = sin(i * a0 + 3 * da); + vx[4] = cos(i * a0 + 4 * da); + vy[4] = sin(i * a0 + 4 * da); + + /* outward faces of a tooth, 10 verts */ + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r1, 0, 1); + GEAR_VERT(r1, 0, -1); + + u = r2 * vx[1] - r1 * vx[0]; + v = r2 * vy[1] - r1 * vy[0]; + normal[0] = v; + normal[1] = -u; + GEAR_VERT(r2, 1, 1); + GEAR_VERT(r2, 1, -1); + + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r2, 2, 1); + GEAR_VERT(r2, 2, -1); + + u = r1 * vx[3] - r2 * vx[2]; + v = r1 * vy[3] - r2 * vy[2]; + normal[0] = v; + normal[1] = -u; + GEAR_VERT(r1, 3, 1); + GEAR_VERT(r1, 3, -1); + + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r1, 4, 1); + GEAR_VERT(r1, 4, -1); + + /* inside radius cylinder, 4 verts */ + normal[0] = -vx[4]; + normal[1] = -vy[4]; + GEAR_VERT(r0, 4, 1); + GEAR_VERT(r0, 4, -1); + + normal[0] = -vx[0]; + normal[1] = -vy[0]; + GEAR_VERT(r0, 0, 1); + GEAR_VERT(r0, 0, -1); + + assert(count % verts_per_tooth == 0); + } + assert(count == total_verts); +#undef GEAR_VERT + + gear->vertices = verts; + + /* setup VBO */ + glGenBuffers(1, &gear->vbo); + if (gear->vbo) { + glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); + glBufferData(GL_ARRAY_BUFFER, total_size, verts, GL_STATIC_DRAW); + } +} + + +static void +draw_gear(const struct gear *gear) +{ + GLint i; + + if (!gear->vbo && !gear->vertices) { + printf("nothing to be drawn\n"); + return; + } + + if (gear->vbo) { + glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); + glVertexPointer(3, GL_FLOAT, gear->stride, (const GLvoid *) 0); + glNormalPointer(GL_FLOAT, gear->stride, (const GLvoid *) (sizeof(GLfloat) * 3)); + } else { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glVertexPointer(3, GL_FLOAT, gear->stride, gear->vertices); + glNormalPointer(GL_FLOAT, gear->stride, gear->vertices + 3); + } + + glEnableClientState(GL_VERTEX_ARRAY); + + for (i = 0; i < gear->num_teeth; i++) { + const GLint base = (10 + 4) * i; + GLushort indices[7]; + + glShadeModel(GL_FLAT); + + /* front face */ + indices[0] = base + 12; + indices[1] = base + 0; + indices[2] = base + 2; + indices[3] = base + 4; + indices[4] = base + 6; + indices[5] = base + 8; + indices[6] = base + 10; + + glNormal3f(0.0, 0.0, 1.0); + glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); + + /* back face */ + indices[0] = base + 13; + indices[1] = base + 11; + indices[2] = base + 9; + indices[3] = base + 7; + indices[4] = base + 5; + indices[5] = base + 3; + indices[6] = base + 1; + + glNormal3f(0.0, 0.0, -1.0); + glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); + + glEnableClientState(GL_NORMAL_ARRAY); + + /* outward face of a tooth */ + glDrawArrays(GL_TRIANGLE_STRIP, base, 10); + + /* inside radius cylinder */ + glShadeModel(GL_SMOOTH); + glDrawArrays(GL_TRIANGLE_STRIP, base + 10, 4); + + glDisableClientState(GL_NORMAL_ARRAY); + } + + glDisableClientState(GL_VERTEX_ARRAY); +} + + +static void +gears_draw(void *data) +{ + static const GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; + static const GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; + static const GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + draw_gear(&gears[0]); + + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green); + draw_gear(&gears[1]); + + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue); + draw_gear(&gears[2]); + + glPopMatrix(); + + glPopMatrix(); + + /* advance rotation for next frame */ + angle += 0.5; /* 0.5 degree per frame */ + if (angle > 3600.0) + angle -= 3600.0; +} + + +static void gears_fini(void) +{ + GLint i; + for (i = 0; i < 3; i++) { + struct gear *gear = &gears[i]; + if (gear->vbo) { + glDeleteBuffers(1, &gear->vbo); + gear->vbo = 0; + } + if (gear->vertices) { + free(gear->vertices); + gear->vertices = NULL; + } + } +} + + +static void gears_init(void) +{ + static const GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + glEnable(GL_NORMALIZE); + + init_gear(&gears[0], 1.0, 4.0, 1.0, 20, 0.7); + init_gear(&gears[1], 0.5, 2.0, 2.0, 10, 0.7); + init_gear(&gears[2], 1.3, 2.0, 0.5, 10, 0.7); +} + + +/* new window size or exposure */ +static void +gears_reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-1.0, 1.0, -h, h, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + + +static void gears_run(void) +{ + winsysRun(5.0, gears_draw, NULL); +} + + +int +main(int argc, char *argv[]) +{ + EGLint width, height; + + if (!winsysInitScreen()) + exit(1); + winsysQueryScreenSize(&width, &height); + + gears_init(); + gears_reshape(width, height); + gears_run(); + gears_fini(); + + winsysFiniScreen(); + + return 0; +} diff --git a/progs/egl/opengles1/screen/tri.c b/progs/egl/opengles1/screen/tri.c new file mode 100644 index 0000000000..bab9499944 --- /dev/null +++ b/progs/egl/opengles1/screen/tri.c @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2009 Chia-I Wu + * + * Based on egltri by + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include "winsys.h" + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + +static void tri_init() +{ + glClearColor(0.4, 0.4, 0.4, 0.0); +} + +static void tri_reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + +static void tri_draw(void *data) +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][4] = { + { 1, 0, 0, 1 }, + { 0, 1, 0, 1 }, + { 0, 0, 1, 1 } + }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); +} + +static void tri_run(void) +{ + winsysRun(3.0, tri_draw, NULL); +} + +int main(int argc, char *argv[]) +{ + EGLint width, height; + GLboolean printInfo = GL_FALSE; + int i; + + /* parse cmd line args */ + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + printf("Warning: unknown parameter: %s\n", argv[i]); + } + } + + if (!winsysInitScreen()) + exit(1); + winsysQueryScreenSize(&width, &height); + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + tri_init(); + tri_reshape(width, height); + tri_run(); + + winsysFiniScreen(); + + return 0; +} diff --git a/progs/egl/opengles1/screen/winsys.c b/progs/egl/opengles1/screen/winsys.c new file mode 100644 index 0000000000..84d00471eb --- /dev/null +++ b/progs/egl/opengles1/screen/winsys.c @@ -0,0 +1,272 @@ +/* + * Copyright (C) 2009 Chia-I Wu + * + * Based on eglgears by + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#define EGL_EGLEXT_PROTOTYPES + +#include +#include + +#include "winsys.h" + +#define MAX_MODES 100 + +static struct { + EGLBoolean verbose; + + EGLDisplay dpy; + EGLConfig conf; + + EGLScreenMESA screen; + EGLModeMESA mode; + EGLint width, height; + + EGLContext ctx; + EGLSurface surf; +} screen; + + +static EGLBoolean +init_screen(void) +{ + EGLModeMESA modes[MAX_MODES]; + EGLint num_screens, num_modes; + EGLint width, height, best_mode; + EGLint i; + + if (!eglGetScreensMESA(screen.dpy, &screen.screen, 1, &num_screens) || + !num_screens) { + printf("eglGetScreensMESA failed\n"); + return EGL_FALSE; + } + + if (!eglGetModesMESA(screen.dpy, screen.screen, modes, MAX_MODES, + &num_modes) || + !num_modes) { + printf("eglGetModesMESA failed!\n"); + return EGL_FALSE; + } + + printf("Found %d modes:\n", num_modes); + + best_mode = 0; + width = 0; + height = 0; + for (i = 0; i < num_modes; i++) { + EGLint w, h; + eglGetModeAttribMESA(screen.dpy, modes[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(screen.dpy, modes[i], EGL_HEIGHT, &h); + printf("%3d: %d x %d\n", i, w, h); + if (w > width && h > height) { + width = w; + height = h; + best_mode = i; + } + } + + screen.mode = modes[best_mode]; + screen.width = width; + screen.height = height; + + return EGL_TRUE; +} + + +static EGLBoolean +init_display(void) +{ + EGLint maj, min; + const char *exts; + const EGLint attribs[] = { + EGL_SURFACE_TYPE, 0x0, /* should be EGL_SCREEN_BIT_MESA */ + EGL_RENDERABLE_TYPE, 0x0, /* should be EGL_OPENGL_ES_BIT */ + EGL_NONE + }; + EGLint num_configs; + + screen.dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); + if (!screen.dpy) { + printf("eglGetDisplay failed\n"); + return EGL_FALSE; + } + + if (!eglInitialize(screen.dpy, &maj, &min)) { + printf("eglInitialize failed\n"); + return EGL_FALSE; + } + + printf("EGL_VERSION = %s\n", eglQueryString(screen.dpy, EGL_VERSION)); + printf("EGL_VENDOR = %s\n", eglQueryString(screen.dpy, EGL_VENDOR)); + + exts = eglQueryString(screen.dpy, EGL_EXTENSIONS); + assert(exts); + + if (!strstr(exts, "EGL_MESA_screen_surface")) { + printf("EGL_MESA_screen_surface is not supported\n"); + return EGL_FALSE; + } + + if (!eglChooseConfig(screen.dpy, attribs, &screen.conf, 1, + &num_configs) || + !num_configs) { + printf("eglChooseConfig failed\n"); + return EGL_FALSE; + } + + return EGL_TRUE; +} + + +EGLBoolean +winsysInitScreen(void) +{ + EGLint surf_attribs[20]; + EGLint i; + EGLBoolean ok; + + if (!init_display()) + goto fail; + if (!init_screen()) + goto fail; + + /* create context */ + screen.ctx = eglCreateContext(screen.dpy, screen.conf, + EGL_NO_CONTEXT, NULL); + if (screen.ctx == EGL_NO_CONTEXT) { + printf("eglCreateContext failed\n"); + goto fail; + } + + i = 0; + surf_attribs[i++] = EGL_WIDTH; + surf_attribs[i++] = screen.width; + surf_attribs[i++] = EGL_HEIGHT; + surf_attribs[i++] = screen.height; + surf_attribs[i++] = EGL_NONE; + + /* create surface */ + printf("Using screen size: %d x %d\n", screen.width, screen.height); + screen.surf = eglCreateScreenSurfaceMESA(screen.dpy, screen.conf, + surf_attribs); + if (screen.surf == EGL_NO_SURFACE) { + printf("eglCreateScreenSurfaceMESA failed\n"); + goto fail; + } + + ok = eglMakeCurrent(screen.dpy, screen.surf, screen.surf, screen.ctx); + if (!ok) { + printf("eglMakeCurrent failed\n"); + goto fail; + } + + ok = eglShowScreenSurfaceMESA(screen.dpy, screen.screen, + screen.surf, screen.mode); + if (!ok) { + printf("eglShowScreenSurfaceMESA failed\n"); + goto fail; + } + + return EGL_TRUE; + +fail: + winsysFiniScreen(); + return EGL_FALSE; +} + + +EGLBoolean +winsysQueryScreenSize(EGLint *width, EGLint *height) +{ + if (!screen.dpy) + return EGL_FALSE; + + if (width) + *width = screen.width; + if (height) + *height = screen.height; + + return EGL_TRUE; +} + + +void +winsysFiniScreen(void) +{ + if (screen.dpy) { + eglMakeCurrent(screen.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, + EGL_NO_CONTEXT); + if (screen.surf != EGL_NO_SURFACE) + eglDestroySurface(screen.dpy, screen.surf); + if (screen.ctx != EGL_NO_CONTEXT) + eglDestroyContext(screen.dpy, screen.ctx); + eglTerminate(screen.dpy); + + memset(&screen, 0, sizeof(screen)); + } +} + + +void +winsysSwapBuffers(void) +{ + eglSwapBuffers(screen.dpy, screen.surf); +} + + +/* return current time (in seconds) */ +double +winsysNow(void) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return (double) tv.tv_sec + tv.tv_usec / 1000000.0; +} + + +void +winsysRun(double seconds, void (*draw_frame)(void *data), void *data) +{ + double begin, end, last_frame, duration; + EGLint num_frames = 0; + + begin = winsysNow(); + end = begin + seconds; + + last_frame = begin; + while (last_frame < end) { + draw_frame(data); + winsysSwapBuffers(); + last_frame = winsysNow(); + num_frames++; + } + + duration = last_frame - begin; + printf("%d frames in %3.1f seconds = %6.3f FPS\n", + num_frames, duration, (double) num_frames / duration); +} diff --git a/progs/egl/opengles1/screen/winsys.h b/progs/egl/opengles1/screen/winsys.h new file mode 100644 index 0000000000..679c7e0bd6 --- /dev/null +++ b/progs/egl/opengles1/screen/winsys.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2009 Chia-I Wu + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _WINSYS_H_ +#define _WINSYS_H_ + +#include + +EGLBoolean winsysInitScreen(void); +EGLBoolean winsysQueryScreenSize(EGLint *width, EGLint *height); +void winsysFiniScreen(void); + +void winsysSwapBuffers(void); +double winsysNow(void); + +void winsysRun(double seconds, void (*draw_frame)(void *data), void *data); + +#endif /* _WINSYS_H_ */ diff --git a/progs/egl/opengles1/torus.c b/progs/egl/opengles1/torus.c new file mode 100644 index 0000000000..9438a4fe59 --- /dev/null +++ b/progs/egl/opengles1/torus.c @@ -0,0 +1,656 @@ +/* + * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. + */ + +/* + * Draw a lit, textured torus with X/EGL and OpenGL ES 1.x + * Brian Paul + * July 2008 + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static const struct { + GLenum internalFormat; + const char *name; + GLuint num_entries; + GLuint size; +} cpal_formats[] = { + { GL_PALETTE4_RGB8_OES, "GL_PALETTE4_RGB8_OES", 16, 3 }, + { GL_PALETTE4_RGBA8_OES, "GL_PALETTE4_RGBA8_OES", 16, 4 }, + { GL_PALETTE4_R5_G6_B5_OES, "GL_PALETTE4_R5_G6_B5_OES", 16, 2 }, + { GL_PALETTE4_RGBA4_OES, "GL_PALETTE4_RGBA4_OES", 16, 2 }, + { GL_PALETTE4_RGB5_A1_OES, "GL_PALETTE4_RGB5_A1_OES", 16, 2 }, + { GL_PALETTE8_RGB8_OES, "GL_PALETTE8_RGB8_OES", 256, 3 }, + { GL_PALETTE8_RGBA8_OES, "GL_PALETTE8_RGBA8_OES", 256, 4 }, + { GL_PALETTE8_R5_G6_B5_OES, "GL_PALETTE8_R5_G6_B5_OES", 256, 2 }, + { GL_PALETTE8_RGBA4_OES, "GL_PALETTE8_RGBA4_OES", 256, 2 }, + { GL_PALETTE8_RGB5_A1_OES, "GL_PALETTE8_RGB5_A1_OES", 256, 2 } +}; +#define NUM_CPAL_FORMATS (sizeof(cpal_formats) / sizeof(cpal_formats[0])) + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; +static GLint tex_format = NUM_CPAL_FORMATS; + + +static void +Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) +{ + n[0] = nx; + n[1] = ny; + n[2] = nz; +} + +static void +Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) +{ + v[0] = vx; + v[1] = vy; + v[2] = vz; +} + +static void +Texcoord(GLfloat *v, GLfloat s, GLfloat t) +{ + v[0] = s; + v[1] = t; +} + + +/* Borrowed from glut, adapted */ +static void +draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) +{ + int i, j; + GLfloat theta, phi, theta1; + GLfloat cosTheta, sinTheta; + GLfloat cosTheta1, sinTheta1; + GLfloat ringDelta, sideDelta; + GLfloat varray[100][3], narray[100][3], tarray[100][2]; + int vcount; + + glVertexPointer(3, GL_FLOAT, 0, varray); + glNormalPointer(GL_FLOAT, 0, narray); + glTexCoordPointer(2, GL_FLOAT, 0, tarray); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + ringDelta = 2.0 * M_PI / rings; + sideDelta = 2.0 * M_PI / nsides; + + theta = 0.0; + cosTheta = 1.0; + sinTheta = 0.0; + for (i = rings - 1; i >= 0; i--) { + theta1 = theta + ringDelta; + cosTheta1 = cos(theta1); + sinTheta1 = sin(theta1); + + vcount = 0; /* glBegin(GL_QUAD_STRIP); */ + + phi = 0.0; + for (j = nsides; j >= 0; j--) { + GLfloat s0, s1, t; + GLfloat cosPhi, sinPhi, dist; + + phi += sideDelta; + cosPhi = cos(phi); + sinPhi = sin(phi); + dist = R + r * cosPhi; + + s0 = 20.0 * theta / (2.0 * M_PI); + s1 = 20.0 * theta1 / (2.0 * M_PI); + t = 8.0 * phi / (2.0 * M_PI); + + Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); + Texcoord(tarray[vcount], s1, t); + Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); + vcount++; + + Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); + Texcoord(tarray[vcount], s0, t); + Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); + vcount++; + } + + /*glEnd();*/ + assert(vcount <= 100); + glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); + + theta = theta1; + cosTheta = cosTheta1; + sinTheta = sinTheta1; + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +} + + +static void +draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + glScalef(0.5, 0.5, 0.5); + + draw_torus(1.0, 3.0, 30, 60); + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + +#ifdef GL_VERSION_ES_CM_1_0 + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); +#else + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -15.0); +} + + +static GLint +make_cpal_texture(GLint idx) +{ +#define SZ 64 + GLenum internalFormat = GL_PALETTE4_RGB8_OES + idx; + GLenum Filter = GL_LINEAR; + GLubyte palette[256 * 4 + SZ * SZ]; + GLubyte *indices; + GLsizei image_size; + GLuint i, j; + GLuint packed_indices = 0; + + assert(cpal_formats[idx].internalFormat == internalFormat); + + /* init palette */ + switch (internalFormat) { + case GL_PALETTE4_RGB8_OES: + case GL_PALETTE8_RGB8_OES: + /* first entry */ + palette[0] = 255; + palette[1] = 255; + palette[2] = 255; + /* second entry */ + palette[3] = 127; + palette[4] = 127; + palette[5] = 127; + break; + case GL_PALETTE4_RGBA8_OES: + case GL_PALETTE8_RGBA8_OES: + /* first entry */ + palette[0] = 255; + palette[1] = 255; + palette[2] = 255; + palette[3] = 255; + /* second entry */ + palette[4] = 127; + palette[5] = 127; + palette[6] = 127; + palette[7] = 255; + break; + case GL_PALETTE4_R5_G6_B5_OES: + case GL_PALETTE8_R5_G6_B5_OES: + { + GLushort *pal = (GLushort *) palette; + /* first entry */ + pal[0] = (31 << 11 | 63 << 5 | 31); + /* second entry */ + pal[1] = (15 << 11 | 31 << 5 | 15); + } + break; + case GL_PALETTE4_RGBA4_OES: + case GL_PALETTE8_RGBA4_OES: + { + GLushort *pal = (GLushort *) palette; + /* first entry */ + pal[0] = (15 << 12 | 15 << 8 | 15 << 4 | 15); + /* second entry */ + pal[1] = (7 << 12 | 7 << 8 | 7 << 4 | 15); + } + break; + case GL_PALETTE4_RGB5_A1_OES: + case GL_PALETTE8_RGB5_A1_OES: + { + GLushort *pal = (GLushort *) palette; + /* first entry */ + pal[0] = (31 << 11 | 31 << 6 | 31 << 1 | 1); + /* second entry */ + pal[1] = (15 << 11 | 15 << 6 | 15 << 1 | 1); + } + break; + } + + image_size = cpal_formats[idx].size * cpal_formats[idx].num_entries; + indices = palette + image_size; + for (i = 0; i < SZ; i++) { + for (j = 0; j < SZ; j++) { + GLfloat d; + GLint index; + d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); + d = sqrt(d); + index = (d < SZ / 3) ? 0 : 1; + + if (cpal_formats[idx].num_entries == 16) { + /* 4-bit indices packed in GLubyte */ + packed_indices |= index << (4 * (1 - (j % 2))); + if (j % 2) { + *(indices + (i * SZ + j - 1) / 2) = packed_indices & 0xff; + packed_indices = 0; + image_size += 1; + } + } + else { + /* 8-bit indices */ + *(indices + i * SZ + j) = index; + image_size += 1; + } + } + } + + glActiveTexture(GL_TEXTURE0); /* unit 0 */ + glBindTexture(GL_TEXTURE_2D, 42); + glCompressedTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SZ, SZ, 0, + image_size, palette); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); +#undef SZ + + return image_size; +} + + +static GLint +make_texture(void) +{ +#define SZ 64 + GLenum Filter = GL_LINEAR; + GLubyte image[SZ][SZ][4]; + GLuint i, j; + + for (i = 0; i < SZ; i++) { + for (j = 0; j < SZ; j++) { + GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); + d = sqrt(d); + if (d < SZ/3) { + image[i][j][0] = 255; + image[i][j][1] = 255; + image[i][j][2] = 255; + image[i][j][3] = 255; + } + else { + image[i][j][0] = 127; + image[i][j][1] = 127; + image[i][j][2] = 127; + image[i][j][3] = 255; + } + } + } + + glActiveTexture(GL_TEXTURE0); /* unit 0 */ + glBindTexture(GL_TEXTURE_2D, 42); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, + GL_RGBA, GL_UNSIGNED_BYTE, image); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); +#undef SZ + + return sizeof(image); +} + + + +static void +init(void) +{ + static const GLfloat red[4] = {1, 0, 0, 0}; + static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; + static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; + static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; + static const GLfloat pos[4] = {20, 20, 50, 1}; + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, specular); + + glClearColor(0.4, 0.4, 0.4, 0.0); + glEnable(GL_DEPTH_TEST); + + make_texture(); + glEnable(GL_TEXTURE_2D); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENGL_ES_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + int anim = 1; + + while (1) { + int redraw = 0; + + if (!anim || XPending(dpy)) { + XEvent event; + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else if (code == XK_t) { + GLint size; + tex_format = (tex_format + 1) % (NUM_CPAL_FORMATS + 1); + if (tex_format < NUM_CPAL_FORMATS) { + size = make_cpal_texture(tex_format); + printf("Using %s (%d bytes)\n", + cpal_formats[tex_format].name, size); + } + else { + size = make_texture(); + printf("Using uncompressed texture (%d bytes)\n", size); + } + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == ' ') { + anim = !anim; + } + else if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + } + + if (anim) { + view_rotx += 1.0; + view_roty += 2.0; + redraw = 1; + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "torus", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/tri.c b/progs/egl/opengles1/tri.c new file mode 100644 index 0000000000..42a978207c --- /dev/null +++ b/progs/egl/opengles1/tri.c @@ -0,0 +1,470 @@ +/* + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Draw a triangle with X/EGL and OpenGL ES 1.x + * Brian Paul + * 5 June 2008 + */ + +#define USE_FULL_GL 0 + +#define USE_FIXED_POINT 0 + + +#include +#include +#include +#include +#include +#include +#include +#include +#if USE_FULL_GL +#include /* use full OpenGL */ +#else +#include /* use OpenGL ES 1.x */ +#include +#endif +#include + + +#define FLOAT_TO_FIXED(X) ((X) * 65535.0) + + + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + + +static void +draw(void) +{ +#if USE_FIXED_POINT + static const GLfixed verts[3][2] = { + { -65536, -65536 }, + { 65536, -65536 }, + { 0, 65536 } + }; + static const GLfixed colors[3][4] = { + { 65536, 0, 0, 65536 }, + { 0, 65536, 0 , 65536}, + { 0, 0, 65536 , 65536} + }; +#else + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][4] = { + { 1, 0, 0, 1 }, + { 0, 1, 0, 1 }, + { 0, 0, 1, 1 } + }; +#endif + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { +#if USE_FIXED_POINT + glVertexPointer(2, GL_FIXED, 0, verts); + glColorPointer(4, GL_FIXED, 0, colors); +#else + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); +#endif + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + /* draw triangle */ + glDrawArrays(GL_TRIANGLES, 0, 3); + + /* draw some points */ + glPointSizex(FLOAT_TO_FIXED(15.5)); + glDrawArrays(GL_POINTS, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + if (0) { + /* test code */ + GLfixed size; + glGetFixedv(GL_POINT_SIZE, &size); + printf("GL_POINT_SIZE = 0x%x %f\n", size, size / 65536.0); + } + + glPopMatrix(); +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); +#ifdef GL_VERSION_ES_CM_1_0 + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); +#else + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + + +static void +test_query_matrix(void) +{ + PFNGLQUERYMATRIXXOESPROC procQueryMatrixx; + typedef void (*voidproc)(); + GLfixed mantissa[16]; + GLint exponent[16]; + GLbitfield rv; + int i; + + procQueryMatrixx = (PFNGLQUERYMATRIXXOESPROC) eglGetProcAddress("glQueryMatrixxOES"); + assert(procQueryMatrixx); + /* Actually try out this one */ + rv = (*procQueryMatrixx)(mantissa, exponent); + for (i = 0; i < 16; i++) { + if (rv & (1< 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + +#if USE_FULL_GL + eglBindAPI(EGL_OPENGL_API); +#else + eglBindAPI(EGL_OPENGL_ES_API); +#endif + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + static struct { + char *name; + GLenum value; + enum {GetString, GetInteger} type; + } info_items[] = { + {"GL_RENDERER", GL_RENDERER, GetString}, + {"GL_VERSION", GL_VERSION, GetString}, + {"GL_VENDOR", GL_VENDOR, GetString}, + {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, + {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, + {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, + }; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "OpenGL ES 1.x tri", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { + switch (info_items[i].type) { + case GetString: + printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); + break; + case GetInteger: { + GLint rv = -1; + glGetIntegerv(info_items[i].value, &rv); + printf("%s = %d\n", info_items[i].name, rv); + break; + } + } + } + }; + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles1/two_win.c b/progs/egl/opengles1/two_win.c new file mode 100644 index 0000000000..4785e5304d --- /dev/null +++ b/progs/egl/opengles1/two_win.c @@ -0,0 +1,433 @@ +/* + * Copyright (C) 2008 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Test drawing to two windows. + * Brian Paul + * August 2008 + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static int WinWidth[2] = {150, 300}, WinHeight[2] = {150, 300}; + + +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); +#ifdef GL_VERSION_ES_CM_1_0 + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); +#else + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); +#endif + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + + +static void +draw(int win) +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][4] = { + { 1, 0, 0, 1 }, + { 0, 1, 0, 1 }, + { 0, 0, 1, 1 } + }; + + assert(win == 0 || win == 1); + + reshape(WinWidth[win], WinHeight[win]); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + /* draw triangle */ + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(4, GL_FLOAT, 0, colors); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); +} + + +static void +init(void) +{ + glClearColor(0.4, 0.4, 0.4, 0.0); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, x, y, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + +#if USE_FULL_GL + eglBindAPI(EGL_OPENGL_API); +#else + eglBindAPI(EGL_OPENGL_ES_API); +#endif + + if (ctxRet) { + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + *ctxRet = ctx; + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; +} + + +static void +event_loop(Display *dpy, Window win1, Window win2, + EGLDisplay egl_dpy, EGLSurface egl_surf1, EGLSurface egl_surf2, + EGLContext egl_ctx) +{ + while (1) { + int redraw = 0; + int win; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + if (event.xconfigure.window == win1) + win = 0; + else + win = 1; + WinWidth[win] = event.xconfigure.width; + WinHeight[win] = event.xconfigure.height; + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + /* win 1 */ + if (!eglMakeCurrent(egl_dpy, egl_surf1, egl_surf1, egl_ctx)) { + printf("Error: eglMakeCurrent(1) failed\n"); + return; + } + draw(0); + eglSwapBuffers(egl_dpy, egl_surf1); + + /* win 2 */ + if (!eglMakeCurrent(egl_dpy, egl_surf2, egl_surf2, egl_ctx)) { + printf("Error: eglMakeCurrent(2) failed\n"); + return; + } + draw(1); + eglSwapBuffers(egl_dpy, egl_surf2); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + Display *x_dpy; + Window win1, win2; + EGLSurface egl_surf1, egl_surf2; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + static struct { + char *name; + GLenum value; + enum {GetString, GetInteger} type; + } info_items[] = { + {"GL_RENDERER", GL_RENDERER, GetString}, + {"GL_VERSION", GL_VERSION, GetString}, + {"GL_VENDOR", GL_VENDOR, GetString}, + {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, + {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, + {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, + }; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "xegl_two_win #1", 0, 0, WinWidth[0], WinHeight[0], + &win1, &egl_ctx, &egl_surf1); + + make_x_window(x_dpy, egl_dpy, + "xegl_two_win #2", WinWidth[0] + 50, 0, + WinWidth[1], WinHeight[1], + &win2, NULL, &egl_surf2); + + XMapWindow(x_dpy, win1); + + XMapWindow(x_dpy, win2); + + if (!eglMakeCurrent(egl_dpy, egl_surf1, egl_surf1, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { + switch (info_items[i].type) { + case GetString: + printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); + break; + case GetInteger: { + GLint rv = -1; + glGetIntegerv(info_items[i].value, &rv); + printf("%s = %d\n", info_items[i].name, rv); + break; + } + } + } + }; + + init(); + + event_loop(x_dpy, win1, win2, egl_dpy, egl_surf1, egl_surf2, egl_ctx); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf1); + eglDestroySurface(egl_dpy, egl_surf2); + eglTerminate(egl_dpy); + + XDestroyWindow(x_dpy, win1); + XDestroyWindow(x_dpy, win2); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/opengles2/.gitignore b/progs/egl/opengles2/.gitignore new file mode 100644 index 0000000000..6158cc6e68 --- /dev/null +++ b/progs/egl/opengles2/.gitignore @@ -0,0 +1,3 @@ +es2_info.c +es2_info +tri diff --git a/progs/egl/opengles2/Makefile b/progs/egl/opengles2/Makefile new file mode 100644 index 0000000000..710c4d8c13 --- /dev/null +++ b/progs/egl/opengles2/Makefile @@ -0,0 +1,51 @@ +# progs/egl/opengles2/Makefile + +TOP = ../../.. +include $(TOP)/configs/current + + +INCLUDE_DIRS = \ + -I$(TOP)/include \ + +HEADERS = $(TOP)/include/GLES/egl.h + + +ES2_LIB_DEPS = \ + $(TOP)/$(LIB_DIR)/libEGL.so \ + $(TOP)/$(LIB_DIR)/libGLESv2.so + + +ES2_LIBS = \ + -L$(TOP)/$(LIB_DIR) -lEGL \ + -L$(TOP)/$(LIB_DIR) -lGLESv2 $(LIBDRM_LIB) -lX11 + +PROGRAMS = \ + es2_info \ + tri + + +.c.o: + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + + + +default: $(PROGRAMS) + + + +es2_info.c: ../opengles1/es1_info.c + cp -f $^ $@ + +es2_info: es2_info.o $(ES2_LIB_DEPS) + $(CC) $(CFLAGS) es2_info.o $(ES2_LIBS) -o $@ + +tri: tri.o $(ES2_LIB_DEPS) + $(CC) $(CFLAGS) tri.o $(ES2_LIBS) -o $@ + + + +clean: + rm -f *.o *~ + rm -f $(PROGRAMS) + rm -f es2_info.c + diff --git a/progs/egl/opengles2/tri.c b/progs/egl/opengles2/tri.c new file mode 100644 index 0000000000..8981d8a7e2 --- /dev/null +++ b/progs/egl/opengles2/tri.c @@ -0,0 +1,516 @@ +/************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + **************************************************************************/ + +/* + * Draw a triangle with X/EGL and OpenGL ES 2.x + */ + +#define USE_FULL_GL 0 + + + +#include +#include +#include +#include +#include +#include +#include +#include +#if USE_FULL_GL +#include /* use full OpenGL */ +#else +#include /* use OpenGL ES 2.x */ +#endif +#include + + +#define FLOAT_TO_FIXED(X) ((X) * 65535.0) + + + +static GLfloat view_rotx = 0.0, view_roty = 0.0; + +static GLint u_matrix = -1; +static GLint attr_pos = 0, attr_color = 1; + + +static void +make_z_rot_matrix(GLfloat angle, GLfloat *m) +{ + float c = cos(angle * M_PI / 180.0); + float s = sin(angle * M_PI / 180.0); + int i; + for (i = 0; i < 16; i++) + m[i] = 0.0; + m[0] = m[5] = m[10] = m[15] = 1.0; + + m[0] = c; + m[1] = s; + m[4] = -s; + m[5] = c; +} + +static void +make_scale_matrix(GLfloat xs, GLfloat ys, GLfloat zs, GLfloat *m) +{ + int i; + for (i = 0; i < 16; i++) + m[i] = 0.0; + m[0] = xs; + m[5] = ys; + m[10] = zs; + m[15] = 1.0; +} + + +static void +mul_matrix(GLfloat *prod, const GLfloat *a, const GLfloat *b) +{ +#define A(row,col) a[(col<<2)+row] +#define B(row,col) b[(col<<2)+row] +#define P(row,col) p[(col<<2)+row] + GLfloat p[16]; + GLint i; + for (i = 0; i < 4; i++) { + const GLfloat ai0=A(i,0), ai1=A(i,1), ai2=A(i,2), ai3=A(i,3); + P(i,0) = ai0 * B(0,0) + ai1 * B(1,0) + ai2 * B(2,0) + ai3 * B(3,0); + P(i,1) = ai0 * B(0,1) + ai1 * B(1,1) + ai2 * B(2,1) + ai3 * B(3,1); + P(i,2) = ai0 * B(0,2) + ai1 * B(1,2) + ai2 * B(2,2) + ai3 * B(3,2); + P(i,3) = ai0 * B(0,3) + ai1 * B(1,3) + ai2 * B(2,3) + ai3 * B(3,3); + } + memcpy(prod, p, sizeof(p)); +#undef A +#undef B +#undef PROD +} + + +static void +draw(void) +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][3] = { + { 1, 0, 0 }, + { 0, 1, 0 }, + { 0, 0, 1 } + }; + GLfloat mat[16], rot[16], scale[16]; + + /* Set modelview/projection matrix */ + make_z_rot_matrix(view_rotx, rot); + make_scale_matrix(0.5, 0.5, 0.5, scale); + mul_matrix(mat, rot, scale); + glUniformMatrix4fv(u_matrix, 1, GL_FALSE, mat); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + { + glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); + glVertexAttribPointer(attr_color, 3, GL_FLOAT, GL_FALSE, 0, colors); + glEnableVertexAttribArray(attr_pos); + glEnableVertexAttribArray(attr_color); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableVertexAttribArray(attr_pos); + glDisableVertexAttribArray(attr_color); + } +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + glViewport(0, 0, (GLint) width, (GLint) height); +} + + +static void +create_shaders(void) +{ + static const char *fragShaderText = + "varying vec4 v_color;\n" + "void main() {\n" + " gl_FragColor = v_color;\n" + "}\n"; + static const char *vertShaderText = + "uniform mat4 modelviewProjection;\n" + "attribute vec4 pos;\n" + "attribute vec4 color;\n" + "varying vec4 v_color;\n" + "void main() {\n" + " gl_Position = modelviewProjection * pos;\n" + " v_color = color;\n" + "}\n"; + + GLuint fragShader, vertShader, program; + GLint stat; + + fragShader = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fragShader, 1, (const char **) &fragShaderText, NULL); + glCompileShader(fragShader); + glGetShaderiv(fragShader, GL_COMPILE_STATUS, &stat); + if (!stat) { + printf("Error: fragment shader did not compile!\n"); + exit(1); + } + + vertShader = glCreateShader(GL_VERTEX_SHADER); + glShaderSource(vertShader, 1, (const char **) &vertShaderText, NULL); + glCompileShader(vertShader); + glGetShaderiv(vertShader, GL_COMPILE_STATUS, &stat); + if (!stat) { + printf("Error: vertex shader did not compile!\n"); + exit(1); + } + + program = glCreateProgram(); + glAttachShader(program, fragShader); + glAttachShader(program, vertShader); + glLinkProgram(program); + + glGetProgramiv(program, GL_LINK_STATUS, &stat); + if (!stat) { + char log[1000]; + GLsizei len; + glGetProgramInfoLog(program, 1000, &len, log); + printf("Error: linking:\n%s\n", log); + exit(1); + } + + glUseProgram(program); + + if (1) { + /* test setting attrib locations */ + glBindAttribLocation(program, attr_pos, "pos"); + glBindAttribLocation(program, attr_color, "color"); + glLinkProgram(program); /* needed to put attribs into effect */ + } + else { + /* test automatic attrib locations */ + attr_pos = glGetAttribLocation(program, "pos"); + attr_color = glGetAttribLocation(program, "color"); + } + + u_matrix = glGetUniformLocation(program, "modelviewProjection"); + printf("Uniform modelviewProjection at %d\n", u_matrix); + printf("Attrib pos at %d\n", attr_pos); + printf("Attrib color at %d\n", attr_color); +} + + +static void +init(void) +{ + typedef void (*proc)(); + +#if 1 /* test code */ + proc p = eglGetProcAddress("glMapBufferOES"); + assert(p); +#endif + + glClearColor(0.4, 0.4, 0.4, 0.0); + + create_shaders(); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_NONE + }; + static const EGLint ctx_attribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE + }; + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + +#if USE_FULL_GL /* XXX fix this when eglBindAPI() works */ + eglBindAPI(EGL_OPENGL_API); +#else + eglBindAPI(EGL_OPENGL_ES_API); +#endif + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + /* test eglQueryContext() */ + { + EGLint val; + eglQueryContext(egl_dpy, ctx, EGL_CONTEXT_CLIENT_VERSION, &val); + assert(val == 2); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + /* sanity checks */ + { + EGLint val; + eglQuerySurface(egl_dpy, *surfRet, EGL_WIDTH, &val); + assert(val == width); + eglQuerySurface(egl_dpy, *surfRet, EGL_HEIGHT, &val); + assert(val == height); + assert(eglGetConfigAttrib(egl_dpy, config, EGL_SURFACE_TYPE, &val)); + assert(val & EGL_WINDOW_BIT); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (code == XK_Left) { + view_roty += 5.0; + } + else if (code == XK_Right) { + view_roty -= 5.0; + } + else if (code == XK_Up) { + view_rotx += 5.0; + } + else if (code == XK_Down) { + view_rotx -= 5.0; + } + else { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + + +int +main(int argc, char *argv[]) +{ + const int winWidth = 300, winHeight = 300; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_VENDOR); + printf("EGL_VENDOR = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_EXTENSIONS); + printf("EGL_EXTENSIONS = %s\n", s); + + s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); + printf("EGL_CLIENT_APIS = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "OpenGL ES 2.x tri", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/es1/.gitignore b/progs/es1/.gitignore deleted file mode 100644 index 5e29a6b5fa..0000000000 --- a/progs/es1/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -screen/gears -screen/tri -xegl/bindtex -xegl/drawtex -xegl/es1_info -xegl/msaa -xegl/pbuffer -xegl/render_tex -xegl/torus -xegl/tri -xegl/two_win diff --git a/progs/es1/screen/Makefile b/progs/es1/screen/Makefile deleted file mode 100644 index 4ba2f9a7dc..0000000000 --- a/progs/es1/screen/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -# progs/es1/screen/Makefile - -TOP = ../../.. -include $(TOP)/configs/current - -ES1_CFLAGS = -I$(TOP)/include -ES1_LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGLESv1_CM - -ES1_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv1_CM.so - -WINSYS_OBJS = winsys.o - -PROGRAMS = \ - gears \ - tri - -.c.o: - $(CC) -c $(ES1_CFLAGS) $(CFLAGS) $< -o $@ - -default: $(PROGRAMS) - -gears: gears.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) - -tri: tri.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) - -clean: - -rm -f *.o *~ - -rm -f $(PROGRAMS) diff --git a/progs/es1/screen/gears.c b/progs/es1/screen/gears.c deleted file mode 100644 index c7625826b9..0000000000 --- a/progs/es1/screen/gears.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on eglgears by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include - -#include -#include "winsys.h" - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - - -struct gear { - GLuint vbo; - GLfloat *vertices; - GLsizei stride; - - GLint num_teeth; -}; - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static struct gear gears[3]; -static GLfloat angle = 0.0; - -/* - * Initialize a gear wheel. - * - * Input: gear - gear to initialize - * inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void -init_gear(struct gear *gear, GLfloat inner_radius, GLfloat outer_radius, - GLfloat width, GLint teeth, GLfloat tooth_depth) -{ - GLfloat r0, r1, r2; - GLfloat a0, da; - GLint verts_per_tooth, total_verts, total_size; - GLint count, i; - GLfloat *verts; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - a0 = 2.0 * M_PI / teeth; - da = a0 / 4.0; - - gear->vbo = 0; - gear->vertices = NULL; - gear->stride = sizeof(GLfloat) * 6; /* XYZ + normal */ - gear->num_teeth = teeth; - - verts_per_tooth = 10 + 4; - total_verts = teeth * verts_per_tooth; - total_size = total_verts * gear->stride; - - verts = malloc(total_size); - if (!verts) { - printf("failed to allocate vertices\n"); - return; - } - -#define GEAR_VERT(r, n, sign) \ - do { \ - verts[count * 6 + 0] = (r) * vx[n]; \ - verts[count * 6 + 1] = (r) * vy[n]; \ - verts[count * 6 + 2] = (sign) * width * 0.5; \ - verts[count * 6 + 3] = normal[0]; \ - verts[count * 6 + 4] = normal[1]; \ - verts[count * 6 + 5] = normal[2]; \ - count++; \ - } while (0) - - count = 0; - for (i = 0; i < teeth; i++) { - GLfloat normal[3]; - GLfloat vx[5], vy[5]; - GLfloat u, v; - - normal[0] = 0.0; - normal[1] = 0.0; - normal[2] = 0.0; - - vx[0] = cos(i * a0 + 0 * da); - vy[0] = sin(i * a0 + 0 * da); - vx[1] = cos(i * a0 + 1 * da); - vy[1] = sin(i * a0 + 1 * da); - vx[2] = cos(i * a0 + 2 * da); - vy[2] = sin(i * a0 + 2 * da); - vx[3] = cos(i * a0 + 3 * da); - vy[3] = sin(i * a0 + 3 * da); - vx[4] = cos(i * a0 + 4 * da); - vy[4] = sin(i * a0 + 4 * da); - - /* outward faces of a tooth, 10 verts */ - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r1, 0, 1); - GEAR_VERT(r1, 0, -1); - - u = r2 * vx[1] - r1 * vx[0]; - v = r2 * vy[1] - r1 * vy[0]; - normal[0] = v; - normal[1] = -u; - GEAR_VERT(r2, 1, 1); - GEAR_VERT(r2, 1, -1); - - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r2, 2, 1); - GEAR_VERT(r2, 2, -1); - - u = r1 * vx[3] - r2 * vx[2]; - v = r1 * vy[3] - r2 * vy[2]; - normal[0] = v; - normal[1] = -u; - GEAR_VERT(r1, 3, 1); - GEAR_VERT(r1, 3, -1); - - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r1, 4, 1); - GEAR_VERT(r1, 4, -1); - - /* inside radius cylinder, 4 verts */ - normal[0] = -vx[4]; - normal[1] = -vy[4]; - GEAR_VERT(r0, 4, 1); - GEAR_VERT(r0, 4, -1); - - normal[0] = -vx[0]; - normal[1] = -vy[0]; - GEAR_VERT(r0, 0, 1); - GEAR_VERT(r0, 0, -1); - - assert(count % verts_per_tooth == 0); - } - assert(count == total_verts); -#undef GEAR_VERT - - gear->vertices = verts; - - /* setup VBO */ - glGenBuffers(1, &gear->vbo); - if (gear->vbo) { - glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); - glBufferData(GL_ARRAY_BUFFER, total_size, verts, GL_STATIC_DRAW); - } -} - - -static void -draw_gear(const struct gear *gear) -{ - GLint i; - - if (!gear->vbo && !gear->vertices) { - printf("nothing to be drawn\n"); - return; - } - - if (gear->vbo) { - glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); - glVertexPointer(3, GL_FLOAT, gear->stride, (const GLvoid *) 0); - glNormalPointer(GL_FLOAT, gear->stride, (const GLvoid *) (sizeof(GLfloat) * 3)); - } else { - glBindBuffer(GL_ARRAY_BUFFER, 0); - glVertexPointer(3, GL_FLOAT, gear->stride, gear->vertices); - glNormalPointer(GL_FLOAT, gear->stride, gear->vertices + 3); - } - - glEnableClientState(GL_VERTEX_ARRAY); - - for (i = 0; i < gear->num_teeth; i++) { - const GLint base = (10 + 4) * i; - GLushort indices[7]; - - glShadeModel(GL_FLAT); - - /* front face */ - indices[0] = base + 12; - indices[1] = base + 0; - indices[2] = base + 2; - indices[3] = base + 4; - indices[4] = base + 6; - indices[5] = base + 8; - indices[6] = base + 10; - - glNormal3f(0.0, 0.0, 1.0); - glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); - - /* back face */ - indices[0] = base + 13; - indices[1] = base + 11; - indices[2] = base + 9; - indices[3] = base + 7; - indices[4] = base + 5; - indices[5] = base + 3; - indices[6] = base + 1; - - glNormal3f(0.0, 0.0, -1.0); - glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); - - glEnableClientState(GL_NORMAL_ARRAY); - - /* outward face of a tooth */ - glDrawArrays(GL_TRIANGLE_STRIP, base, 10); - - /* inside radius cylinder */ - glShadeModel(GL_SMOOTH); - glDrawArrays(GL_TRIANGLE_STRIP, base + 10, 4); - - glDisableClientState(GL_NORMAL_ARRAY); - } - - glDisableClientState(GL_VERTEX_ARRAY); -} - - -static void -gears_draw(void *data) -{ - static const GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; - static const GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; - static const GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); - draw_gear(&gears[0]); - - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green); - draw_gear(&gears[1]); - - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue); - draw_gear(&gears[2]); - - glPopMatrix(); - - glPopMatrix(); - - /* advance rotation for next frame */ - angle += 0.5; /* 0.5 degree per frame */ - if (angle > 3600.0) - angle -= 3600.0; -} - - -static void gears_fini(void) -{ - GLint i; - for (i = 0; i < 3; i++) { - struct gear *gear = &gears[i]; - if (gear->vbo) { - glDeleteBuffers(1, &gear->vbo); - gear->vbo = 0; - } - if (gear->vertices) { - free(gear->vertices); - gear->vertices = NULL; - } - } -} - - -static void gears_init(void) -{ - static const GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - glEnable(GL_NORMALIZE); - - init_gear(&gears[0], 1.0, 4.0, 1.0, 20, 0.7); - init_gear(&gears[1], 0.5, 2.0, 2.0, 10, 0.7); - init_gear(&gears[2], 1.3, 2.0, 0.5, 10, 0.7); -} - - -/* new window size or exposure */ -static void -gears_reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-1.0, 1.0, -h, h, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - - -static void gears_run(void) -{ - winsysRun(5.0, gears_draw, NULL); -} - - -int -main(int argc, char *argv[]) -{ - EGLint width, height; - - if (!winsysInitScreen()) - exit(1); - winsysQueryScreenSize(&width, &height); - - gears_init(); - gears_reshape(width, height); - gears_run(); - gears_fini(); - - winsysFiniScreen(); - - return 0; -} diff --git a/progs/es1/screen/tri.c b/progs/es1/screen/tri.c deleted file mode 100644 index bab9499944..0000000000 --- a/progs/es1/screen/tri.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on egltri by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include -#include "winsys.h" - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - -static void tri_init() -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - -static void tri_reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - -static void tri_draw(void *data) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - -static void tri_run(void) -{ - winsysRun(3.0, tri_draw, NULL); -} - -int main(int argc, char *argv[]) -{ - EGLint width, height; - GLboolean printInfo = GL_FALSE; - int i; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - printf("Warning: unknown parameter: %s\n", argv[i]); - } - } - - if (!winsysInitScreen()) - exit(1); - winsysQueryScreenSize(&width, &height); - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - tri_init(); - tri_reshape(width, height); - tri_run(); - - winsysFiniScreen(); - - return 0; -} diff --git a/progs/es1/screen/winsys.c b/progs/es1/screen/winsys.c deleted file mode 100644 index 84d00471eb..0000000000 --- a/progs/es1/screen/winsys.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on eglgears by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include -#include - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include - -#include "winsys.h" - -#define MAX_MODES 100 - -static struct { - EGLBoolean verbose; - - EGLDisplay dpy; - EGLConfig conf; - - EGLScreenMESA screen; - EGLModeMESA mode; - EGLint width, height; - - EGLContext ctx; - EGLSurface surf; -} screen; - - -static EGLBoolean -init_screen(void) -{ - EGLModeMESA modes[MAX_MODES]; - EGLint num_screens, num_modes; - EGLint width, height, best_mode; - EGLint i; - - if (!eglGetScreensMESA(screen.dpy, &screen.screen, 1, &num_screens) || - !num_screens) { - printf("eglGetScreensMESA failed\n"); - return EGL_FALSE; - } - - if (!eglGetModesMESA(screen.dpy, screen.screen, modes, MAX_MODES, - &num_modes) || - !num_modes) { - printf("eglGetModesMESA failed!\n"); - return EGL_FALSE; - } - - printf("Found %d modes:\n", num_modes); - - best_mode = 0; - width = 0; - height = 0; - for (i = 0; i < num_modes; i++) { - EGLint w, h; - eglGetModeAttribMESA(screen.dpy, modes[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(screen.dpy, modes[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - best_mode = i; - } - } - - screen.mode = modes[best_mode]; - screen.width = width; - screen.height = height; - - return EGL_TRUE; -} - - -static EGLBoolean -init_display(void) -{ - EGLint maj, min; - const char *exts; - const EGLint attribs[] = { - EGL_SURFACE_TYPE, 0x0, /* should be EGL_SCREEN_BIT_MESA */ - EGL_RENDERABLE_TYPE, 0x0, /* should be EGL_OPENGL_ES_BIT */ - EGL_NONE - }; - EGLint num_configs; - - screen.dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (!screen.dpy) { - printf("eglGetDisplay failed\n"); - return EGL_FALSE; - } - - if (!eglInitialize(screen.dpy, &maj, &min)) { - printf("eglInitialize failed\n"); - return EGL_FALSE; - } - - printf("EGL_VERSION = %s\n", eglQueryString(screen.dpy, EGL_VERSION)); - printf("EGL_VENDOR = %s\n", eglQueryString(screen.dpy, EGL_VENDOR)); - - exts = eglQueryString(screen.dpy, EGL_EXTENSIONS); - assert(exts); - - if (!strstr(exts, "EGL_MESA_screen_surface")) { - printf("EGL_MESA_screen_surface is not supported\n"); - return EGL_FALSE; - } - - if (!eglChooseConfig(screen.dpy, attribs, &screen.conf, 1, - &num_configs) || - !num_configs) { - printf("eglChooseConfig failed\n"); - return EGL_FALSE; - } - - return EGL_TRUE; -} - - -EGLBoolean -winsysInitScreen(void) -{ - EGLint surf_attribs[20]; - EGLint i; - EGLBoolean ok; - - if (!init_display()) - goto fail; - if (!init_screen()) - goto fail; - - /* create context */ - screen.ctx = eglCreateContext(screen.dpy, screen.conf, - EGL_NO_CONTEXT, NULL); - if (screen.ctx == EGL_NO_CONTEXT) { - printf("eglCreateContext failed\n"); - goto fail; - } - - i = 0; - surf_attribs[i++] = EGL_WIDTH; - surf_attribs[i++] = screen.width; - surf_attribs[i++] = EGL_HEIGHT; - surf_attribs[i++] = screen.height; - surf_attribs[i++] = EGL_NONE; - - /* create surface */ - printf("Using screen size: %d x %d\n", screen.width, screen.height); - screen.surf = eglCreateScreenSurfaceMESA(screen.dpy, screen.conf, - surf_attribs); - if (screen.surf == EGL_NO_SURFACE) { - printf("eglCreateScreenSurfaceMESA failed\n"); - goto fail; - } - - ok = eglMakeCurrent(screen.dpy, screen.surf, screen.surf, screen.ctx); - if (!ok) { - printf("eglMakeCurrent failed\n"); - goto fail; - } - - ok = eglShowScreenSurfaceMESA(screen.dpy, screen.screen, - screen.surf, screen.mode); - if (!ok) { - printf("eglShowScreenSurfaceMESA failed\n"); - goto fail; - } - - return EGL_TRUE; - -fail: - winsysFiniScreen(); - return EGL_FALSE; -} - - -EGLBoolean -winsysQueryScreenSize(EGLint *width, EGLint *height) -{ - if (!screen.dpy) - return EGL_FALSE; - - if (width) - *width = screen.width; - if (height) - *height = screen.height; - - return EGL_TRUE; -} - - -void -winsysFiniScreen(void) -{ - if (screen.dpy) { - eglMakeCurrent(screen.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, - EGL_NO_CONTEXT); - if (screen.surf != EGL_NO_SURFACE) - eglDestroySurface(screen.dpy, screen.surf); - if (screen.ctx != EGL_NO_CONTEXT) - eglDestroyContext(screen.dpy, screen.ctx); - eglTerminate(screen.dpy); - - memset(&screen, 0, sizeof(screen)); - } -} - - -void -winsysSwapBuffers(void) -{ - eglSwapBuffers(screen.dpy, screen.surf); -} - - -/* return current time (in seconds) */ -double -winsysNow(void) -{ - struct timeval tv; - gettimeofday(&tv, NULL); - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - - -void -winsysRun(double seconds, void (*draw_frame)(void *data), void *data) -{ - double begin, end, last_frame, duration; - EGLint num_frames = 0; - - begin = winsysNow(); - end = begin + seconds; - - last_frame = begin; - while (last_frame < end) { - draw_frame(data); - winsysSwapBuffers(); - last_frame = winsysNow(); - num_frames++; - } - - duration = last_frame - begin; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", - num_frames, duration, (double) num_frames / duration); -} diff --git a/progs/es1/screen/winsys.h b/progs/es1/screen/winsys.h deleted file mode 100644 index 679c7e0bd6..0000000000 --- a/progs/es1/screen/winsys.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef _WINSYS_H_ -#define _WINSYS_H_ - -#include - -EGLBoolean winsysInitScreen(void); -EGLBoolean winsysQueryScreenSize(EGLint *width, EGLint *height); -void winsysFiniScreen(void); - -void winsysSwapBuffers(void); -double winsysNow(void); - -void winsysRun(double seconds, void (*draw_frame)(void *data), void *data); - -#endif /* _WINSYS_H_ */ diff --git a/progs/es1/xegl/Makefile b/progs/es1/xegl/Makefile deleted file mode 100644 index 6869c44306..0000000000 --- a/progs/es1/xegl/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -# progs/es1/xegl/Makefile - -TOP = ../../.. -include $(TOP)/configs/current - - -INCLUDE_DIRS = \ - -I$(TOP)/include \ - -HEADERS = $(TOP)/include/GLES/egl.h - - -ES1_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv1_CM.so - - -ES1_LIBS = \ - -L$(TOP)/$(LIB_DIR) -lEGL \ - -L$(TOP)/$(LIB_DIR) -lGLESv1_CM $(LIBDRM_LIB) -lX11 - -PROGRAMS = \ - bindtex \ - drawtex \ - es1_info \ - msaa \ - pbuffer \ - render_tex \ - torus \ - tri \ - two_win - - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - - -default: $(PROGRAMS) - - - -bindtex: bindtex.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) bindtex.o $(ES1_LIBS) -o $@ - - -drawtex: drawtex.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) drawtex.o $(ES1_LIBS) -o $@ - - -es1_info: es1_info.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) es1_info.o $(ES1_LIBS) -o $@ - - -msaa: msaa.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) msaa.o $(ES1_LIBS) -o $@ - - -pbuffer: pbuffer.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) pbuffer.o $(ES1_LIBS) -o $@ - - -render_tex: render_tex.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) render_tex.o $(ES1_LIBS) -o $@ - - -torus: torus.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) torus.o $(ES1_LIBS) -o $@ - - -two_win: two_win.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) two_win.o $(ES1_LIBS) -o $@ - - -tri: tri.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) tri.o $(ES1_LIBS) -o $@ - - -clean: - rm -f *.o *~ - rm -f $(PROGRAMS) - diff --git a/progs/es1/xegl/bindtex.c b/progs/es1/xegl/bindtex.c deleted file mode 100644 index c243b5941b..0000000000 --- a/progs/es1/xegl/bindtex.c +++ /dev/null @@ -1,474 +0,0 @@ -/* - * Simple demo for eglBindTexImage. Based on xegl_tri.c by - * - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * The spec says that eglBindTexImage supports only OpenGL ES context, but this - * demo uses OpenGL context. Keep in mind that this is non-standard. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static EGLDisplay dpy; -static EGLContext ctx_win, ctx_pbuf; -static EGLSurface surf_win, surf_pbuf; -static GLuint tex_pbuf; - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; -static GLboolean blend = GL_TRUE; -static GLuint color_flow; - -static void -make_pbuffer(int width, int height) -{ - static const EGLint config_attribs[] = { - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_BIND_TO_TEXTURE_RGB, EGL_TRUE, - EGL_NONE - }; - EGLint pbuf_attribs[] = { - EGL_WIDTH, width, - EGL_HEIGHT, height, - EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, - EGL_TEXTURE_TARGET, EGL_TEXTURE_2D, - EGL_NONE - }; - EGLConfig config; - EGLint num_configs; - - if (!eglChooseConfig(dpy, config_attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config for pbuffer\n"); - exit(1); - } - - ctx_pbuf = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL ); - surf_pbuf = eglCreatePbufferSurface(dpy, config, pbuf_attribs); - if (surf_pbuf == EGL_NO_SURFACE) { - printf("failed to allocate pbuffer\n"); - exit(1); - } -} - -static void -use_pbuffer(void) -{ - static int initialized; - - eglMakeCurrent(dpy, surf_pbuf, surf_pbuf, ctx_pbuf); - if (!initialized) { - EGLint width, height; - GLfloat ar; - - initialized = 1; - - eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &width); - eglQuerySurface(dpy, surf_pbuf, EGL_WIDTH, &height); - ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-ar, ar, -1, 1, 1.0, 10.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - /* y-inverted */ - glScalef(1.0, -1.0, 1.0); - - glTranslatef(0.0, 0.0, -5.0); - - glClearColor(0.2, 0.2, 0.2, 0.0); - - glGenTextures(1, &tex_pbuf); - } -} - -static void -make_window(Display *x_dpy, const char *name, - int x, int y, int width, int height, - Window *winRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_ALPHA_SIZE, 8, - EGL_DEPTH_SIZE, 8, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLConfig config; - EGLint num_configs, vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig(dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - attr.override_redirect = 0; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWOverrideRedirect; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - ctx_win = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx_win) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - surf_win = eglCreateWindowSurface(dpy, config, win, NULL); - - XFree(visInfo); - - *winRet = win; -} - -static void -use_window(void) -{ - static int initialized; - - eglMakeCurrent(dpy, surf_win, surf_win, ctx_win); - if (!initialized) { - initialized = 1; - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, tex_pbuf); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - } -} - -static void -draw_triangle(void) -{ - static const GLfloat verts[3][2] = { - { -3, -3 }, - { 3, -3 }, - { 0, 3 } - }; - GLfloat colors[3][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 } - }; - GLint i; - - /* flow the color */ - for (i = 0; i < 3; i++) { - GLint first = (i + color_flow / 256) % 3; - GLint second = (first + 1) % 3; - GLint third = (second + 1) % 3; - GLfloat c = (color_flow % 256) / 256.0f; - - c = c * c * c; - colors[i][first] = 1.0f - c; - colors[i][second] = c; - colors[i][third] = 0.0f; - } - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); -} - -static void -draw_textured_cube(void) -{ - static const GLfloat verts[][2] = { - { -4, -4 }, - { 4, -4 }, - { 4, 4 }, - { -4, 4 } - }; - static const GLfloat colors[][4] = { - { 1, 1, 1, 0.5 }, - { 1, 1, 1, 0.5 }, - { 1, 1, 1, 0.5 }, - { 1, 1, 1, 0.5 } - }; - static const GLfloat texs[][2] = { - { 0, 0 }, - { 1, 0 }, - { 1, 1 }, - { 0, 1 } - }; - static const GLfloat xforms[6][4] = { - { 0, 0, 1, 0 }, - { 90, 0, 1, 0 }, - { 180, 0, 1, 0 }, - { 270, 0, 1, 0 }, - { 90, 1, 0, 0 }, - { -90, 1, 0, 0 } - }; - GLint i; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - if (blend) { - glDisable(GL_DEPTH_TEST); - glEnable(GL_BLEND); - } else { - glEnable(GL_DEPTH_TEST); - glDisable(GL_BLEND); - } - - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - glTexCoordPointer(2, GL_FLOAT, 0, texs); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - for (i = 0; i < 6; i++) { - glPushMatrix(); - glRotatef(xforms[i][0], xforms[i][1], xforms[i][2], xforms[i][3]); - glTranslatef(0, 0, 4.1); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glPopMatrix(); - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -} - -static void -draw(void) -{ - use_pbuffer(); - draw_triangle(); - - use_window(); - - eglBindTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - draw_textured_cube(); - - glPopMatrix(); - - eglReleaseTexImage(dpy, surf_pbuf, EGL_BACK_BUFFER); -} - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - use_window(); - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - -static void -event_loop(Display *x_dpy, Window win) -{ - while (1) { - int redraw = 1; - - if (XPending(x_dpy) > 0) { - XEvent event; - XNextEvent(x_dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else if (code == XK_b) { - blend = !blend; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (redraw) { - view_rotx += 1.0; - view_roty += 2.0; - view_rotz += 1.5; - color_flow += 20; - draw(); - eglSwapBuffers(dpy, surf_win); - } - } -} - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - char *dpyName = NULL; - EGLint egl_major, egl_minor; - const char *s; - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - dpy = eglGetDisplay(x_dpy); - if (!dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_window(x_dpy, "color flow", 0, 0, winWidth, winHeight, &win); - make_pbuffer(winWidth, winHeight); - - XMapWindow(x_dpy, win); - - reshape(winWidth, winHeight); - event_loop(x_dpy, win); - - glDeleteTextures(1, &tex_pbuf); - - eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglTerminate(dpy); - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/drawtex.c b/progs/es1/xegl/drawtex.c deleted file mode 100644 index ca0615e267..0000000000 --- a/progs/es1/xegl/drawtex.c +++ /dev/null @@ -1,427 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * Test GL_OES_draw_texture - * Brian Paul - * August 2008 - */ - -#define GL_GLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -static GLfloat view_posx = 10.0, view_posy = 20.0; -static GLfloat width = 200, height = 200; - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT); - - glDrawTexfOES(view_posx, view_posy, 0.0, width, height); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); -} - - -static float -dist(GLuint i, GLuint j, float x, float y) -{ - return sqrt((i-x) * (i-x) + (j-y) * (j-y)); -} - -static void -make_smile_texture(void) -{ -#define SZ 128 - GLenum Filter = GL_LINEAR; - GLubyte image[SZ][SZ][4]; - GLuint i, j; - GLint cropRect[4]; - - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d_mouth = dist(i, j, SZ/2, SZ/2); - GLfloat d_rt_eye = dist(i, j, SZ*3/4, SZ*3/4); - GLfloat d_lt_eye = dist(i, j, SZ*3/4, SZ*1/4); - if (d_rt_eye < SZ / 8 || d_lt_eye < SZ / 8) { - image[i][j][0] = 20; - image[i][j][1] = 50; - image[i][j][2] = 255; - image[i][j][3] = 255; - } - else if (i < SZ/2 && d_mouth < SZ/3) { - image[i][j][0] = 255; - image[i][j][1] = 20; - image[i][j][2] = 20; - image[i][j][3] = 255; - } - else { - image[i][j][0] = 200; - image[i][j][1] = 200; - image[i][j][2] = 200; - image[i][j][3] = 255; - } - } - } - - glActiveTexture(GL_TEXTURE0); /* unit 0 */ - glBindTexture(GL_TEXTURE_2D, 42); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, - GL_RGBA, GL_UNSIGNED_BYTE, image); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - cropRect[0] = 0; - cropRect[1] = 0; - cropRect[2] = SZ; - cropRect[3] = SZ; - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, cropRect); -#undef SZ -} - - - -static void -init(void) -{ - const char *ext = (char *) glGetString(GL_EXTENSIONS); - - if (!strstr(ext, "GL_OES_draw_texture")) { - fprintf(stderr, "Sorry, this program requires GL_OES_draw_texture"); - exit(1); - } - - glClearColor(0.4, 0.4, 0.4, 0.0); - - make_smile_texture(); - glEnable(GL_TEXTURE_2D); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - int anim = 0; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_posx -= 1.0; - } - else if (code == XK_Right) { - view_posx += 1.0; - } - else if (code == XK_Up) { - view_posy += 1.0; - } - else if (code == XK_Down) { - view_posy -= 1.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 'w') { - width -= 1.0f; - } - else if (buffer[0] == 'W') { - width += 1.0f; - } - else if (buffer[0] == 'h') { - height -= 1.0f; - } - else if (buffer[0] == 'H') { - height += 1.0f; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (anim) { - view_posx += 1.0; - view_posy += 2.0; - redraw = 1; - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 400, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "drawtex", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/es1_info.c b/progs/es1/xegl/es1_info.c deleted file mode 100644 index 93816b5215..0000000000 --- a/progs/es1/xegl/es1_info.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * List OpenGL ES extensions. - * Print ES 1 or ES 2 extensions depending on which library we're - * linked with: libGLESv1_CM.so vs libGLESv2.so - */ - -#define GL_GLEXT_PROTOTYPES - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -/* - * Print a list of extensions, with word-wrapping. - */ -static void -print_extension_list(const char *ext) -{ - const char *indentString = " "; - const int indent = 4; - const int max = 79; - int width, i, j; - - if (!ext || !ext[0]) - return; - - width = indent; - printf(indentString); - i = j = 0; - while (1) { - if (ext[j] == ' ' || ext[j] == 0) { - /* found end of an extension name */ - const int len = j - i; - if (width + len > max) { - /* start a new line */ - printf("\n"); - width = indent; - printf(indentString); - } - /* print the extension name between ext[i] and ext[j] */ - while (i < j) { - printf("%c", ext[i]); - i++; - } - /* either we're all done, or we'll continue with next extension */ - width += len + 1; - if (ext[j] == 0) { - break; - } - else { - i++; - j++; - if (ext[j] == 0) - break; - printf(", "); - width += 2; - } - } - j++; - } - printf("\n"); -} - - -static void -info(EGLDisplay egl_dpy) -{ - const char *s; - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - printf("GL_VERSION: %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_EXTENSIONS:\n"); - print_extension_list((char *) glGetString(GL_EXTENSIONS)); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, int es_ver, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - EGLint attribs[] = { - EGL_RENDERABLE_TYPE, 0x0, - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_NONE - }; - EGLint ctx_attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 0, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (es_ver == 1) - attribs[1] = EGL_OPENGL_ES_BIT; - else - attribs[1] = EGL_OPENGL_ES2_BIT; - ctx_attribs[1] = es_ver; - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 400, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - EGLint egl_major, egl_minor, es_ver; - int i; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - es_ver = 1; - /* decide the version from the executable's name */ - if (argc > 0 && argv[0] && strstr(argv[0], "es2")) - es_ver = 2; - make_x_window(x_dpy, egl_dpy, - "ES info", 0, 0, winWidth, winHeight, es_ver, - &win, &egl_ctx, &egl_surf); - - /*XMapWindow(x_dpy, win);*/ - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - info(egl_dpy); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/msaa.c b/progs/es1/xegl/msaa.c deleted file mode 100644 index b4c6c63217..0000000000 --- a/progs/es1/xegl/msaa.c +++ /dev/null @@ -1,442 +0,0 @@ -/* - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Test MSAA with X/EGL and OpenGL ES 1.x - * Brian Paul - * 15 September 2008 - */ - -#define USE_FULL_GL 0 - - -#include -#include -#include -#include -#include -#include -#include -#include -#if USE_FULL_GL -#include /* use full OpenGL */ -#else -#include /* use OpenGL ES 1.x */ -#include -#endif -#include - - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; -static GLboolean AA = 0*GL_TRUE; - - -static void -draw(void) -{ - float a; - - static const GLfloat verts[4][2] = { - { -1, -.1 }, - { 1, -.1 }, - { -1, .1 }, - { 1, .1 } - }; - static const GLfloat colors[4][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 }, - { 1, 0, 1, 1 } - }; - - if (AA) { - printf("MSAA enabled\n"); - glEnable(GL_MULTISAMPLE); - } - else { - printf("MSAA disabled\n"); - glDisable(GL_MULTISAMPLE); - } - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - for (a = 0; a < 360; a += 20.0) { - glPushMatrix(); - - glRotatef(a, 0, 0, 1); - glTranslatef(1.5, 0, 0); - - /* draw triangle */ - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - - glPopMatrix(); - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ary = 3.0; - GLfloat arx = ary * (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); -#ifdef GL_VERSION_ES_CM_1_0 - glOrthof(-arx, arx, -ary, ary, -1.0, 1.0); -#else - glOrtho(-arx, arx, -ary, ary, -1.0, 1.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - - - -static void -init(void) -{ - printf("Press 'a' to toggle multisample antialiasing\n"); - printf("Press 'Esc' to exit\n"); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_SAMPLES, 1, - EGL_SAMPLE_BUFFERS, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - if (num_configs < 1) { - printf("Error: Unable to find multisample pixel format.\n"); - printf("Try running glxinfo to see if your server supports MSAA.\n"); - exit(1); - } - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - -#if USE_FULL_GL - eglBindAPI(EGL_OPENGL_API); -#else - eglBindAPI(EGL_OPENGL_ES_API); -#endif - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 'a') { - AA = !AA; - redraw = 1; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 600, winHeight = 600; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - static struct { - char *name; - GLenum value; - enum {GetString, GetInteger} type; - } info_items[] = { - {"GL_RENDERER", GL_RENDERER, GetString}, - {"GL_VERSION", GL_VERSION, GetString}, - {"GL_VENDOR", GL_VENDOR, GetString}, - {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, - {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, - {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, - }; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "msaa", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { - switch (info_items[i].type) { - case GetString: - printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); - break; - case GetInteger: { - GLint rv = -1; - glGetIntegerv(info_items[i].value, &rv); - printf("%s = %d\n", info_items[i].name, rv); - break; - } - } - } - }; - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/pbuffer.c b/progs/es1/xegl/pbuffer.c deleted file mode 100644 index 011c2af58f..0000000000 --- a/progs/es1/xegl/pbuffer.c +++ /dev/null @@ -1,607 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * Test EGL Pbuffers - * Brian Paul - * August 2008 - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -static int WinWidth = 300, WinHeight = 300; - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - - -static void -Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) -{ - n[0] = nx; - n[1] = ny; - n[2] = nz; -} - -static void -Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) -{ - v[0] = vx; - v[1] = vy; - v[2] = vz; -} - -static void -Texcoord(GLfloat *v, GLfloat s, GLfloat t) -{ - v[0] = s; - v[1] = t; -} - - -/* Borrowed from glut, adapted */ -static void -draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) -{ - int i, j; - GLfloat theta, phi, theta1; - GLfloat cosTheta, sinTheta; - GLfloat cosTheta1, sinTheta1; - GLfloat ringDelta, sideDelta; - GLfloat varray[100][3], narray[100][3], tarray[100][2]; - int vcount; - - glVertexPointer(3, GL_FLOAT, 0, varray); - glNormalPointer(GL_FLOAT, 0, narray); - glTexCoordPointer(2, GL_FLOAT, 0, tarray); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - ringDelta = 2.0 * M_PI / rings; - sideDelta = 2.0 * M_PI / nsides; - - theta = 0.0; - cosTheta = 1.0; - sinTheta = 0.0; - for (i = rings - 1; i >= 0; i--) { - theta1 = theta + ringDelta; - cosTheta1 = cos(theta1); - sinTheta1 = sin(theta1); - - vcount = 0; /* glBegin(GL_QUAD_STRIP); */ - - phi = 0.0; - for (j = nsides; j >= 0; j--) { - GLfloat s0, s1, t; - GLfloat cosPhi, sinPhi, dist; - - phi += sideDelta; - cosPhi = cos(phi); - sinPhi = sin(phi); - dist = R + r * cosPhi; - - s0 = 20.0 * theta / (2.0 * M_PI); - s1 = 20.0 * theta1 / (2.0 * M_PI); - t = 8.0 * phi / (2.0 * M_PI); - - Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); - Texcoord(tarray[vcount], s1, t); - Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); - vcount++; - - Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); - Texcoord(tarray[vcount], s0, t); - Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); - vcount++; - } - - /*glEnd();*/ - assert(vcount <= 100); - glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); - - theta = theta1; - cosTheta = cosTheta1; - sinTheta = sinTheta1; - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -} - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - glScalef(0.5, 0.5, 0.5); - - draw_torus(1.0, 3.0, 30, 60); - - glPopMatrix(); - - glFinish(); -} - - -/** - * Draw to both the window and pbuffer and compare results. - */ -static void -draw_both(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, - EGLContext egl_ctx) -{ - unsigned *wbuf, *pbuf; - int x = 100, y = 110; - int i, dif; - - wbuf = (unsigned *) malloc(WinWidth * WinHeight * 4); - pbuf = (unsigned *) malloc(WinWidth * WinHeight * 4); - - glPixelStorei(GL_PACK_ALIGNMENT, 1); - - /* first draw to window */ - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent(window) failed\n"); - return; - } - draw(); - glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, wbuf); - printf("Window[%d,%d] = 0x%08x\n", x, y, wbuf[y*WinWidth+x]); - - /* then draw to pbuffer */ - if (!eglMakeCurrent(egl_dpy, egl_pbuf, egl_pbuf, egl_ctx)) { - printf("Error: eglMakeCurrent(pbuffer) failed\n"); - return; - } - draw(); - glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, pbuf); - printf("Pbuffer[%d,%d] = 0x%08x\n", x, y, pbuf[y*WinWidth+x]); - - eglSwapBuffers(egl_dpy, egl_surf); - - /* compare renderings */ - for (dif = i = 0; i < WinWidth * WinHeight; i++) { - if (wbuf[i] != pbuf[i]) { - dif = 1; - break; - } - } - - if (dif) - printf("Difference at %d: 0x%08x vs. 0x%08x\n", i, wbuf[i], pbuf[i]); - else - printf("Window rendering matches Pbuffer rendering!\n"); - - free(wbuf); - free(pbuf); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - WinWidth = width; - WinHeight = height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); -} - - -static void -make_texture(void) -{ -#define SZ 64 - GLenum Filter = GL_LINEAR; - GLubyte image[SZ][SZ][4]; - GLuint i, j; - - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); - d = sqrt(d); - if (d < SZ/3) { - image[i][j][0] = 255; - image[i][j][1] = 255; - image[i][j][2] = 255; - image[i][j][3] = 255; - } - else { - image[i][j][0] = 127; - image[i][j][1] = 127; - image[i][j][2] = 127; - image[i][j][3] = 255; - } - } - } - - glActiveTexture(GL_TEXTURE0); /* unit 0 */ - glBindTexture(GL_TEXTURE_2D, 42); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, - GL_RGBA, GL_UNSIGNED_BYTE, image); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); -#undef SZ -} - - - -static void -init(void) -{ - static const GLfloat red[4] = {1, 0, 0, 0}; - static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; - static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; - static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; - static const GLfloat pos[4] = {20, 20, 50, 1}; - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, specular); - - glClearColor(0.4, 0.4, 0.4, 0.0); - glEnable(GL_DEPTH_TEST); - - make_texture(); - glEnable(GL_TEXTURE_2D); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static EGLSurface -make_pbuffer(Display *x_dpy, EGLDisplay egl_dpy, int width, int height) -{ - static const EGLint config_attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - EGLConfig config; - EGLSurface pbuf; - EGLint num_configs; - EGLint pbuf_attribs[5]; - - pbuf_attribs[0] = EGL_WIDTH; - pbuf_attribs[1] = width; - pbuf_attribs[2] = EGL_HEIGHT; - pbuf_attribs[3] = height; - pbuf_attribs[4] = EGL_NONE; - - if (!eglChooseConfig( egl_dpy, config_attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL config for pbuffer\n"); - exit(1); - } - - pbuf = eglCreatePbufferSurface(egl_dpy, config, pbuf_attribs); - - return pbuf; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, - EGLContext egl_ctx) -{ - int anim = 0; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (event.xconfigure.window == win) - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (anim) { - view_rotx += 1.0; - view_roty += 2.0; - redraw = 1; - } - - if (redraw) { - draw_both(egl_dpy, egl_surf, egl_pbuf, egl_ctx); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - Display *x_dpy; - Window win; - EGLSurface egl_surf, egl_pbuf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "pbuffer", 0, 0, WinWidth, WinHeight, - &win, &egl_ctx, &egl_surf); - - egl_pbuf = make_pbuffer(x_dpy, egl_dpy, WinWidth, WinHeight); - if (!egl_pbuf) { - printf("Error: eglCreatePBufferSurface() failed\n"); - return -1; - } - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(WinWidth, WinHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf, egl_pbuf, egl_ctx); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/render_tex.c b/progs/es1/xegl/render_tex.c deleted file mode 100644 index 0200fa4cb0..0000000000 --- a/progs/es1/xegl/render_tex.c +++ /dev/null @@ -1,659 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * Test EGL render to texture. - * Brian Paul - * August 2008 - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -static int TexWidth = 256, TexHeight = 256; - -static int WinWidth = 300, WinHeight = 300; - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - -static GLuint DotTexture, RenderTexture; - - -static void -Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) -{ - n[0] = nx; - n[1] = ny; - n[2] = nz; -} - -static void -Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) -{ - v[0] = vx; - v[1] = vy; - v[2] = vz; -} - -static void -Texcoord(GLfloat *v, GLfloat s, GLfloat t) -{ - v[0] = s; - v[1] = t; -} - - -/* Borrowed from glut, adapted */ -static void -draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) -{ - int i, j; - GLfloat theta, phi, theta1; - GLfloat cosTheta, sinTheta; - GLfloat cosTheta1, sinTheta1; - GLfloat ringDelta, sideDelta; - GLfloat varray[100][3], narray[100][3], tarray[100][2]; - int vcount; - - glVertexPointer(3, GL_FLOAT, 0, varray); - glNormalPointer(GL_FLOAT, 0, narray); - glTexCoordPointer(2, GL_FLOAT, 0, tarray); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - ringDelta = 2.0 * M_PI / rings; - sideDelta = 2.0 * M_PI / nsides; - - theta = 0.0; - cosTheta = 1.0; - sinTheta = 0.0; - for (i = rings - 1; i >= 0; i--) { - theta1 = theta + ringDelta; - cosTheta1 = cos(theta1); - sinTheta1 = sin(theta1); - - vcount = 0; /* glBegin(GL_QUAD_STRIP); */ - - phi = 0.0; - for (j = nsides; j >= 0; j--) { - GLfloat s0, s1, t; - GLfloat cosPhi, sinPhi, dist; - - phi += sideDelta; - cosPhi = cos(phi); - sinPhi = sin(phi); - dist = R + r * cosPhi; - - s0 = 20.0 * theta / (2.0 * M_PI); - s1 = 20.0 * theta1 / (2.0 * M_PI); - t = 8.0 * phi / (2.0 * M_PI); - - Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); - Texcoord(tarray[vcount], s1, t); - Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); - vcount++; - - Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); - Texcoord(tarray[vcount], s0, t); - Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); - vcount++; - } - - /*glEnd();*/ - assert(vcount <= 100); - glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); - - theta = theta1; - cosTheta = cosTheta1; - sinTheta = sinTheta1; - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -} - - -static void -draw_torus_to_texture(void) -{ - glViewport(0, 0, TexWidth, TexHeight); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-1, 1, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); - - glClearColor(0.4, 0.4, 0.4, 0.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glBindTexture(GL_TEXTURE_2D, DotTexture); - - glEnable(GL_LIGHTING); - - glPushMatrix(); - glRotatef(view_roty, 0, 1, 0); - glScalef(0.5, 0.5, 0.5); - - draw_torus(1.0, 3.0, 30, 60); - - glPopMatrix(); - - glDisable(GL_LIGHTING); - -#if 0 - glBindTexture(GL_TEXTURE_2D, RenderTexture); - glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, TexWidth, TexHeight); -#endif - - glFinish(); -} - - -static void -draw_textured_quad(void) -{ - GLfloat ar = (GLfloat) WinWidth / (GLfloat) WinHeight; - - glViewport(0, 0, WinWidth, WinHeight); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -8.0); - - glClearColor(0.4, 0.4, 1.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glBindTexture(GL_TEXTURE_2D, RenderTexture); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - static const GLfloat texcoord[4][2] = { - { 0, 0 }, { 1, 0 }, { 0, 1 }, { 1, 1 } - }; - static const GLfloat vertex[4][2] = { - { -1, -1 }, { 1, -1 }, { -1, 1 }, { 1, 1 } - }; - - glVertexPointer(2, GL_FLOAT, 0, vertex); - glTexCoordPointer(2, GL_FLOAT, 0, texcoord); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - } - - glPopMatrix(); -} - - - -static void -draw(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, - EGLContext egl_ctx) -{ - /*printf("Begin draw\n");*/ - - /* first draw torus to pbuffer /texture */ -#if 01 - if (!eglMakeCurrent(egl_dpy, egl_pbuf, egl_pbuf, egl_ctx)) { -#else - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { -#endif - printf("Error: eglMakeCurrent(pbuf) failed\n"); - return; - } - draw_torus_to_texture(); - - /* draw textured quad to window */ - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent(pbuffer) failed\n"); - return; - } - - glBindTexture(GL_TEXTURE_2D, RenderTexture); - eglBindTexImage(egl_dpy, egl_pbuf, EGL_BACK_BUFFER); - draw_textured_quad(); - eglReleaseTexImage(egl_dpy, egl_pbuf, EGL_BACK_BUFFER); - - eglSwapBuffers(egl_dpy, egl_surf); - - /*printf("End draw\n");*/ -} - - - -static void -make_dot_texture(void) -{ -#define SZ 64 - GLenum Filter = GL_LINEAR; - GLubyte image[SZ][SZ][4]; - GLuint i, j; - - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); - d = sqrt(d); - if (d < SZ/3) { - image[i][j][0] = 255; - image[i][j][1] = 255; - image[i][j][2] = 255; - image[i][j][3] = 255; - } - else { - image[i][j][0] = 127; - image[i][j][1] = 127; - image[i][j][2] = 127; - image[i][j][3] = 255; - } - } - } - - glGenTextures(1, &DotTexture); - glBindTexture(GL_TEXTURE_2D, DotTexture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, - GL_RGBA, GL_UNSIGNED_BYTE, image); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); -#undef SZ -} - - -static void -make_render_texture(void) -{ - GLenum Filter = GL_LINEAR; - glGenTextures(1, &RenderTexture); - glBindTexture(GL_TEXTURE_2D, RenderTexture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TexWidth, TexHeight, 0, - GL_RGBA, GL_UNSIGNED_BYTE, NULL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); -} - - -static void -init(void) -{ - static const GLfloat red[4] = {1, 0, 0, 0}; - static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; - static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; - static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; - static const GLfloat pos[4] = {20, 20, 50, 1}; - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); - - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, specular); - - glEnable(GL_DEPTH_TEST); - - make_dot_texture(); - make_render_texture(); - - printf("DotTexture=%u RenderTexture=%u\n", DotTexture, RenderTexture); - - glEnable(GL_TEXTURE_2D); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static EGLSurface -make_pbuffer(Display *x_dpy, EGLDisplay egl_dpy, int width, int height) -{ - static const EGLint config_attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - EGLConfig config; - EGLSurface pbuf; - EGLint num_configs; - EGLint pbuf_attribs[15]; - int i = 0; - - pbuf_attribs[i++] = EGL_WIDTH; - pbuf_attribs[i++] = width; - pbuf_attribs[i++] = EGL_HEIGHT; - pbuf_attribs[i++] = height; - pbuf_attribs[i++] = EGL_TEXTURE_FORMAT; - pbuf_attribs[i++] = EGL_TEXTURE_RGBA; - pbuf_attribs[i++] = EGL_TEXTURE_TARGET; - pbuf_attribs[i++] = EGL_TEXTURE_2D; - pbuf_attribs[i++] = EGL_MIPMAP_TEXTURE; - pbuf_attribs[i++] = EGL_FALSE; - pbuf_attribs[i++] = EGL_NONE; - assert(i <= 15); - - if (!eglChooseConfig( egl_dpy, config_attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL config for pbuffer\n"); - exit(1); - } - - pbuf = eglCreatePbufferSurface(egl_dpy, config, pbuf_attribs); - - return pbuf; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, - EGLContext egl_ctx) -{ - int anim = 0; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (event.xconfigure.window == win) { - WinWidth = event.xconfigure.width; - WinHeight = event.xconfigure.height; - } - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 'z') { - view_rotz += 5.0; - } - else if (buffer[0] == 'Z') { - view_rotz -= 5.0; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (anim) { - view_rotx += 1.0; - view_roty += 2.0; - redraw = 1; - } - - if (redraw) { - draw(egl_dpy, egl_surf, egl_pbuf, egl_ctx); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - Display *x_dpy; - Window win; - EGLSurface egl_surf, egl_pbuf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "render_tex", 0, 0, WinWidth, WinHeight, - &win, &egl_ctx, &egl_surf); - - egl_pbuf = make_pbuffer(x_dpy, egl_dpy, TexWidth, TexHeight); - if (!egl_pbuf) { - printf("Error: eglCreatePBufferSurface() failed\n"); - return -1; - } - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - - event_loop(x_dpy, win, egl_dpy, egl_surf, egl_pbuf, egl_ctx); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/torus.c b/progs/es1/xegl/torus.c deleted file mode 100644 index 9438a4fe59..0000000000 --- a/progs/es1/xegl/torus.c +++ /dev/null @@ -1,656 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * Draw a lit, textured torus with X/EGL and OpenGL ES 1.x - * Brian Paul - * July 2008 - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -static const struct { - GLenum internalFormat; - const char *name; - GLuint num_entries; - GLuint size; -} cpal_formats[] = { - { GL_PALETTE4_RGB8_OES, "GL_PALETTE4_RGB8_OES", 16, 3 }, - { GL_PALETTE4_RGBA8_OES, "GL_PALETTE4_RGBA8_OES", 16, 4 }, - { GL_PALETTE4_R5_G6_B5_OES, "GL_PALETTE4_R5_G6_B5_OES", 16, 2 }, - { GL_PALETTE4_RGBA4_OES, "GL_PALETTE4_RGBA4_OES", 16, 2 }, - { GL_PALETTE4_RGB5_A1_OES, "GL_PALETTE4_RGB5_A1_OES", 16, 2 }, - { GL_PALETTE8_RGB8_OES, "GL_PALETTE8_RGB8_OES", 256, 3 }, - { GL_PALETTE8_RGBA8_OES, "GL_PALETTE8_RGBA8_OES", 256, 4 }, - { GL_PALETTE8_R5_G6_B5_OES, "GL_PALETTE8_R5_G6_B5_OES", 256, 2 }, - { GL_PALETTE8_RGBA4_OES, "GL_PALETTE8_RGBA4_OES", 256, 2 }, - { GL_PALETTE8_RGB5_A1_OES, "GL_PALETTE8_RGB5_A1_OES", 256, 2 } -}; -#define NUM_CPAL_FORMATS (sizeof(cpal_formats) / sizeof(cpal_formats[0])) - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; -static GLint tex_format = NUM_CPAL_FORMATS; - - -static void -Normal(GLfloat *n, GLfloat nx, GLfloat ny, GLfloat nz) -{ - n[0] = nx; - n[1] = ny; - n[2] = nz; -} - -static void -Vertex(GLfloat *v, GLfloat vx, GLfloat vy, GLfloat vz) -{ - v[0] = vx; - v[1] = vy; - v[2] = vz; -} - -static void -Texcoord(GLfloat *v, GLfloat s, GLfloat t) -{ - v[0] = s; - v[1] = t; -} - - -/* Borrowed from glut, adapted */ -static void -draw_torus(GLfloat r, GLfloat R, GLint nsides, GLint rings) -{ - int i, j; - GLfloat theta, phi, theta1; - GLfloat cosTheta, sinTheta; - GLfloat cosTheta1, sinTheta1; - GLfloat ringDelta, sideDelta; - GLfloat varray[100][3], narray[100][3], tarray[100][2]; - int vcount; - - glVertexPointer(3, GL_FLOAT, 0, varray); - glNormalPointer(GL_FLOAT, 0, narray); - glTexCoordPointer(2, GL_FLOAT, 0, tarray); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - - ringDelta = 2.0 * M_PI / rings; - sideDelta = 2.0 * M_PI / nsides; - - theta = 0.0; - cosTheta = 1.0; - sinTheta = 0.0; - for (i = rings - 1; i >= 0; i--) { - theta1 = theta + ringDelta; - cosTheta1 = cos(theta1); - sinTheta1 = sin(theta1); - - vcount = 0; /* glBegin(GL_QUAD_STRIP); */ - - phi = 0.0; - for (j = nsides; j >= 0; j--) { - GLfloat s0, s1, t; - GLfloat cosPhi, sinPhi, dist; - - phi += sideDelta; - cosPhi = cos(phi); - sinPhi = sin(phi); - dist = R + r * cosPhi; - - s0 = 20.0 * theta / (2.0 * M_PI); - s1 = 20.0 * theta1 / (2.0 * M_PI); - t = 8.0 * phi / (2.0 * M_PI); - - Normal(narray[vcount], cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); - Texcoord(tarray[vcount], s1, t); - Vertex(varray[vcount], cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); - vcount++; - - Normal(narray[vcount], cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); - Texcoord(tarray[vcount], s0, t); - Vertex(varray[vcount], cosTheta * dist, -sinTheta * dist, r * sinPhi); - vcount++; - } - - /*glEnd();*/ - assert(vcount <= 100); - glDrawArrays(GL_TRIANGLE_STRIP, 0, vcount); - - theta = theta1; - cosTheta = cosTheta1; - sinTheta = sinTheta1; - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -} - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - glScalef(0.5, 0.5, 0.5); - - draw_torus(1.0, 3.0, 30, 60); - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); -} - - -static GLint -make_cpal_texture(GLint idx) -{ -#define SZ 64 - GLenum internalFormat = GL_PALETTE4_RGB8_OES + idx; - GLenum Filter = GL_LINEAR; - GLubyte palette[256 * 4 + SZ * SZ]; - GLubyte *indices; - GLsizei image_size; - GLuint i, j; - GLuint packed_indices = 0; - - assert(cpal_formats[idx].internalFormat == internalFormat); - - /* init palette */ - switch (internalFormat) { - case GL_PALETTE4_RGB8_OES: - case GL_PALETTE8_RGB8_OES: - /* first entry */ - palette[0] = 255; - palette[1] = 255; - palette[2] = 255; - /* second entry */ - palette[3] = 127; - palette[4] = 127; - palette[5] = 127; - break; - case GL_PALETTE4_RGBA8_OES: - case GL_PALETTE8_RGBA8_OES: - /* first entry */ - palette[0] = 255; - palette[1] = 255; - palette[2] = 255; - palette[3] = 255; - /* second entry */ - palette[4] = 127; - palette[5] = 127; - palette[6] = 127; - palette[7] = 255; - break; - case GL_PALETTE4_R5_G6_B5_OES: - case GL_PALETTE8_R5_G6_B5_OES: - { - GLushort *pal = (GLushort *) palette; - /* first entry */ - pal[0] = (31 << 11 | 63 << 5 | 31); - /* second entry */ - pal[1] = (15 << 11 | 31 << 5 | 15); - } - break; - case GL_PALETTE4_RGBA4_OES: - case GL_PALETTE8_RGBA4_OES: - { - GLushort *pal = (GLushort *) palette; - /* first entry */ - pal[0] = (15 << 12 | 15 << 8 | 15 << 4 | 15); - /* second entry */ - pal[1] = (7 << 12 | 7 << 8 | 7 << 4 | 15); - } - break; - case GL_PALETTE4_RGB5_A1_OES: - case GL_PALETTE8_RGB5_A1_OES: - { - GLushort *pal = (GLushort *) palette; - /* first entry */ - pal[0] = (31 << 11 | 31 << 6 | 31 << 1 | 1); - /* second entry */ - pal[1] = (15 << 11 | 15 << 6 | 15 << 1 | 1); - } - break; - } - - image_size = cpal_formats[idx].size * cpal_formats[idx].num_entries; - indices = palette + image_size; - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d; - GLint index; - d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); - d = sqrt(d); - index = (d < SZ / 3) ? 0 : 1; - - if (cpal_formats[idx].num_entries == 16) { - /* 4-bit indices packed in GLubyte */ - packed_indices |= index << (4 * (1 - (j % 2))); - if (j % 2) { - *(indices + (i * SZ + j - 1) / 2) = packed_indices & 0xff; - packed_indices = 0; - image_size += 1; - } - } - else { - /* 8-bit indices */ - *(indices + i * SZ + j) = index; - image_size += 1; - } - } - } - - glActiveTexture(GL_TEXTURE0); /* unit 0 */ - glBindTexture(GL_TEXTURE_2D, 42); - glCompressedTexImage2D(GL_TEXTURE_2D, 0, internalFormat, SZ, SZ, 0, - image_size, palette); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); -#undef SZ - - return image_size; -} - - -static GLint -make_texture(void) -{ -#define SZ 64 - GLenum Filter = GL_LINEAR; - GLubyte image[SZ][SZ][4]; - GLuint i, j; - - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d = (i - SZ/2) * (i - SZ/2) + (j - SZ/2) * (j - SZ/2); - d = sqrt(d); - if (d < SZ/3) { - image[i][j][0] = 255; - image[i][j][1] = 255; - image[i][j][2] = 255; - image[i][j][3] = 255; - } - else { - image[i][j][0] = 127; - image[i][j][1] = 127; - image[i][j][2] = 127; - image[i][j][3] = 255; - } - } - } - - glActiveTexture(GL_TEXTURE0); /* unit 0 */ - glBindTexture(GL_TEXTURE_2D, 42); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, - GL_RGBA, GL_UNSIGNED_BYTE, image); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); -#undef SZ - - return sizeof(image); -} - - - -static void -init(void) -{ - static const GLfloat red[4] = {1, 0, 0, 0}; - static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0}; - static const GLfloat diffuse[4] = {0.7, 0.7, 0.7, 1.0}; - static const GLfloat specular[4] = {0.001, 0.001, 0.001, 1.0}; - static const GLfloat pos[4] = {20, 20, 50, 1}; - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 9.0); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, specular); - - glClearColor(0.4, 0.4, 0.4, 0.0); - glEnable(GL_DEPTH_TEST); - - make_texture(); - glEnable(GL_TEXTURE_2D); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - int anim = 1; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else if (code == XK_t) { - GLint size; - tex_format = (tex_format + 1) % (NUM_CPAL_FORMATS + 1); - if (tex_format < NUM_CPAL_FORMATS) { - size = make_cpal_texture(tex_format); - printf("Using %s (%d bytes)\n", - cpal_formats[tex_format].name, size); - } - else { - size = make_texture(); - printf("Using uncompressed texture (%d bytes)\n", size); - } - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (anim) { - view_rotx += 1.0; - view_roty += 2.0; - redraw = 1; - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "torus", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/tri.c b/progs/es1/xegl/tri.c deleted file mode 100644 index 42a978207c..0000000000 --- a/progs/es1/xegl/tri.c +++ /dev/null @@ -1,470 +0,0 @@ -/* - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Draw a triangle with X/EGL and OpenGL ES 1.x - * Brian Paul - * 5 June 2008 - */ - -#define USE_FULL_GL 0 - -#define USE_FIXED_POINT 0 - - -#include -#include -#include -#include -#include -#include -#include -#include -#if USE_FULL_GL -#include /* use full OpenGL */ -#else -#include /* use OpenGL ES 1.x */ -#include -#endif -#include - - -#define FLOAT_TO_FIXED(X) ((X) * 65535.0) - - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - - -static void -draw(void) -{ -#if USE_FIXED_POINT - static const GLfixed verts[3][2] = { - { -65536, -65536 }, - { 65536, -65536 }, - { 0, 65536 } - }; - static const GLfixed colors[3][4] = { - { 65536, 0, 0, 65536 }, - { 0, 65536, 0 , 65536}, - { 0, 0, 65536 , 65536} - }; -#else - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 } - }; -#endif - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { -#if USE_FIXED_POINT - glVertexPointer(2, GL_FIXED, 0, verts); - glColorPointer(4, GL_FIXED, 0, colors); -#else - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); -#endif - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - /* draw triangle */ - glDrawArrays(GL_TRIANGLES, 0, 3); - - /* draw some points */ - glPointSizex(FLOAT_TO_FIXED(15.5)); - glDrawArrays(GL_POINTS, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - if (0) { - /* test code */ - GLfixed size; - glGetFixedv(GL_POINT_SIZE, &size); - printf("GL_POINT_SIZE = 0x%x %f\n", size, size / 65536.0); - } - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - - -static void -test_query_matrix(void) -{ - PFNGLQUERYMATRIXXOESPROC procQueryMatrixx; - typedef void (*voidproc)(); - GLfixed mantissa[16]; - GLint exponent[16]; - GLbitfield rv; - int i; - - procQueryMatrixx = (PFNGLQUERYMATRIXXOESPROC) eglGetProcAddress("glQueryMatrixxOES"); - assert(procQueryMatrixx); - /* Actually try out this one */ - rv = (*procQueryMatrixx)(mantissa, exponent); - for (i = 0; i < 16; i++) { - if (rv & (1< 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - -#if USE_FULL_GL - eglBindAPI(EGL_OPENGL_API); -#else - eglBindAPI(EGL_OPENGL_ES_API); -#endif - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - static struct { - char *name; - GLenum value; - enum {GetString, GetInteger} type; - } info_items[] = { - {"GL_RENDERER", GL_RENDERER, GetString}, - {"GL_VERSION", GL_VERSION, GetString}, - {"GL_VENDOR", GL_VENDOR, GetString}, - {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, - {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, - {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, - }; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "OpenGL ES 1.x tri", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { - switch (info_items[i].type) { - case GetString: - printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); - break; - case GetInteger: { - GLint rv = -1; - glGetIntegerv(info_items[i].value, &rv); - printf("%s = %d\n", info_items[i].name, rv); - break; - } - } - } - }; - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es1/xegl/two_win.c b/progs/es1/xegl/two_win.c deleted file mode 100644 index 4785e5304d..0000000000 --- a/progs/es1/xegl/two_win.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Test drawing to two windows. - * Brian Paul - * August 2008 - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -static int WinWidth[2] = {150, 300}, WinHeight[2] = {150, 300}; - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - - -static void -draw(int win) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 } - }; - - assert(win == 0 || win == 1); - - reshape(WinWidth[win], WinHeight[win]); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - /* draw triangle */ - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - - -static void -init(void) -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, x, y, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - -#if USE_FULL_GL - eglBindAPI(EGL_OPENGL_API); -#else - eglBindAPI(EGL_OPENGL_ES_API); -#endif - - if (ctxRet) { - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - *ctxRet = ctx; - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; -} - - -static void -event_loop(Display *dpy, Window win1, Window win2, - EGLDisplay egl_dpy, EGLSurface egl_surf1, EGLSurface egl_surf2, - EGLContext egl_ctx) -{ - while (1) { - int redraw = 0; - int win; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (event.xconfigure.window == win1) - win = 0; - else - win = 1; - WinWidth[win] = event.xconfigure.width; - WinHeight[win] = event.xconfigure.height; - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - /* win 1 */ - if (!eglMakeCurrent(egl_dpy, egl_surf1, egl_surf1, egl_ctx)) { - printf("Error: eglMakeCurrent(1) failed\n"); - return; - } - draw(0); - eglSwapBuffers(egl_dpy, egl_surf1); - - /* win 2 */ - if (!eglMakeCurrent(egl_dpy, egl_surf2, egl_surf2, egl_ctx)) { - printf("Error: eglMakeCurrent(2) failed\n"); - return; - } - draw(1); - eglSwapBuffers(egl_dpy, egl_surf2); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - Display *x_dpy; - Window win1, win2; - EGLSurface egl_surf1, egl_surf2; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - static struct { - char *name; - GLenum value; - enum {GetString, GetInteger} type; - } info_items[] = { - {"GL_RENDERER", GL_RENDERER, GetString}, - {"GL_VERSION", GL_VERSION, GetString}, - {"GL_VENDOR", GL_VENDOR, GetString}, - {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, - {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, - {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, - }; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "xegl_two_win #1", 0, 0, WinWidth[0], WinHeight[0], - &win1, &egl_ctx, &egl_surf1); - - make_x_window(x_dpy, egl_dpy, - "xegl_two_win #2", WinWidth[0] + 50, 0, - WinWidth[1], WinHeight[1], - &win2, NULL, &egl_surf2); - - XMapWindow(x_dpy, win1); - - XMapWindow(x_dpy, win2); - - if (!eglMakeCurrent(egl_dpy, egl_surf1, egl_surf1, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { - switch (info_items[i].type) { - case GetString: - printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); - break; - case GetInteger: { - GLint rv = -1; - glGetIntegerv(info_items[i].value, &rv); - printf("%s = %d\n", info_items[i].name, rv); - break; - } - } - } - }; - - init(); - - event_loop(x_dpy, win1, win2, egl_dpy, egl_surf1, egl_surf2, egl_ctx); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf1); - eglDestroySurface(egl_dpy, egl_surf2); - eglTerminate(egl_dpy); - - XDestroyWindow(x_dpy, win1); - XDestroyWindow(x_dpy, win2); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/es2/.gitignore b/progs/es2/.gitignore deleted file mode 100644 index 7d5c16936c..0000000000 --- a/progs/es2/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -xegl/es2_info.c -xegl/es2_info -xegl/tri diff --git a/progs/es2/xegl/Makefile b/progs/es2/xegl/Makefile deleted file mode 100644 index 5bb167c1c6..0000000000 --- a/progs/es2/xegl/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# progs/es2/xegl/Makefile - -TOP = ../../.. -include $(TOP)/configs/current - - -INCLUDE_DIRS = \ - -I$(TOP)/include \ - -HEADERS = $(TOP)/include/GLES/egl.h - - -ES2_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv2.so - - -ES2_LIBS = \ - -L$(TOP)/$(LIB_DIR) -lEGL \ - -L$(TOP)/$(LIB_DIR) -lGLESv2 $(LIBDRM_LIB) -lX11 - -PROGRAMS = \ - es2_info \ - tri - - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - - -default: $(PROGRAMS) - - - -es2_info.c: ../../es1/xegl/es1_info.c - cp -f $^ $@ - -es2_info: es2_info.o $(ES2_LIB_DEPS) - $(CC) $(CFLAGS) es2_info.o $(ES2_LIBS) -o $@ - -tri: tri.o $(ES2_LIB_DEPS) - $(CC) $(CFLAGS) tri.o $(ES2_LIBS) -o $@ - - - -clean: - rm -f *.o *~ - rm -f $(PROGRAMS) - rm -f es2_info.c - diff --git a/progs/es2/xegl/tri.c b/progs/es2/xegl/tri.c deleted file mode 100644 index 8981d8a7e2..0000000000 --- a/progs/es2/xegl/tri.c +++ /dev/null @@ -1,516 +0,0 @@ -/************************************************************************** - * - * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. - * All Rights Reserved. - * - **************************************************************************/ - -/* - * Draw a triangle with X/EGL and OpenGL ES 2.x - */ - -#define USE_FULL_GL 0 - - - -#include -#include -#include -#include -#include -#include -#include -#include -#if USE_FULL_GL -#include /* use full OpenGL */ -#else -#include /* use OpenGL ES 2.x */ -#endif -#include - - -#define FLOAT_TO_FIXED(X) ((X) * 65535.0) - - - -static GLfloat view_rotx = 0.0, view_roty = 0.0; - -static GLint u_matrix = -1; -static GLint attr_pos = 0, attr_color = 1; - - -static void -make_z_rot_matrix(GLfloat angle, GLfloat *m) -{ - float c = cos(angle * M_PI / 180.0); - float s = sin(angle * M_PI / 180.0); - int i; - for (i = 0; i < 16; i++) - m[i] = 0.0; - m[0] = m[5] = m[10] = m[15] = 1.0; - - m[0] = c; - m[1] = s; - m[4] = -s; - m[5] = c; -} - -static void -make_scale_matrix(GLfloat xs, GLfloat ys, GLfloat zs, GLfloat *m) -{ - int i; - for (i = 0; i < 16; i++) - m[i] = 0.0; - m[0] = xs; - m[5] = ys; - m[10] = zs; - m[15] = 1.0; -} - - -static void -mul_matrix(GLfloat *prod, const GLfloat *a, const GLfloat *b) -{ -#define A(row,col) a[(col<<2)+row] -#define B(row,col) b[(col<<2)+row] -#define P(row,col) p[(col<<2)+row] - GLfloat p[16]; - GLint i; - for (i = 0; i < 4; i++) { - const GLfloat ai0=A(i,0), ai1=A(i,1), ai2=A(i,2), ai3=A(i,3); - P(i,0) = ai0 * B(0,0) + ai1 * B(1,0) + ai2 * B(2,0) + ai3 * B(3,0); - P(i,1) = ai0 * B(0,1) + ai1 * B(1,1) + ai2 * B(2,1) + ai3 * B(3,1); - P(i,2) = ai0 * B(0,2) + ai1 * B(1,2) + ai2 * B(2,2) + ai3 * B(3,2); - P(i,3) = ai0 * B(0,3) + ai1 * B(1,3) + ai2 * B(2,3) + ai3 * B(3,3); - } - memcpy(prod, p, sizeof(p)); -#undef A -#undef B -#undef PROD -} - - -static void -draw(void) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][3] = { - { 1, 0, 0 }, - { 0, 1, 0 }, - { 0, 0, 1 } - }; - GLfloat mat[16], rot[16], scale[16]; - - /* Set modelview/projection matrix */ - make_z_rot_matrix(view_rotx, rot); - make_scale_matrix(0.5, 0.5, 0.5, scale); - mul_matrix(mat, rot, scale); - glUniformMatrix4fv(u_matrix, 1, GL_FALSE, mat); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - { - glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); - glVertexAttribPointer(attr_color, 3, GL_FLOAT, GL_FALSE, 0, colors); - glEnableVertexAttribArray(attr_pos); - glEnableVertexAttribArray(attr_color); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableVertexAttribArray(attr_pos); - glDisableVertexAttribArray(attr_color); - } -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - glViewport(0, 0, (GLint) width, (GLint) height); -} - - -static void -create_shaders(void) -{ - static const char *fragShaderText = - "varying vec4 v_color;\n" - "void main() {\n" - " gl_FragColor = v_color;\n" - "}\n"; - static const char *vertShaderText = - "uniform mat4 modelviewProjection;\n" - "attribute vec4 pos;\n" - "attribute vec4 color;\n" - "varying vec4 v_color;\n" - "void main() {\n" - " gl_Position = modelviewProjection * pos;\n" - " v_color = color;\n" - "}\n"; - - GLuint fragShader, vertShader, program; - GLint stat; - - fragShader = glCreateShader(GL_FRAGMENT_SHADER); - glShaderSource(fragShader, 1, (const char **) &fragShaderText, NULL); - glCompileShader(fragShader); - glGetShaderiv(fragShader, GL_COMPILE_STATUS, &stat); - if (!stat) { - printf("Error: fragment shader did not compile!\n"); - exit(1); - } - - vertShader = glCreateShader(GL_VERTEX_SHADER); - glShaderSource(vertShader, 1, (const char **) &vertShaderText, NULL); - glCompileShader(vertShader); - glGetShaderiv(vertShader, GL_COMPILE_STATUS, &stat); - if (!stat) { - printf("Error: vertex shader did not compile!\n"); - exit(1); - } - - program = glCreateProgram(); - glAttachShader(program, fragShader); - glAttachShader(program, vertShader); - glLinkProgram(program); - - glGetProgramiv(program, GL_LINK_STATUS, &stat); - if (!stat) { - char log[1000]; - GLsizei len; - glGetProgramInfoLog(program, 1000, &len, log); - printf("Error: linking:\n%s\n", log); - exit(1); - } - - glUseProgram(program); - - if (1) { - /* test setting attrib locations */ - glBindAttribLocation(program, attr_pos, "pos"); - glBindAttribLocation(program, attr_color, "color"); - glLinkProgram(program); /* needed to put attribs into effect */ - } - else { - /* test automatic attrib locations */ - attr_pos = glGetAttribLocation(program, "pos"); - attr_color = glGetAttribLocation(program, "color"); - } - - u_matrix = glGetUniformLocation(program, "modelviewProjection"); - printf("Uniform modelviewProjection at %d\n", u_matrix); - printf("Attrib pos at %d\n", attr_pos); - printf("Attrib color at %d\n", attr_color); -} - - -static void -init(void) -{ - typedef void (*proc)(); - -#if 1 /* test code */ - proc p = eglGetProcAddress("glMapBufferOES"); - assert(p); -#endif - - glClearColor(0.4, 0.4, 0.4, 0.0); - - create_shaders(); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_NONE - }; - static const EGLint ctx_attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 2, - EGL_NONE - }; - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - -#if USE_FULL_GL /* XXX fix this when eglBindAPI() works */ - eglBindAPI(EGL_OPENGL_API); -#else - eglBindAPI(EGL_OPENGL_ES_API); -#endif - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - /* test eglQueryContext() */ - { - EGLint val; - eglQueryContext(egl_dpy, ctx, EGL_CONTEXT_CLIENT_VERSION, &val); - assert(val == 2); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - /* sanity checks */ - { - EGLint val; - eglQuerySurface(egl_dpy, *surfRet, EGL_WIDTH, &val); - assert(val == width); - eglQuerySurface(egl_dpy, *surfRet, EGL_HEIGHT, &val); - assert(val == height); - assert(eglGetConfigAttrib(egl_dpy, config, EGL_SURFACE_TYPE, &val)); - assert(val & EGL_WINDOW_BIT); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - -int -main(int argc, char *argv[]) -{ - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "OpenGL ES 2.x tri", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} -- cgit v1.2.3 From fc3ddd4b566380e7684c780450016e3e191a4160 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 14:20:24 +0800 Subject: progs/openvg: Move OpenVG demos to a subdirectory of progs/egl. That is, move progs/openvg/demos to progs/egl/openvg, progs/openvg/trivial to progs/egl/openvg/trivial. --- progs/egl/openvg/.gitignore | 24 + progs/egl/openvg/Makefile | 39 + progs/egl/openvg/eglcommon.c | 289 ++++++ progs/egl/openvg/eglcommon.h | 20 + progs/egl/openvg/lion-render.c | 1573 +++++++++++++++++++++++++++++++ progs/egl/openvg/lion-render.h | 16 + progs/egl/openvg/lion.c | 289 ++++++ progs/egl/openvg/sp.c | 537 +++++++++++ progs/egl/openvg/trivial/Makefile | 128 +++ progs/egl/openvg/trivial/arc.c | 139 +++ progs/egl/openvg/trivial/cap.c | 75 ++ progs/egl/openvg/trivial/clear.c | 42 + progs/egl/openvg/trivial/coord.c | 66 ++ progs/egl/openvg/trivial/dash.c | 95 ++ progs/egl/openvg/trivial/eglcommon.c | 289 ++++++ progs/egl/openvg/trivial/eglcommon.h | 20 + progs/egl/openvg/trivial/ellipse.c | 84 ++ progs/egl/openvg/trivial/filter.c | 107 +++ progs/egl/openvg/trivial/gradorigin.c | 98 ++ progs/egl/openvg/trivial/lineto.c | 56 ++ progs/egl/openvg/trivial/lingrad.c | 87 ++ progs/egl/openvg/trivial/lookup.c | 71 ++ progs/egl/openvg/trivial/mask.c | 58 ++ progs/egl/openvg/trivial/mask4.c | 132 +++ progs/egl/openvg/trivial/path3.c | 77 ++ progs/egl/openvg/trivial/radialgrad.c | 99 ++ progs/egl/openvg/trivial/readpixels.c | 75 ++ progs/egl/openvg/trivial/roundedrect.c | 67 ++ progs/egl/openvg/trivial/star-nonzero.c | 55 ++ progs/egl/openvg/trivial/star-oddeven.c | 102 ++ progs/egl/openvg/trivial/stroke.c | 116 +++ progs/egl/openvg/trivial/stroke2.c | 207 ++++ progs/egl/openvg/trivial/vguarc.c | 74 ++ progs/openvg/.gitignore | 24 - progs/openvg/demos/Makefile | 39 - progs/openvg/demos/eglcommon.c | 289 ------ progs/openvg/demos/eglcommon.h | 20 - progs/openvg/demos/lion-render.c | 1573 ------------------------------- progs/openvg/demos/lion-render.h | 16 - progs/openvg/demos/lion.c | 289 ------ progs/openvg/demos/sp.c | 537 ----------- progs/openvg/trivial/Makefile | 127 --- progs/openvg/trivial/arc.c | 139 --- progs/openvg/trivial/cap.c | 75 -- progs/openvg/trivial/clear.c | 42 - progs/openvg/trivial/coord.c | 66 -- progs/openvg/trivial/dash.c | 95 -- progs/openvg/trivial/eglcommon.c | 289 ------ progs/openvg/trivial/eglcommon.h | 20 - progs/openvg/trivial/ellipse.c | 84 -- progs/openvg/trivial/filter.c | 107 --- progs/openvg/trivial/gradorigin.c | 98 -- progs/openvg/trivial/lineto.c | 56 -- progs/openvg/trivial/lingrad.c | 87 -- progs/openvg/trivial/lookup.c | 71 -- progs/openvg/trivial/mask.c | 58 -- progs/openvg/trivial/mask4.c | 132 --- progs/openvg/trivial/path3.c | 77 -- progs/openvg/trivial/radialgrad.c | 99 -- progs/openvg/trivial/readpixels.c | 75 -- progs/openvg/trivial/roundedrect.c | 67 -- progs/openvg/trivial/star-nonzero.c | 55 -- progs/openvg/trivial/star-oddeven.c | 102 -- progs/openvg/trivial/stroke.c | 116 --- progs/openvg/trivial/stroke2.c | 207 ---- progs/openvg/trivial/vguarc.c | 74 -- 66 files changed, 5206 insertions(+), 5205 deletions(-) create mode 100644 progs/egl/openvg/.gitignore create mode 100644 progs/egl/openvg/Makefile create mode 100644 progs/egl/openvg/eglcommon.c create mode 100644 progs/egl/openvg/eglcommon.h create mode 100644 progs/egl/openvg/lion-render.c create mode 100644 progs/egl/openvg/lion-render.h create mode 100644 progs/egl/openvg/lion.c create mode 100644 progs/egl/openvg/sp.c create mode 100644 progs/egl/openvg/trivial/Makefile create mode 100644 progs/egl/openvg/trivial/arc.c create mode 100644 progs/egl/openvg/trivial/cap.c create mode 100644 progs/egl/openvg/trivial/clear.c create mode 100644 progs/egl/openvg/trivial/coord.c create mode 100644 progs/egl/openvg/trivial/dash.c create mode 100644 progs/egl/openvg/trivial/eglcommon.c create mode 100644 progs/egl/openvg/trivial/eglcommon.h create mode 100644 progs/egl/openvg/trivial/ellipse.c create mode 100644 progs/egl/openvg/trivial/filter.c create mode 100644 progs/egl/openvg/trivial/gradorigin.c create mode 100644 progs/egl/openvg/trivial/lineto.c create mode 100644 progs/egl/openvg/trivial/lingrad.c create mode 100644 progs/egl/openvg/trivial/lookup.c create mode 100644 progs/egl/openvg/trivial/mask.c create mode 100644 progs/egl/openvg/trivial/mask4.c create mode 100644 progs/egl/openvg/trivial/path3.c create mode 100644 progs/egl/openvg/trivial/radialgrad.c create mode 100644 progs/egl/openvg/trivial/readpixels.c create mode 100644 progs/egl/openvg/trivial/roundedrect.c create mode 100644 progs/egl/openvg/trivial/star-nonzero.c create mode 100644 progs/egl/openvg/trivial/star-oddeven.c create mode 100644 progs/egl/openvg/trivial/stroke.c create mode 100644 progs/egl/openvg/trivial/stroke2.c create mode 100644 progs/egl/openvg/trivial/vguarc.c delete mode 100644 progs/openvg/.gitignore delete mode 100644 progs/openvg/demos/Makefile delete mode 100644 progs/openvg/demos/eglcommon.c delete mode 100644 progs/openvg/demos/eglcommon.h delete mode 100644 progs/openvg/demos/lion-render.c delete mode 100644 progs/openvg/demos/lion-render.h delete mode 100644 progs/openvg/demos/lion.c delete mode 100644 progs/openvg/demos/sp.c delete mode 100644 progs/openvg/trivial/Makefile delete mode 100644 progs/openvg/trivial/arc.c delete mode 100644 progs/openvg/trivial/cap.c delete mode 100644 progs/openvg/trivial/clear.c delete mode 100644 progs/openvg/trivial/coord.c delete mode 100644 progs/openvg/trivial/dash.c delete mode 100644 progs/openvg/trivial/eglcommon.c delete mode 100644 progs/openvg/trivial/eglcommon.h delete mode 100644 progs/openvg/trivial/ellipse.c delete mode 100644 progs/openvg/trivial/filter.c delete mode 100644 progs/openvg/trivial/gradorigin.c delete mode 100644 progs/openvg/trivial/lineto.c delete mode 100644 progs/openvg/trivial/lingrad.c delete mode 100644 progs/openvg/trivial/lookup.c delete mode 100644 progs/openvg/trivial/mask.c delete mode 100644 progs/openvg/trivial/mask4.c delete mode 100644 progs/openvg/trivial/path3.c delete mode 100644 progs/openvg/trivial/radialgrad.c delete mode 100644 progs/openvg/trivial/readpixels.c delete mode 100644 progs/openvg/trivial/roundedrect.c delete mode 100644 progs/openvg/trivial/star-nonzero.c delete mode 100644 progs/openvg/trivial/star-oddeven.c delete mode 100644 progs/openvg/trivial/stroke.c delete mode 100644 progs/openvg/trivial/stroke2.c delete mode 100644 progs/openvg/trivial/vguarc.c diff --git a/progs/egl/openvg/.gitignore b/progs/egl/openvg/.gitignore new file mode 100644 index 0000000000..9b05e1e81d --- /dev/null +++ b/progs/egl/openvg/.gitignore @@ -0,0 +1,24 @@ +demos/lion +demos/sp +trivial/arc +trivial/cap +trivial/clear +trivial/coord +trivial/dash +trivial/ellipse +trivial/filter +trivial/gradorigin +trivial/lineto +trivial/lingrad +trivial/lookup +trivial/mask4 +trivial/mask +trivial/path3 +trivial/radialgrad +trivial/readpixels +trivial/roundedrect +trivial/star-nonzero +trivial/star-oddeven +trivial/stroke2 +trivial/stroke +trivial/vguarc diff --git a/progs/egl/openvg/Makefile b/progs/egl/openvg/Makefile new file mode 100644 index 0000000000..8a4c4d81a4 --- /dev/null +++ b/progs/egl/openvg/Makefile @@ -0,0 +1,39 @@ +# progs/egl/openvg/Makefile + +TOP = ../../.. +include $(TOP)/configs/current + +VG_LIBS=-lm -pthread -lX11 -lEGL -lOpenVG +INCLUDE_DIRS = -I$(TOP)/include + +PROGRAMS = \ + lion \ + sp + +.c.o: + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + + + +default: $(PROGRAMS) + +lion: lion.o lion-render.o + $(CC) $(CFLAGS) lion.o lion-render.o -L$(TOP)/$(LIB_DIR) $(VG_LIBS) -o $@ + +lion.o: lion.c lion-render.h $(HEADERS) + $(CC) -c $(CFLAGS) -I$(TOP)/include lion.c +lion-render.o: lion-render.c lion-render.h $(HEADERS) + $(CC) -c $(CFLAGS) -I$(TOP)/include lion-render.c + + +sp: sp.c eglcommon.o + $(CC) $(INCLUDE_DIRS) $(CFLAGS) $^ -L$(TOP)/$(LIB_DIR) $(LIBS) $(VG_LIBS) $(APP_LIB_DEPS) -o $@ + +eglcommon.o: eglcommon.c $(HEADERS) + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) eglcommon.c + + +clean: + rm -f *.o *~ + rm -f *.so + rm -f $(PROGRAMS) diff --git a/progs/egl/openvg/eglcommon.c b/progs/egl/openvg/eglcommon.c new file mode 100644 index 0000000000..0316e596c6 --- /dev/null +++ b/progs/egl/openvg/eglcommon.c @@ -0,0 +1,289 @@ +#include "eglcommon.h" + + +#include +#include +#include +#include +#include +#include +#include +#include +#include /* using full OpenGL for now */ +#include + + +static init_func init = 0; +static draw_func draw = 0; +static reshape_func reshape = 0; +static key_func keyPress = 0; +static VGint width = 300, height = 300; + + +void set_window_size(int w, int h) +{ + width = w; + height = h; +} + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENVG_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + if (reshape) { + width = event.xconfigure.width; + height = event.xconfigure.height; + reshape(event.xconfigure.width, event.xconfigure.height); + } + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (!keyPress || !keyPress(code)) { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + +int window_width(void) +{ + return width; +} + +int window_height(void) +{ + return height; +} + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + +int run(int argc, char **argv, + init_func init_f, + reshape_func resh_f, + draw_func draw_f, + key_func key_f) +{ + const int winWidth = width, winHeight = height; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + init = init_f; + draw = draw_f; + reshape = resh_f; + keyPress = key_f; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "OpenVG Example", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); + printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); + printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); + } + + if (init) + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + if (reshape) + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglMakeCurrent(egl_dpy, 0, 0, 0); + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} + diff --git a/progs/egl/openvg/eglcommon.h b/progs/egl/openvg/eglcommon.h new file mode 100644 index 0000000000..958dae9f98 --- /dev/null +++ b/progs/egl/openvg/eglcommon.h @@ -0,0 +1,20 @@ +#ifndef EGLCOMMON_H +#define EGLCOMMON_H + +typedef void (*init_func)(); +typedef void (*reshape_func)(int, int); +typedef void (*draw_func)(); +typedef int (*key_func)(unsigned key); + + +void set_window_size(int width, int height); +int window_width(void); +int window_height(void); + +int run(int argc, char **argv, + init_func init, + reshape_func resh, + draw_func draw, + key_func key); + +#endif diff --git a/progs/egl/openvg/lion-render.c b/progs/egl/openvg/lion-render.c new file mode 100644 index 0000000000..f3f151f552 --- /dev/null +++ b/progs/egl/openvg/lion-render.c @@ -0,0 +1,1573 @@ +#include "lion-render.h" + +#include +#include + +#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) + +static void init(struct lion *l, int i, VGint hexColor, const VGfloat *coords, int elems) +{ + static VGubyte cmds[128]; + VGfloat color[4]; + VGint j; + + color[0] = ((hexColor >> 16) & 0xff) / 255.f; + color[1] = ((hexColor >> 8) & 0xff) / 255.f; + color[2] = ((hexColor >> 0) & 0xff) / 255.f; + color[3] = 1.0; + + l->paths[i] = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, + 0, 0, (unsigned int)VG_PATH_CAPABILITY_ALL); + l->fills[i] = vgCreatePaint(); + vgSetParameterfv(l->fills[i], VG_PAINT_COLOR, 4, color); + + cmds[0] = VG_MOVE_TO_ABS; + for (j = 1; j < elems; ++j) { + cmds[j] = VG_LINE_TO_ABS; + } + + vgAppendPathData(l->paths[i], elems, cmds, coords); +} + +static void poly0(struct lion *l) +{ + VGfloat color = 0xf2cc99; + static const VGfloat coords[] = {69,18, 82,8, 99,3, 118,5, 135,12, 149,21, 156,13, 165,9, 177,13, 183,28, + 180,50, 164,91, 155,107, 154,114, 151,121, 141,127, 139,136, 155,206, 157,251, 126,342, + 133,357, 128,376, 83,376, 75,368, 67,350, 61,350, 53,369, 4,369, 2,361, 5,354, + 12,342, 16,321, 4,257, 4,244, 7,218, 9,179, 26,127, 43,93, 32,77, 30,70, + 24,67, 16,49, 17,35, 18,23, 30,12, 40,7, 53,7, 62,12 + }; + + init(l, 0, color, coords, ELEMENTS(coords)/2); +} + +static void poly1(struct lion *l) +{ + VGfloat color = 0xe5b27f; + static const VGfloat coords[] = {142,79, 136,74, 138,82, 133,78, 133,84, 127,78, 128,85, + 124,80, 125,87, 119,82, 119,90, 125,99, 125,96, 128,100, 128,94, + 131,98, 132,93, 135,97, 136,93, 138,97, 139,94, 141,98, 143,94, + 144,85 + }; + + init(l, 1, color, coords, ELEMENTS(coords)/2); +} + +static void poly2(struct lion *l) +{ + VGfloat color = 0xeb8080; + static const VGfloat coords[] = {127,101, 132,100, 137,99, 144,101, 143,105, 135,110 + }; + + init(l, 2, color, coords, ELEMENTS(coords)/2); +} + +static void poly3(struct lion *l) +{ + VGfloat color = 0xf2cc99; + static const VGfloat coords[] = {178,229, 157,248, 139,296, 126,349, 137,356, + 158,357, 183,342, 212,332, 235,288, 235,261, + 228,252, 212,250, 188,251 + }; + + init(l, 3, color, coords, ELEMENTS(coords)/2); +} + +static void poly4(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {56,229, 48,241, 48,250, 57,281, 63,325, 71,338, + 81,315, 76,321, 79,311, 83,301, 75,308, 80,298, + 73,303, 76,296, 71,298, 74,292, 69,293, 74,284, + 78,278, 71,278, 74,274, 68,273, 70,268, 66,267, + 68,261, 60,266, 62,259, 65,253, 57,258, 59,251, + 55,254, 55,248, 60,237, 54,240, 58,234, 54,236 + }; + + init(l, 4, color, coords, ELEMENTS(coords)/2); +} + +static void poly5(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {74,363, 79,368, 81,368, 85,362, 89,363, 92,370, 96,373, + 101,372, 108,361, 110,371, 113,373, 116,371, 120,358, 122,363, + 123,371, 126,371, 129,367, 132,357, 135,361, 130,376, 127,377, + 94,378, 84,376, 76,371 + }; + + init(l, 5, color, coords, ELEMENTS(coords)/2); +} + +static void poly6(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {212,250, 219,251, 228,258, 236,270, 235,287, 225,304, + 205,332, 177,343, 171,352, 158,357, 166,352, 168,346, + 168,339, 165,333, 155,327, 155,323, 161,320, 165,316, + 169,316, 167,312, 171,313, 168,308, 173,309, 170,306, + 177,306, 175,308, 177,311, 174,311, 176,316, 171,315, + 174,319, 168,320, 168,323, 175,327, 179,332, 183,326, + 184,332, 189,323, 190,328, 194,320, 194,325, 199,316, + 201,320, 204,313, 206,316, 208,310, 211,305, 219,298, + 226,288, 229,279, 228,266, 224,259, 217,253 + }; + + init(l, 6, color, coords, ELEMENTS(coords)/2); +} + +static void poly7(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {151,205, 151,238, 149,252, 141,268, 128,282, 121,301, + 130,300, 126,313, 118,324, 116,337, 120,346, 133,352, + 133,340, 137,333, 145,329, 156,327, 153,319, 153,291, + 157,271, 170,259, 178,277, 193,250, 174,216 + }; + + init(l, 7, color, coords, ELEMENTS(coords)/2); +} + +static void poly8(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {78,127, 90,142, 95,155, 108,164, 125,167, 139,175, + 150,206, 152,191, 141,140, 121,148, 100,136 + }; + + init(l, 8, color, coords, ELEMENTS(coords)/2); +} + +static void poly9(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {21,58, 35,63, 38,68, 32,69, 42,74, 40,79, 47,80, 54,83, + 45,94, 34,81, 32,73, 24,66 + }; + + init(l, 9, color, coords, ELEMENTS(coords)/2); +} + +static void poly10(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {71,34, 67,34, 66,27, 59,24, 54,17, 48,17, 39,22, + 30,26, 28,31, 31,39, 38,46, 29,45, 36,54, 41,61, + 41,70, 50,69, 54,71, 55,58, 67,52, 76,43, 76,39, + 68,44 + }; + + init(l, 10, color, coords, ELEMENTS(coords)/2); +} + +static void poly11(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {139,74, 141,83, 143,89, 144,104, 148,104, 155,106, + 154,86, 157,77, 155,72, 150,77, 144,77 + }; + + init(l, 11, color, coords, ELEMENTS(coords)/2); +} + +static void poly12(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {105,44, 102,53, 108,58, 111,62, 112,55 + }; + + init(l, 12, color, coords, ELEMENTS(coords)/2); +} + +static void poly13(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {141,48, 141,54, 144,58, 139,62, 137,66, 136,59, 137,52 + }; + + init(l, 13, color, coords, ELEMENTS(coords)/2); +} + +static void poly14(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {98,135, 104,130, 105,134, 108,132, 108,135, 112,134, + 113,137, 116,136, 116,139, 119,139, 124,141, 128,140, + 133,138, 140,133, 139,140, 126,146, 104,144 + }; + + init(l, 14, color, coords, ELEMENTS(coords)/2); +} + +static void poly15(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {97,116, 103,119, 103,116, 111,118, 116,117, 122,114, + 127,107, 135,111, 142,107, 141,114, 145,118, 149,121, + 145,125, 140,124, 127,121, 113,125, 100,124 + }; + + init(l, 15, color, coords, ELEMENTS(coords)/2); +} + +static void poly16(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {147,33, 152,35, 157,34, 153,31, 160,31, 156,28, 161,28, + 159,24, 163,25, 163,21, 165,22, 170,23, 167,17, 172,21, + 174,18, 175,23, 176,22, 177,28, 177,33, 174,37, 176,39, + 174,44, 171,49, 168,53, 164,57, 159,68, 156,70, 154,60, + 150,51, 146,43, 144,35 + }; + + init(l, 16, color, coords, ELEMENTS(coords)/2); +} + +static void poly17(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {85,72, 89,74, 93,75, 100,76, 105,75, 102,79, 94,79, 88,76 + }; + + init(l, 17, color, coords, ELEMENTS(coords)/2); +} + +static void poly18(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {86,214, 79,221, 76,232, 82,225, 78,239, 82,234, 78,245, + 81,243, 79,255, 84,250, 84,267, 87,254, 90,271, 90,257, + 95,271, 93,256, 95,249, 92,252, 93,243, 89,253, 89,241, + 86,250, 87,236, 83,245, 87,231, 82,231, 90,219, 84,221 + }; + + init(l, 18, color, coords, ELEMENTS(coords)/2); +} + +static void poly19(struct lion *l) +{ + VGfloat color = 0xffcc7f; + static const VGfloat coords[] = {93,68, 96,72, 100,73, 106,72, 108,66, 105,63, 100,62 + }; + + init(l, 19, color, coords, ELEMENTS(coords)/2); +} + +static void poly20(struct lion *l) +{ + VGfloat color = 0xffcc7f; + static const VGfloat coords[] = {144,64, 142,68, 142,73, 146,74, 150,73, 154,64, 149,62 + }; + + init(l, 20, color, coords, ELEMENTS(coords)/2); +} + +static void poly21(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {57,91, 42,111, 52,105, 41,117, 53,112, 46,120, 53,116, + 50,124, 57,119, 55,127, 61,122, 60,130, 67,126, 66,134, + 71,129, 72,136, 77,130, 76,137, 80,133, 82,138, 86,135, + 96,135, 94,129, 86,124, 83,117, 77,123, 79,117, 73,120, + 75,112, 68,116, 71,111, 65,114, 69,107, 63,110, 68,102, + 61,107, 66,98, 61,103, 63,97, 57,99 + }; + + init(l, 21, color, coords, ELEMENTS(coords)/2); +} + +static void poly22(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {83,79, 76,79, 67,82, 75,83, 65,88, 76,87, 65,92, 76,91, + 68,96, 77,95, 70,99, 80,98, 72,104, 80,102, 76,108, 85,103, + 92,101, 87,98, 93,96, 86,94, 91,93, 85,91, 93,89, 99,89, 105,93, + 107,85, 102,82, 92,80 + }; + + init(l, 22, color, coords, ELEMENTS(coords)/2); +} + +static void poly23(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {109,77, 111,83, 109,89, 113,94, 117,90, 117,81, 114,78 + }; + + init(l, 23, color, coords, ELEMENTS(coords)/2); +} + +static void poly24(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {122,128, 127,126, 134,127, 136,129, 134,130, 130,128, 124,129 + }; + + init(l, 24, color, coords, ELEMENTS(coords)/2); +} + +static void poly25(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {78,27, 82,32, 80,33, 82,36, 78,37, 82,40, 78,42, 81,46, 76,47, + 78,49, 74,50, 82,52, 87,50, 83,48, 91,46, 86,45, 91,42, 88,40, + 92,37, 86,34, 90,31, 86,29, 89,26 + }; + + init(l, 25, color, coords, ELEMENTS(coords)/2); +} + +static void poly26(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {82,17, 92,20, 79,21, 90,25, 81,25, 94,28, 93,26, 101,30, + 101,26, 107,33, 108,28, 111,40, 113,34, 115,45, 117,39, + 119,54, 121,46, 124,58, 126,47, 129,59, 130,49, 134,58, + 133,44, 137,48, 133,37, 137,40, 133,32, 126,20, 135,26, + 132,19, 138,23, 135,17, 142,18, 132,11, 116,6, 94,6, 78,11, + 92,12, 80,14, 90,16 + }; + + init(l, 26, color, coords, ELEMENTS(coords)/2); +} + +static void poly27(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {142,234, 132,227, 124,223, 115,220, 110,225, 118,224, 127,229, + 135,236, 122,234, 115,237, 113,242, 121,238, 139,243, 121,245, + 111,254, 95,254, 102,244, 104,235, 110,229, 100,231, 104,224, + 113,216, 122,215, 132,217, 141,224, 145,230, 149,240 + }; + + init(l, 27, color, coords, ELEMENTS(coords)/2); +} + +static void poly28(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {115,252, 125,248, 137,249, 143,258, 134,255, 125,254 + }; + + init(l, 28, color, coords, ELEMENTS(coords)/2); +} + +static void poly29(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {114,212, 130,213, 140,219, 147,225, 144,214, 137,209, 128,207 + }; + + init(l, 29, color, coords, ELEMENTS(coords)/2); +} + +static void poly30(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {102,263, 108,258, 117,257, 131,258, 116,260, 109,265 + }; + + init(l, 30, color, coords, ELEMENTS(coords)/2); +} + +static void poly31(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {51,241, 35,224, 40,238, 23,224, 31,242, 19,239, 28,247, 17,246, + 25,250, 37,254, 39,263, 44,271, 47,294, 48,317, 51,328, 60,351, + 60,323, 53,262, 47,246 + }; + + init(l, 31, color, coords, ELEMENTS(coords)/2); +} + +static void poly32(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {2,364, 9,367, 14,366, 18,355, 20,364, 26,366, 31,357, 35,364, + 39,364, 42,357, 47,363, 53,360, 59,357, 54,369, 7,373 + }; + + init(l, 32, color, coords, ELEMENTS(coords)/2); +} + +static void poly33(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {7,349, 19,345, 25,339, 18,341, 23,333, 28,326, 23,326, 27,320, + 23,316, 25,311, 20,298, 15,277, 12,264, 9,249, 10,223, 3,248, + 5,261, 15,307, 17,326, 11,343 + }; + + init(l, 33, color, coords, ELEMENTS(coords)/2); +} + +static void poly34(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {11,226, 15,231, 25,236, 18,227 + }; + + init(l, 34, color, coords, ELEMENTS(coords)/2); +} + +static void poly35(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {13,214, 19,217, 32,227, 23,214, 16,208, 15,190, 24,148, + 31,121, 24,137, 14,170, 8,189 + }; + + init(l, 35, color, coords, ELEMENTS(coords)/2); +} + +static void poly36(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {202,254, 195,258, 199,260, 193,263, 197,263, 190,268, + 196,268, 191,273, 188,282, 200,272, 194,272, 201,266, + 197,265, 204,262, 200,258, 204,256 + }; + + init(l, 36, color, coords, ELEMENTS(coords)/2); +} + +static void poly37(struct lion *l) +{ + VGfloat color = 0x845433; + static const VGfloat coords[] = {151,213, 165,212, 179,225, 189,246, 187,262, 179,275, + 176,263, 177,247, 171,233, 163,230, 165,251, 157,264, + 146,298, 145,321, 133,326, 143,285, 154,260, 153,240 + }; + + init(l, 37, color, coords, ELEMENTS(coords)/2); +} + +static void poly38(struct lion *l) +{ + VGfloat color = 0x845433; + static const VGfloat coords[] = {91,132, 95,145, 97,154, 104,148, 107,155, 109,150, 111,158, + 115,152, 118,159, 120,153, 125,161, 126,155, 133,164, 132,154, + 137,163, 137,152, 142,163, 147,186, 152,192, 148,167, 141,143, + 124,145, 105,143 + }; + + init(l, 38, color, coords, ELEMENTS(coords)/2); +} + +static void poly39(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {31,57, 23,52, 26,51, 20,44, 23,42, 21,36, 22,29, 25,23, + 24,32, 30,43, 26,41, 30,50, 26,48 + }; + + init(l, 39, color, coords, ELEMENTS(coords)/2); +} + +static void poly40(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {147,21, 149,28, 155,21, 161,16, 167,14, 175,15, 173,11, 161,9 + }; + + init(l, 40, color, coords, ELEMENTS(coords)/2); +} + +static void poly41(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {181,39, 175,51, 169,57, 171,65, 165,68, 165,75, 160,76, + 162,91, 171,71, 180,51 + }; + + init(l, 41, color, coords, ELEMENTS(coords)/2); +} + +static void poly42(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {132,346, 139,348, 141,346, 142,341, 147,342, 143,355, 133,350 + }; + + init(l, 42, color, coords, ELEMENTS(coords)/2); +} + +static void poly43(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {146,355, 151,352, 155,348, 157,343, 160,349, 151,356, 147,357 + }; + + init(l, 43, color, coords, ELEMENTS(coords)/2); +} + +static void poly44(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {99,266, 100,281, 94,305, 86,322, 78,332, 72,346, 73,331, 91,291 + }; + + init(l, 44, color, coords, ELEMENTS(coords)/2); +} + +static void poly45(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {20,347, 32,342, 45,340, 54,345, 45,350, 42,353, 38,350, + 31,353, 29,356, 23,350, 19,353, 15,349 + }; + + init(l, 45, color, coords, ELEMENTS(coords)/2); +} + +static void poly46(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {78,344, 86,344, 92,349, 88,358, 84,352 + }; + + init(l, 46, color, coords, ELEMENTS(coords)/2); +} + +static void poly47(struct lion *l) +{ + VGfloat color = 0x9c826b; + static const VGfloat coords[] = {93,347, 104,344, 117,345, 124,354, 121,357, 116,351, + 112,351, 108,355, 102,351 + }; + + init(l, 47, color, coords, ELEMENTS(coords)/2); +} + +static void poly48(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {105,12, 111,18, 113,24, 113,29, 119,34, 116,23, 112,16 + }; + + init(l, 48, color, coords, ELEMENTS(coords)/2); +} + +static void poly49(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {122,27, 125,34, 127,43, 128,34, 125,29 + }; + + init(l, 49, color, coords, ELEMENTS(coords)/2); +} + +static void poly50(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {115,13, 122,19, 122,15, 113,10 + }; + + init(l, 50, color, coords, ELEMENTS(coords)/2); +} + +static void poly51(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {116,172, 107,182, 98,193, 98,183, 90,199, 89,189, 84,207, + 88,206, 87,215, 95,206, 93,219, 91,230, 98,216, 97,226, + 104,214, 112,209, 104,208, 113,202, 126,200, 139,207, 132,198, + 142,203, 134,192, 142,195, 134,187, 140,185, 130,181, 136,177, + 126,177, 125,171, 116,180 + }; + + init(l, 51, color, coords, ELEMENTS(coords)/2); +} + +static void poly52(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {74,220, 67,230, 67,221, 59,235, 63,233, 60,248, 70,232, 65,249, + 71,243, 67,256, 73,250, 69,262, 73,259, 71,267, 76,262, 72,271, + 78,270, 76,275, 82,274, 78,290, 86,279, 86,289, 92,274, 88,275, + 87,264, 82,270, 82,258, 77,257, 78,247, 73,246, 77,233, 72,236 + }; + + init(l, 52, color, coords, ELEMENTS(coords)/2); +} + +static void poly53(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {133,230, 147,242, 148,250, 145,254, 138,247, 129,246, 142,245, + 138,241, 128,237, 137,238 + }; + + init(l, 53, color, coords, ELEMENTS(coords)/2); +} + +static void poly54(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {133,261, 125,261, 116,263, 111,267, 125,265 + }; + + init(l, 54, color, coords, ELEMENTS(coords)/2); +} + +static void poly55(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {121,271, 109,273, 103,279, 99,305, 92,316, 85,327, 83,335, + 89,340, 97,341, 94,336, 101,336, 96,331, 103,330, 97,327, 108,325, + 99,322, 109,321, 100,318, 110,317, 105,314, 110,312, 107,310, 113,308, + 105,306, 114,303, 105,301, 115,298, 107,295, 115,294, 108,293, 117,291, + 109,289, 117,286, 109,286, 118,283, 112,281, 118,279, 114,278, + 119,276, 115,274 + }; + + init(l, 55, color, coords, ELEMENTS(coords)/2); +} + +static void poly56(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {79,364, 74,359, 74,353, 76,347, 80,351, 83,356, 82,360 + }; + + init(l, 56, color, coords, ELEMENTS(coords)/2); +} + +static void poly57(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {91,363, 93,356, 97,353, 103,355, 105,360, 103,366, 99,371, 94,368 + }; + + init(l, 57, color, coords, ELEMENTS(coords)/2); +} + +static void poly58(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {110,355, 114,353, 118,357, 117,363, 113,369, 111,362 + }; + + init(l, 58, color, coords, ELEMENTS(coords)/2); +} + +static void poly59(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {126,354, 123,358, 124,367, 126,369, 129,361, 129,357 + }; + + init(l, 59, color, coords, ELEMENTS(coords)/2); +} + +static void poly60(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {30,154, 24,166, 20,182, 23,194, 29,208, 37,218, 41,210, 41,223, + 46,214, 46,227, 52,216, 52,227, 61,216, 59,225, 68,213, 73,219, + 70,207, 77,212, 69,200, 77,202, 70,194, 78,197, 68,187, 76,182, + 64,182, 58,175, 58,185, 53,177, 50,186, 46,171, 44,182, 39,167, + 36,172, 36,162, 30,166 + }; + + init(l, 60, color, coords, ELEMENTS(coords)/2); +} + +static void poly61(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {44,130, 41,137, 45,136, 43,150, 48,142, 48,157, 53,150, + 52,164, 60,156, 61,169, 64,165, 66,175, 70,167, 74,176, + 77,168, 80,183, 85,172, 90,182, 93,174, 98,181, 99,173, + 104,175, 105,169, 114,168, 102,163, 95,157, 94,166, 90,154, + 87,162, 82,149, 75,159, 72,148, 68,155, 67,143, 62,148, 62,138, + 58,145, 56,133, 52,142, 52,128, 49,134, 47,125 + }; + + init(l, 61, color, coords, ELEMENTS(coords)/2); +} + +static void poly62(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {13,216, 19,219, 36,231, 22,223, 16,222, 22,227, 12,224, 13,220, 16,220 + }; + + init(l, 62, color, coords, ELEMENTS(coords)/2); +} + +static void poly63(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {10,231, 14,236, 25,239, 27,237, 19,234 + }; + + init(l, 63, color, coords, ELEMENTS(coords)/2); +} + +static void poly64(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {9,245, 14,242, 25,245, 13,245 + }; + + init(l, 64, color, coords, ELEMENTS(coords)/2); +} + +static void poly65(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {33,255, 26,253, 18,254, 25,256, 18,258, 27,260, 18,263, + 27,265, 19,267, 29,270, 21,272, 29,276, 21,278, 30,281, + 22,283, 31,287, 24,288, 32,292, 23,293, 34,298, 26,299, + 37,303, 32,305, 39,309, 33,309, 39,314, 34,314, 40,318, + 34,317, 40,321, 34,321, 41,326, 33,326, 40,330, 33,332, + 39,333, 33,337, 42,337, 54,341, 49,337, 52,335, 47,330, + 50,330, 45,325, 49,325, 45,321, 48,321, 45,316, 46,306, + 45,286, 43,274, 36,261 + }; + + init(l, 65, color, coords, ELEMENTS(coords)/2); +} + +static void poly66(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {7,358, 9,351, 14,351, 17,359, 11,364 + }; + + init(l, 66, color, coords, ELEMENTS(coords)/2); +} + +static void poly67(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {44,354, 49,351, 52,355, 49,361 + }; + + init(l, 67, color, coords, ELEMENTS(coords)/2); +} + +static void poly68(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {32,357, 37,353, 40,358, 36,361 + }; + + init(l, 68, color, coords, ELEMENTS(coords)/2); +} + +static void poly69(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {139,334, 145,330, 154,330, 158,334, 154,341, 152,348, + 145,350, 149,340, 147,336, 141,339, 139,345, 136,342, + 136,339 + }; + + init(l, 69, color, coords, ELEMENTS(coords)/2); +} + +static void poly70(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {208,259, 215,259, 212,255, 220,259, 224,263, 225,274, 224,283, + 220,292, 208,300, 206,308, 203,304, 199,315, 197,309, 195,318, + 193,313, 190,322, 190,316, 185,325, 182,318, 180,325, 172,321, + 178,320, 176,313, 186,312, 180,307, 188,307, 184,303, 191,302, + 186,299, 195,294, 187,290, 197,288, 192,286, 201,283, 194,280, + 203,277, 198,275, 207,271, 200,269, 209,265, 204,265, 212,262 + }; + + init(l, 70, color, coords, ELEMENTS(coords)/2); +} + +static void poly71(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {106,126, 106,131, 109,132, 111,134, 115,132, 115,135, 119,133, 118,137, + 123,137, 128,137, 133,134, 136,130, 136,127, 132,124, 118,128, 112,128, + 106,126, 106,126, 106,126 + }; + + init(l, 71, color, coords, ELEMENTS(coords)/2); +} + +static void poly72(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {107,114, 101,110, 98,102, 105,97, 111,98, 119,102, 121,108, 118,112, 113,115 + }; + + init(l, 72, color, coords, ELEMENTS(coords)/2); +} + +static void poly73(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {148,106, 145,110, 146,116, 150,118, 152,111, 151,107 + }; + + init(l, 73, color, coords, ELEMENTS(coords)/2); +} + +static void poly74(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {80,55, 70,52, 75,58, 63,57, 72,61, 57,61, 67,66, 57,67, 62,69, 54,71, + 61,73, 54,77, 63,78, 53,85, 60,84, 56,90, 69,84, 63,82, 75,76, 70,75, + 77,72, 72,71, 78,69, 72,66, 81,67, 78,64, 82,63, 80,60, 86,62 + }; + + init(l, 74, color, coords, ELEMENTS(coords)/2); +} + +static void poly75(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {87,56, 91,52, 96,50, 102,56, 98,56, 92,60 + }; + + init(l, 75, color, coords, ELEMENTS(coords)/2); +} + +static void poly76(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {85,68, 89,73, 98,76, 106,74, 96,73, 91,70 + }; + + init(l, 76, color, coords, ELEMENTS(coords)/2); +} + +static void poly77(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {115,57, 114,64, 111,64, 115,75, 122,81, 122,74, 126,79, + 126,74, 131,78, 130,72, 133,77, 131,68, 126,61, 119,57 + }; + + init(l, 77, color, coords, ELEMENTS(coords)/2); +} + +static void poly78(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {145,48, 143,53, 147,59, 151,59, 150,55 + }; + + init(l, 78, color, coords, ELEMENTS(coords)/2); +} + +static void poly79(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {26,22, 34,15, 43,10, 52,10, 59,16, 47,15, 32,22 + }; + + init(l, 79, color, coords, ELEMENTS(coords)/2); +} + +static void poly80(struct lion *l) +{ + VGfloat color = 0xffe5b2; + static const VGfloat coords[] = {160,19, 152,26, 149,34, 154,33, 152,30, 157,30, 155,26, 158,27, + 157,23, 161,23 + }; + + init(l, 80, color, coords, ELEMENTS(coords)/2); +} + +static void poly81(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {98,117, 105,122, 109,122, 105,117, 113,120, 121,120, 130,112, 128,108, + 123,103, 123,99, 128,101, 132,106, 135,109, 142,105, 142,101, 145,101, + 145,91, 148,101, 145,105, 136,112, 135,116, 143,124, 148,120, 150,122, + 142,128, 133,122, 121,125, 112,126, 103,125, 100,129, 96,124 + }; + + init(l, 81, color, coords, ELEMENTS(coords)/2); +} + +static void poly82(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {146,118, 152,118, 152,115, 149,115 + }; + + init(l, 82, color, coords, ELEMENTS(coords)/2); +} + +static void poly83(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {148,112, 154,111, 154,109, 149,109 + }; + + init(l, 83, color, coords, ELEMENTS(coords)/2); +} + +static void poly84(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {106,112, 108,115, 114,116, 118,114 + }; + + init(l, 84, color, coords, ELEMENTS(coords)/2); +} + +static void poly85(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {108,108, 111,110, 116,110, 119,108 + }; + + init(l, 85, color, coords, ELEMENTS(coords)/2); +} + +static void poly86(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {106,104, 109,105, 117,106, 115,104 + }; + + init(l, 86, color, coords, ELEMENTS(coords)/2); +} + +static void poly87(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {50,25, 41,26, 34,33, 39,43, 49,58, 36,51, 47,68, 55,69, 54,59, + 61,57, 74,46, 60,52, 67,42, 57,48, 61,40, 54,45, 60,36, 59,29, + 48,38, 52,30, 47,32 + }; + + init(l, 87, color, coords, ELEMENTS(coords)/2); +} + +static void poly88(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {147,34, 152,41, 155,49, 161,53, 157,47, 164,47, 158,43, 168,44, + 159,40, 164,37, 169,37, 164,33, 169,34, 165,28, 170,30, 170,25, + 173,29, 175,27, 176,32, 173,36, 175,39, 172,42, 172,46, 168,49, + 170,55, 162,57, 158,63, 155,58, 153,50, 149,46 + }; + + init(l, 88, color, coords, ELEMENTS(coords)/2); +} + +static void poly89(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {155,71, 159,80, 157,93, 157,102, 155,108, 150,101, 149,93, + 154,101, 152,91, 151,83, 155,79 + }; + + init(l, 89, color, coords, ELEMENTS(coords)/2); +} + +static void poly90(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {112,78, 115,81, 114,91, 112,87, 113,82 + }; + + init(l, 90, color, coords, ELEMENTS(coords)/2); +} + +static void poly91(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {78,28, 64,17, 58,11, 47,9, 36,10, 28,16, 21,26, 18,41, + 20,51, 23,61, 33,65, 28,68, 37,74, 36,81, 43,87, 48,90, + 43,100, 40,98, 39,90, 31,80, 30,72, 22,71, 17,61, 14,46, + 16,28, 23,17, 33,9, 45,6, 54,6, 65,12 + }; + + init(l, 91, color, coords, ELEMENTS(coords)/2); +} + +static void poly92(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {67,18, 76,9, 87,5, 101,2, 118,3, 135,8, 149,20, 149,26, + 144,19, 132,12, 121,9, 105,7, 89,8, 76,14, 70,20 + }; + + init(l, 92, color, coords, ELEMENTS(coords)/2); +} + +static void poly93(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {56,98, 48,106, 56,103, 47,112, 56,110, 52,115, 57,113, 52,121, 62,115, + 58,123, 65,119, 63,125, 69,121, 68,127, 74,125, 74,129, 79,128, 83,132, + 94,135, 93,129, 85,127, 81,122, 76,126, 75,121, 71,124, 71,117, 66,121, + 66,117, 62,117, 64,112, 60,113, 60,110, 57,111, 61,105, 57,107, 60,101, + 55,102 + }; + + init(l, 93, color, coords, ELEMENTS(coords)/2); +} + +static void poly94(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {101,132, 103,138, 106,134, 106,139, 112,136, 111,142, 115,139, + 114,143, 119,142, 125,145, 131,142, 135,138, 140,134, 140,129, + 143,135, 145,149, 150,171, 149,184, 145,165, 141,150, 136,147, + 132,151, 131,149, 126,152, 125,150, 121,152, 117,148, 111,152, + 110,148, 105,149, 104,145, 98,150, 96,138, 94,132, 94,130, 98,132 + }; + + init(l, 94, color, coords, ELEMENTS(coords)/2); +} + +static void poly95(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {41,94, 32,110, 23,132, 12,163, 6,190, 7,217, 5,236, + 3,247, 9,230, 12,211, 12,185, 18,160, 26,134, 35,110, + 43,99 + }; + + init(l, 95, color, coords, ELEMENTS(coords)/2); +} + +static void poly96(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {32,246, 41,250, 50,257, 52,267, 53,295, 53,323, 59,350, + 54,363, 51,365, 44,366, 42,360, 40,372, 54,372, 59,366, + 62,353, 71,352, 75,335, 73,330, 66,318, 68,302, 64,294, + 67,288, 63,286, 63,279, 59,275, 58,267, 56,262, 50,247, + 42,235, 44,246, 32,236, 35,244 + }; + + init(l, 96, color, coords, ELEMENTS(coords)/2); +} + +static void poly97(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {134,324, 146,320, 159,322, 173,327, 179,337, 179,349, + 172,355, 158,357, 170,350, 174,343, 170,333, 163,328, 152,326, + 134,329 + }; + + init(l, 97, color, coords, ELEMENTS(coords)/2); +} + +static void poly98(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {173,339, 183,334, 184,338, 191,329, 194,332, 199,323, 202,325, + 206,318, 209,320, 213,309, 221,303, 228,296, 232,289, 234,279, + 233,269, 230,262, 225,256, 219,253, 208,252, 198,252, 210,249, + 223,250, 232,257, 237,265, 238,277, 238,291, 232,305, 221,323, + 218,335, 212,342, 200,349, 178,348 + }; + + init(l, 98, color, coords, ELEMENTS(coords)/2); +} + +static void poly99(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {165,296, 158,301, 156,310, 156,323, 162,324, 159,318, + 162,308, 162,304 + }; + + init(l, 99, color, coords, ELEMENTS(coords)/2); +} + +static void poly100(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {99,252, 105,244, 107,234, 115,228, 121,228, 131,235, + 122,233, 113,235, 109,246, 121,239, 133,243, 121,243, + 110,251 + }; + + init(l, 100, color, coords, ELEMENTS(coords)/2); +} + +static void poly101(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {117,252, 124,247, 134,249, 136,253, 126,252 + }; + + init(l, 101, color, coords, ELEMENTS(coords)/2); +} + +static void poly102(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {117,218, 132,224, 144,233, 140,225, 132,219, 117,218, + 117,218, 117,218 + }; + + init(l, 102, color, coords, ELEMENTS(coords)/2); +} + +static void poly103(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {122,212, 134,214, 143,221, 141,213, 132,210 + }; + + init(l, 103, color, coords, ELEMENTS(coords)/2); +} + +static void poly104(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {69,352, 70,363, 76,373, 86,378, 97,379, 108,379, 120,377, + 128,378, 132,373, 135,361, 133,358, 132,366, 127,375, 121,374, + 121,362, 119,367, 117,374, 110,376, 110,362, 107,357, 106,371, + 104,375, 97,376, 90,375, 90,368, 86,362, 83,364, 86,369, 85,373, + 78,370, 73,362, 71,351 + }; + + init(l, 104, color, coords, ELEMENTS(coords)/2); +} + +static void poly105(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {100,360, 96,363, 99,369, 102,364 + }; + + init(l, 105, color, coords, ELEMENTS(coords)/2); +} + +static void poly106(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {115,360, 112,363, 114,369, 117,364 + }; + + init(l, 106, color, coords, ELEMENTS(coords)/2); +} + +static void poly107(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {127,362, 125,364, 126,369, 128,365 + }; + + init(l, 107, color, coords, ELEMENTS(coords)/2); +} + +static void poly108(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {5,255, 7,276, 11,304, 15,320, 13,334, 6,348, 2,353, 0,363, + 5,372, 12,374, 25,372, 38,372, 44,369, 42,367, 36,368, 31,369, + 30,360, 27,368, 20,370, 16,361, 15,368, 10,369, 3,366, 3,359, 6,352, + 11,348, 17,331, 19,316, 12,291, 9,274 + }; + + init(l, 108, color, coords, ELEMENTS(coords)/2); +} + +static void poly109(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {10,358, 7,362, 10,366, 11,362 + }; + + init(l, 109, color, coords, ELEMENTS(coords)/2); +} + +static void poly110(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {25,357, 22,360, 24,366, 27,360 + }; + + init(l, 110, color, coords, ELEMENTS(coords)/2); +} + +static void poly111(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {37,357, 34,361, 36,365, 38,361 + }; + + init(l, 111, color, coords, ELEMENTS(coords)/2); +} + +static void poly112(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {49,356, 46,359, 47,364, 50,360 + }; + + init(l, 112, color, coords, ELEMENTS(coords)/2); +} + +static void poly113(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {130,101, 132,102, 135,101, 139,102, 143,103, + 142,101, 137,100, 133,100 + }; + + init(l, 113, color, coords, ELEMENTS(coords)/2); +} + +static void poly114(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {106,48, 105,52, 108,56, 109,52 + }; + + init(l, 114, color, coords, ELEMENTS(coords)/2); +} + +static void poly115(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {139,52, 139,56, 140,60, 142,58, 141,56 + }; + + init(l, 115, color, coords, ELEMENTS(coords)/2); +} + +static void poly116(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {25,349, 29,351, 30,355, 33,350, 37,348, 42,351, 45,347, + 49,345, 44,343, 36,345 + }; + + init(l, 116, color, coords, ELEMENTS(coords)/2); +} + +static void poly117(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {98,347, 105,351, 107,354, 109,349, 115,349, 120,353, 118,349, + 113,346, 104,346 + }; + + init(l, 117, color, coords, ELEMENTS(coords)/2); +} + +static void poly118(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {83,348, 87,352, 87,357, 89,351, 87,348 + }; + + init(l, 118, color, coords, ELEMENTS(coords)/2); +} + +static void poly119(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {155,107, 163,107, 170,107, 186,108, 175,109, 155,109 + }; + + init(l, 119, color, coords, ELEMENTS(coords)/2); +} + +static void poly120(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {153,114, 162,113, 175,112, 192,114, 173,114, 154,115 + }; + + init(l, 120, color, coords, ELEMENTS(coords)/2); +} + +static void poly121(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {152,118, 164,120, 180,123, 197,129, 169,123, 151,120 + }; + + init(l, 121, color, coords, ELEMENTS(coords)/2); +} + +static void poly122(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {68,109, 87,106, 107,106, 106,108, 88,108 + }; + + init(l, 122, color, coords, ELEMENTS(coords)/2); +} + +static void poly123(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {105,111, 95,112, 79,114, 71,116, 85,115, 102,113 + }; + + init(l, 123, color, coords, ELEMENTS(coords)/2); +} + +static void poly124(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {108,101, 98,99, 87,99, 78,99, 93,100, 105,102 + }; + + init(l, 124, color, coords, ELEMENTS(coords)/2); +} + +static void poly125(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {85,63, 91,63, 97,60, 104,60, 108,62, 111,69, 112,75, + 110,74, 108,71, 103,73, 106,69, 105,65, 103,64, 103,67, + 102,70, 99,70, 97,66, 94,67, 97,72, 88,67, 84,66 + }; + + init(l, 125, color, coords, ELEMENTS(coords)/2); +} + +static void poly126(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {140,74, 141,66, 144,61, 150,61, 156,62, 153,70, 150,73, + 152,65, 150,65, 151,68, 149,71, 146,71, 144,66, 143,70, + 143,74 + }; + + init(l, 126, color, coords, ELEMENTS(coords)/2); +} + +static void poly127(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {146,20, 156,11, 163,9, 172,9, 178,14, 182,18, 184,32, 182,42, + 182,52, 177,58, 176,67, 171,76, 165,90, 157,105, 160,92, 164,85, + 168,78, 167,73, 173,66, 172,62, 175,59, 174,55, 177,53, 180,46, + 181,29, 179,21, 173,13, 166,11, 159,13, 153,18, 148,23 + }; + + init(l, 127, color, coords, ELEMENTS(coords)/2); +} + +static void poly128(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {150,187, 148,211, 150,233, 153,247, 148,267, 135,283, 125,299, + 136,292, 131,313, 122,328, 122,345, 129,352, 133,359, 133,367, + 137,359, 148,356, 140,350, 131,347, 129,340, 132,332, 140,328, + 137,322, 140,304, 154,265, 157,244, 155,223, 161,220, 175,229, + 186,247, 185,260, 176,275, 178,287, 185,277, 188,261, 196,253, + 189,236, 174,213 + }; + + init(l, 128, color, coords, ELEMENTS(coords)/2); +} + +static void poly129(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {147,338, 142,341, 143,345, 141,354, 147,343 + }; + + init(l, 129, color, coords, ELEMENTS(coords)/2); +} + +static void poly130(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {157,342, 156,349, 150,356, 157,353, 163,346, 162,342 + }; + + init(l, 130, color, coords, ELEMENTS(coords)/2); +} + +static void poly131(struct lion *l) +{ + VGfloat color = 0x000000; + static const VGfloat coords[] = {99,265, 96,284, 92,299, 73,339, 73,333, 87,300 + }; + + init(l, 131, color, coords, ELEMENTS(coords)/2); +} + + +struct lion * lion_create(void) +{ + struct lion *l = calloc(1, sizeof(struct lion)); + + poly0(l); + poly1(l); + poly2(l); + poly3(l); + poly4(l); + poly5(l); + poly6(l); + poly7(l); + poly8(l); + poly9(l); + + poly10(l); + poly11(l); + poly12(l); + poly13(l); + poly14(l); + poly15(l); + poly16(l); + poly17(l); + poly18(l); + poly19(l); + + poly20(l); + poly21(l); + poly22(l); + poly23(l); + poly24(l); + poly25(l); + poly26(l); + poly27(l); + poly28(l); + poly29(l); + + poly30(l); + poly31(l); + poly32(l); + poly33(l); + poly34(l); + poly35(l); + poly36(l); + poly37(l); + poly38(l); + poly39(l); + + poly40(l); + poly41(l); + poly42(l); + poly43(l); + poly44(l); + poly45(l); + poly46(l); + poly47(l); + poly48(l); + poly49(l); + + poly50(l); + poly51(l); + poly52(l); + poly53(l); + poly54(l); + poly55(l); + poly56(l); + poly57(l); + poly58(l); + poly59(l); + + poly60(l); + poly61(l); + poly62(l); + poly63(l); + poly64(l); + poly65(l); + poly66(l); + poly67(l); + poly68(l); + poly69(l); + + poly70(l); + poly71(l); + poly72(l); + poly73(l); + poly74(l); + poly75(l); + poly76(l); + poly77(l); + poly78(l); + poly79(l); + + poly80(l); + poly81(l); + poly82(l); + poly83(l); + poly84(l); + poly85(l); + poly86(l); + poly87(l); + poly88(l); + poly89(l); + + poly90(l); + poly91(l); + poly92(l); + poly93(l); + poly94(l); + poly95(l); + poly96(l); + poly97(l); + poly98(l); + poly99(l); + + poly100(l); + poly101(l); + poly102(l); + poly103(l); + poly104(l); + poly105(l); + poly106(l); + poly107(l); + poly108(l); + poly109(l); + + poly110(l); + poly111(l); + poly112(l); + poly113(l); + poly114(l); + poly115(l); + poly116(l); + poly117(l); + poly118(l); + poly119(l); + + poly120(l); + poly121(l); + poly122(l); + poly123(l); + poly124(l); + poly125(l); + poly126(l); + poly127(l); + poly128(l); + poly129(l); + + poly130(l); + poly131(l); + + return l; +} + +void lion_render(struct lion *l) +{ + VGint i; + + for (i = 0; i < LION_SIZE; ++i) { + vgSetPaint(l->fills[i], VG_FILL_PATH); + vgDrawPath(l->paths[i], VG_FILL_PATH); + } +} + +void lion_destroy(struct lion *l) +{ + VGint i; + for (i = 0; i < LION_SIZE; ++i) { + vgDestroyPaint(l->fills[i]); + vgDestroyPath(l->paths[i]); + } + free(l); +} diff --git a/progs/egl/openvg/lion-render.h b/progs/egl/openvg/lion-render.h new file mode 100644 index 0000000000..c4c020b7ed --- /dev/null +++ b/progs/egl/openvg/lion-render.h @@ -0,0 +1,16 @@ +#ifndef LION_RENDER_H +#define LION_RENDER_H + +#include + +#define LION_SIZE 132 +struct lion { + VGPath paths[LION_SIZE]; + VGPaint fills[LION_SIZE]; +}; + +struct lion *lion_create(void); +void lion_render(struct lion *l); +void lion_destroy(struct lion *l); + +#endif diff --git a/progs/egl/openvg/lion.c b/progs/egl/openvg/lion.c new file mode 100644 index 0000000000..adb269bfd8 --- /dev/null +++ b/progs/egl/openvg/lion.c @@ -0,0 +1,289 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lion-render.h" + +static VGint width, height; +struct lion *lion = 0; +VGfloat angle = 0; + +static void +draw(void) +{ + vgClear(0, 0, width, height); + + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); + vgLoadIdentity(); + vgTranslate(width/2, height/2); + vgRotate(angle); + vgTranslate(-width/2, -height/2); + + lion_render(lion); + + ++angle; +} + + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + width = w; + height = h; +} + + +static void +init(void) +{ + float clear_color[4] = {1.0, 1.0, 1.0, 1.0}; + vgSetfv(VG_CLEAR_COLOR, 4, clear_color); + + lion = lion_create(); +} + + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENVG_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + XEvent event; + + while (XPending(dpy) > 0) { + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + break; + case ConfigureNotify: + reshape(event.xconfigure.width, event.xconfigure.height); + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + break; + default: + ; /*no-op*/ + } + } + + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } +} + + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + +int +main(int argc, char *argv[]) +{ + const int winWidth = 350, winHeight = 450; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + else { + usage(); + return -1; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "Lion Example", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); + printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); + printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); + } + + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} diff --git a/progs/egl/openvg/sp.c b/progs/egl/openvg/sp.c new file mode 100644 index 0000000000..424ec47d69 --- /dev/null +++ b/progs/egl/openvg/sp.c @@ -0,0 +1,537 @@ +#include "eglcommon.h" + +#include +#include +#include +#include +#include +#include + +#include + +#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) + +struct object { + VGPath path; + VGPaint fill; + VGPaint stroke; + VGint draw_mode; + VGfloat matrix[9]; + VGfloat stroke_width; +}; + +struct character { + struct object objects[32]; + VGint num_objects; +}; +VGfloat identity_matrix[] = {1, 0, 0, 0, 1, 0, 0, 0, 1}; + +struct character cartman; + +static void add_object_fill(const VGubyte *segments, VGint num_segments, + const VGfloat *coords, + VGuint color) +{ + struct object object; + + object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); + vgAppendPathData(object.path, num_segments, segments, coords); + + object.fill = vgCreatePaint(); + vgSetColor(object.fill, color); + memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat)); + object.draw_mode = VG_FILL_PATH; + + cartman.objects[cartman.num_objects] = object; + ++cartman.num_objects; +} + + +static void add_object_stroke(const VGubyte *segments, VGint num_segments, + const VGfloat *coords, + VGuint color, VGfloat width) +{ + struct object object; + + object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); + vgAppendPathData(object.path, num_segments, segments, coords); + + object.stroke = vgCreatePaint(); + vgSetColor(object.stroke, color); + memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat)); + object.draw_mode = VG_STROKE_PATH; + object.stroke_width = width; + + cartman.objects[cartman.num_objects] = object; + ++cartman.num_objects; +} + + +static void add_object_fillm(const VGubyte *segments, VGint num_segments, + const VGfloat *coords, + VGuint color, + VGfloat *matrix) +{ + struct object object; + + object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); + vgAppendPathData(object.path, num_segments, segments, coords); + + object.fill = vgCreatePaint(); + vgSetColor(object.fill, color); + memcpy(object.matrix, matrix, 9 * sizeof(VGfloat)); + object.draw_mode = VG_FILL_PATH; + + cartman.objects[cartman.num_objects] = object; + ++cartman.num_objects; +} + + +static void add_object_m(const VGubyte *segments, VGint num_segments, + const VGfloat *coords, + VGuint fill_color, + VGuint stroke_color, VGfloat stroke_width, + VGfloat *matrix) +{ + struct object object; + + object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); + vgAppendPathData(object.path, num_segments, segments, coords); + memcpy(object.matrix, matrix, 9 * sizeof(VGfloat)); + + object.fill = vgCreatePaint(); + vgSetColor(object.fill, fill_color); + object.draw_mode = VG_FILL_PATH | VG_STROKE_PATH; + + object.stroke = vgCreatePaint(); + vgSetColor(object.stroke, stroke_color); + object.stroke_width = stroke_width; + + cartman.objects[cartman.num_objects] = object; + ++cartman.num_objects; +} + +static void init_character() +{ + { + const VGubyte segments[] = {VG_MOVE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CLOSE_PATH}; + const VGfloat coords[] = {181.83267, 102.60408, + 181.83267,102.60408, 185.53793,114.5749, 186.5355,115.00243, + 187.53306,115.42996, 286.0073,115.00243, 286.0073,115.00243, + 286.0073,115.00243, 292.70526,103.45914, 290.85263,101.03648, + 289.00001,98.61381, 181.54765,102.31906, 181.83267,102.60408 + }; + VGuint color = 0x7c4e32ff; + add_object_fill(segments, ELEMENTS(segments), + coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CLOSE_PATH + }; + const VGfloat coords[] = {188.62208,50.604156, + 188.62208,50.604156, 176.73127,60.479579, 170.68509,69.548844, + 164.63892,78.618109, 175.11895,79.827344, 175.11895,79.827344, + 176.52973,98.368952, + 176.52973,98.368952, 189.83131,110.05823, 208.97754,110.25976, + 228.12377,110.46131, 244.24691,111.67054, 247.06846,110.25976, + 249.89,108.849, 258.95927,106.8336, 260.16851,105.01975, + 261.37774,103.2059, 296.84865,106.43053, 297.05019,91.919698, + 297.25172,77.408874, 306.11945,64.308824, 282.13628,51.611853, + 258.15311,38.914882, 189.2267,49.999539, 188.62208,50.604156 + }; + + VGuint color = 0xe30000ff; + add_object_fill(segments, ELEMENTS(segments), + coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 68.25, 78.875, + 68.25,93.296, 54.642,105, 37.875,105, + 21.108,105, 7.5,93.296, 7.5,78.875, + 7.5,64.454, 21.108,52.75, 37.875,52.75, + 54.642,52.75, 68.25,64.454, 68.25,78.875 + }; + + VGuint color = 0xffe1c4ff; + VGfloat matrix[] = { + 1.6529, 0, 0, + 0, 1.582037, 0, + 172.9649,-90.0116, 1 + }; + add_object_fillm(segments, ELEMENTS(segments), + coords, color, matrix); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 170.14687,71.536958, + 173.53626,68.814326, 176.70232,68.971782, 180.55009,71.679467, + 184.39785,74.387153, 199.19294,80.036105, 191.52334,86.500482, + 189.02942,88.6025, 183.97032,85.787933, 180.26507,86.928011, + 178.8737,87.356121, 174.71827,89.783259, 171.8028,87.494856, + 166.95426,83.689139, 163.51779,76.861986, 170.14687,71.536958 + }; + + VGuint color = 0xfff200ff; + add_object_fill(segments, ELEMENTS(segments), + coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 299.83075,66.834136, + 299.83075,66.834136, 287.85993,64.69649, 284.15467,72.962055, + 280.44942,81.227621, 280.1644,78.234916, 280.1644,79.374994, + 280.1644,80.515072, 278.16927,84.077816, 284.86722,83.792796, + 291.56518,83.507777, 291.99271,86.785501, 294.84291,86.642991, + 297.6931,86.500482, 303.536,85.645423, 303.67851,80.657582, + 303.82102,75.66974, 302.68094,65.551548, 299.83075,66.834136 + }; + + VGuint color = 0xfff200ff; + add_object_fill(segments, ELEMENTS(segments), + coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS + }; + const VGfloat coords[] = { + 240.83171,75.81225, + 240.83171,75.81225, 241.54426,88.495618, 242.25681,91.488323, + 242.96936,94.481028, 240.6892,108.01945, 240.83171,110.01459, + 240.97422,112.00973, 240.97422,111.01216, 240.97422,111.01216 + }; + VGuint color = 0x000000ff; + VGfloat swidth = 1.14007807; + add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 83.375, 95.5, + 83.375,96.121, 83.067,96.625, 82.6875,96.625, + 82.308,96.625, 82,96.121, 82,95.5, + 82,94.879, 82.308,94.375, 82.6875,94.375, + 83.066677,94.375, 83.374492,94.878024, 83.374999,95.498494, + 82.6875,95.5, + 83.375,95.5 + }; + VGuint fill_color = 0x000000ff; + VGuint stroke_color = 0x000000ff; + VGfloat swidth = 0.60000002; + VGfloat matrix1[] = { + 1.140078, 0, 0, + 0, 1.140078, 0, + 145.4927, -15.10897, 1 + }; + VGfloat matrix2[] = { + 1.140078,0, 0, + 0,1.140078, 0, + 144.2814,-27.93485, 1 + }; + VGfloat matrix3[] = { + 1.140078,0, 0, + 0,1.140078, 0, + 144.1388,-3.70819, 1 + }; + add_object_m(segments, ELEMENTS(segments), coords, + fill_color, stroke_color, swidth, matrix1); + add_object_m(segments, ELEMENTS(segments), coords, + fill_color, stroke_color, swidth, matrix2); + add_object_m(segments, ELEMENTS(segments), coords, + fill_color, stroke_color, swidth, matrix3); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 179.41001,115.28745, + 179.41001,115.28745, 207.48443,109.30204, 236.84144,115.14494, + 236.84144,115.14494, 274.74903,109.87208, 291.8502,115.42996, + 179.41001,115.28745 + }; + + VGuint color = 0x000000ff; + add_object_fill(segments, ELEMENTS(segments), + coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 83.792156,68.157364, + 83.792156,69.669865, 82.72301,70.897403, 81.40567,70.897403, + 80.08833,70.897403, 79.019185,69.669865, 79.019185,68.157364, + 79.019185,66.644862, 80.08833,65.417325, 81.40567,65.417325, + 82.721887,65.417325, 83.790391,66.642485, 83.792153,68.153696, + 81.40567,68.157364, + 83.792156,68.157364 + }; + VGuint fill_color = 0x000000ff; + VGuint stroke_color = 0x000000ff; + VGfloat swidth = 0.52891117; + VGfloat matrix1[] = { + 1.140078,0, 0, + 0,1.140078, 0, + 145.2489,-15.58714, 1 + }; + add_object_m(segments, ELEMENTS(segments), coords, + fill_color, stroke_color, swidth, matrix1); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS + }; + const VGfloat coords[] = { + 232.28113,66.976646, + 232.28113,66.976646, 237.98152,70.539389, 245.39202,66.549116 + }; + VGuint color = 0x000000ff; + VGfloat swidth = 0.60299999; + add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 185.96908,30.061986, + 185.96908,30.061986, 187.76995,14.508377, 203.23909,3.7427917, + 209.95028,-0.92779696, 219.37764,-4.9841866, 232.1078,-6.00046, + 246.13578,-7.1203411, 256.92106,-2.8560739, 264.81774,1.9451947, + 280.60485,11.543934, 284.31582,25.937274, 284.08015,26.526452, + 283.7266,27.410336, 240.83461,1.9346323, 185.96908,30.061986 + }; + VGuint color = 0x8ed8f8ff; + add_object_fill(segments, ELEMENTS(segments), coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 185.39542,32.061757, + 185.82295,29.211562, + 185.82295,29.211562, 234.70379,2.277219, 284.01217,25.078779, + 284.86722,27.643954, + 284.86722,27.643954, 236.69893,4.5573746, 185.39542,32.061757 + }; + VGuint color = 0xfff200ff; + add_object_fill(segments, ELEMENTS(segments), coords, color); + } + + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 219.74027,-5.917093, + 220.49206,-8.44929, 225.15564,-10.904934, 230.21473,-11.189954, + 235.27383,-11.474973, 243.27521,-13.287236, 249.21385,-5.724198, + 249.89961,-4.850868, 249.28247,-4.332166, 248.62298,-3.971398, + 247.79117,-3.516361, 247.13703,-3.392737, 246.16222,-3.408047, + 243.63973,-3.447664, 242.54183,-3.850701, 242.54183,-3.850701, + 242.54183,-3.850701, 238.78367,-1.737343, 236.20014,-3.565682, + 233.88436,-5.204544, 234.27626,-4.56325, 234.27626,-4.56325, + 234.27626,-4.56325, 232.33303,-2.975658, 230.85603,-2.995643, + 228.59433,-3.025282, 227.73672,-4.501857, 227.21966,-4.93027, + 226.76318,-4.932008, 226.50948,-4.491995, 226.50948,-4.491995, + 226.50948,-4.491995, 224.53199,-2.085883, 222.51431,-2.467064, + 221.48814,-2.66093, 218.91968,-3.15318, 219.74027,-5.917093 + }; + VGuint color = 0xfff200ff; + add_object_fill(segments, ELEMENTS(segments), coords, color); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 178.97347,166.06432, + 178.97347,181.2154, 168.0245,193.51193, 154.53381,193.51193, + 141.04312,193.51193, 130.09416,181.2154, 130.09416,166.06432, + 130.09416,150.91323, 141.04312,138.6167, 154.53381,138.6167, + 168.0245,138.6167, 178.97347,150.91323, 178.97347,166.06432 + }; + VGuint color = 0xffffffff; + VGfloat matrix1[] = { + 0.466614,-0.23492, 0, + 0.108683,0.436638, 0, + 134.5504,-0.901632, 1 + }; + VGfloat matrix2[] = { + -0.466614,-0.23492, 0, + -0.108683,0.436638, 0, + 338.4496,-0.512182, 1 + }; + add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1); + add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, + VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH + }; + const VGfloat coords[] = { + 123.82758,165.06168, + 123.82758,166.79125, 122.59232,168.19497, 121.07029,168.19497, + 119.54826,168.19497, 118.313,166.79125, 118.313,165.06168, + 118.313,163.3321, 119.54826,161.92839, 121.07029,161.92839, + 122.59232,161.92839, 123.82758,163.3321, 123.82758,165.06168 + }; + VGuint color = 0x000000ff; + VGfloat matrix1[] = { + 0.525719,0, 0, + 0,0.479931, 0, + 178.9702,-43.3532, 1 + }; + VGfloat matrix2[] = { + 0.525719,0, 0, + 0,0.479931, 0, + 165.258,-43.46162, 1 + }; + add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1); + add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2); + } + { + const VGubyte segments[] = { + VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS + }; + const VGfloat coords[] = { + 197.25,54.5, + 197.25,54.5, 211.75,71.5, 229.25,71.5, + 246.75,71.5, 261.74147,71.132714, 277.75,50.75 + }; + VGuint color = 0x000000ff; + VGfloat swidth = 0.60299999; + add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); + } +} + + +static void +init(void) +{ + float clear_color[4] = {1.0, 1.0, 1.0, 1.0}; + vgSetfv(VG_CLEAR_COLOR, 4, clear_color); + + init_character(); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static int +key_press(unsigned key) +{ + switch(key) { + case XK_Right: + + break; + case XK_Left: + break; + case XK_Up: + break; + case XK_Down: + break; + case 'a': + break; + case 's': + break; + default: + break; + } + return VG_FALSE; +} + +static void +draw(void) +{ + VGint i; + VGfloat save_matrix[9]; + + vgClear(0, 0, window_width(), window_height()); + + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); + vgLoadIdentity(); + vgScale(2, 2); + vgTranslate(160, 60); + vgRotate(180); + vgTranslate(-160, -100); + vgGetMatrix(save_matrix); + for (i = 0; i < cartman.num_objects; ++i) { + struct object object = cartman.objects[i]; + if ((object.draw_mode & VG_STROKE_PATH)) { + vgSetf(VG_STROKE_LINE_WIDTH, object.stroke_width); + vgSetPaint(object.stroke, VG_STROKE_PATH); + } + if ((object.draw_mode & VG_FILL_PATH)) + vgSetPaint(object.fill, VG_FILL_PATH); + vgMultMatrix(object.matrix); + vgDrawPath(object.path, object.draw_mode); + vgLoadMatrix(save_matrix); + } + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(400, 400); + return run(argc, argv, init, reshape, draw, key_press); +} diff --git a/progs/egl/openvg/trivial/Makefile b/progs/egl/openvg/trivial/Makefile new file mode 100644 index 0000000000..8f6d7abe89 --- /dev/null +++ b/progs/egl/openvg/trivial/Makefile @@ -0,0 +1,128 @@ +# progs/egl/openvg/trivial/Makefile +# These programs aren't intended to be included with the normal distro. +# They're not too interesting but they're good for testing. + +TOP = ../../../.. +include $(TOP)/configs/current + +INCLUDES = -I. -I$(TOP)/include +LIBS=-L$(TOP)/$(LIB_DIR) -lm -lX11 -lEGL -lOpenVG -lpthread +CFLAGS += $(INCLUDES) + +HEADERS=eglcommon.h + +PROGRAMS = \ + arc \ + cap \ + clear \ + coord \ + dash \ + ellipse \ + filter \ + gradorigin \ + lineto \ + lingrad \ + lookup \ + mask4 \ + mask \ + path3 \ + radialgrad \ + readpixels \ + roundedrect \ + star-nonzero \ + star-oddeven \ + stroke2 \ + stroke \ + vguarc + + +.c.o: + $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + + + +default: $(PROGRAMS) + + +arc: arc.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +cap: cap.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +clear: clear.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +coord: coord.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +dash: dash.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +ellipse: ellipse.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +filter: filter.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +gradorigin: gradorigin.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +image: image.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +lineto: lineto.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +lingrad: lingrad.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +lookup: lookup.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +mask: mask.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +mask4: mask4.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +path3: path3.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +pattern: pattern.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +radialgrad: radialgrad.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +readpixels: readpixels.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +roundedrect: roundedrect.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +star-nonzero: star-nonzero.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +star-oddeven: star-oddeven.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +stroke: stroke.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +stroke2: stroke2.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + +vguarc: vguarc.c eglcommon.o + $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ + + + +eglcommon.o: eglcommon.c $(HEADERS) + $(CC) -c $(CFLAGS) eglcommon.c + + +clean: + rm -f *.o *~ + rm -f *.so + rm -f $(PROGRAMS) diff --git a/progs/egl/openvg/trivial/arc.c b/progs/egl/openvg/trivial/arc.c new file mode 100644 index 0000000000..db686bea6b --- /dev/null +++ b/progs/egl/openvg/trivial/arc.c @@ -0,0 +1,139 @@ +#include "eglcommon.h" + +#include +#include + +const VGfloat clear_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; + +VGPath vgPath; + +static void ellipse(VGPath vgPath, VGfloat rx, VGfloat ry, VGfloat angle) +{ + static const VGubyte cmd[] = + { VG_MOVE_TO_ABS, VG_SCCWARC_TO_REL, VG_SCCWARC_TO_REL, VG_CLOSE_PATH }; + + VGfloat val[12]; + VGfloat c = cos(angle) * rx; + VGfloat s = sin(angle) * rx; + + val[0] = c; + val[1] = s; + val[2] = rx; + val[3] = ry; + val[4] = angle; + val[5] = -2.0f * c; + val[6] = -2.0f * s; + val[7] = rx; + val[8] = ry; + val[9] = angle; + val[10] = 2.0f * c; + val[11] = 2.0f * s; + + vgClearPath(vgPath, VG_PATH_CAPABILITY_ALL); + vgAppendPathData(vgPath, sizeof(cmd), cmd, val); + vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); +} + +static void +init(void) +{ + VGPaint vgPaint; + + vgSetfv(VG_CLEAR_COLOR, 4, clear_color); + vgPath = vgCreatePath(VG_PATH_FORMAT_STANDARD, + VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, + VG_PATH_CAPABILITY_ALL); + + vgPaint = vgCreatePaint(); + vgSetParameteri(vgPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + vgSetColor(vgPaint, 0x00ff00ff); + vgSetPaint(vgPaint, VG_FILL_PATH); + + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER); + vgSetf(VG_STROKE_LINE_WIDTH, 2.0f); + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_MITER); + vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + +#if 0 + vgLoadIdentity(); + vgTranslate(40.0f, 24.0f); + vgScale(0.61804f, 0.61804f); + vgShear(-1.0f, 0.0f); + vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); +#else + + /* row 1, col 1: Identity transform. */ + + vgLoadIdentity(); + vgTranslate(8.0f, 8.0f); + ellipse(vgPath, 4.0f, 4.0f, 0.0f); + + /* row 1, col 2: 10^3 horizontal squeeze. */ + + vgLoadIdentity(); + vgTranslate(24.0f, 8.0f); + vgScale(1.0e-3f, 1.0f); + ellipse(vgPath, 4.0e3f, 4.0f, 0.0f); + + /* row 1, col 3: 10^6 horizontal squeeze. */ + + vgLoadIdentity(); + vgTranslate(40.0f, 8.0f); + vgScale(1.0e-6f, 1.0f); + ellipse(vgPath, 4.0e6f, 4.0f, 0.0f); + + /* row 1, col 4: 10^9 horizontal squeeze. */ + + vgLoadIdentity(); + vgTranslate(56.0f, 8.0f); + vgScale(1.0e-9f, 1.0f); + ellipse(vgPath, 4.0e9f, 4.0f, 0.0f); + + /* row 2, col 1: 10^3 vertical squeeze. */ + + vgLoadIdentity(); + vgTranslate(8.0f, 24.0f); + vgScale(1.0f, 1.0e-3f); + ellipse(vgPath, 4.0f, 4.0e3f, 0.0f); + + /* row 2, col 2: Shear 0. */ + + vgLoadIdentity(); + vgTranslate(24.0f, 24.0f); + vgShear(0.0f, 0.0f); + ellipse(vgPath, 4.0f, 4.0f, 0.0f); + + /* row 2, col 3: Horizontal shear -1. */ + + vgLoadIdentity(); + vgTranslate(40.0f, 24.0f); + vgScale(0.61804f, 0.61804f); + vgShear(-1.0f, 0.0f); + ellipse(vgPath, 10.47213f, 4.0f, 31.717f); +#endif + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/cap.c b/progs/egl/openvg/trivial/cap.c new file mode 100644 index 0000000000..cd84fe3ac0 --- /dev/null +++ b/progs/egl/openvg/trivial/cap.c @@ -0,0 +1,75 @@ +#include "eglcommon.h" + +#include + +#include +#include +#include + +static void +init(void) +{ + +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +const int subtest = 0; +static void +draw(void) +{ + VGPath line; + VGPaint fillPaint; + VGubyte lineCommands[3] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS}; + VGfloat lineCoords[] = {-2.0f,-1.0f, 0.0f,0.0f, -1.0f, -2.0f}; + VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */ + VGfloat fillColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ + //VGfloat testRadius = 60.0f; + VGfloat testRadius = 10.0f; + int WINDSIZEX = window_width(); + int WINDSIZEY = window_height(); + + line = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); + fillPaint = vgCreatePaint(); + + vgSetf(VG_STROKE_LINE_WIDTH, 1.0f); + //vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_ROUND); + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); + //vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL); + + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_BETTER); + + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); + vgLoadIdentity(); + vgTranslate(60, 60); + vgScale(testRadius * 2, testRadius * 2); + + vgAppendPathData(line, 3, lineCommands, lineCoords); + + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + + vgSetPaint(fillPaint, VG_STROKE_PATH); + + vgSetParameterfv(fillPaint, VG_PAINT_COLOR, 4, fillColor); + vgSetParameteri( fillPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + + vgClear(0, 0, WINDSIZEX, WINDSIZEY); + vgDrawPath(line, VG_STROKE_PATH); + + vgDestroyPath(line); + vgDestroyPaint(fillPaint); +} + + +int main(int argc, char **argv) +{ + set_window_size(100, 100); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/clear.c b/progs/egl/openvg/trivial/clear.c new file mode 100644 index 0000000000..efb6bf4182 --- /dev/null +++ b/progs/egl/openvg/trivial/clear.c @@ -0,0 +1,42 @@ +#include "eglcommon.h" + +#include +#include + +float red_color[4] = {1.0, 0.0, 0.0, 1.0}; +float blue_color[4] = {0.0, 0.0, 1.0, 1.0}; + +static void +init(void) +{ +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + VGint scissor[4] = {100, 100, 25, 25}; + vgSetfv(VG_CLEAR_COLOR, 4, red_color); + vgClear(0, 0, window_width(), window_height()); + + vgSetfv(VG_CLEAR_COLOR, 4, blue_color); + vgClear(50, 50, 50, 50); + + //vgSetiv(VG_SCISSOR_RECTS, 4, scissor); + //vgSeti(VG_SCISSORING, VG_TRUE); + vgCopyPixels(100, 100, 50, 50, 50, 50); + vgClear(150, 150, 50, 50); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/coord.c b/progs/egl/openvg/trivial/coord.c new file mode 100644 index 0000000000..81f7cb6fc9 --- /dev/null +++ b/progs/egl/openvg/trivial/coord.c @@ -0,0 +1,66 @@ +#include "eglcommon.h" + +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint fill; + + +static void +init(void) +{ + /* Absent VG_CLOSE_PATH */ + VGubyte commands[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, + VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS}; + VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ + VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ + VGfloat coords[] = {-16.0f, -16.0f, 0.0f, -16.0f, 0.0f, 0.0f, -16.0f, 0.0f, + 0.0f, 0.0f, 16.0f, 0.0f, 16.0f, 16.0f, 0.0f, 16.0f}; + + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); + vgLoadIdentity(); + vgTranslate(32.0f, 32.0f); + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, + VG_PATH_CAPABILITY_ALL); + if (path == VG_INVALID_HANDLE) + return; + fill = vgCreatePaint(); + if (fill == VG_INVALID_HANDLE) { + vgDestroyPath(path); + return; + } + vgAppendPathData(path, 8, commands, coords); + vgSetPaint(fill, VG_FILL_PATH); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, fillColor); + vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_FILL_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/dash.c b/progs/egl/openvg/trivial/dash.c new file mode 100644 index 0000000000..2e84ddbd4e --- /dev/null +++ b/progs/egl/openvg/trivial/dash.c @@ -0,0 +1,95 @@ +#include "eglcommon.h" + +#include +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint fill; + +VGint cap_style = VG_CAP_BUTT; + +static void +init(void) +{ + static const VGubyte cmds[] = {VG_MOVE_TO_ABS, + VG_LINE_TO_ABS, + VG_LINE_TO_ABS + }; +#if 1 + static const VGfloat coords[] = {100, 100, 150, 100, + 150, 200 + }; +#else + static const VGfloat coords[] = {100, 20, 100, 220, + }; +#endif + VGfloat dash_pattern[2] = { 20.f, 20.f }; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 3, cmds, coords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSetf(VG_STROKE_LINE_WIDTH, 20); + vgSeti(VG_STROKE_CAP_STYLE, cap_style); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); + vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern); + vgSetf(VG_STROKE_DASH_PHASE, 0.0f); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_STROKE_PATH); + + vgFlush(); +} + +static int key_press(unsigned key) +{ + switch(key) { + case XK_c: + case XK_C: + ++cap_style; + if (cap_style > VG_CAP_SQUARE) + cap_style = VG_CAP_BUTT; + switch(cap_style) { + case VG_CAP_BUTT: + fprintf(stderr, "Cap style 'butt'\n"); + break; + case VG_CAP_ROUND: + fprintf(stderr, "Cap style 'round'\n"); + break; + case VG_CAP_SQUARE: + fprintf(stderr, "Cap style 'square'\n"); + break; + } + vgSeti(VG_STROKE_CAP_STYLE, cap_style); + break; + default: + break; + } + + return VG_TRUE; +} + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, key_press); +} diff --git a/progs/egl/openvg/trivial/eglcommon.c b/progs/egl/openvg/trivial/eglcommon.c new file mode 100644 index 0000000000..0316e596c6 --- /dev/null +++ b/progs/egl/openvg/trivial/eglcommon.c @@ -0,0 +1,289 @@ +#include "eglcommon.h" + + +#include +#include +#include +#include +#include +#include +#include +#include +#include /* using full OpenGL for now */ +#include + + +static init_func init = 0; +static draw_func draw = 0; +static reshape_func reshape = 0; +static key_func keyPress = 0; +static VGint width = 300, height = 300; + + +void set_window_size(int w, int h) +{ + width = w; + height = h; +} + +/* + * Create an RGB, double-buffered X window. + * Return the window and context handles. + */ +static void +make_x_window(Display *x_dpy, EGLDisplay egl_dpy, + const char *name, + int x, int y, int width, int height, + Window *winRet, + EGLContext *ctxRet, + EGLSurface *surfRet) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, + EGL_NONE + }; + + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLContext ctx; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( x_dpy ); + root = RootWindow( x_dpy, scrnum ); + + if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || + !num_configs) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + + if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( x_dpy, root, 0, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(x_dpy, win, &sizehints); + XSetStandardProperties(x_dpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + eglBindAPI(EGL_OPENVG_API); + + ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); + if (!ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); + + if (!*surfRet) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + *winRet = win; + *ctxRet = ctx; +} + +static void +event_loop(Display *dpy, Window win, + EGLDisplay egl_dpy, EGLSurface egl_surf) +{ + while (1) { + int redraw = 0; + XEvent event; + + XNextEvent(dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + if (reshape) { + width = event.xconfigure.width; + height = event.xconfigure.height; + reshape(event.xconfigure.width, event.xconfigure.height); + } + break; + case KeyPress: + { + char buffer[10]; + int r, code; + code = XLookupKeysym(&event.xkey, 0); + if (!keyPress || !keyPress(code)) { + r = XLookupString(&event.xkey, buffer, sizeof(buffer), + NULL, NULL); + if (buffer[0] == 27) { + /* escape */ + return; + } + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + if (redraw) { + draw(); + eglSwapBuffers(egl_dpy, egl_surf); + } + } +} + +int window_width(void) +{ + return width; +} + +int window_height(void) +{ + return height; +} + +static void +usage(void) +{ + printf("Usage:\n"); + printf(" -display set the display to run on\n"); + printf(" -info display OpenGL renderer info\n"); +} + +int run(int argc, char **argv, + init_func init_f, + reshape_func resh_f, + draw_func draw_f, + key_func key_f) +{ + const int winWidth = width, winHeight = height; + Display *x_dpy; + Window win; + EGLSurface egl_surf; + EGLContext egl_ctx; + EGLDisplay egl_dpy; + char *dpyName = NULL; + GLboolean printInfo = GL_FALSE; + EGLint egl_major, egl_minor; + int i; + const char *s; + + init = init_f; + draw = draw_f; + reshape = resh_f; + keyPress = key_f; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) { + dpyName = argv[i+1]; + i++; + } + else if (strcmp(argv[i], "-info") == 0) { + printInfo = GL_TRUE; + } + } + + x_dpy = XOpenDisplay(dpyName); + if (!x_dpy) { + printf("Error: couldn't open display %s\n", + dpyName ? dpyName : getenv("DISPLAY")); + return -1; + } + + egl_dpy = eglGetDisplay(x_dpy); + if (!egl_dpy) { + printf("Error: eglGetDisplay() failed\n"); + return -1; + } + + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { + printf("Error: eglInitialize() failed\n"); + return -1; + } + + s = eglQueryString(egl_dpy, EGL_VERSION); + printf("EGL_VERSION = %s\n", s); + + make_x_window(x_dpy, egl_dpy, + "OpenVG Example", 0, 0, winWidth, winHeight, + &win, &egl_ctx, &egl_surf); + + XMapWindow(x_dpy, win); + if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { + printf("Error: eglMakeCurrent() failed\n"); + return -1; + } + + if (printInfo) { + printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); + printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); + printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); + } + + if (init) + init(); + + /* Set initial projection/viewing transformation. + * We can't be sure we'll get a ConfigureNotify event when the window + * first appears. + */ + if (reshape) + reshape(winWidth, winHeight); + + event_loop(x_dpy, win, egl_dpy, egl_surf); + + eglMakeCurrent(egl_dpy, 0, 0, 0); + eglDestroyContext(egl_dpy, egl_ctx); + eglDestroySurface(egl_dpy, egl_surf); + eglTerminate(egl_dpy); + + + XDestroyWindow(x_dpy, win); + XCloseDisplay(x_dpy); + + return 0; +} + diff --git a/progs/egl/openvg/trivial/eglcommon.h b/progs/egl/openvg/trivial/eglcommon.h new file mode 100644 index 0000000000..958dae9f98 --- /dev/null +++ b/progs/egl/openvg/trivial/eglcommon.h @@ -0,0 +1,20 @@ +#ifndef EGLCOMMON_H +#define EGLCOMMON_H + +typedef void (*init_func)(); +typedef void (*reshape_func)(int, int); +typedef void (*draw_func)(); +typedef int (*key_func)(unsigned key); + + +void set_window_size(int width, int height); +int window_width(void); +int window_height(void); + +int run(int argc, char **argv, + init_func init, + reshape_func resh, + draw_func draw, + key_func key); + +#endif diff --git a/progs/egl/openvg/trivial/ellipse.c b/progs/egl/openvg/trivial/ellipse.c new file mode 100644 index 0000000000..4c7d4904f8 --- /dev/null +++ b/progs/egl/openvg/trivial/ellipse.c @@ -0,0 +1,84 @@ +#include "eglcommon.h" + +#include + +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.0, 0.0, 0.0, 1.0}; + +VGPath path; +VGPaint paint; + +static void +init(void) +{ + VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ + VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ + static const VGubyte segments[4] = {VG_MOVE_TO_ABS, + VG_SCCWARC_TO_ABS, + VG_SCCWARC_TO_ABS, + VG_CLOSE_PATH}; + VGfloat data[12]; + const VGfloat cx = 0, cy=29, width=80, height=40; + const VGfloat hw = width * 0.5f; + const VGfloat hh = height * 0.5f; + + data[0] = cx + hw; + data[1] = cy; + data[2] = hw; + data[3] = hh; + data[4] = 0; + data[5] = cx - hw; + data[6] = cy; + data[7] = hw; + data[8] = hh; + data[9] = 0; + data[10] = data[0]; + data[11] = cy; + + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); + if (path == VG_INVALID_HANDLE) { + return; + } + paint = vgCreatePaint(); + if (paint == VG_INVALID_HANDLE) { + vgDestroyPath(path); + return; + } + + vgAppendPathData(path, 4, segments, data); + vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor); + vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + vgSetPaint(paint, VG_FILL_PATH); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgLoadIdentity(); + vgTranslate(50, 21); + vgDrawPath(path, VG_FILL_PATH); + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(100, 100); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/filter.c b/progs/egl/openvg/trivial/filter.c new file mode 100644 index 0000000000..d96257a933 --- /dev/null +++ b/progs/egl/openvg/trivial/filter.c @@ -0,0 +1,107 @@ +#include "eglcommon.h" + +#include + +#include +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; + +VGImage srcImg; +VGImage dstImg; + +VGPaint fill; + +VGfloat bgCol[4] = {0.906f, 0.914f, 0.761f, 1.0f}; + +static void +init(void) +{ + VGfloat red[4]; + VGfloat grey[4]; + VGfloat orange[4]; + VGfloat blue[4]; + VGfloat black[4]; + VGfloat white[4]; + VGshort transKernel[49] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + red[0] = 0.6710f; + red[1] = 0.1060f; + red[2] = 0.1330f; + red[3] = 1.0f; + + grey[0] = 0.6347f; + grey[1] = 0.6561f; + grey[2] = 0.6057f; + grey[3] = 1.0f; + + orange[0] = 1.0000f; + orange[1] = 0.8227f; + orange[2] = 0.5057f; + orange[3] = 1.0f; + + blue[0] = 0.0000f; + blue[1] = 0.6908f; + blue[2] = 0.8595f; + blue[3] = 1.0f; + + black[0] = 0; + black[1] = 0; + black[2] = 0; + black[3] = 1.0f; + + white[0] = 1; + white[1] = 1; + white[2] = 1; + white[3] = 1.0f; + + vgSetfv(VG_TILE_FILL_COLOR, 4, blue); + + vgSeti(VG_FILTER_CHANNEL_MASK, 14); + + /* Setup images */ + srcImg = vgCreateImage(VG_sRGBA_8888, 32, 32, + VG_IMAGE_QUALITY_NONANTIALIASED); + dstImg = vgCreateImage(VG_sRGBA_8888, 32, 32, + VG_IMAGE_QUALITY_NONANTIALIASED); + + vgSetfv(VG_CLEAR_COLOR, 4, black); + vgClearImage(srcImg, 0, 0, 32, 32); + vgSetfv(VG_CLEAR_COLOR, 4, red); + vgClearImage(srcImg, 3, 3, 27, 27); + + vgSetfv(VG_CLEAR_COLOR, 4, orange); + vgClearImage(dstImg, 0, 0, 32, 32); + + transKernel[8] = 1; + vgConvolve(dstImg, srcImg, 3, 3, 3, 0, transKernel, + 1, 0, VG_TILE_FILL); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgSetfv(VG_CLEAR_COLOR, 4, bgCol); + vgClear(0, 0, window_width(), window_height()); + vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); + vgLoadIdentity(); + vgTranslate(10, 10); + vgDrawImage(dstImg); + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/gradorigin.c b/progs/egl/openvg/trivial/gradorigin.c new file mode 100644 index 0000000000..b376263fe5 --- /dev/null +++ b/progs/egl/openvg/trivial/gradorigin.c @@ -0,0 +1,98 @@ +#include "eglcommon.h" + +#include + +#include +#include + +static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; + +static VGPath path; +static VGPaint fill; + +VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; + +static void +init(void) +{ + VGubyte commands[5] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH}; + VGfloat coords[8] = {0.0f,0.0f, 32.0f,0.0f, 32.0f,32.0f, 0.0f,32.0f }; + + VGfloat rampStop[20] = {-0.5f, 1.0f, 1.0f, 1.0f, 1.0f, + 0.25f, 1.0f, 0.0f, 0.0f, 1.0f, + 0.75f, 0.0f, 0.0f, 1.0f, 1.0f, + 1.5f, 0.0f, 0.0f, 0.0f, 0.0f}; + + VGfloat defaultColor[] = {1.0f, 1.0f, 1.0f, 1.0f}; + VGfloat linearGradient[4] = {0.0f, 0.0f, 0.0f, 32.0f}; + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); + if (path == VG_INVALID_HANDLE) + return; + + fill = vgCreatePaint(); + if (fill == VG_INVALID_HANDLE) { + vgDestroyPath(path); + return; + } + + vgSetfv(VG_CLEAR_COLOR, 4, defaultColor); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + + vgAppendPathData(path, 5, commands, coords); + + vgSetPaint(fill, VG_FILL_PATH); + vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT); + vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, + VG_COLOR_RAMP_SPREAD_REPEAT); + vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient); + vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + + vgDrawPath(path, VG_FILL_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + if (argc > 1) { + const char *arg = argv[1]; + if (!strcmp("-pad", arg)) + spread = VG_COLOR_RAMP_SPREAD_PAD; + else if (!strcmp("-repeat", arg)) + spread = VG_COLOR_RAMP_SPREAD_REPEAT; + else if (!strcmp("-reflect", arg)) + spread = VG_COLOR_RAMP_SPREAD_REFLECT; + } + + switch(spread) { + case VG_COLOR_RAMP_SPREAD_PAD: + printf("Using spread mode: pad\n"); + break; + case VG_COLOR_RAMP_SPREAD_REPEAT: + printf("Using spread mode: repeat\n"); + break; + case VG_COLOR_RAMP_SPREAD_REFLECT: + printf("Using spread mode: reflect\n"); + } + + set_window_size(200, 200); + + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/lineto.c b/progs/egl/openvg/trivial/lineto.c new file mode 100644 index 0000000000..94e2981811 --- /dev/null +++ b/progs/egl/openvg/trivial/lineto.c @@ -0,0 +1,56 @@ +#include "eglcommon.h" + +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint fill; + + +static void +init(void) +{ + static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f}; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 5, sqrCmds, sqrCoords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSetf(VG_STROKE_LINE_WIDTH, 10); + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); + vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgSeti(VG_MATRIX_MODE, VG_MATRIX_STROKE_PAINT_TO_USER); + vgLoadIdentity(); + vgScale(2.25, 2.25); + vgDrawPath(path, VG_STROKE_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/lingrad.c b/progs/egl/openvg/trivial/lingrad.c new file mode 100644 index 0000000000..bcaad1f101 --- /dev/null +++ b/progs/egl/openvg/trivial/lingrad.c @@ -0,0 +1,87 @@ +#include "eglcommon.h" + +#include + +#include +#include + +static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; + +static VGPath path; +static VGPaint fill; + +VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; + +static void +init(void) +{ + static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f}; + + VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f, + 0.33f, 1.0f, 0.0f, 0.0f, 1.0f, + 0.66f, 0.0f, 1.0f, 0.0f, 1.0f, + 1.00f, 0.0f, 0.0f, 1.0f, 1.0f}; + VGfloat linearGradient[4] = {100.0f, 100.0f, 300.0f, 300.0f}; + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 5, sqrCmds, sqrCoords); + + fill = vgCreatePaint(); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT); + vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread); + vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient); + vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + + vgDrawPath(path, VG_FILL_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + if (argc > 1) { + const char *arg = argv[1]; + if (!strcmp("-pad", arg)) + spread = VG_COLOR_RAMP_SPREAD_PAD; + else if (!strcmp("-repeat", arg)) + spread = VG_COLOR_RAMP_SPREAD_REPEAT; + else if (!strcmp("-reflect", arg)) + spread = VG_COLOR_RAMP_SPREAD_REFLECT; + } + + switch(spread) { + case VG_COLOR_RAMP_SPREAD_PAD: + printf("Using spread mode: pad\n"); + break; + case VG_COLOR_RAMP_SPREAD_REPEAT: + printf("Using spread mode: repeat\n"); + break; + case VG_COLOR_RAMP_SPREAD_REFLECT: + printf("Using spread mode: reflect\n"); + } + + set_window_size(400, 400); + + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/lookup.c b/progs/egl/openvg/trivial/lookup.c new file mode 100644 index 0000000000..a103ba4488 --- /dev/null +++ b/progs/egl/openvg/trivial/lookup.c @@ -0,0 +1,71 @@ +#include "eglcommon.h" + +#include + +#include +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; +VGfloat clearColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ +VGImage parent; + +VGPaint fill; + +static void +init(void) +{ + VGImage child1, child2; + VGubyte *data; + VGuint LUT[256]; + VGint i; + + data = (VGubyte *)malloc(sizeof(VGubyte)*window_width()*window_height()); + + for (i=0;i + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint fill; + + +static void +init(void) +{ + static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f}; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 5, sqrCmds, sqrCoords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSetf(VG_STROKE_LINE_WIDTH, 10); + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); + vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); + + vgSeti(VG_MASKING, VG_TRUE); + + vgMask(VG_INVALID_HANDLE, VG_CLEAR_MASK, + 25, 25, 100, 100); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_FILL_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/mask4.c b/progs/egl/openvg/trivial/mask4.c new file mode 100644 index 0000000000..fe6db39648 --- /dev/null +++ b/progs/egl/openvg/trivial/mask4.c @@ -0,0 +1,132 @@ +#include "eglcommon.h" + +#include +#include +#include +#include +#include + +#include + +//VGint x_pos = -10, y_pos = -10; +VGint x_pos = 0, y_pos = 4; +VGint img_width = 120, img_height = 120; + +static void RectToPath(VGPath path, VGfloat x, VGfloat y, VGfloat width, VGfloat height) +{ + static const VGubyte segments[5] = {VG_MOVE_TO_ABS, + VG_HLINE_TO_ABS, + VG_VLINE_TO_ABS, + VG_HLINE_TO_ABS, + VG_CLOSE_PATH}; + VGfloat data[5]; + + data[0] = x; + data[1] = y; + data[2] = x + width; + data[3] = y + height; + data[4] = x; + + vgAppendPathData(path, 5, segments, data); +} + +static void +init(void) +{ +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +int key_press(unsigned key) +{ + switch(key) { + case XK_Right: + x_pos +=1; + break; + case XK_Left: + x_pos -=1; + break; + case XK_Up: + y_pos +=1; + break; + case XK_Down: + y_pos -=1; + break; + case 'a': + img_width -= 5; + img_height -= 5; + break; + case 's': + img_width += 5; + img_height += 5; + break; + default: + break; + } + fprintf(stderr, "Posi = %dx%d\n", x_pos, y_pos); + fprintf(stderr, "Size = %dx%d\n", img_width, img_height); + return VG_FALSE; +} + +static void +draw(void) +{ + VGint WINDSIZEX = window_width(); + VGint WINDSIZEY = window_height(); + + VGPaint fill; + VGPath box; + VGfloat color[4] = {1.f, 0.f, 0.f, 1.f}; + VGfloat bgCol[4] = {0.7f, 0.7f, 0.7f, 1.0f}; + VGfloat transCol[4] = {0.f, 0.f, 0.f, 0.f}; + VGImage image = vgCreateImage(VG_sRGBA_8888, img_width, img_height, + VG_IMAGE_QUALITY_NONANTIALIASED); + + /* Background clear */ + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + box = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); + /* Rectangle to cover completely 16x16 pixel area. */ + RectToPath(box, 0, 0, 64, 64); + + vgSetfv(VG_CLEAR_COLOR, 4, transCol); + vgClearImage(image, 0, 0, img_width, img_height); + vgSetfv(VG_CLEAR_COLOR, 4, color); + vgClearImage(image, 10, 10, 12, 12); + //vgImageSubData(image, pukki_64x64_data, pukki_64x64_stride, + // VG_sRGBA_8888, 0, 0, 32, 32); + vgSeti(VG_MASKING, VG_TRUE); + vgLoadIdentity(); + + vgSetfv(VG_CLEAR_COLOR, 4, bgCol); + vgClear(0, 0, WINDSIZEX, WINDSIZEY); + + + vgMask(image, VG_FILL_MASK, 0, 0, window_width(), window_height()); + vgMask(image, VG_SET_MASK, x_pos, y_pos, 100, 100); + + vgDrawPath(box, VG_FILL_PATH); + + //vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); + //vgTranslate(-10, -10); + //vgDrawImage(image); + + + vgDestroyPaint(fill); + vgDestroyPath(box); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, key_press); +} diff --git a/progs/egl/openvg/trivial/path3.c b/progs/egl/openvg/trivial/path3.c new file mode 100644 index 0000000000..5ce600f65a --- /dev/null +++ b/progs/egl/openvg/trivial/path3.c @@ -0,0 +1,77 @@ +#include "eglcommon.h" + +#include +#include +#include +#include +#include + +static void +init(void) +{ +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + + +static void +draw(void) +{ + VGint WINDSIZEX = window_width(); + VGint WINDSIZEY = window_height(); + VGPath path; + VGPaint paint; + + VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 0.0f};/* white color */ + VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ + +#if 1 + VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_LCWARC_TO_ABS, VG_SCWARC_TO_ABS, VG_CLOSE_PATH}; +#else + VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_SCCWARC_TO_ABS, VG_LCCWARC_TO_ABS,VG_CLOSE_PATH}; +#endif + VGfloat coords[] = {32.0f, 0.0f, + -32.0f, -32.0f, 0.0f, 64.0f, 32.0f, + -32.0f, -32.0f, 0.0f, 32.0f, 0.0f}; + + + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + vgClear(0, 0, WINDSIZEX, WINDSIZEY); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + + vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); + vgLoadIdentity(); + //vgTranslate(32.0f, 32.0f); + + path = vgCreatePath( VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL ); + if ( path == VG_INVALID_HANDLE ) { + return; + } + paint = vgCreatePaint(); + if ( paint == VG_INVALID_HANDLE ) { + vgDestroyPath(path); + return; + } + + vgAppendPathData(path, 4, commands, coords); + vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor); + vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + vgSetPaint(paint, VG_FILL_PATH); + vgDrawPath(path, VG_FILL_PATH); + + vgDestroyPath(path); + vgDestroyPaint(paint); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/radialgrad.c b/progs/egl/openvg/trivial/radialgrad.c new file mode 100644 index 0000000000..cf3b1d522d --- /dev/null +++ b/progs/egl/openvg/trivial/radialgrad.c @@ -0,0 +1,99 @@ +#include "eglcommon.h" + +#include + +#include +#include + +static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; + +static VGPath path; +static VGPaint fill; + + +VGfloat centeredGradient[5] = {200.0f, 200.0f, 200.0f, 200.0f, 100}; +VGfloat noncenteredGradient[5] = {200.0f, 200.0f, 250.0f, 250.0f, 100}; +VGfloat *radialGradient = centeredGradient; + +VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; + +static void +init(void) +{ + static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f}; + + VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f, + 0.33f, 1.0f, 0.0f, 0.0f, 1.0f, + 0.66f, 0.0f, 1.0f, 0.0f, 1.0f, + 1.00f, 0.0f, 0.0f, 1.0f, 1.0f}; + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 5, sqrCmds, sqrCoords); + + fill = vgCreatePaint(); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_RADIAL_GRADIENT); + vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread); + vgSetParameterfv(fill, VG_PAINT_RADIAL_GRADIENT, 5, radialGradient); + vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + + vgDrawPath(path, VG_FILL_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + VGint i; + for (i = 1; i < argc; ++i) { + const char *arg = argv[i]; + if (!strcmp("-pad", arg)) + spread = VG_COLOR_RAMP_SPREAD_PAD; + else if (!strcmp("-repeat", arg)) + spread = VG_COLOR_RAMP_SPREAD_REPEAT; + else if (!strcmp("-reflect", arg)) + spread = VG_COLOR_RAMP_SPREAD_REFLECT; + else if (!strcmp("-center", arg)) { + printf("Centered radial gradient\n"); + radialGradient = centeredGradient; + } else if (!strcmp("-noncenter", arg)) { + printf("Non centered radial gradient\n"); + radialGradient = noncenteredGradient; + } + } + + switch(spread) { + case VG_COLOR_RAMP_SPREAD_PAD: + printf("Using spread mode: pad\n"); + break; + case VG_COLOR_RAMP_SPREAD_REPEAT: + printf("Using spread mode: repeat\n"); + break; + case VG_COLOR_RAMP_SPREAD_REFLECT: + printf("Using spread mode: reflect\n"); + } + + set_window_size(400, 400); + + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/readpixels.c b/progs/egl/openvg/trivial/readpixels.c new file mode 100644 index 0000000000..c8e286db9a --- /dev/null +++ b/progs/egl/openvg/trivial/readpixels.c @@ -0,0 +1,75 @@ +#include "eglcommon.h" + +#include + +#include +#include +#include +#include + +float red_color[4] = {1.0, 0.0, 0.0, 1.0}; +float blue_color[4] = {0.0, 0.0, 1.0, 1.0}; +VGint *data; + +static void +init(void) +{ + data = malloc(sizeof(VGint)*2048*2048); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + static const VGint red_pixel = 255 << 24 | 255 << 16 | 0 << 8 | 0; + static const VGint blue_pixel = 255 << 24 | 0 << 16 | 0 << 8 | 255; + VGint i; + + vgSetfv(VG_CLEAR_COLOR, 4, red_color); + vgClear(0, 0, window_width(), window_height()); + vgFlush(); + + memset(data, 0, window_width() * window_height() * sizeof(VGint)); + + vgReadPixels(data, window_width() * sizeof(VGint), + VG_lARGB_8888, + 0, 0, window_width(), window_height()); + + fprintf(stderr, "Red 0 = 0x%x and at 600 = 0x%x\n", + data[0], data[600]); + for (i = 0; i < window_width() * window_height(); ++i) { + assert(data[i] == red_pixel); + } + + vgSetfv(VG_CLEAR_COLOR, 4, blue_color); + vgClear(50, 50, 50, 50); + vgFlush(); + + memset(data, 0, window_width() * window_height() * sizeof(VGint)); + + vgReadPixels(data, 50 * sizeof(VGint), + VG_lARGB_8888, + 50, 50, 50, 50); + + fprintf(stderr, "Blue 0 = 0x%x and at 100 = 0x%x\n", + data[0], data[100]); + for (i = 0; i < 50 * 50; ++i) { + assert(data[i] == blue_pixel); + } +} + + +int main(int argc, char **argv) +{ + int ret = run(argc, argv, init, reshape, + draw, 0); + + free(data); + return ret; +} diff --git a/progs/egl/openvg/trivial/roundedrect.c b/progs/egl/openvg/trivial/roundedrect.c new file mode 100644 index 0000000000..c80a4ed299 --- /dev/null +++ b/progs/egl/openvg/trivial/roundedrect.c @@ -0,0 +1,67 @@ +#include "eglcommon.h" + +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.9, 0.1, 0.1, 0.8}; + +VGPath path; +VGPaint fill; + + +static void +init(void) +{ + static const VGubyte sqrCmds[10] = {VG_MOVE_TO_ABS, + VG_LINE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_LINE_TO_ABS, + VG_CUBIC_TO_ABS, + VG_CLOSE_PATH}; + static const VGfloat sqrCoords[] = { + 45.885571, 62.857143, + 154.11442, 62.857143, + 162.1236, 62.857143, 168.57142, 70.260744, 168.57142, 79.457144, + 168.57142, 123.4, + 168.57142, 132.5964, 162.1236, 140, 154.11442, 140, + 45.885571, 140, + 37.876394, 140, 31.428572, 132.5964, 31.428572, 123.4, + 31.428572, 79.457144, + 31.428572, 70.260744, 37.876394,62.857143, 45.885571,62.857143 + }; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 10, sqrCmds, sqrCoords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSetf(VG_STROKE_LINE_WIDTH, 6); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_STROKE_PATH); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/star-nonzero.c b/progs/egl/openvg/trivial/star-nonzero.c new file mode 100644 index 0000000000..012fbd3929 --- /dev/null +++ b/progs/egl/openvg/trivial/star-nonzero.c @@ -0,0 +1,55 @@ +#include "eglcommon.h" + +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8}; + +VGPath path; +VGPaint fill; + + +static void +init(void) +{ + static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, + VG_LINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat coords[] = { 0, 200, + 300, 200, + 50, 0, + 150, 300, + 250, 0}; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 6, cmds, coords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSeti(VG_FILL_RULE, VG_NON_ZERO); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/star-oddeven.c b/progs/egl/openvg/trivial/star-oddeven.c new file mode 100644 index 0000000000..17311cf720 --- /dev/null +++ b/progs/egl/openvg/trivial/star-oddeven.c @@ -0,0 +1,102 @@ +#include "eglcommon.h" + +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8}; +const VGfloat black_color[4] = {0.0, 0.0, 0.0, 1.0}; + +VGPath path; +VGPaint fill; + + +static void draw_point(VGfloat x, VGfloat y) +{ + + static const VGubyte cmds[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, + VG_LINE_TO_ABS, VG_CLOSE_PATH}; + const VGfloat coords[] = { x - 2, y - 2, + x + 2, y - 2, + x + 2, y + 2, + x - 2, y + 2}; + VGPath path; + VGPaint fill; + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_ALL); + vgAppendPathData(path, 5, cmds, coords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, black_color); + vgSetPaint(fill, VG_FILL_PATH); + + vgDrawPath(path, VG_FILL_PATH); + + vgDestroyPath(path); + vgDestroyPaint(fill); +} + +static void draw_marks(VGPath path) +{ + VGfloat point[2], tangent[2]; + int i = 0; + + for (i = 0; i < 1300; i += 50) { + vgPointAlongPath(path, 0, 6, i, + point + 0, point + 1, + tangent + 0, tangent + 1); + draw_point(point[0], point[1]); + } +} + +static void +init(void) +{ + static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, + VG_LINE_TO_ABS, VG_CLOSE_PATH}; + static const VGfloat coords[] = { 0, 200, + 300, 200, + 50, 0, + 150, 300, + 250, 0}; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_ALL); + vgAppendPathData(path, 6, cmds, coords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + VGfloat point[2], tangent[2]; + int i = 0; + + vgClear(0, 0, window_width(), window_height()); + + vgSetPaint(fill, VG_FILL_PATH); + vgDrawPath(path, VG_FILL_PATH); + + draw_marks(path); + + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/egl/openvg/trivial/stroke.c b/progs/egl/openvg/trivial/stroke.c new file mode 100644 index 0000000000..58ae5b7bc8 --- /dev/null +++ b/progs/egl/openvg/trivial/stroke.c @@ -0,0 +1,116 @@ +#include "eglcommon.h" + +#include +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint fill; + +VGint cap_style = VG_CAP_BUTT; +VGint join_style = VG_JOIN_MITER; + +static void +init(void) +{ +#if 0 + static const VGubyte cmds[] = {VG_MOVE_TO_ABS, + VG_CUBIC_TO_ABS, + }; + static const VGfloat coords[] = {30, 30, 264, 0, 0, 264, 234, 234 + }; +#else + static const VGubyte cmds[] = {VG_MOVE_TO_ABS, + VG_LINE_TO_ABS, + VG_LINE_TO_ABS + }; + static const VGfloat coords[] = {30, 30, 202, 30, 150, 224 + }; +#endif + VGfloat dash_pattern[2] = { 20.f, 20.f }; + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO); + vgAppendPathData(path, 3, cmds, coords); + + fill = vgCreatePaint(); + vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); + vgSetPaint(fill, VG_FILL_PATH); + + vgSetfv(VG_CLEAR_COLOR, 4, white_color); + vgSetf(VG_STROKE_LINE_WIDTH, 20); + vgSeti(VG_STROKE_CAP_STYLE, cap_style); + vgSeti(VG_STROKE_JOIN_STYLE, join_style); + vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern); + vgSetf(VG_STROKE_DASH_PHASE, 0.0f); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_STROKE_PATH); + + vgFlush(); +} + +static int key_press(unsigned key) +{ + switch(key) { + case XK_c: + case XK_C: + ++cap_style; + if (cap_style > VG_CAP_SQUARE) + cap_style = VG_CAP_BUTT; + switch(cap_style) { + case VG_CAP_BUTT: + fprintf(stderr, "Cap style 'butt'\n"); + break; + case VG_CAP_ROUND: + fprintf(stderr, "Cap style 'round'\n"); + break; + case VG_CAP_SQUARE: + fprintf(stderr, "Cap style 'square'\n"); + break; + } + vgSeti(VG_STROKE_CAP_STYLE, cap_style); + break; + case XK_j: + case XK_J: + ++join_style; + if (join_style > VG_JOIN_BEVEL) + join_style = VG_JOIN_MITER; + switch(join_style) { + case VG_JOIN_MITER: + fprintf(stderr, "Join style 'miter'\n"); + break; + case VG_JOIN_ROUND: + fprintf(stderr, "Join style 'round'\n"); + break; + case VG_JOIN_BEVEL: + fprintf(stderr, "Join style 'bevel'\n"); + break; + } + vgSeti(VG_STROKE_JOIN_STYLE, join_style); + break; + default: + break; + } + + return VG_TRUE; +} + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, key_press); +} diff --git a/progs/egl/openvg/trivial/stroke2.c b/progs/egl/openvg/trivial/stroke2.c new file mode 100644 index 0000000000..ce950c1886 --- /dev/null +++ b/progs/egl/openvg/trivial/stroke2.c @@ -0,0 +1,207 @@ +#include "eglcommon.h" + +#include +#include +#include + +VGPaint stroke; +VGPath target; +VGPath lines; + +VGfloat xform[9]; +VGfloat color1[4]; +VGfloat color2[4]; +VGfloat bgCol[4]; + +static void +init(void) +{ + VGubyte lineCmds[6]; + VGfloat lineCoords[8]; + VGfloat arcCoords[5]; + VGubyte sccCmd[1]; + VGubyte scCmd[1]; + VGubyte lccCmd[1]; + VGubyte lcCmd[1]; + VGubyte moveCmd[1]; + VGfloat moveCoords[2]; + VGint i; + + bgCol[0] = 1.0f; + bgCol[1] = 1.0f; + bgCol[2] = 1.0f; + bgCol[3] = 1.0f; + + vgSetfv(VG_CLEAR_COLOR, 4, bgCol); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + + stroke = vgCreatePaint(); + /* Red */ + color1[0] = 1.0f; + color1[1] = 0.0f; + color1[2] = 0.0f; + color1[3] = 1.0f; + + /* Orange */ + color2[0] = 1.0000f; + color2[1] = 1.0f; + color2[2] = 0.0f; + color2[3] = 1.0f; + vgSetPaint(stroke, VG_STROKE_PATH); + + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE); + + { + VGfloat temp[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + for (i = 0; i < 9; i++) + { + xform[i] = temp[i]; + } + } + vgGetMatrix(xform); + + target = vgCreatePath(VG_PATH_FORMAT_STANDARD, + VG_PATH_DATATYPE_F, 1, 0, 0, 0, VG_PATH_CAPABILITY_TRANSFORM_TO); + +#if 0 + /* Line path */ + { + VGubyte temp[6] = {VG_MOVE_TO_ABS, VG_VLINE_TO_REL, + VG_MOVE_TO_ABS, VG_VLINE_TO_REL, + VG_HLINE_TO_REL, VG_VLINE_TO_REL}; + for (i = 0; i < 6; i++) + { + lineCmds[i] = temp[i]; + } + } + { + VGfloat temp[8] = {0.5f, 0.8f, -0.6f, 0.28f, 0.6f, -0.4f, 0.44f, 0.4f}; + for (i = 0; i < 8; i++) + { + lineCoords[i] = temp[i] * window_width(); + } + } +#else + { + VGfloat temp[5] = {0.35f, 0.15f, 29, 0.3f, 0.4f}; + for (i = 0; i < 5; i++) + { + arcCoords[i] = temp[i] * window_width(); + } + arcCoords[2] = 29; + } + + { + VGubyte temp[1] = {VG_SCCWARC_TO_ABS}; + for (i = 0; i < 1; i++) + { + sccCmd[i] = temp[i]; + } + } + { + VGubyte temp[1] = {VG_SCWARC_TO_ABS}; + for (i = 0; i < 1; i++) + { + scCmd[i] = temp[i]; + } + } + { + VGubyte temp[1] = {VG_LCCWARC_TO_ABS}; + for (i = 0; i < 1; i++) + { + lccCmd[i] = temp[i]; + } + } + { + VGubyte temp[1] = {VG_LCWARC_TO_ABS}; + for (i = 0; i < 1; i++) + { + lcCmd[i] = temp[i]; + } + } + + { + VGubyte temp[1] = {VG_MOVE_TO_ABS}; + for (i = 0; i < 1; i++) + { + moveCmd[i] = temp[i]; + } + } + { + VGfloat temp[2] = {0.7f, 0.6f}; + for (i = 0; i < 2; i++) + { + moveCoords[i] = temp[i] * window_width(); + } + } +#endif + + lines = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, + 0, 0, 0, + VG_PATH_CAPABILITY_APPEND_TO| + VG_PATH_CAPABILITY_TRANSFORM_FROM); +#if 0 + vgAppendPathData(lines, 6, lineCmds, lineCoords); +#else + vgAppendPathData(lines, 1, moveCmd, moveCoords); + vgAppendPathData(lines, 1, sccCmd, arcCoords); + vgAppendPathData(lines, 1, moveCmd, moveCoords); + vgAppendPathData(lines, 1, scCmd, arcCoords); + vgAppendPathData(lines, 1, moveCmd, moveCoords); + vgAppendPathData(lines, 1, lccCmd, arcCoords); + vgAppendPathData(lines, 1, moveCmd, moveCoords); + vgAppendPathData(lines, 1, lcCmd, arcCoords); +#endif + + vgLoadIdentity(); + vgTranslate(0.25f * window_width(), 0.25f * window_height()); + vgRotate(30); + vgTranslate(-0.25f * window_width(), -0.25f * window_height()); + vgTransformPath(target, lines);} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgLoadMatrix(xform); + vgLoadIdentity(); + vgTranslate(0.25f * window_width(), 0.25f * window_height()); + vgRotate(30); + vgTranslate(-0.25f * window_width(), -0.25f * window_height()); + vgSetf(VG_STROKE_LINE_WIDTH, 7); + vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color1); + vgDrawPath(lines, VG_STROKE_PATH); + + vgLoadMatrix(xform); + vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color2); + vgSetf(VG_STROKE_LINE_WIDTH, 3); + vgDrawPath(target, VG_STROKE_PATH); +} + +static int key_press(unsigned key) +{ + switch(key) { + case XK_c: + case XK_C: + break; + case XK_j: + case XK_J: + break; + default: + break; + } + + return VG_TRUE; +} + +int main(int argc, char **argv) +{ + return run(argc, argv, init, reshape, + draw, key_press); +} diff --git a/progs/egl/openvg/trivial/vguarc.c b/progs/egl/openvg/trivial/vguarc.c new file mode 100644 index 0000000000..8d971d5c09 --- /dev/null +++ b/progs/egl/openvg/trivial/vguarc.c @@ -0,0 +1,74 @@ +#include "eglcommon.h" + +#include +#include + +const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; +const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; + +VGPath path; +VGPaint paint; + + +static void +init(void) +{ + VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */ + VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */ + VGint arcType = VGU_ARC_OPEN; + VGfloat x, y, w, h, startAngle, angleExtent; + + x = 150; + y = 150; + w = 150; + h = 150; +#if 0 + startAngle = -540.0f; + angleExtent = 270.0f; +#else + startAngle = 270.0f; + angleExtent = 90.0f; +#endif + + paint = vgCreatePaint(); + + vgSetPaint(paint, VG_STROKE_PATH); + vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor); + vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); + vgSetf(VG_STROKE_LINE_WIDTH, 6.0f); + vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + + path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, + 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); + + vguArc(path, x, y, w, h, startAngle, angleExtent, arcType); + + vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); + vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL); + vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ + vgLoadIdentity(); +} + +static void +draw(void) +{ + vgClear(0, 0, window_width(), window_height()); + vgDrawPath(path, VG_STROKE_PATH); + + vgFlush(); +} + + +int main(int argc, char **argv) +{ + // set_window_size(64, 63); + return run(argc, argv, init, reshape, + draw, 0); +} diff --git a/progs/openvg/.gitignore b/progs/openvg/.gitignore deleted file mode 100644 index 9b05e1e81d..0000000000 --- a/progs/openvg/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -demos/lion -demos/sp -trivial/arc -trivial/cap -trivial/clear -trivial/coord -trivial/dash -trivial/ellipse -trivial/filter -trivial/gradorigin -trivial/lineto -trivial/lingrad -trivial/lookup -trivial/mask4 -trivial/mask -trivial/path3 -trivial/radialgrad -trivial/readpixels -trivial/roundedrect -trivial/star-nonzero -trivial/star-oddeven -trivial/stroke2 -trivial/stroke -trivial/vguarc diff --git a/progs/openvg/demos/Makefile b/progs/openvg/demos/Makefile deleted file mode 100644 index 89b0ce441b..0000000000 --- a/progs/openvg/demos/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# progs/vg/Makefile - -TOP = ../../.. -include $(TOP)/configs/current - -VG_LIBS=-lm -pthread -lX11 -lEGL -lOpenVG -INCLUDE_DIRS = -I$(TOP)/include - -PROGRAMS = \ - lion \ - sp - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - - -default: $(PROGRAMS) - -lion: lion.o lion-render.o - $(CC) $(CFLAGS) lion.o lion-render.o -L$(TOP)/$(LIB_DIR) $(VG_LIBS) -o $@ - -lion.o: lion.c lion-render.h $(HEADERS) - $(CC) -c $(CFLAGS) -I$(TOP)/include lion.c -lion-render.o: lion-render.c lion-render.h $(HEADERS) - $(CC) -c $(CFLAGS) -I$(TOP)/include lion-render.c - - -sp: sp.c eglcommon.o - $(CC) $(INCLUDE_DIRS) $(CFLAGS) $^ -L$(TOP)/$(LIB_DIR) $(LIBS) $(VG_LIBS) $(APP_LIB_DEPS) -o $@ - -eglcommon.o: eglcommon.c $(HEADERS) - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) eglcommon.c - - -clean: - rm -f *.o *~ - rm -f *.so - rm -f $(PROGRAMS) diff --git a/progs/openvg/demos/eglcommon.c b/progs/openvg/demos/eglcommon.c deleted file mode 100644 index 0316e596c6..0000000000 --- a/progs/openvg/demos/eglcommon.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "eglcommon.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* using full OpenGL for now */ -#include - - -static init_func init = 0; -static draw_func draw = 0; -static reshape_func reshape = 0; -static key_func keyPress = 0; -static VGint width = 300, height = 300; - - -void set_window_size(int w, int h) -{ - width = w; - height = h; -} - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENVG_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (reshape) { - width = event.xconfigure.width; - height = event.xconfigure.height; - reshape(event.xconfigure.width, event.xconfigure.height); - } - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (!keyPress || !keyPress(code)) { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - -int window_width(void) -{ - return width; -} - -int window_height(void) -{ - return height; -} - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - -int run(int argc, char **argv, - init_func init_f, - reshape_func resh_f, - draw_func draw_f, - key_func key_f) -{ - const int winWidth = width, winHeight = height; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - init = init_f; - draw = draw_f; - reshape = resh_f; - keyPress = key_f; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "OpenVG Example", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); - printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); - printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); - } - - if (init) - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - if (reshape) - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglMakeCurrent(egl_dpy, 0, 0, 0); - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} - diff --git a/progs/openvg/demos/eglcommon.h b/progs/openvg/demos/eglcommon.h deleted file mode 100644 index 958dae9f98..0000000000 --- a/progs/openvg/demos/eglcommon.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef EGLCOMMON_H -#define EGLCOMMON_H - -typedef void (*init_func)(); -typedef void (*reshape_func)(int, int); -typedef void (*draw_func)(); -typedef int (*key_func)(unsigned key); - - -void set_window_size(int width, int height); -int window_width(void); -int window_height(void); - -int run(int argc, char **argv, - init_func init, - reshape_func resh, - draw_func draw, - key_func key); - -#endif diff --git a/progs/openvg/demos/lion-render.c b/progs/openvg/demos/lion-render.c deleted file mode 100644 index f3f151f552..0000000000 --- a/progs/openvg/demos/lion-render.c +++ /dev/null @@ -1,1573 +0,0 @@ -#include "lion-render.h" - -#include -#include - -#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) - -static void init(struct lion *l, int i, VGint hexColor, const VGfloat *coords, int elems) -{ - static VGubyte cmds[128]; - VGfloat color[4]; - VGint j; - - color[0] = ((hexColor >> 16) & 0xff) / 255.f; - color[1] = ((hexColor >> 8) & 0xff) / 255.f; - color[2] = ((hexColor >> 0) & 0xff) / 255.f; - color[3] = 1.0; - - l->paths[i] = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, - 0, 0, (unsigned int)VG_PATH_CAPABILITY_ALL); - l->fills[i] = vgCreatePaint(); - vgSetParameterfv(l->fills[i], VG_PAINT_COLOR, 4, color); - - cmds[0] = VG_MOVE_TO_ABS; - for (j = 1; j < elems; ++j) { - cmds[j] = VG_LINE_TO_ABS; - } - - vgAppendPathData(l->paths[i], elems, cmds, coords); -} - -static void poly0(struct lion *l) -{ - VGfloat color = 0xf2cc99; - static const VGfloat coords[] = {69,18, 82,8, 99,3, 118,5, 135,12, 149,21, 156,13, 165,9, 177,13, 183,28, - 180,50, 164,91, 155,107, 154,114, 151,121, 141,127, 139,136, 155,206, 157,251, 126,342, - 133,357, 128,376, 83,376, 75,368, 67,350, 61,350, 53,369, 4,369, 2,361, 5,354, - 12,342, 16,321, 4,257, 4,244, 7,218, 9,179, 26,127, 43,93, 32,77, 30,70, - 24,67, 16,49, 17,35, 18,23, 30,12, 40,7, 53,7, 62,12 - }; - - init(l, 0, color, coords, ELEMENTS(coords)/2); -} - -static void poly1(struct lion *l) -{ - VGfloat color = 0xe5b27f; - static const VGfloat coords[] = {142,79, 136,74, 138,82, 133,78, 133,84, 127,78, 128,85, - 124,80, 125,87, 119,82, 119,90, 125,99, 125,96, 128,100, 128,94, - 131,98, 132,93, 135,97, 136,93, 138,97, 139,94, 141,98, 143,94, - 144,85 - }; - - init(l, 1, color, coords, ELEMENTS(coords)/2); -} - -static void poly2(struct lion *l) -{ - VGfloat color = 0xeb8080; - static const VGfloat coords[] = {127,101, 132,100, 137,99, 144,101, 143,105, 135,110 - }; - - init(l, 2, color, coords, ELEMENTS(coords)/2); -} - -static void poly3(struct lion *l) -{ - VGfloat color = 0xf2cc99; - static const VGfloat coords[] = {178,229, 157,248, 139,296, 126,349, 137,356, - 158,357, 183,342, 212,332, 235,288, 235,261, - 228,252, 212,250, 188,251 - }; - - init(l, 3, color, coords, ELEMENTS(coords)/2); -} - -static void poly4(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {56,229, 48,241, 48,250, 57,281, 63,325, 71,338, - 81,315, 76,321, 79,311, 83,301, 75,308, 80,298, - 73,303, 76,296, 71,298, 74,292, 69,293, 74,284, - 78,278, 71,278, 74,274, 68,273, 70,268, 66,267, - 68,261, 60,266, 62,259, 65,253, 57,258, 59,251, - 55,254, 55,248, 60,237, 54,240, 58,234, 54,236 - }; - - init(l, 4, color, coords, ELEMENTS(coords)/2); -} - -static void poly5(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {74,363, 79,368, 81,368, 85,362, 89,363, 92,370, 96,373, - 101,372, 108,361, 110,371, 113,373, 116,371, 120,358, 122,363, - 123,371, 126,371, 129,367, 132,357, 135,361, 130,376, 127,377, - 94,378, 84,376, 76,371 - }; - - init(l, 5, color, coords, ELEMENTS(coords)/2); -} - -static void poly6(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {212,250, 219,251, 228,258, 236,270, 235,287, 225,304, - 205,332, 177,343, 171,352, 158,357, 166,352, 168,346, - 168,339, 165,333, 155,327, 155,323, 161,320, 165,316, - 169,316, 167,312, 171,313, 168,308, 173,309, 170,306, - 177,306, 175,308, 177,311, 174,311, 176,316, 171,315, - 174,319, 168,320, 168,323, 175,327, 179,332, 183,326, - 184,332, 189,323, 190,328, 194,320, 194,325, 199,316, - 201,320, 204,313, 206,316, 208,310, 211,305, 219,298, - 226,288, 229,279, 228,266, 224,259, 217,253 - }; - - init(l, 6, color, coords, ELEMENTS(coords)/2); -} - -static void poly7(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {151,205, 151,238, 149,252, 141,268, 128,282, 121,301, - 130,300, 126,313, 118,324, 116,337, 120,346, 133,352, - 133,340, 137,333, 145,329, 156,327, 153,319, 153,291, - 157,271, 170,259, 178,277, 193,250, 174,216 - }; - - init(l, 7, color, coords, ELEMENTS(coords)/2); -} - -static void poly8(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {78,127, 90,142, 95,155, 108,164, 125,167, 139,175, - 150,206, 152,191, 141,140, 121,148, 100,136 - }; - - init(l, 8, color, coords, ELEMENTS(coords)/2); -} - -static void poly9(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {21,58, 35,63, 38,68, 32,69, 42,74, 40,79, 47,80, 54,83, - 45,94, 34,81, 32,73, 24,66 - }; - - init(l, 9, color, coords, ELEMENTS(coords)/2); -} - -static void poly10(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {71,34, 67,34, 66,27, 59,24, 54,17, 48,17, 39,22, - 30,26, 28,31, 31,39, 38,46, 29,45, 36,54, 41,61, - 41,70, 50,69, 54,71, 55,58, 67,52, 76,43, 76,39, - 68,44 - }; - - init(l, 10, color, coords, ELEMENTS(coords)/2); -} - -static void poly11(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {139,74, 141,83, 143,89, 144,104, 148,104, 155,106, - 154,86, 157,77, 155,72, 150,77, 144,77 - }; - - init(l, 11, color, coords, ELEMENTS(coords)/2); -} - -static void poly12(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {105,44, 102,53, 108,58, 111,62, 112,55 - }; - - init(l, 12, color, coords, ELEMENTS(coords)/2); -} - -static void poly13(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {141,48, 141,54, 144,58, 139,62, 137,66, 136,59, 137,52 - }; - - init(l, 13, color, coords, ELEMENTS(coords)/2); -} - -static void poly14(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {98,135, 104,130, 105,134, 108,132, 108,135, 112,134, - 113,137, 116,136, 116,139, 119,139, 124,141, 128,140, - 133,138, 140,133, 139,140, 126,146, 104,144 - }; - - init(l, 14, color, coords, ELEMENTS(coords)/2); -} - -static void poly15(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {97,116, 103,119, 103,116, 111,118, 116,117, 122,114, - 127,107, 135,111, 142,107, 141,114, 145,118, 149,121, - 145,125, 140,124, 127,121, 113,125, 100,124 - }; - - init(l, 15, color, coords, ELEMENTS(coords)/2); -} - -static void poly16(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {147,33, 152,35, 157,34, 153,31, 160,31, 156,28, 161,28, - 159,24, 163,25, 163,21, 165,22, 170,23, 167,17, 172,21, - 174,18, 175,23, 176,22, 177,28, 177,33, 174,37, 176,39, - 174,44, 171,49, 168,53, 164,57, 159,68, 156,70, 154,60, - 150,51, 146,43, 144,35 - }; - - init(l, 16, color, coords, ELEMENTS(coords)/2); -} - -static void poly17(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {85,72, 89,74, 93,75, 100,76, 105,75, 102,79, 94,79, 88,76 - }; - - init(l, 17, color, coords, ELEMENTS(coords)/2); -} - -static void poly18(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {86,214, 79,221, 76,232, 82,225, 78,239, 82,234, 78,245, - 81,243, 79,255, 84,250, 84,267, 87,254, 90,271, 90,257, - 95,271, 93,256, 95,249, 92,252, 93,243, 89,253, 89,241, - 86,250, 87,236, 83,245, 87,231, 82,231, 90,219, 84,221 - }; - - init(l, 18, color, coords, ELEMENTS(coords)/2); -} - -static void poly19(struct lion *l) -{ - VGfloat color = 0xffcc7f; - static const VGfloat coords[] = {93,68, 96,72, 100,73, 106,72, 108,66, 105,63, 100,62 - }; - - init(l, 19, color, coords, ELEMENTS(coords)/2); -} - -static void poly20(struct lion *l) -{ - VGfloat color = 0xffcc7f; - static const VGfloat coords[] = {144,64, 142,68, 142,73, 146,74, 150,73, 154,64, 149,62 - }; - - init(l, 20, color, coords, ELEMENTS(coords)/2); -} - -static void poly21(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {57,91, 42,111, 52,105, 41,117, 53,112, 46,120, 53,116, - 50,124, 57,119, 55,127, 61,122, 60,130, 67,126, 66,134, - 71,129, 72,136, 77,130, 76,137, 80,133, 82,138, 86,135, - 96,135, 94,129, 86,124, 83,117, 77,123, 79,117, 73,120, - 75,112, 68,116, 71,111, 65,114, 69,107, 63,110, 68,102, - 61,107, 66,98, 61,103, 63,97, 57,99 - }; - - init(l, 21, color, coords, ELEMENTS(coords)/2); -} - -static void poly22(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {83,79, 76,79, 67,82, 75,83, 65,88, 76,87, 65,92, 76,91, - 68,96, 77,95, 70,99, 80,98, 72,104, 80,102, 76,108, 85,103, - 92,101, 87,98, 93,96, 86,94, 91,93, 85,91, 93,89, 99,89, 105,93, - 107,85, 102,82, 92,80 - }; - - init(l, 22, color, coords, ELEMENTS(coords)/2); -} - -static void poly23(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {109,77, 111,83, 109,89, 113,94, 117,90, 117,81, 114,78 - }; - - init(l, 23, color, coords, ELEMENTS(coords)/2); -} - -static void poly24(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {122,128, 127,126, 134,127, 136,129, 134,130, 130,128, 124,129 - }; - - init(l, 24, color, coords, ELEMENTS(coords)/2); -} - -static void poly25(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {78,27, 82,32, 80,33, 82,36, 78,37, 82,40, 78,42, 81,46, 76,47, - 78,49, 74,50, 82,52, 87,50, 83,48, 91,46, 86,45, 91,42, 88,40, - 92,37, 86,34, 90,31, 86,29, 89,26 - }; - - init(l, 25, color, coords, ELEMENTS(coords)/2); -} - -static void poly26(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {82,17, 92,20, 79,21, 90,25, 81,25, 94,28, 93,26, 101,30, - 101,26, 107,33, 108,28, 111,40, 113,34, 115,45, 117,39, - 119,54, 121,46, 124,58, 126,47, 129,59, 130,49, 134,58, - 133,44, 137,48, 133,37, 137,40, 133,32, 126,20, 135,26, - 132,19, 138,23, 135,17, 142,18, 132,11, 116,6, 94,6, 78,11, - 92,12, 80,14, 90,16 - }; - - init(l, 26, color, coords, ELEMENTS(coords)/2); -} - -static void poly27(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {142,234, 132,227, 124,223, 115,220, 110,225, 118,224, 127,229, - 135,236, 122,234, 115,237, 113,242, 121,238, 139,243, 121,245, - 111,254, 95,254, 102,244, 104,235, 110,229, 100,231, 104,224, - 113,216, 122,215, 132,217, 141,224, 145,230, 149,240 - }; - - init(l, 27, color, coords, ELEMENTS(coords)/2); -} - -static void poly28(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {115,252, 125,248, 137,249, 143,258, 134,255, 125,254 - }; - - init(l, 28, color, coords, ELEMENTS(coords)/2); -} - -static void poly29(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {114,212, 130,213, 140,219, 147,225, 144,214, 137,209, 128,207 - }; - - init(l, 29, color, coords, ELEMENTS(coords)/2); -} - -static void poly30(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {102,263, 108,258, 117,257, 131,258, 116,260, 109,265 - }; - - init(l, 30, color, coords, ELEMENTS(coords)/2); -} - -static void poly31(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {51,241, 35,224, 40,238, 23,224, 31,242, 19,239, 28,247, 17,246, - 25,250, 37,254, 39,263, 44,271, 47,294, 48,317, 51,328, 60,351, - 60,323, 53,262, 47,246 - }; - - init(l, 31, color, coords, ELEMENTS(coords)/2); -} - -static void poly32(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {2,364, 9,367, 14,366, 18,355, 20,364, 26,366, 31,357, 35,364, - 39,364, 42,357, 47,363, 53,360, 59,357, 54,369, 7,373 - }; - - init(l, 32, color, coords, ELEMENTS(coords)/2); -} - -static void poly33(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {7,349, 19,345, 25,339, 18,341, 23,333, 28,326, 23,326, 27,320, - 23,316, 25,311, 20,298, 15,277, 12,264, 9,249, 10,223, 3,248, - 5,261, 15,307, 17,326, 11,343 - }; - - init(l, 33, color, coords, ELEMENTS(coords)/2); -} - -static void poly34(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {11,226, 15,231, 25,236, 18,227 - }; - - init(l, 34, color, coords, ELEMENTS(coords)/2); -} - -static void poly35(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {13,214, 19,217, 32,227, 23,214, 16,208, 15,190, 24,148, - 31,121, 24,137, 14,170, 8,189 - }; - - init(l, 35, color, coords, ELEMENTS(coords)/2); -} - -static void poly36(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {202,254, 195,258, 199,260, 193,263, 197,263, 190,268, - 196,268, 191,273, 188,282, 200,272, 194,272, 201,266, - 197,265, 204,262, 200,258, 204,256 - }; - - init(l, 36, color, coords, ELEMENTS(coords)/2); -} - -static void poly37(struct lion *l) -{ - VGfloat color = 0x845433; - static const VGfloat coords[] = {151,213, 165,212, 179,225, 189,246, 187,262, 179,275, - 176,263, 177,247, 171,233, 163,230, 165,251, 157,264, - 146,298, 145,321, 133,326, 143,285, 154,260, 153,240 - }; - - init(l, 37, color, coords, ELEMENTS(coords)/2); -} - -static void poly38(struct lion *l) -{ - VGfloat color = 0x845433; - static const VGfloat coords[] = {91,132, 95,145, 97,154, 104,148, 107,155, 109,150, 111,158, - 115,152, 118,159, 120,153, 125,161, 126,155, 133,164, 132,154, - 137,163, 137,152, 142,163, 147,186, 152,192, 148,167, 141,143, - 124,145, 105,143 - }; - - init(l, 38, color, coords, ELEMENTS(coords)/2); -} - -static void poly39(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {31,57, 23,52, 26,51, 20,44, 23,42, 21,36, 22,29, 25,23, - 24,32, 30,43, 26,41, 30,50, 26,48 - }; - - init(l, 39, color, coords, ELEMENTS(coords)/2); -} - -static void poly40(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {147,21, 149,28, 155,21, 161,16, 167,14, 175,15, 173,11, 161,9 - }; - - init(l, 40, color, coords, ELEMENTS(coords)/2); -} - -static void poly41(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {181,39, 175,51, 169,57, 171,65, 165,68, 165,75, 160,76, - 162,91, 171,71, 180,51 - }; - - init(l, 41, color, coords, ELEMENTS(coords)/2); -} - -static void poly42(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {132,346, 139,348, 141,346, 142,341, 147,342, 143,355, 133,350 - }; - - init(l, 42, color, coords, ELEMENTS(coords)/2); -} - -static void poly43(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {146,355, 151,352, 155,348, 157,343, 160,349, 151,356, 147,357 - }; - - init(l, 43, color, coords, ELEMENTS(coords)/2); -} - -static void poly44(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {99,266, 100,281, 94,305, 86,322, 78,332, 72,346, 73,331, 91,291 - }; - - init(l, 44, color, coords, ELEMENTS(coords)/2); -} - -static void poly45(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {20,347, 32,342, 45,340, 54,345, 45,350, 42,353, 38,350, - 31,353, 29,356, 23,350, 19,353, 15,349 - }; - - init(l, 45, color, coords, ELEMENTS(coords)/2); -} - -static void poly46(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {78,344, 86,344, 92,349, 88,358, 84,352 - }; - - init(l, 46, color, coords, ELEMENTS(coords)/2); -} - -static void poly47(struct lion *l) -{ - VGfloat color = 0x9c826b; - static const VGfloat coords[] = {93,347, 104,344, 117,345, 124,354, 121,357, 116,351, - 112,351, 108,355, 102,351 - }; - - init(l, 47, color, coords, ELEMENTS(coords)/2); -} - -static void poly48(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {105,12, 111,18, 113,24, 113,29, 119,34, 116,23, 112,16 - }; - - init(l, 48, color, coords, ELEMENTS(coords)/2); -} - -static void poly49(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {122,27, 125,34, 127,43, 128,34, 125,29 - }; - - init(l, 49, color, coords, ELEMENTS(coords)/2); -} - -static void poly50(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {115,13, 122,19, 122,15, 113,10 - }; - - init(l, 50, color, coords, ELEMENTS(coords)/2); -} - -static void poly51(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {116,172, 107,182, 98,193, 98,183, 90,199, 89,189, 84,207, - 88,206, 87,215, 95,206, 93,219, 91,230, 98,216, 97,226, - 104,214, 112,209, 104,208, 113,202, 126,200, 139,207, 132,198, - 142,203, 134,192, 142,195, 134,187, 140,185, 130,181, 136,177, - 126,177, 125,171, 116,180 - }; - - init(l, 51, color, coords, ELEMENTS(coords)/2); -} - -static void poly52(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {74,220, 67,230, 67,221, 59,235, 63,233, 60,248, 70,232, 65,249, - 71,243, 67,256, 73,250, 69,262, 73,259, 71,267, 76,262, 72,271, - 78,270, 76,275, 82,274, 78,290, 86,279, 86,289, 92,274, 88,275, - 87,264, 82,270, 82,258, 77,257, 78,247, 73,246, 77,233, 72,236 - }; - - init(l, 52, color, coords, ELEMENTS(coords)/2); -} - -static void poly53(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {133,230, 147,242, 148,250, 145,254, 138,247, 129,246, 142,245, - 138,241, 128,237, 137,238 - }; - - init(l, 53, color, coords, ELEMENTS(coords)/2); -} - -static void poly54(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {133,261, 125,261, 116,263, 111,267, 125,265 - }; - - init(l, 54, color, coords, ELEMENTS(coords)/2); -} - -static void poly55(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {121,271, 109,273, 103,279, 99,305, 92,316, 85,327, 83,335, - 89,340, 97,341, 94,336, 101,336, 96,331, 103,330, 97,327, 108,325, - 99,322, 109,321, 100,318, 110,317, 105,314, 110,312, 107,310, 113,308, - 105,306, 114,303, 105,301, 115,298, 107,295, 115,294, 108,293, 117,291, - 109,289, 117,286, 109,286, 118,283, 112,281, 118,279, 114,278, - 119,276, 115,274 - }; - - init(l, 55, color, coords, ELEMENTS(coords)/2); -} - -static void poly56(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {79,364, 74,359, 74,353, 76,347, 80,351, 83,356, 82,360 - }; - - init(l, 56, color, coords, ELEMENTS(coords)/2); -} - -static void poly57(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {91,363, 93,356, 97,353, 103,355, 105,360, 103,366, 99,371, 94,368 - }; - - init(l, 57, color, coords, ELEMENTS(coords)/2); -} - -static void poly58(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {110,355, 114,353, 118,357, 117,363, 113,369, 111,362 - }; - - init(l, 58, color, coords, ELEMENTS(coords)/2); -} - -static void poly59(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {126,354, 123,358, 124,367, 126,369, 129,361, 129,357 - }; - - init(l, 59, color, coords, ELEMENTS(coords)/2); -} - -static void poly60(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {30,154, 24,166, 20,182, 23,194, 29,208, 37,218, 41,210, 41,223, - 46,214, 46,227, 52,216, 52,227, 61,216, 59,225, 68,213, 73,219, - 70,207, 77,212, 69,200, 77,202, 70,194, 78,197, 68,187, 76,182, - 64,182, 58,175, 58,185, 53,177, 50,186, 46,171, 44,182, 39,167, - 36,172, 36,162, 30,166 - }; - - init(l, 60, color, coords, ELEMENTS(coords)/2); -} - -static void poly61(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {44,130, 41,137, 45,136, 43,150, 48,142, 48,157, 53,150, - 52,164, 60,156, 61,169, 64,165, 66,175, 70,167, 74,176, - 77,168, 80,183, 85,172, 90,182, 93,174, 98,181, 99,173, - 104,175, 105,169, 114,168, 102,163, 95,157, 94,166, 90,154, - 87,162, 82,149, 75,159, 72,148, 68,155, 67,143, 62,148, 62,138, - 58,145, 56,133, 52,142, 52,128, 49,134, 47,125 - }; - - init(l, 61, color, coords, ELEMENTS(coords)/2); -} - -static void poly62(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {13,216, 19,219, 36,231, 22,223, 16,222, 22,227, 12,224, 13,220, 16,220 - }; - - init(l, 62, color, coords, ELEMENTS(coords)/2); -} - -static void poly63(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {10,231, 14,236, 25,239, 27,237, 19,234 - }; - - init(l, 63, color, coords, ELEMENTS(coords)/2); -} - -static void poly64(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {9,245, 14,242, 25,245, 13,245 - }; - - init(l, 64, color, coords, ELEMENTS(coords)/2); -} - -static void poly65(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {33,255, 26,253, 18,254, 25,256, 18,258, 27,260, 18,263, - 27,265, 19,267, 29,270, 21,272, 29,276, 21,278, 30,281, - 22,283, 31,287, 24,288, 32,292, 23,293, 34,298, 26,299, - 37,303, 32,305, 39,309, 33,309, 39,314, 34,314, 40,318, - 34,317, 40,321, 34,321, 41,326, 33,326, 40,330, 33,332, - 39,333, 33,337, 42,337, 54,341, 49,337, 52,335, 47,330, - 50,330, 45,325, 49,325, 45,321, 48,321, 45,316, 46,306, - 45,286, 43,274, 36,261 - }; - - init(l, 65, color, coords, ELEMENTS(coords)/2); -} - -static void poly66(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {7,358, 9,351, 14,351, 17,359, 11,364 - }; - - init(l, 66, color, coords, ELEMENTS(coords)/2); -} - -static void poly67(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {44,354, 49,351, 52,355, 49,361 - }; - - init(l, 67, color, coords, ELEMENTS(coords)/2); -} - -static void poly68(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {32,357, 37,353, 40,358, 36,361 - }; - - init(l, 68, color, coords, ELEMENTS(coords)/2); -} - -static void poly69(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {139,334, 145,330, 154,330, 158,334, 154,341, 152,348, - 145,350, 149,340, 147,336, 141,339, 139,345, 136,342, - 136,339 - }; - - init(l, 69, color, coords, ELEMENTS(coords)/2); -} - -static void poly70(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {208,259, 215,259, 212,255, 220,259, 224,263, 225,274, 224,283, - 220,292, 208,300, 206,308, 203,304, 199,315, 197,309, 195,318, - 193,313, 190,322, 190,316, 185,325, 182,318, 180,325, 172,321, - 178,320, 176,313, 186,312, 180,307, 188,307, 184,303, 191,302, - 186,299, 195,294, 187,290, 197,288, 192,286, 201,283, 194,280, - 203,277, 198,275, 207,271, 200,269, 209,265, 204,265, 212,262 - }; - - init(l, 70, color, coords, ELEMENTS(coords)/2); -} - -static void poly71(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {106,126, 106,131, 109,132, 111,134, 115,132, 115,135, 119,133, 118,137, - 123,137, 128,137, 133,134, 136,130, 136,127, 132,124, 118,128, 112,128, - 106,126, 106,126, 106,126 - }; - - init(l, 71, color, coords, ELEMENTS(coords)/2); -} - -static void poly72(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {107,114, 101,110, 98,102, 105,97, 111,98, 119,102, 121,108, 118,112, 113,115 - }; - - init(l, 72, color, coords, ELEMENTS(coords)/2); -} - -static void poly73(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {148,106, 145,110, 146,116, 150,118, 152,111, 151,107 - }; - - init(l, 73, color, coords, ELEMENTS(coords)/2); -} - -static void poly74(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {80,55, 70,52, 75,58, 63,57, 72,61, 57,61, 67,66, 57,67, 62,69, 54,71, - 61,73, 54,77, 63,78, 53,85, 60,84, 56,90, 69,84, 63,82, 75,76, 70,75, - 77,72, 72,71, 78,69, 72,66, 81,67, 78,64, 82,63, 80,60, 86,62 - }; - - init(l, 74, color, coords, ELEMENTS(coords)/2); -} - -static void poly75(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {87,56, 91,52, 96,50, 102,56, 98,56, 92,60 - }; - - init(l, 75, color, coords, ELEMENTS(coords)/2); -} - -static void poly76(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {85,68, 89,73, 98,76, 106,74, 96,73, 91,70 - }; - - init(l, 76, color, coords, ELEMENTS(coords)/2); -} - -static void poly77(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {115,57, 114,64, 111,64, 115,75, 122,81, 122,74, 126,79, - 126,74, 131,78, 130,72, 133,77, 131,68, 126,61, 119,57 - }; - - init(l, 77, color, coords, ELEMENTS(coords)/2); -} - -static void poly78(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {145,48, 143,53, 147,59, 151,59, 150,55 - }; - - init(l, 78, color, coords, ELEMENTS(coords)/2); -} - -static void poly79(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {26,22, 34,15, 43,10, 52,10, 59,16, 47,15, 32,22 - }; - - init(l, 79, color, coords, ELEMENTS(coords)/2); -} - -static void poly80(struct lion *l) -{ - VGfloat color = 0xffe5b2; - static const VGfloat coords[] = {160,19, 152,26, 149,34, 154,33, 152,30, 157,30, 155,26, 158,27, - 157,23, 161,23 - }; - - init(l, 80, color, coords, ELEMENTS(coords)/2); -} - -static void poly81(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {98,117, 105,122, 109,122, 105,117, 113,120, 121,120, 130,112, 128,108, - 123,103, 123,99, 128,101, 132,106, 135,109, 142,105, 142,101, 145,101, - 145,91, 148,101, 145,105, 136,112, 135,116, 143,124, 148,120, 150,122, - 142,128, 133,122, 121,125, 112,126, 103,125, 100,129, 96,124 - }; - - init(l, 81, color, coords, ELEMENTS(coords)/2); -} - -static void poly82(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {146,118, 152,118, 152,115, 149,115 - }; - - init(l, 82, color, coords, ELEMENTS(coords)/2); -} - -static void poly83(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {148,112, 154,111, 154,109, 149,109 - }; - - init(l, 83, color, coords, ELEMENTS(coords)/2); -} - -static void poly84(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {106,112, 108,115, 114,116, 118,114 - }; - - init(l, 84, color, coords, ELEMENTS(coords)/2); -} - -static void poly85(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {108,108, 111,110, 116,110, 119,108 - }; - - init(l, 85, color, coords, ELEMENTS(coords)/2); -} - -static void poly86(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {106,104, 109,105, 117,106, 115,104 - }; - - init(l, 86, color, coords, ELEMENTS(coords)/2); -} - -static void poly87(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {50,25, 41,26, 34,33, 39,43, 49,58, 36,51, 47,68, 55,69, 54,59, - 61,57, 74,46, 60,52, 67,42, 57,48, 61,40, 54,45, 60,36, 59,29, - 48,38, 52,30, 47,32 - }; - - init(l, 87, color, coords, ELEMENTS(coords)/2); -} - -static void poly88(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {147,34, 152,41, 155,49, 161,53, 157,47, 164,47, 158,43, 168,44, - 159,40, 164,37, 169,37, 164,33, 169,34, 165,28, 170,30, 170,25, - 173,29, 175,27, 176,32, 173,36, 175,39, 172,42, 172,46, 168,49, - 170,55, 162,57, 158,63, 155,58, 153,50, 149,46 - }; - - init(l, 88, color, coords, ELEMENTS(coords)/2); -} - -static void poly89(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {155,71, 159,80, 157,93, 157,102, 155,108, 150,101, 149,93, - 154,101, 152,91, 151,83, 155,79 - }; - - init(l, 89, color, coords, ELEMENTS(coords)/2); -} - -static void poly90(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {112,78, 115,81, 114,91, 112,87, 113,82 - }; - - init(l, 90, color, coords, ELEMENTS(coords)/2); -} - -static void poly91(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {78,28, 64,17, 58,11, 47,9, 36,10, 28,16, 21,26, 18,41, - 20,51, 23,61, 33,65, 28,68, 37,74, 36,81, 43,87, 48,90, - 43,100, 40,98, 39,90, 31,80, 30,72, 22,71, 17,61, 14,46, - 16,28, 23,17, 33,9, 45,6, 54,6, 65,12 - }; - - init(l, 91, color, coords, ELEMENTS(coords)/2); -} - -static void poly92(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {67,18, 76,9, 87,5, 101,2, 118,3, 135,8, 149,20, 149,26, - 144,19, 132,12, 121,9, 105,7, 89,8, 76,14, 70,20 - }; - - init(l, 92, color, coords, ELEMENTS(coords)/2); -} - -static void poly93(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {56,98, 48,106, 56,103, 47,112, 56,110, 52,115, 57,113, 52,121, 62,115, - 58,123, 65,119, 63,125, 69,121, 68,127, 74,125, 74,129, 79,128, 83,132, - 94,135, 93,129, 85,127, 81,122, 76,126, 75,121, 71,124, 71,117, 66,121, - 66,117, 62,117, 64,112, 60,113, 60,110, 57,111, 61,105, 57,107, 60,101, - 55,102 - }; - - init(l, 93, color, coords, ELEMENTS(coords)/2); -} - -static void poly94(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {101,132, 103,138, 106,134, 106,139, 112,136, 111,142, 115,139, - 114,143, 119,142, 125,145, 131,142, 135,138, 140,134, 140,129, - 143,135, 145,149, 150,171, 149,184, 145,165, 141,150, 136,147, - 132,151, 131,149, 126,152, 125,150, 121,152, 117,148, 111,152, - 110,148, 105,149, 104,145, 98,150, 96,138, 94,132, 94,130, 98,132 - }; - - init(l, 94, color, coords, ELEMENTS(coords)/2); -} - -static void poly95(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {41,94, 32,110, 23,132, 12,163, 6,190, 7,217, 5,236, - 3,247, 9,230, 12,211, 12,185, 18,160, 26,134, 35,110, - 43,99 - }; - - init(l, 95, color, coords, ELEMENTS(coords)/2); -} - -static void poly96(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {32,246, 41,250, 50,257, 52,267, 53,295, 53,323, 59,350, - 54,363, 51,365, 44,366, 42,360, 40,372, 54,372, 59,366, - 62,353, 71,352, 75,335, 73,330, 66,318, 68,302, 64,294, - 67,288, 63,286, 63,279, 59,275, 58,267, 56,262, 50,247, - 42,235, 44,246, 32,236, 35,244 - }; - - init(l, 96, color, coords, ELEMENTS(coords)/2); -} - -static void poly97(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {134,324, 146,320, 159,322, 173,327, 179,337, 179,349, - 172,355, 158,357, 170,350, 174,343, 170,333, 163,328, 152,326, - 134,329 - }; - - init(l, 97, color, coords, ELEMENTS(coords)/2); -} - -static void poly98(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {173,339, 183,334, 184,338, 191,329, 194,332, 199,323, 202,325, - 206,318, 209,320, 213,309, 221,303, 228,296, 232,289, 234,279, - 233,269, 230,262, 225,256, 219,253, 208,252, 198,252, 210,249, - 223,250, 232,257, 237,265, 238,277, 238,291, 232,305, 221,323, - 218,335, 212,342, 200,349, 178,348 - }; - - init(l, 98, color, coords, ELEMENTS(coords)/2); -} - -static void poly99(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {165,296, 158,301, 156,310, 156,323, 162,324, 159,318, - 162,308, 162,304 - }; - - init(l, 99, color, coords, ELEMENTS(coords)/2); -} - -static void poly100(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {99,252, 105,244, 107,234, 115,228, 121,228, 131,235, - 122,233, 113,235, 109,246, 121,239, 133,243, 121,243, - 110,251 - }; - - init(l, 100, color, coords, ELEMENTS(coords)/2); -} - -static void poly101(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {117,252, 124,247, 134,249, 136,253, 126,252 - }; - - init(l, 101, color, coords, ELEMENTS(coords)/2); -} - -static void poly102(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {117,218, 132,224, 144,233, 140,225, 132,219, 117,218, - 117,218, 117,218 - }; - - init(l, 102, color, coords, ELEMENTS(coords)/2); -} - -static void poly103(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {122,212, 134,214, 143,221, 141,213, 132,210 - }; - - init(l, 103, color, coords, ELEMENTS(coords)/2); -} - -static void poly104(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {69,352, 70,363, 76,373, 86,378, 97,379, 108,379, 120,377, - 128,378, 132,373, 135,361, 133,358, 132,366, 127,375, 121,374, - 121,362, 119,367, 117,374, 110,376, 110,362, 107,357, 106,371, - 104,375, 97,376, 90,375, 90,368, 86,362, 83,364, 86,369, 85,373, - 78,370, 73,362, 71,351 - }; - - init(l, 104, color, coords, ELEMENTS(coords)/2); -} - -static void poly105(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {100,360, 96,363, 99,369, 102,364 - }; - - init(l, 105, color, coords, ELEMENTS(coords)/2); -} - -static void poly106(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {115,360, 112,363, 114,369, 117,364 - }; - - init(l, 106, color, coords, ELEMENTS(coords)/2); -} - -static void poly107(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {127,362, 125,364, 126,369, 128,365 - }; - - init(l, 107, color, coords, ELEMENTS(coords)/2); -} - -static void poly108(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {5,255, 7,276, 11,304, 15,320, 13,334, 6,348, 2,353, 0,363, - 5,372, 12,374, 25,372, 38,372, 44,369, 42,367, 36,368, 31,369, - 30,360, 27,368, 20,370, 16,361, 15,368, 10,369, 3,366, 3,359, 6,352, - 11,348, 17,331, 19,316, 12,291, 9,274 - }; - - init(l, 108, color, coords, ELEMENTS(coords)/2); -} - -static void poly109(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {10,358, 7,362, 10,366, 11,362 - }; - - init(l, 109, color, coords, ELEMENTS(coords)/2); -} - -static void poly110(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {25,357, 22,360, 24,366, 27,360 - }; - - init(l, 110, color, coords, ELEMENTS(coords)/2); -} - -static void poly111(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {37,357, 34,361, 36,365, 38,361 - }; - - init(l, 111, color, coords, ELEMENTS(coords)/2); -} - -static void poly112(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {49,356, 46,359, 47,364, 50,360 - }; - - init(l, 112, color, coords, ELEMENTS(coords)/2); -} - -static void poly113(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {130,101, 132,102, 135,101, 139,102, 143,103, - 142,101, 137,100, 133,100 - }; - - init(l, 113, color, coords, ELEMENTS(coords)/2); -} - -static void poly114(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {106,48, 105,52, 108,56, 109,52 - }; - - init(l, 114, color, coords, ELEMENTS(coords)/2); -} - -static void poly115(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {139,52, 139,56, 140,60, 142,58, 141,56 - }; - - init(l, 115, color, coords, ELEMENTS(coords)/2); -} - -static void poly116(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {25,349, 29,351, 30,355, 33,350, 37,348, 42,351, 45,347, - 49,345, 44,343, 36,345 - }; - - init(l, 116, color, coords, ELEMENTS(coords)/2); -} - -static void poly117(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {98,347, 105,351, 107,354, 109,349, 115,349, 120,353, 118,349, - 113,346, 104,346 - }; - - init(l, 117, color, coords, ELEMENTS(coords)/2); -} - -static void poly118(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {83,348, 87,352, 87,357, 89,351, 87,348 - }; - - init(l, 118, color, coords, ELEMENTS(coords)/2); -} - -static void poly119(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {155,107, 163,107, 170,107, 186,108, 175,109, 155,109 - }; - - init(l, 119, color, coords, ELEMENTS(coords)/2); -} - -static void poly120(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {153,114, 162,113, 175,112, 192,114, 173,114, 154,115 - }; - - init(l, 120, color, coords, ELEMENTS(coords)/2); -} - -static void poly121(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {152,118, 164,120, 180,123, 197,129, 169,123, 151,120 - }; - - init(l, 121, color, coords, ELEMENTS(coords)/2); -} - -static void poly122(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {68,109, 87,106, 107,106, 106,108, 88,108 - }; - - init(l, 122, color, coords, ELEMENTS(coords)/2); -} - -static void poly123(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {105,111, 95,112, 79,114, 71,116, 85,115, 102,113 - }; - - init(l, 123, color, coords, ELEMENTS(coords)/2); -} - -static void poly124(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {108,101, 98,99, 87,99, 78,99, 93,100, 105,102 - }; - - init(l, 124, color, coords, ELEMENTS(coords)/2); -} - -static void poly125(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {85,63, 91,63, 97,60, 104,60, 108,62, 111,69, 112,75, - 110,74, 108,71, 103,73, 106,69, 105,65, 103,64, 103,67, - 102,70, 99,70, 97,66, 94,67, 97,72, 88,67, 84,66 - }; - - init(l, 125, color, coords, ELEMENTS(coords)/2); -} - -static void poly126(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {140,74, 141,66, 144,61, 150,61, 156,62, 153,70, 150,73, - 152,65, 150,65, 151,68, 149,71, 146,71, 144,66, 143,70, - 143,74 - }; - - init(l, 126, color, coords, ELEMENTS(coords)/2); -} - -static void poly127(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {146,20, 156,11, 163,9, 172,9, 178,14, 182,18, 184,32, 182,42, - 182,52, 177,58, 176,67, 171,76, 165,90, 157,105, 160,92, 164,85, - 168,78, 167,73, 173,66, 172,62, 175,59, 174,55, 177,53, 180,46, - 181,29, 179,21, 173,13, 166,11, 159,13, 153,18, 148,23 - }; - - init(l, 127, color, coords, ELEMENTS(coords)/2); -} - -static void poly128(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {150,187, 148,211, 150,233, 153,247, 148,267, 135,283, 125,299, - 136,292, 131,313, 122,328, 122,345, 129,352, 133,359, 133,367, - 137,359, 148,356, 140,350, 131,347, 129,340, 132,332, 140,328, - 137,322, 140,304, 154,265, 157,244, 155,223, 161,220, 175,229, - 186,247, 185,260, 176,275, 178,287, 185,277, 188,261, 196,253, - 189,236, 174,213 - }; - - init(l, 128, color, coords, ELEMENTS(coords)/2); -} - -static void poly129(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {147,338, 142,341, 143,345, 141,354, 147,343 - }; - - init(l, 129, color, coords, ELEMENTS(coords)/2); -} - -static void poly130(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {157,342, 156,349, 150,356, 157,353, 163,346, 162,342 - }; - - init(l, 130, color, coords, ELEMENTS(coords)/2); -} - -static void poly131(struct lion *l) -{ - VGfloat color = 0x000000; - static const VGfloat coords[] = {99,265, 96,284, 92,299, 73,339, 73,333, 87,300 - }; - - init(l, 131, color, coords, ELEMENTS(coords)/2); -} - - -struct lion * lion_create(void) -{ - struct lion *l = calloc(1, sizeof(struct lion)); - - poly0(l); - poly1(l); - poly2(l); - poly3(l); - poly4(l); - poly5(l); - poly6(l); - poly7(l); - poly8(l); - poly9(l); - - poly10(l); - poly11(l); - poly12(l); - poly13(l); - poly14(l); - poly15(l); - poly16(l); - poly17(l); - poly18(l); - poly19(l); - - poly20(l); - poly21(l); - poly22(l); - poly23(l); - poly24(l); - poly25(l); - poly26(l); - poly27(l); - poly28(l); - poly29(l); - - poly30(l); - poly31(l); - poly32(l); - poly33(l); - poly34(l); - poly35(l); - poly36(l); - poly37(l); - poly38(l); - poly39(l); - - poly40(l); - poly41(l); - poly42(l); - poly43(l); - poly44(l); - poly45(l); - poly46(l); - poly47(l); - poly48(l); - poly49(l); - - poly50(l); - poly51(l); - poly52(l); - poly53(l); - poly54(l); - poly55(l); - poly56(l); - poly57(l); - poly58(l); - poly59(l); - - poly60(l); - poly61(l); - poly62(l); - poly63(l); - poly64(l); - poly65(l); - poly66(l); - poly67(l); - poly68(l); - poly69(l); - - poly70(l); - poly71(l); - poly72(l); - poly73(l); - poly74(l); - poly75(l); - poly76(l); - poly77(l); - poly78(l); - poly79(l); - - poly80(l); - poly81(l); - poly82(l); - poly83(l); - poly84(l); - poly85(l); - poly86(l); - poly87(l); - poly88(l); - poly89(l); - - poly90(l); - poly91(l); - poly92(l); - poly93(l); - poly94(l); - poly95(l); - poly96(l); - poly97(l); - poly98(l); - poly99(l); - - poly100(l); - poly101(l); - poly102(l); - poly103(l); - poly104(l); - poly105(l); - poly106(l); - poly107(l); - poly108(l); - poly109(l); - - poly110(l); - poly111(l); - poly112(l); - poly113(l); - poly114(l); - poly115(l); - poly116(l); - poly117(l); - poly118(l); - poly119(l); - - poly120(l); - poly121(l); - poly122(l); - poly123(l); - poly124(l); - poly125(l); - poly126(l); - poly127(l); - poly128(l); - poly129(l); - - poly130(l); - poly131(l); - - return l; -} - -void lion_render(struct lion *l) -{ - VGint i; - - for (i = 0; i < LION_SIZE; ++i) { - vgSetPaint(l->fills[i], VG_FILL_PATH); - vgDrawPath(l->paths[i], VG_FILL_PATH); - } -} - -void lion_destroy(struct lion *l) -{ - VGint i; - for (i = 0; i < LION_SIZE; ++i) { - vgDestroyPaint(l->fills[i]); - vgDestroyPath(l->paths[i]); - } - free(l); -} diff --git a/progs/openvg/demos/lion-render.h b/progs/openvg/demos/lion-render.h deleted file mode 100644 index c4c020b7ed..0000000000 --- a/progs/openvg/demos/lion-render.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef LION_RENDER_H -#define LION_RENDER_H - -#include - -#define LION_SIZE 132 -struct lion { - VGPath paths[LION_SIZE]; - VGPaint fills[LION_SIZE]; -}; - -struct lion *lion_create(void); -void lion_render(struct lion *l); -void lion_destroy(struct lion *l); - -#endif diff --git a/progs/openvg/demos/lion.c b/progs/openvg/demos/lion.c deleted file mode 100644 index adb269bfd8..0000000000 --- a/progs/openvg/demos/lion.c +++ /dev/null @@ -1,289 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "lion-render.h" - -static VGint width, height; -struct lion *lion = 0; -VGfloat angle = 0; - -static void -draw(void) -{ - vgClear(0, 0, width, height); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - vgTranslate(width/2, height/2); - vgRotate(angle); - vgTranslate(-width/2, -height/2); - - lion_render(lion); - - ++angle; -} - - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - width = w; - height = h; -} - - -static void -init(void) -{ - float clear_color[4] = {1.0, 1.0, 1.0, 1.0}; - vgSetfv(VG_CLEAR_COLOR, 4, clear_color); - - lion = lion_create(); -} - - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENVG_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - XEvent event; - - while (XPending(dpy) > 0) { - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - break; - default: - ; /*no-op*/ - } - } - - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - -int -main(int argc, char *argv[]) -{ - const int winWidth = 350, winHeight = 450; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "Lion Example", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); - printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); - printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); - } - - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} diff --git a/progs/openvg/demos/sp.c b/progs/openvg/demos/sp.c deleted file mode 100644 index 424ec47d69..0000000000 --- a/progs/openvg/demos/sp.c +++ /dev/null @@ -1,537 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include -#include -#include -#include - -#include - -#define ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) - -struct object { - VGPath path; - VGPaint fill; - VGPaint stroke; - VGint draw_mode; - VGfloat matrix[9]; - VGfloat stroke_width; -}; - -struct character { - struct object objects[32]; - VGint num_objects; -}; -VGfloat identity_matrix[] = {1, 0, 0, 0, 1, 0, 0, 0, 1}; - -struct character cartman; - -static void add_object_fill(const VGubyte *segments, VGint num_segments, - const VGfloat *coords, - VGuint color) -{ - struct object object; - - object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(object.path, num_segments, segments, coords); - - object.fill = vgCreatePaint(); - vgSetColor(object.fill, color); - memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat)); - object.draw_mode = VG_FILL_PATH; - - cartman.objects[cartman.num_objects] = object; - ++cartman.num_objects; -} - - -static void add_object_stroke(const VGubyte *segments, VGint num_segments, - const VGfloat *coords, - VGuint color, VGfloat width) -{ - struct object object; - - object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(object.path, num_segments, segments, coords); - - object.stroke = vgCreatePaint(); - vgSetColor(object.stroke, color); - memcpy(object.matrix, identity_matrix, 9 * sizeof(VGfloat)); - object.draw_mode = VG_STROKE_PATH; - object.stroke_width = width; - - cartman.objects[cartman.num_objects] = object; - ++cartman.num_objects; -} - - -static void add_object_fillm(const VGubyte *segments, VGint num_segments, - const VGfloat *coords, - VGuint color, - VGfloat *matrix) -{ - struct object object; - - object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(object.path, num_segments, segments, coords); - - object.fill = vgCreatePaint(); - vgSetColor(object.fill, color); - memcpy(object.matrix, matrix, 9 * sizeof(VGfloat)); - object.draw_mode = VG_FILL_PATH; - - cartman.objects[cartman.num_objects] = object; - ++cartman.num_objects; -} - - -static void add_object_m(const VGubyte *segments, VGint num_segments, - const VGfloat *coords, - VGuint fill_color, - VGuint stroke_color, VGfloat stroke_width, - VGfloat *matrix) -{ - struct object object; - - object.path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(object.path, num_segments, segments, coords); - memcpy(object.matrix, matrix, 9 * sizeof(VGfloat)); - - object.fill = vgCreatePaint(); - vgSetColor(object.fill, fill_color); - object.draw_mode = VG_FILL_PATH | VG_STROKE_PATH; - - object.stroke = vgCreatePaint(); - vgSetColor(object.stroke, stroke_color); - object.stroke_width = stroke_width; - - cartman.objects[cartman.num_objects] = object; - ++cartman.num_objects; -} - -static void init_character() -{ - { - const VGubyte segments[] = {VG_MOVE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CLOSE_PATH}; - const VGfloat coords[] = {181.83267, 102.60408, - 181.83267,102.60408, 185.53793,114.5749, 186.5355,115.00243, - 187.53306,115.42996, 286.0073,115.00243, 286.0073,115.00243, - 286.0073,115.00243, 292.70526,103.45914, 290.85263,101.03648, - 289.00001,98.61381, 181.54765,102.31906, 181.83267,102.60408 - }; - VGuint color = 0x7c4e32ff; - add_object_fill(segments, ELEMENTS(segments), - coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CLOSE_PATH - }; - const VGfloat coords[] = {188.62208,50.604156, - 188.62208,50.604156, 176.73127,60.479579, 170.68509,69.548844, - 164.63892,78.618109, 175.11895,79.827344, 175.11895,79.827344, - 176.52973,98.368952, - 176.52973,98.368952, 189.83131,110.05823, 208.97754,110.25976, - 228.12377,110.46131, 244.24691,111.67054, 247.06846,110.25976, - 249.89,108.849, 258.95927,106.8336, 260.16851,105.01975, - 261.37774,103.2059, 296.84865,106.43053, 297.05019,91.919698, - 297.25172,77.408874, 306.11945,64.308824, 282.13628,51.611853, - 258.15311,38.914882, 189.2267,49.999539, 188.62208,50.604156 - }; - - VGuint color = 0xe30000ff; - add_object_fill(segments, ELEMENTS(segments), - coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 68.25, 78.875, - 68.25,93.296, 54.642,105, 37.875,105, - 21.108,105, 7.5,93.296, 7.5,78.875, - 7.5,64.454, 21.108,52.75, 37.875,52.75, - 54.642,52.75, 68.25,64.454, 68.25,78.875 - }; - - VGuint color = 0xffe1c4ff; - VGfloat matrix[] = { - 1.6529, 0, 0, - 0, 1.582037, 0, - 172.9649,-90.0116, 1 - }; - add_object_fillm(segments, ELEMENTS(segments), - coords, color, matrix); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 170.14687,71.536958, - 173.53626,68.814326, 176.70232,68.971782, 180.55009,71.679467, - 184.39785,74.387153, 199.19294,80.036105, 191.52334,86.500482, - 189.02942,88.6025, 183.97032,85.787933, 180.26507,86.928011, - 178.8737,87.356121, 174.71827,89.783259, 171.8028,87.494856, - 166.95426,83.689139, 163.51779,76.861986, 170.14687,71.536958 - }; - - VGuint color = 0xfff200ff; - add_object_fill(segments, ELEMENTS(segments), - coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 299.83075,66.834136, - 299.83075,66.834136, 287.85993,64.69649, 284.15467,72.962055, - 280.44942,81.227621, 280.1644,78.234916, 280.1644,79.374994, - 280.1644,80.515072, 278.16927,84.077816, 284.86722,83.792796, - 291.56518,83.507777, 291.99271,86.785501, 294.84291,86.642991, - 297.6931,86.500482, 303.536,85.645423, 303.67851,80.657582, - 303.82102,75.66974, 302.68094,65.551548, 299.83075,66.834136 - }; - - VGuint color = 0xfff200ff; - add_object_fill(segments, ELEMENTS(segments), - coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS - }; - const VGfloat coords[] = { - 240.83171,75.81225, - 240.83171,75.81225, 241.54426,88.495618, 242.25681,91.488323, - 242.96936,94.481028, 240.6892,108.01945, 240.83171,110.01459, - 240.97422,112.00973, 240.97422,111.01216, 240.97422,111.01216 - }; - VGuint color = 0x000000ff; - VGfloat swidth = 1.14007807; - add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 83.375, 95.5, - 83.375,96.121, 83.067,96.625, 82.6875,96.625, - 82.308,96.625, 82,96.121, 82,95.5, - 82,94.879, 82.308,94.375, 82.6875,94.375, - 83.066677,94.375, 83.374492,94.878024, 83.374999,95.498494, - 82.6875,95.5, - 83.375,95.5 - }; - VGuint fill_color = 0x000000ff; - VGuint stroke_color = 0x000000ff; - VGfloat swidth = 0.60000002; - VGfloat matrix1[] = { - 1.140078, 0, 0, - 0, 1.140078, 0, - 145.4927, -15.10897, 1 - }; - VGfloat matrix2[] = { - 1.140078,0, 0, - 0,1.140078, 0, - 144.2814,-27.93485, 1 - }; - VGfloat matrix3[] = { - 1.140078,0, 0, - 0,1.140078, 0, - 144.1388,-3.70819, 1 - }; - add_object_m(segments, ELEMENTS(segments), coords, - fill_color, stroke_color, swidth, matrix1); - add_object_m(segments, ELEMENTS(segments), coords, - fill_color, stroke_color, swidth, matrix2); - add_object_m(segments, ELEMENTS(segments), coords, - fill_color, stroke_color, swidth, matrix3); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 179.41001,115.28745, - 179.41001,115.28745, 207.48443,109.30204, 236.84144,115.14494, - 236.84144,115.14494, 274.74903,109.87208, 291.8502,115.42996, - 179.41001,115.28745 - }; - - VGuint color = 0x000000ff; - add_object_fill(segments, ELEMENTS(segments), - coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 83.792156,68.157364, - 83.792156,69.669865, 82.72301,70.897403, 81.40567,70.897403, - 80.08833,70.897403, 79.019185,69.669865, 79.019185,68.157364, - 79.019185,66.644862, 80.08833,65.417325, 81.40567,65.417325, - 82.721887,65.417325, 83.790391,66.642485, 83.792153,68.153696, - 81.40567,68.157364, - 83.792156,68.157364 - }; - VGuint fill_color = 0x000000ff; - VGuint stroke_color = 0x000000ff; - VGfloat swidth = 0.52891117; - VGfloat matrix1[] = { - 1.140078,0, 0, - 0,1.140078, 0, - 145.2489,-15.58714, 1 - }; - add_object_m(segments, ELEMENTS(segments), coords, - fill_color, stroke_color, swidth, matrix1); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS - }; - const VGfloat coords[] = { - 232.28113,66.976646, - 232.28113,66.976646, 237.98152,70.539389, 245.39202,66.549116 - }; - VGuint color = 0x000000ff; - VGfloat swidth = 0.60299999; - add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 185.96908,30.061986, - 185.96908,30.061986, 187.76995,14.508377, 203.23909,3.7427917, - 209.95028,-0.92779696, 219.37764,-4.9841866, 232.1078,-6.00046, - 246.13578,-7.1203411, 256.92106,-2.8560739, 264.81774,1.9451947, - 280.60485,11.543934, 284.31582,25.937274, 284.08015,26.526452, - 283.7266,27.410336, 240.83461,1.9346323, 185.96908,30.061986 - }; - VGuint color = 0x8ed8f8ff; - add_object_fill(segments, ELEMENTS(segments), coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 185.39542,32.061757, - 185.82295,29.211562, - 185.82295,29.211562, 234.70379,2.277219, 284.01217,25.078779, - 284.86722,27.643954, - 284.86722,27.643954, 236.69893,4.5573746, 185.39542,32.061757 - }; - VGuint color = 0xfff200ff; - add_object_fill(segments, ELEMENTS(segments), coords, color); - } - - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 219.74027,-5.917093, - 220.49206,-8.44929, 225.15564,-10.904934, 230.21473,-11.189954, - 235.27383,-11.474973, 243.27521,-13.287236, 249.21385,-5.724198, - 249.89961,-4.850868, 249.28247,-4.332166, 248.62298,-3.971398, - 247.79117,-3.516361, 247.13703,-3.392737, 246.16222,-3.408047, - 243.63973,-3.447664, 242.54183,-3.850701, 242.54183,-3.850701, - 242.54183,-3.850701, 238.78367,-1.737343, 236.20014,-3.565682, - 233.88436,-5.204544, 234.27626,-4.56325, 234.27626,-4.56325, - 234.27626,-4.56325, 232.33303,-2.975658, 230.85603,-2.995643, - 228.59433,-3.025282, 227.73672,-4.501857, 227.21966,-4.93027, - 226.76318,-4.932008, 226.50948,-4.491995, 226.50948,-4.491995, - 226.50948,-4.491995, 224.53199,-2.085883, 222.51431,-2.467064, - 221.48814,-2.66093, 218.91968,-3.15318, 219.74027,-5.917093 - }; - VGuint color = 0xfff200ff; - add_object_fill(segments, ELEMENTS(segments), coords, color); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 178.97347,166.06432, - 178.97347,181.2154, 168.0245,193.51193, 154.53381,193.51193, - 141.04312,193.51193, 130.09416,181.2154, 130.09416,166.06432, - 130.09416,150.91323, 141.04312,138.6167, 154.53381,138.6167, - 168.0245,138.6167, 178.97347,150.91323, 178.97347,166.06432 - }; - VGuint color = 0xffffffff; - VGfloat matrix1[] = { - 0.466614,-0.23492, 0, - 0.108683,0.436638, 0, - 134.5504,-0.901632, 1 - }; - VGfloat matrix2[] = { - -0.466614,-0.23492, 0, - -0.108683,0.436638, 0, - 338.4496,-0.512182, 1 - }; - add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1); - add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, - VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS, VG_CLOSE_PATH - }; - const VGfloat coords[] = { - 123.82758,165.06168, - 123.82758,166.79125, 122.59232,168.19497, 121.07029,168.19497, - 119.54826,168.19497, 118.313,166.79125, 118.313,165.06168, - 118.313,163.3321, 119.54826,161.92839, 121.07029,161.92839, - 122.59232,161.92839, 123.82758,163.3321, 123.82758,165.06168 - }; - VGuint color = 0x000000ff; - VGfloat matrix1[] = { - 0.525719,0, 0, - 0,0.479931, 0, - 178.9702,-43.3532, 1 - }; - VGfloat matrix2[] = { - 0.525719,0, 0, - 0,0.479931, 0, - 165.258,-43.46162, 1 - }; - add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix1); - add_object_fillm(segments, ELEMENTS(segments), coords, color, matrix2); - } - { - const VGubyte segments[] = { - VG_MOVE_TO_ABS, VG_CUBIC_TO_ABS, VG_CUBIC_TO_ABS - }; - const VGfloat coords[] = { - 197.25,54.5, - 197.25,54.5, 211.75,71.5, 229.25,71.5, - 246.75,71.5, 261.74147,71.132714, 277.75,50.75 - }; - VGuint color = 0x000000ff; - VGfloat swidth = 0.60299999; - add_object_stroke(segments, ELEMENTS(segments), coords, color, swidth); - } -} - - -static void -init(void) -{ - float clear_color[4] = {1.0, 1.0, 1.0, 1.0}; - vgSetfv(VG_CLEAR_COLOR, 4, clear_color); - - init_character(); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static int -key_press(unsigned key) -{ - switch(key) { - case XK_Right: - - break; - case XK_Left: - break; - case XK_Up: - break; - case XK_Down: - break; - case 'a': - break; - case 's': - break; - default: - break; - } - return VG_FALSE; -} - -static void -draw(void) -{ - VGint i; - VGfloat save_matrix[9]; - - vgClear(0, 0, window_width(), window_height()); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - vgScale(2, 2); - vgTranslate(160, 60); - vgRotate(180); - vgTranslate(-160, -100); - vgGetMatrix(save_matrix); - for (i = 0; i < cartman.num_objects; ++i) { - struct object object = cartman.objects[i]; - if ((object.draw_mode & VG_STROKE_PATH)) { - vgSetf(VG_STROKE_LINE_WIDTH, object.stroke_width); - vgSetPaint(object.stroke, VG_STROKE_PATH); - } - if ((object.draw_mode & VG_FILL_PATH)) - vgSetPaint(object.fill, VG_FILL_PATH); - vgMultMatrix(object.matrix); - vgDrawPath(object.path, object.draw_mode); - vgLoadMatrix(save_matrix); - } - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(400, 400); - return run(argc, argv, init, reshape, draw, key_press); -} diff --git a/progs/openvg/trivial/Makefile b/progs/openvg/trivial/Makefile deleted file mode 100644 index fcb3484377..0000000000 --- a/progs/openvg/trivial/Makefile +++ /dev/null @@ -1,127 +0,0 @@ -# These programs aren't intended to be included with the normal distro. -# They're not too interesting but they're good for testing. - -TOP = ../../../ -include $(TOP)/configs/current - -INCLUDES = -I. -I$(TOP)/include -LIBS=-L$(TOP)/$(LIB_DIR) -lm -lX11 -lEGL -lOpenVG -lpthread -CFLAGS += $(INCLUDES) - -HEADERS=eglcommon.h - -PROGRAMS = \ - arc \ - cap \ - clear \ - coord \ - dash \ - ellipse \ - filter \ - gradorigin \ - lineto \ - lingrad \ - lookup \ - mask4 \ - mask \ - path3 \ - radialgrad \ - readpixels \ - roundedrect \ - star-nonzero \ - star-oddeven \ - stroke2 \ - stroke \ - vguarc - - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - - -default: $(PROGRAMS) - - -arc: arc.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -cap: cap.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -clear: clear.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -coord: coord.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -dash: dash.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -ellipse: ellipse.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -filter: filter.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -gradorigin: gradorigin.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -image: image.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -lineto: lineto.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -lingrad: lingrad.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -lookup: lookup.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -mask: mask.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -mask4: mask4.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -path3: path3.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -pattern: pattern.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -radialgrad: radialgrad.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -readpixels: readpixels.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -roundedrect: roundedrect.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -star-nonzero: star-nonzero.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -star-oddeven: star-oddeven.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -stroke: stroke.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -stroke2: stroke2.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - -vguarc: vguarc.c eglcommon.o - $(CC) $(CFLAGS) $^ $(LIBS) $(APP_LIB_DEPS) -o $@ - - - -eglcommon.o: eglcommon.c $(HEADERS) - $(CC) -c $(CFLAGS) eglcommon.c - - -clean: - rm -f *.o *~ - rm -f *.so - rm -f $(PROGRAMS) diff --git a/progs/openvg/trivial/arc.c b/progs/openvg/trivial/arc.c deleted file mode 100644 index db686bea6b..0000000000 --- a/progs/openvg/trivial/arc.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "eglcommon.h" - -#include -#include - -const VGfloat clear_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; - -VGPath vgPath; - -static void ellipse(VGPath vgPath, VGfloat rx, VGfloat ry, VGfloat angle) -{ - static const VGubyte cmd[] = - { VG_MOVE_TO_ABS, VG_SCCWARC_TO_REL, VG_SCCWARC_TO_REL, VG_CLOSE_PATH }; - - VGfloat val[12]; - VGfloat c = cos(angle) * rx; - VGfloat s = sin(angle) * rx; - - val[0] = c; - val[1] = s; - val[2] = rx; - val[3] = ry; - val[4] = angle; - val[5] = -2.0f * c; - val[6] = -2.0f * s; - val[7] = rx; - val[8] = ry; - val[9] = angle; - val[10] = 2.0f * c; - val[11] = 2.0f * s; - - vgClearPath(vgPath, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(vgPath, sizeof(cmd), cmd, val); - vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); -} - -static void -init(void) -{ - VGPaint vgPaint; - - vgSetfv(VG_CLEAR_COLOR, 4, clear_color); - vgPath = vgCreatePath(VG_PATH_FORMAT_STANDARD, - VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, - VG_PATH_CAPABILITY_ALL); - - vgPaint = vgCreatePaint(); - vgSetParameteri(vgPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - vgSetColor(vgPaint, 0x00ff00ff); - vgSetPaint(vgPaint, VG_FILL_PATH); - - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER); - vgSetf(VG_STROKE_LINE_WIDTH, 2.0f); - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_MITER); - vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - -#if 0 - vgLoadIdentity(); - vgTranslate(40.0f, 24.0f); - vgScale(0.61804f, 0.61804f); - vgShear(-1.0f, 0.0f); - vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); -#else - - /* row 1, col 1: Identity transform. */ - - vgLoadIdentity(); - vgTranslate(8.0f, 8.0f); - ellipse(vgPath, 4.0f, 4.0f, 0.0f); - - /* row 1, col 2: 10^3 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(24.0f, 8.0f); - vgScale(1.0e-3f, 1.0f); - ellipse(vgPath, 4.0e3f, 4.0f, 0.0f); - - /* row 1, col 3: 10^6 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(40.0f, 8.0f); - vgScale(1.0e-6f, 1.0f); - ellipse(vgPath, 4.0e6f, 4.0f, 0.0f); - - /* row 1, col 4: 10^9 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(56.0f, 8.0f); - vgScale(1.0e-9f, 1.0f); - ellipse(vgPath, 4.0e9f, 4.0f, 0.0f); - - /* row 2, col 1: 10^3 vertical squeeze. */ - - vgLoadIdentity(); - vgTranslate(8.0f, 24.0f); - vgScale(1.0f, 1.0e-3f); - ellipse(vgPath, 4.0f, 4.0e3f, 0.0f); - - /* row 2, col 2: Shear 0. */ - - vgLoadIdentity(); - vgTranslate(24.0f, 24.0f); - vgShear(0.0f, 0.0f); - ellipse(vgPath, 4.0f, 4.0f, 0.0f); - - /* row 2, col 3: Horizontal shear -1. */ - - vgLoadIdentity(); - vgTranslate(40.0f, 24.0f); - vgScale(0.61804f, 0.61804f); - vgShear(-1.0f, 0.0f); - ellipse(vgPath, 10.47213f, 4.0f, 31.717f); -#endif - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/cap.c b/progs/openvg/trivial/cap.c deleted file mode 100644 index cd84fe3ac0..0000000000 --- a/progs/openvg/trivial/cap.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include -#include - -static void -init(void) -{ - -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -const int subtest = 0; -static void -draw(void) -{ - VGPath line; - VGPaint fillPaint; - VGubyte lineCommands[3] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS}; - VGfloat lineCoords[] = {-2.0f,-1.0f, 0.0f,0.0f, -1.0f, -2.0f}; - VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */ - VGfloat fillColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ - //VGfloat testRadius = 60.0f; - VGfloat testRadius = 10.0f; - int WINDSIZEX = window_width(); - int WINDSIZEY = window_height(); - - line = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); - fillPaint = vgCreatePaint(); - - vgSetf(VG_STROKE_LINE_WIDTH, 1.0f); - //vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_ROUND); - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); - //vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL); - - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_BETTER); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - vgTranslate(60, 60); - vgScale(testRadius * 2, testRadius * 2); - - vgAppendPathData(line, 3, lineCommands, lineCoords); - - vgSetfv(VG_CLEAR_COLOR, 4, clearColor); - - vgSetPaint(fillPaint, VG_STROKE_PATH); - - vgSetParameterfv(fillPaint, VG_PAINT_COLOR, 4, fillColor); - vgSetParameteri( fillPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - - vgClear(0, 0, WINDSIZEX, WINDSIZEY); - vgDrawPath(line, VG_STROKE_PATH); - - vgDestroyPath(line); - vgDestroyPaint(fillPaint); -} - - -int main(int argc, char **argv) -{ - set_window_size(100, 100); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/clear.c b/progs/openvg/trivial/clear.c deleted file mode 100644 index efb6bf4182..0000000000 --- a/progs/openvg/trivial/clear.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "eglcommon.h" - -#include -#include - -float red_color[4] = {1.0, 0.0, 0.0, 1.0}; -float blue_color[4] = {0.0, 0.0, 1.0, 1.0}; - -static void -init(void) -{ -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - VGint scissor[4] = {100, 100, 25, 25}; - vgSetfv(VG_CLEAR_COLOR, 4, red_color); - vgClear(0, 0, window_width(), window_height()); - - vgSetfv(VG_CLEAR_COLOR, 4, blue_color); - vgClear(50, 50, 50, 50); - - //vgSetiv(VG_SCISSOR_RECTS, 4, scissor); - //vgSeti(VG_SCISSORING, VG_TRUE); - vgCopyPixels(100, 100, 50, 50, 50, 50); - vgClear(150, 150, 50, 50); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/coord.c b/progs/openvg/trivial/coord.c deleted file mode 100644 index 81f7cb6fc9..0000000000 --- a/progs/openvg/trivial/coord.c +++ /dev/null @@ -1,66 +0,0 @@ -#include "eglcommon.h" - -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint fill; - - -static void -init(void) -{ - /* Absent VG_CLOSE_PATH */ - VGubyte commands[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, - VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS}; - VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ - VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ - VGfloat coords[] = {-16.0f, -16.0f, 0.0f, -16.0f, 0.0f, 0.0f, -16.0f, 0.0f, - 0.0f, 0.0f, 16.0f, 0.0f, 16.0f, 16.0f, 0.0f, 16.0f}; - - vgSetfv(VG_CLEAR_COLOR, 4, clearColor); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - vgTranslate(32.0f, 32.0f); - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, - VG_PATH_CAPABILITY_ALL); - if (path == VG_INVALID_HANDLE) - return; - fill = vgCreatePaint(); - if (fill == VG_INVALID_HANDLE) { - vgDestroyPath(path); - return; - } - vgAppendPathData(path, 8, commands, coords); - vgSetPaint(fill, VG_FILL_PATH); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, fillColor); - vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_FILL_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/dash.c b/progs/openvg/trivial/dash.c deleted file mode 100644 index 2e84ddbd4e..0000000000 --- a/progs/openvg/trivial/dash.c +++ /dev/null @@ -1,95 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint fill; - -VGint cap_style = VG_CAP_BUTT; - -static void -init(void) -{ - static const VGubyte cmds[] = {VG_MOVE_TO_ABS, - VG_LINE_TO_ABS, - VG_LINE_TO_ABS - }; -#if 1 - static const VGfloat coords[] = {100, 100, 150, 100, - 150, 200 - }; -#else - static const VGfloat coords[] = {100, 20, 100, 220, - }; -#endif - VGfloat dash_pattern[2] = { 20.f, 20.f }; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 3, cmds, coords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSetf(VG_STROKE_LINE_WIDTH, 20); - vgSeti(VG_STROKE_CAP_STYLE, cap_style); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); - vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern); - vgSetf(VG_STROKE_DASH_PHASE, 0.0f); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_STROKE_PATH); - - vgFlush(); -} - -static int key_press(unsigned key) -{ - switch(key) { - case XK_c: - case XK_C: - ++cap_style; - if (cap_style > VG_CAP_SQUARE) - cap_style = VG_CAP_BUTT; - switch(cap_style) { - case VG_CAP_BUTT: - fprintf(stderr, "Cap style 'butt'\n"); - break; - case VG_CAP_ROUND: - fprintf(stderr, "Cap style 'round'\n"); - break; - case VG_CAP_SQUARE: - fprintf(stderr, "Cap style 'square'\n"); - break; - } - vgSeti(VG_STROKE_CAP_STYLE, cap_style); - break; - default: - break; - } - - return VG_TRUE; -} - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, key_press); -} diff --git a/progs/openvg/trivial/eglcommon.c b/progs/openvg/trivial/eglcommon.c deleted file mode 100644 index 0316e596c6..0000000000 --- a/progs/openvg/trivial/eglcommon.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "eglcommon.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* using full OpenGL for now */ -#include - - -static init_func init = 0; -static draw_func draw = 0; -static reshape_func reshape = 0; -static key_func keyPress = 0; -static VGint width = 300, height = 300; - - -void set_window_size(int w, int h) -{ - width = w; - height = h; -} - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENVG_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (reshape) { - width = event.xconfigure.width; - height = event.xconfigure.height; - reshape(event.xconfigure.width, event.xconfigure.height); - } - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (!keyPress || !keyPress(code)) { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - -int window_width(void) -{ - return width; -} - -int window_height(void) -{ - return height; -} - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - -int run(int argc, char **argv, - init_func init_f, - reshape_func resh_f, - draw_func draw_f, - key_func key_f) -{ - const int winWidth = width, winHeight = height; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - init = init_f; - draw = draw_f; - reshape = resh_f; - keyPress = key_f; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "OpenVG Example", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); - printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); - printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); - } - - if (init) - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - if (reshape) - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglMakeCurrent(egl_dpy, 0, 0, 0); - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} - diff --git a/progs/openvg/trivial/eglcommon.h b/progs/openvg/trivial/eglcommon.h deleted file mode 100644 index 958dae9f98..0000000000 --- a/progs/openvg/trivial/eglcommon.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef EGLCOMMON_H -#define EGLCOMMON_H - -typedef void (*init_func)(); -typedef void (*reshape_func)(int, int); -typedef void (*draw_func)(); -typedef int (*key_func)(unsigned key); - - -void set_window_size(int width, int height); -int window_width(void); -int window_height(void); - -int run(int argc, char **argv, - init_func init, - reshape_func resh, - draw_func draw, - key_func key); - -#endif diff --git a/progs/openvg/trivial/ellipse.c b/progs/openvg/trivial/ellipse.c deleted file mode 100644 index 4c7d4904f8..0000000000 --- a/progs/openvg/trivial/ellipse.c +++ /dev/null @@ -1,84 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.0, 0.0, 0.0, 1.0}; - -VGPath path; -VGPaint paint; - -static void -init(void) -{ - VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 1.0f};/* white color */ - VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ - static const VGubyte segments[4] = {VG_MOVE_TO_ABS, - VG_SCCWARC_TO_ABS, - VG_SCCWARC_TO_ABS, - VG_CLOSE_PATH}; - VGfloat data[12]; - const VGfloat cx = 0, cy=29, width=80, height=40; - const VGfloat hw = width * 0.5f; - const VGfloat hh = height * 0.5f; - - data[0] = cx + hw; - data[1] = cy; - data[2] = hw; - data[3] = hh; - data[4] = 0; - data[5] = cx - hw; - data[6] = cy; - data[7] = hw; - data[8] = hh; - data[9] = 0; - data[10] = data[0]; - data[11] = cy; - - vgSetfv(VG_CLEAR_COLOR, 4, clearColor); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); - if (path == VG_INVALID_HANDLE) { - return; - } - paint = vgCreatePaint(); - if (paint == VG_INVALID_HANDLE) { - vgDestroyPath(path); - return; - } - - vgAppendPathData(path, 4, segments, data); - vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor); - vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - vgSetPaint(paint, VG_FILL_PATH); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgLoadIdentity(); - vgTranslate(50, 21); - vgDrawPath(path, VG_FILL_PATH); - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(100, 100); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/filter.c b/progs/openvg/trivial/filter.c deleted file mode 100644 index d96257a933..0000000000 --- a/progs/openvg/trivial/filter.c +++ /dev/null @@ -1,107 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; - -VGImage srcImg; -VGImage dstImg; - -VGPaint fill; - -VGfloat bgCol[4] = {0.906f, 0.914f, 0.761f, 1.0f}; - -static void -init(void) -{ - VGfloat red[4]; - VGfloat grey[4]; - VGfloat orange[4]; - VGfloat blue[4]; - VGfloat black[4]; - VGfloat white[4]; - VGshort transKernel[49] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - - red[0] = 0.6710f; - red[1] = 0.1060f; - red[2] = 0.1330f; - red[3] = 1.0f; - - grey[0] = 0.6347f; - grey[1] = 0.6561f; - grey[2] = 0.6057f; - grey[3] = 1.0f; - - orange[0] = 1.0000f; - orange[1] = 0.8227f; - orange[2] = 0.5057f; - orange[3] = 1.0f; - - blue[0] = 0.0000f; - blue[1] = 0.6908f; - blue[2] = 0.8595f; - blue[3] = 1.0f; - - black[0] = 0; - black[1] = 0; - black[2] = 0; - black[3] = 1.0f; - - white[0] = 1; - white[1] = 1; - white[2] = 1; - white[3] = 1.0f; - - vgSetfv(VG_TILE_FILL_COLOR, 4, blue); - - vgSeti(VG_FILTER_CHANNEL_MASK, 14); - - /* Setup images */ - srcImg = vgCreateImage(VG_sRGBA_8888, 32, 32, - VG_IMAGE_QUALITY_NONANTIALIASED); - dstImg = vgCreateImage(VG_sRGBA_8888, 32, 32, - VG_IMAGE_QUALITY_NONANTIALIASED); - - vgSetfv(VG_CLEAR_COLOR, 4, black); - vgClearImage(srcImg, 0, 0, 32, 32); - vgSetfv(VG_CLEAR_COLOR, 4, red); - vgClearImage(srcImg, 3, 3, 27, 27); - - vgSetfv(VG_CLEAR_COLOR, 4, orange); - vgClearImage(dstImg, 0, 0, 32, 32); - - transKernel[8] = 1; - vgConvolve(dstImg, srcImg, 3, 3, 3, 0, transKernel, - 1, 0, VG_TILE_FILL); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgSetfv(VG_CLEAR_COLOR, 4, bgCol); - vgClear(0, 0, window_width(), window_height()); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); - vgLoadIdentity(); - vgTranslate(10, 10); - vgDrawImage(dstImg); - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/gradorigin.c b/progs/openvg/trivial/gradorigin.c deleted file mode 100644 index b376263fe5..0000000000 --- a/progs/openvg/trivial/gradorigin.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include - -static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; - -static VGPath path; -static VGPaint fill; - -VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; - -static void -init(void) -{ - VGubyte commands[5] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_CLOSE_PATH}; - VGfloat coords[8] = {0.0f,0.0f, 32.0f,0.0f, 32.0f,32.0f, 0.0f,32.0f }; - - VGfloat rampStop[20] = {-0.5f, 1.0f, 1.0f, 1.0f, 1.0f, - 0.25f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.75f, 0.0f, 0.0f, 1.0f, 1.0f, - 1.5f, 0.0f, 0.0f, 0.0f, 0.0f}; - - VGfloat defaultColor[] = {1.0f, 1.0f, 1.0f, 1.0f}; - VGfloat linearGradient[4] = {0.0f, 0.0f, 0.0f, 32.0f}; - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); - if (path == VG_INVALID_HANDLE) - return; - - fill = vgCreatePaint(); - if (fill == VG_INVALID_HANDLE) { - vgDestroyPath(path); - return; - } - - vgSetfv(VG_CLEAR_COLOR, 4, defaultColor); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - - vgAppendPathData(path, 5, commands, coords); - - vgSetPaint(fill, VG_FILL_PATH); - vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT); - vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, - VG_COLOR_RAMP_SPREAD_REPEAT); - vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient); - vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - - vgDrawPath(path, VG_FILL_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - if (argc > 1) { - const char *arg = argv[1]; - if (!strcmp("-pad", arg)) - spread = VG_COLOR_RAMP_SPREAD_PAD; - else if (!strcmp("-repeat", arg)) - spread = VG_COLOR_RAMP_SPREAD_REPEAT; - else if (!strcmp("-reflect", arg)) - spread = VG_COLOR_RAMP_SPREAD_REFLECT; - } - - switch(spread) { - case VG_COLOR_RAMP_SPREAD_PAD: - printf("Using spread mode: pad\n"); - break; - case VG_COLOR_RAMP_SPREAD_REPEAT: - printf("Using spread mode: repeat\n"); - break; - case VG_COLOR_RAMP_SPREAD_REFLECT: - printf("Using spread mode: reflect\n"); - } - - set_window_size(200, 200); - - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/lineto.c b/progs/openvg/trivial/lineto.c deleted file mode 100644 index 94e2981811..0000000000 --- a/progs/openvg/trivial/lineto.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "eglcommon.h" - -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint fill; - - -static void -init(void) -{ - static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f}; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 5, sqrCmds, sqrCoords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSetf(VG_STROKE_LINE_WIDTH, 10); - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); - vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_STROKE_PAINT_TO_USER); - vgLoadIdentity(); - vgScale(2.25, 2.25); - vgDrawPath(path, VG_STROKE_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/lingrad.c b/progs/openvg/trivial/lingrad.c deleted file mode 100644 index bcaad1f101..0000000000 --- a/progs/openvg/trivial/lingrad.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include - -static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; - -static VGPath path; -static VGPaint fill; - -VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; - -static void -init(void) -{ - static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f}; - - VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f, - 0.33f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.66f, 0.0f, 1.0f, 0.0f, 1.0f, - 1.00f, 0.0f, 0.0f, 1.0f, 1.0f}; - VGfloat linearGradient[4] = {100.0f, 100.0f, 300.0f, 300.0f}; - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 5, sqrCmds, sqrCoords); - - fill = vgCreatePaint(); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_LINEAR_GRADIENT); - vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread); - vgSetParameterfv(fill, VG_PAINT_LINEAR_GRADIENT, 4, linearGradient); - vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - - vgDrawPath(path, VG_FILL_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - if (argc > 1) { - const char *arg = argv[1]; - if (!strcmp("-pad", arg)) - spread = VG_COLOR_RAMP_SPREAD_PAD; - else if (!strcmp("-repeat", arg)) - spread = VG_COLOR_RAMP_SPREAD_REPEAT; - else if (!strcmp("-reflect", arg)) - spread = VG_COLOR_RAMP_SPREAD_REFLECT; - } - - switch(spread) { - case VG_COLOR_RAMP_SPREAD_PAD: - printf("Using spread mode: pad\n"); - break; - case VG_COLOR_RAMP_SPREAD_REPEAT: - printf("Using spread mode: repeat\n"); - break; - case VG_COLOR_RAMP_SPREAD_REFLECT: - printf("Using spread mode: reflect\n"); - } - - set_window_size(400, 400); - - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/lookup.c b/progs/openvg/trivial/lookup.c deleted file mode 100644 index a103ba4488..0000000000 --- a/progs/openvg/trivial/lookup.c +++ /dev/null @@ -1,71 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; -VGfloat clearColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ -VGImage parent; - -VGPaint fill; - -static void -init(void) -{ - VGImage child1, child2; - VGubyte *data; - VGuint LUT[256]; - VGint i; - - data = (VGubyte *)malloc(sizeof(VGubyte)*window_width()*window_height()); - - for (i=0;i - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint fill; - - -static void -init(void) -{ - static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat sqrCoords[5] = {50.0f, 50.0f, 250.0f, 250.0f, 50.0f}; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 5, sqrCmds, sqrCoords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSetf(VG_STROKE_LINE_WIDTH, 10); - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND); - vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); - - vgSeti(VG_MASKING, VG_TRUE); - - vgMask(VG_INVALID_HANDLE, VG_CLEAR_MASK, - 25, 25, 100, 100); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_FILL_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/mask4.c b/progs/openvg/trivial/mask4.c deleted file mode 100644 index fe6db39648..0000000000 --- a/progs/openvg/trivial/mask4.c +++ /dev/null @@ -1,132 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include -#include -#include - -#include - -//VGint x_pos = -10, y_pos = -10; -VGint x_pos = 0, y_pos = 4; -VGint img_width = 120, img_height = 120; - -static void RectToPath(VGPath path, VGfloat x, VGfloat y, VGfloat width, VGfloat height) -{ - static const VGubyte segments[5] = {VG_MOVE_TO_ABS, - VG_HLINE_TO_ABS, - VG_VLINE_TO_ABS, - VG_HLINE_TO_ABS, - VG_CLOSE_PATH}; - VGfloat data[5]; - - data[0] = x; - data[1] = y; - data[2] = x + width; - data[3] = y + height; - data[4] = x; - - vgAppendPathData(path, 5, segments, data); -} - -static void -init(void) -{ -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -int key_press(unsigned key) -{ - switch(key) { - case XK_Right: - x_pos +=1; - break; - case XK_Left: - x_pos -=1; - break; - case XK_Up: - y_pos +=1; - break; - case XK_Down: - y_pos -=1; - break; - case 'a': - img_width -= 5; - img_height -= 5; - break; - case 's': - img_width += 5; - img_height += 5; - break; - default: - break; - } - fprintf(stderr, "Posi = %dx%d\n", x_pos, y_pos); - fprintf(stderr, "Size = %dx%d\n", img_width, img_height); - return VG_FALSE; -} - -static void -draw(void) -{ - VGint WINDSIZEX = window_width(); - VGint WINDSIZEY = window_height(); - - VGPaint fill; - VGPath box; - VGfloat color[4] = {1.f, 0.f, 0.f, 1.f}; - VGfloat bgCol[4] = {0.7f, 0.7f, 0.7f, 1.0f}; - VGfloat transCol[4] = {0.f, 0.f, 0.f, 0.f}; - VGImage image = vgCreateImage(VG_sRGBA_8888, img_width, img_height, - VG_IMAGE_QUALITY_NONANTIALIASED); - - /* Background clear */ - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - box = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1, 0, 0, 0, VG_PATH_CAPABILITY_ALL); - /* Rectangle to cover completely 16x16 pixel area. */ - RectToPath(box, 0, 0, 64, 64); - - vgSetfv(VG_CLEAR_COLOR, 4, transCol); - vgClearImage(image, 0, 0, img_width, img_height); - vgSetfv(VG_CLEAR_COLOR, 4, color); - vgClearImage(image, 10, 10, 12, 12); - //vgImageSubData(image, pukki_64x64_data, pukki_64x64_stride, - // VG_sRGBA_8888, 0, 0, 32, 32); - vgSeti(VG_MASKING, VG_TRUE); - vgLoadIdentity(); - - vgSetfv(VG_CLEAR_COLOR, 4, bgCol); - vgClear(0, 0, WINDSIZEX, WINDSIZEY); - - - vgMask(image, VG_FILL_MASK, 0, 0, window_width(), window_height()); - vgMask(image, VG_SET_MASK, x_pos, y_pos, 100, 100); - - vgDrawPath(box, VG_FILL_PATH); - - //vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); - //vgTranslate(-10, -10); - //vgDrawImage(image); - - - vgDestroyPaint(fill); - vgDestroyPath(box); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, key_press); -} diff --git a/progs/openvg/trivial/path3.c b/progs/openvg/trivial/path3.c deleted file mode 100644 index 5ce600f65a..0000000000 --- a/progs/openvg/trivial/path3.c +++ /dev/null @@ -1,77 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include -#include -#include - -static void -init(void) -{ -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - - -static void -draw(void) -{ - VGint WINDSIZEX = window_width(); - VGint WINDSIZEY = window_height(); - VGPath path; - VGPaint paint; - - VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 0.0f};/* white color */ - VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ - -#if 1 - VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_LCWARC_TO_ABS, VG_SCWARC_TO_ABS, VG_CLOSE_PATH}; -#else - VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_SCCWARC_TO_ABS, VG_LCCWARC_TO_ABS,VG_CLOSE_PATH}; -#endif - VGfloat coords[] = {32.0f, 0.0f, - -32.0f, -32.0f, 0.0f, 64.0f, 32.0f, - -32.0f, -32.0f, 0.0f, 32.0f, 0.0f}; - - - vgSetfv(VG_CLEAR_COLOR, 4, clearColor); - vgClear(0, 0, WINDSIZEX, WINDSIZEY); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - //vgTranslate(32.0f, 32.0f); - - path = vgCreatePath( VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL ); - if ( path == VG_INVALID_HANDLE ) { - return; - } - paint = vgCreatePaint(); - if ( paint == VG_INVALID_HANDLE ) { - vgDestroyPath(path); - return; - } - - vgAppendPathData(path, 4, commands, coords); - vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor); - vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - vgSetPaint(paint, VG_FILL_PATH); - vgDrawPath(path, VG_FILL_PATH); - - vgDestroyPath(path); - vgDestroyPaint(paint); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/radialgrad.c b/progs/openvg/trivial/radialgrad.c deleted file mode 100644 index cf3b1d522d..0000000000 --- a/progs/openvg/trivial/radialgrad.c +++ /dev/null @@ -1,99 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include - -static const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; - -static VGPath path; -static VGPaint fill; - - -VGfloat centeredGradient[5] = {200.0f, 200.0f, 200.0f, 200.0f, 100}; -VGfloat noncenteredGradient[5] = {200.0f, 200.0f, 250.0f, 250.0f, 100}; -VGfloat *radialGradient = centeredGradient; - -VGColorRampSpreadMode spread = VG_COLOR_RAMP_SPREAD_PAD; - -static void -init(void) -{ - static const VGubyte sqrCmds[5] = {VG_MOVE_TO_ABS, VG_HLINE_TO_ABS, VG_VLINE_TO_ABS, VG_HLINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat sqrCoords[5] = {0.0f, 0.0f, 400.0f, 400.0f, 0.0f}; - - VGfloat rampStop[] = {0.00f, 1.0f, 1.0f, 1.0f, 1.0f, - 0.33f, 1.0f, 0.0f, 0.0f, 1.0f, - 0.66f, 0.0f, 1.0f, 0.0f, 1.0f, - 1.00f, 0.0f, 0.0f, 1.0f, 1.0f}; - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 5, sqrCmds, sqrCoords); - - fill = vgCreatePaint(); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetParameteri(fill, VG_PAINT_TYPE, VG_PAINT_TYPE_RADIAL_GRADIENT); - vgSetParameteri(fill, VG_PAINT_COLOR_RAMP_SPREAD_MODE, spread); - vgSetParameterfv(fill, VG_PAINT_RADIAL_GRADIENT, 5, radialGradient); - vgSetParameterfv(fill, VG_PAINT_COLOR_RAMP_STOPS, 20, rampStop); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - - vgDrawPath(path, VG_FILL_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - VGint i; - for (i = 1; i < argc; ++i) { - const char *arg = argv[i]; - if (!strcmp("-pad", arg)) - spread = VG_COLOR_RAMP_SPREAD_PAD; - else if (!strcmp("-repeat", arg)) - spread = VG_COLOR_RAMP_SPREAD_REPEAT; - else if (!strcmp("-reflect", arg)) - spread = VG_COLOR_RAMP_SPREAD_REFLECT; - else if (!strcmp("-center", arg)) { - printf("Centered radial gradient\n"); - radialGradient = centeredGradient; - } else if (!strcmp("-noncenter", arg)) { - printf("Non centered radial gradient\n"); - radialGradient = noncenteredGradient; - } - } - - switch(spread) { - case VG_COLOR_RAMP_SPREAD_PAD: - printf("Using spread mode: pad\n"); - break; - case VG_COLOR_RAMP_SPREAD_REPEAT: - printf("Using spread mode: repeat\n"); - break; - case VG_COLOR_RAMP_SPREAD_REFLECT: - printf("Using spread mode: reflect\n"); - } - - set_window_size(400, 400); - - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/readpixels.c b/progs/openvg/trivial/readpixels.c deleted file mode 100644 index c8e286db9a..0000000000 --- a/progs/openvg/trivial/readpixels.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "eglcommon.h" - -#include - -#include -#include -#include -#include - -float red_color[4] = {1.0, 0.0, 0.0, 1.0}; -float blue_color[4] = {0.0, 0.0, 1.0, 1.0}; -VGint *data; - -static void -init(void) -{ - data = malloc(sizeof(VGint)*2048*2048); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - static const VGint red_pixel = 255 << 24 | 255 << 16 | 0 << 8 | 0; - static const VGint blue_pixel = 255 << 24 | 0 << 16 | 0 << 8 | 255; - VGint i; - - vgSetfv(VG_CLEAR_COLOR, 4, red_color); - vgClear(0, 0, window_width(), window_height()); - vgFlush(); - - memset(data, 0, window_width() * window_height() * sizeof(VGint)); - - vgReadPixels(data, window_width() * sizeof(VGint), - VG_lARGB_8888, - 0, 0, window_width(), window_height()); - - fprintf(stderr, "Red 0 = 0x%x and at 600 = 0x%x\n", - data[0], data[600]); - for (i = 0; i < window_width() * window_height(); ++i) { - assert(data[i] == red_pixel); - } - - vgSetfv(VG_CLEAR_COLOR, 4, blue_color); - vgClear(50, 50, 50, 50); - vgFlush(); - - memset(data, 0, window_width() * window_height() * sizeof(VGint)); - - vgReadPixels(data, 50 * sizeof(VGint), - VG_lARGB_8888, - 50, 50, 50, 50); - - fprintf(stderr, "Blue 0 = 0x%x and at 100 = 0x%x\n", - data[0], data[100]); - for (i = 0; i < 50 * 50; ++i) { - assert(data[i] == blue_pixel); - } -} - - -int main(int argc, char **argv) -{ - int ret = run(argc, argv, init, reshape, - draw, 0); - - free(data); - return ret; -} diff --git a/progs/openvg/trivial/roundedrect.c b/progs/openvg/trivial/roundedrect.c deleted file mode 100644 index c80a4ed299..0000000000 --- a/progs/openvg/trivial/roundedrect.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "eglcommon.h" - -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.9, 0.1, 0.1, 0.8}; - -VGPath path; -VGPaint fill; - - -static void -init(void) -{ - static const VGubyte sqrCmds[10] = {VG_MOVE_TO_ABS, - VG_LINE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_LINE_TO_ABS, - VG_CUBIC_TO_ABS, - VG_CLOSE_PATH}; - static const VGfloat sqrCoords[] = { - 45.885571, 62.857143, - 154.11442, 62.857143, - 162.1236, 62.857143, 168.57142, 70.260744, 168.57142, 79.457144, - 168.57142, 123.4, - 168.57142, 132.5964, 162.1236, 140, 154.11442, 140, - 45.885571, 140, - 37.876394, 140, 31.428572, 132.5964, 31.428572, 123.4, - 31.428572, 79.457144, - 31.428572, 70.260744, 37.876394,62.857143, 45.885571,62.857143 - }; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 10, sqrCmds, sqrCoords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSetf(VG_STROKE_LINE_WIDTH, 6); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_STROKE_PATH); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/star-nonzero.c b/progs/openvg/trivial/star-nonzero.c deleted file mode 100644 index 012fbd3929..0000000000 --- a/progs/openvg/trivial/star-nonzero.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "eglcommon.h" - -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8}; - -VGPath path; -VGPaint fill; - - -static void -init(void) -{ - static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, - VG_LINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat coords[] = { 0, 200, - 300, 200, - 50, 0, - 150, 300, - 250, 0}; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 6, cmds, coords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSeti(VG_FILL_RULE, VG_NON_ZERO); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/star-oddeven.c b/progs/openvg/trivial/star-oddeven.c deleted file mode 100644 index 17311cf720..0000000000 --- a/progs/openvg/trivial/star-oddeven.c +++ /dev/null @@ -1,102 +0,0 @@ -#include "eglcommon.h" - -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8}; -const VGfloat black_color[4] = {0.0, 0.0, 0.0, 1.0}; - -VGPath path; -VGPaint fill; - - -static void draw_point(VGfloat x, VGfloat y) -{ - - static const VGubyte cmds[] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, - VG_LINE_TO_ABS, VG_CLOSE_PATH}; - const VGfloat coords[] = { x - 2, y - 2, - x + 2, y - 2, - x + 2, y + 2, - x - 2, y + 2}; - VGPath path; - VGPaint fill; - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_ALL); - vgAppendPathData(path, 5, cmds, coords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, black_color); - vgSetPaint(fill, VG_FILL_PATH); - - vgDrawPath(path, VG_FILL_PATH); - - vgDestroyPath(path); - vgDestroyPaint(fill); -} - -static void draw_marks(VGPath path) -{ - VGfloat point[2], tangent[2]; - int i = 0; - - for (i = 0; i < 1300; i += 50) { - vgPointAlongPath(path, 0, 6, i, - point + 0, point + 1, - tangent + 0, tangent + 1); - draw_point(point[0], point[1]); - } -} - -static void -init(void) -{ - static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, - VG_LINE_TO_ABS, VG_CLOSE_PATH}; - static const VGfloat coords[] = { 0, 200, - 300, 200, - 50, 0, - 150, 300, - 250, 0}; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_ALL); - vgAppendPathData(path, 6, cmds, coords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - VGfloat point[2], tangent[2]; - int i = 0; - - vgClear(0, 0, window_width(), window_height()); - - vgSetPaint(fill, VG_FILL_PATH); - vgDrawPath(path, VG_FILL_PATH); - - draw_marks(path); - - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, 0); -} diff --git a/progs/openvg/trivial/stroke.c b/progs/openvg/trivial/stroke.c deleted file mode 100644 index 58ae5b7bc8..0000000000 --- a/progs/openvg/trivial/stroke.c +++ /dev/null @@ -1,116 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint fill; - -VGint cap_style = VG_CAP_BUTT; -VGint join_style = VG_JOIN_MITER; - -static void -init(void) -{ -#if 0 - static const VGubyte cmds[] = {VG_MOVE_TO_ABS, - VG_CUBIC_TO_ABS, - }; - static const VGfloat coords[] = {30, 30, 264, 0, 0, 264, 234, 234 - }; -#else - static const VGubyte cmds[] = {VG_MOVE_TO_ABS, - VG_LINE_TO_ABS, - VG_LINE_TO_ABS - }; - static const VGfloat coords[] = {30, 30, 202, 30, 150, 224 - }; -#endif - VGfloat dash_pattern[2] = { 20.f, 20.f }; - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO); - vgAppendPathData(path, 3, cmds, coords); - - fill = vgCreatePaint(); - vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color); - vgSetPaint(fill, VG_FILL_PATH); - - vgSetfv(VG_CLEAR_COLOR, 4, white_color); - vgSetf(VG_STROKE_LINE_WIDTH, 20); - vgSeti(VG_STROKE_CAP_STYLE, cap_style); - vgSeti(VG_STROKE_JOIN_STYLE, join_style); - vgSetfv(VG_STROKE_DASH_PATTERN, 2, dash_pattern); - vgSetf(VG_STROKE_DASH_PHASE, 0.0f); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_STROKE_PATH); - - vgFlush(); -} - -static int key_press(unsigned key) -{ - switch(key) { - case XK_c: - case XK_C: - ++cap_style; - if (cap_style > VG_CAP_SQUARE) - cap_style = VG_CAP_BUTT; - switch(cap_style) { - case VG_CAP_BUTT: - fprintf(stderr, "Cap style 'butt'\n"); - break; - case VG_CAP_ROUND: - fprintf(stderr, "Cap style 'round'\n"); - break; - case VG_CAP_SQUARE: - fprintf(stderr, "Cap style 'square'\n"); - break; - } - vgSeti(VG_STROKE_CAP_STYLE, cap_style); - break; - case XK_j: - case XK_J: - ++join_style; - if (join_style > VG_JOIN_BEVEL) - join_style = VG_JOIN_MITER; - switch(join_style) { - case VG_JOIN_MITER: - fprintf(stderr, "Join style 'miter'\n"); - break; - case VG_JOIN_ROUND: - fprintf(stderr, "Join style 'round'\n"); - break; - case VG_JOIN_BEVEL: - fprintf(stderr, "Join style 'bevel'\n"); - break; - } - vgSeti(VG_STROKE_JOIN_STYLE, join_style); - break; - default: - break; - } - - return VG_TRUE; -} - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, key_press); -} diff --git a/progs/openvg/trivial/stroke2.c b/progs/openvg/trivial/stroke2.c deleted file mode 100644 index ce950c1886..0000000000 --- a/progs/openvg/trivial/stroke2.c +++ /dev/null @@ -1,207 +0,0 @@ -#include "eglcommon.h" - -#include -#include -#include - -VGPaint stroke; -VGPath target; -VGPath lines; - -VGfloat xform[9]; -VGfloat color1[4]; -VGfloat color2[4]; -VGfloat bgCol[4]; - -static void -init(void) -{ - VGubyte lineCmds[6]; - VGfloat lineCoords[8]; - VGfloat arcCoords[5]; - VGubyte sccCmd[1]; - VGubyte scCmd[1]; - VGubyte lccCmd[1]; - VGubyte lcCmd[1]; - VGubyte moveCmd[1]; - VGfloat moveCoords[2]; - VGint i; - - bgCol[0] = 1.0f; - bgCol[1] = 1.0f; - bgCol[2] = 1.0f; - bgCol[3] = 1.0f; - - vgSetfv(VG_CLEAR_COLOR, 4, bgCol); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - - stroke = vgCreatePaint(); - /* Red */ - color1[0] = 1.0f; - color1[1] = 0.0f; - color1[2] = 0.0f; - color1[3] = 1.0f; - - /* Orange */ - color2[0] = 1.0000f; - color2[1] = 1.0f; - color2[2] = 0.0f; - color2[3] = 1.0f; - vgSetPaint(stroke, VG_STROKE_PATH); - - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE); - - { - VGfloat temp[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; - for (i = 0; i < 9; i++) - { - xform[i] = temp[i]; - } - } - vgGetMatrix(xform); - - target = vgCreatePath(VG_PATH_FORMAT_STANDARD, - VG_PATH_DATATYPE_F, 1, 0, 0, 0, VG_PATH_CAPABILITY_TRANSFORM_TO); - -#if 0 - /* Line path */ - { - VGubyte temp[6] = {VG_MOVE_TO_ABS, VG_VLINE_TO_REL, - VG_MOVE_TO_ABS, VG_VLINE_TO_REL, - VG_HLINE_TO_REL, VG_VLINE_TO_REL}; - for (i = 0; i < 6; i++) - { - lineCmds[i] = temp[i]; - } - } - { - VGfloat temp[8] = {0.5f, 0.8f, -0.6f, 0.28f, 0.6f, -0.4f, 0.44f, 0.4f}; - for (i = 0; i < 8; i++) - { - lineCoords[i] = temp[i] * window_width(); - } - } -#else - { - VGfloat temp[5] = {0.35f, 0.15f, 29, 0.3f, 0.4f}; - for (i = 0; i < 5; i++) - { - arcCoords[i] = temp[i] * window_width(); - } - arcCoords[2] = 29; - } - - { - VGubyte temp[1] = {VG_SCCWARC_TO_ABS}; - for (i = 0; i < 1; i++) - { - sccCmd[i] = temp[i]; - } - } - { - VGubyte temp[1] = {VG_SCWARC_TO_ABS}; - for (i = 0; i < 1; i++) - { - scCmd[i] = temp[i]; - } - } - { - VGubyte temp[1] = {VG_LCCWARC_TO_ABS}; - for (i = 0; i < 1; i++) - { - lccCmd[i] = temp[i]; - } - } - { - VGubyte temp[1] = {VG_LCWARC_TO_ABS}; - for (i = 0; i < 1; i++) - { - lcCmd[i] = temp[i]; - } - } - - { - VGubyte temp[1] = {VG_MOVE_TO_ABS}; - for (i = 0; i < 1; i++) - { - moveCmd[i] = temp[i]; - } - } - { - VGfloat temp[2] = {0.7f, 0.6f}; - for (i = 0; i < 2; i++) - { - moveCoords[i] = temp[i] * window_width(); - } - } -#endif - - lines = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, - 0, 0, 0, - VG_PATH_CAPABILITY_APPEND_TO| - VG_PATH_CAPABILITY_TRANSFORM_FROM); -#if 0 - vgAppendPathData(lines, 6, lineCmds, lineCoords); -#else - vgAppendPathData(lines, 1, moveCmd, moveCoords); - vgAppendPathData(lines, 1, sccCmd, arcCoords); - vgAppendPathData(lines, 1, moveCmd, moveCoords); - vgAppendPathData(lines, 1, scCmd, arcCoords); - vgAppendPathData(lines, 1, moveCmd, moveCoords); - vgAppendPathData(lines, 1, lccCmd, arcCoords); - vgAppendPathData(lines, 1, moveCmd, moveCoords); - vgAppendPathData(lines, 1, lcCmd, arcCoords); -#endif - - vgLoadIdentity(); - vgTranslate(0.25f * window_width(), 0.25f * window_height()); - vgRotate(30); - vgTranslate(-0.25f * window_width(), -0.25f * window_height()); - vgTransformPath(target, lines);} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgLoadMatrix(xform); - vgLoadIdentity(); - vgTranslate(0.25f * window_width(), 0.25f * window_height()); - vgRotate(30); - vgTranslate(-0.25f * window_width(), -0.25f * window_height()); - vgSetf(VG_STROKE_LINE_WIDTH, 7); - vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color1); - vgDrawPath(lines, VG_STROKE_PATH); - - vgLoadMatrix(xform); - vgSetParameterfv(stroke, VG_PAINT_COLOR, 4, color2); - vgSetf(VG_STROKE_LINE_WIDTH, 3); - vgDrawPath(target, VG_STROKE_PATH); -} - -static int key_press(unsigned key) -{ - switch(key) { - case XK_c: - case XK_C: - break; - case XK_j: - case XK_J: - break; - default: - break; - } - - return VG_TRUE; -} - -int main(int argc, char **argv) -{ - return run(argc, argv, init, reshape, - draw, key_press); -} diff --git a/progs/openvg/trivial/vguarc.c b/progs/openvg/trivial/vguarc.c deleted file mode 100644 index 8d971d5c09..0000000000 --- a/progs/openvg/trivial/vguarc.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "eglcommon.h" - -#include -#include - -const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0}; - -VGPath path; -VGPaint paint; - - -static void -init(void) -{ - VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */ - VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */ - VGint arcType = VGU_ARC_OPEN; - VGfloat x, y, w, h, startAngle, angleExtent; - - x = 150; - y = 150; - w = 150; - h = 150; -#if 0 - startAngle = -540.0f; - angleExtent = 270.0f; -#else - startAngle = 270.0f; - angleExtent = 90.0f; -#endif - - paint = vgCreatePaint(); - - vgSetPaint(paint, VG_STROKE_PATH); - vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor); - vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - vgSetf(VG_STROKE_LINE_WIDTH, 6.0f); - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - vgSetfv(VG_CLEAR_COLOR, 4, clearColor); - - path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, - 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL); - - vguArc(path, x, y, w, h, startAngle, angleExtent, arcType); - - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL); - vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ - vgLoadIdentity(); -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - vgDrawPath(path, VG_STROKE_PATH); - - vgFlush(); -} - - -int main(int argc, char **argv) -{ - // set_window_size(64, 63); - return run(argc, argv, init, reshape, - draw, 0); -} -- cgit v1.2.3 From 57cc1db87b5cacffd3344c49062c8289b7d46e78 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 12:19:47 +0800 Subject: progs/egl: Add eglut. eglut is a simple library with GLUT-like API. It is intended to be used by simple EGL demos. --- progs/egl/eglut/Makefile | 35 +++++ progs/egl/eglut/eglut.c | 326 +++++++++++++++++++++++++++++++++++++++++ progs/egl/eglut/eglut.h | 67 +++++++++ progs/egl/eglut/eglut_screen.c | 154 +++++++++++++++++++ progs/egl/eglut/eglut_x11.c | 220 +++++++++++++++++++++++++++ progs/egl/eglut/eglutint.h | 78 ++++++++++ 6 files changed, 880 insertions(+) create mode 100644 progs/egl/eglut/Makefile create mode 100644 progs/egl/eglut/eglut.c create mode 100644 progs/egl/eglut/eglut.h create mode 100644 progs/egl/eglut/eglut_screen.c create mode 100644 progs/egl/eglut/eglut_x11.c create mode 100644 progs/egl/eglut/eglutint.h diff --git a/progs/egl/eglut/Makefile b/progs/egl/eglut/Makefile new file mode 100644 index 0000000000..f5cafa7010 --- /dev/null +++ b/progs/egl/eglut/Makefile @@ -0,0 +1,35 @@ +# progs/egl/eglut + +TOP = ../../.. +include $(TOP)/configs/current + +INCLUDES = \ + -I$(TOP)/include + +SOURCES = $(wildcard *.c) + +EGLUT_X11_OBJECTS = eglut.o eglut_x11.o +EGLUT_SCREEN_OBJECTS = eglut.o eglut_screen.o + +default: depend libeglut-x11.a libeglut-screen.a + +libeglut-x11.a: $(EGLUT_X11_OBJECTS) + $(MKLIB) -o eglut-x11 -static $(EGLUT_X11_OBJECTS) + +libeglut-screen.a: $(EGLUT_SCREEN_OBJECTS) + $(MKLIB) -o eglut-screen -static $(EGLUT_SCREEN_OBJECTS) + +.c.o: + $(CC) -c -o $@ $< $(INCLUDES) $(DEFINES) $(CFLAGS) + +depend: $(SOURCES) + @rm -f depend + @touch depend + @$(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) \ + > /dev/null 2>/dev/null + +clean: + rm -f *.o *.a + rm -f depend depend.bak + +sinclude depend diff --git a/progs/egl/eglut/eglut.c b/progs/egl/eglut/eglut.c new file mode 100644 index 0000000000..0bfd5d5b06 --- /dev/null +++ b/progs/egl/eglut/eglut.c @@ -0,0 +1,326 @@ +#include +#include +#include +#include +#include + +#include "EGL/egl.h" +#include "EGL/eglext.h" + +#include "eglutint.h" + +static struct eglut_state _eglut_state = { + .api_mask = EGLUT_OPENGL_ES1_BIT, + .window_width = 300, + .window_height = 300, + .verbose = 0, + .num_windows = 0, +}; + +struct eglut_state *_eglut = &_eglut_state; + +void +_eglutFatal(char *format, ...) +{ + va_list args; + + va_start(args, format); + + fprintf(stderr, "EGLUT: "); + vfprintf(stderr, format, args); + va_end(args); + putc('\n', stderr); + + exit(1); +} + +/* return current time (in milliseconds) */ +int +_eglutNow(void) +{ + struct timeval tv; +#ifdef __VMS + (void) gettimeofday(&tv, NULL ); +#else + struct timezone tz; + (void) gettimeofday(&tv, &tz); +#endif + return tv.tv_sec * 1000 + tv.tv_usec / 1000; +} + +static void +_eglutDestroyWindow(struct eglut_window *win) +{ + if (_eglut->surface_type != EGL_PBUFFER_BIT && + _eglut->surface_type != EGL_SCREEN_BIT_MESA) + eglDestroySurface(_eglut->dpy, win->surface); + + _eglutNativeFiniWindow(win); + + eglDestroyContext(_eglut->dpy, win->context); +} + +static EGLConfig +_eglutChooseConfig(void) +{ + EGLConfig config; + EGLint config_attribs[32]; + EGLint renderable_type, num_configs, i; + + i = 0; + config_attribs[i++] = EGL_RED_SIZE; + config_attribs[i++] = 1; + config_attribs[i++] = EGL_GREEN_SIZE; + config_attribs[i++] = 1; + config_attribs[i++] = EGL_BLUE_SIZE; + config_attribs[i++] = 1; + config_attribs[i++] = EGL_DEPTH_SIZE; + config_attribs[i++] = 1; + + config_attribs[i++] = EGL_SURFACE_TYPE; + config_attribs[i++] = _eglut->surface_type; + + config_attribs[i++] = EGL_RENDERABLE_TYPE; + renderable_type = 0x0; + if (_eglut->api_mask & EGLUT_OPENGL_BIT) + renderable_type |= EGL_OPENGL_BIT; + if (_eglut->api_mask & (EGLUT_OPENGL_ES1_BIT | EGLUT_OPENGL_ES2_BIT)) + renderable_type |= EGL_OPENGL_ES_BIT; + if (_eglut->api_mask & EGLUT_OPENVG_BIT) + renderable_type |= EGL_OPENVG_BIT; + config_attribs[i++] = renderable_type; + + config_attribs[i] = EGL_NONE; + + if (!eglChooseConfig(_eglut->dpy, + config_attribs, &config, 1, &num_configs) || !num_configs) + _eglutFatal("failed to choose a config"); + + return config; +} + +static struct eglut_window * +_eglutCreateWindow(const char *title, int x, int y, int w, int h) +{ + struct eglut_window *win; + EGLint context_attribs[4]; + EGLint api, i; + + win = calloc(1, sizeof(*win)); + if (!win) + _eglutFatal("failed to allocate window"); + + win->config = _eglutChooseConfig(); + + i = 0; + context_attribs[i] = EGL_NONE; + + /* multiple APIs? */ + + api = EGL_OPENGL_ES_API; + if (_eglut->api_mask & EGLUT_OPENGL_BIT) { + api = EGL_OPENGL_API; + } + else if (_eglut->api_mask & EGLUT_OPENVG_BIT) { + api = EGL_OPENVG_API; + } + else if (_eglut->api_mask & EGLUT_OPENGL_ES2_BIT) { + context_attribs[i++] = EGL_CONTEXT_CLIENT_VERSION; + context_attribs[i++] = 2; + } + + context_attribs[i] = EGL_NONE; + + eglBindAPI(api); + win->context = eglCreateContext(_eglut->dpy, + win->config, EGL_NO_CONTEXT, context_attribs); + if (!win->context) + _eglutFatal("failed to create context"); + + _eglutNativeInitWindow(win, title, x, y, w, h); + switch (_eglut->surface_type) { + case EGL_WINDOW_BIT: + win->surface = eglCreateWindowSurface(_eglut->dpy, + win->config, win->native.u.window, NULL); + break; + case EGL_PIXMAP_BIT: + win->surface = eglCreatePixmapSurface(_eglut->dpy, + win->config, win->native.u.pixmap, NULL); + break; + case EGL_PBUFFER_BIT: + case EGL_SCREEN_BIT_MESA: + win->surface = win->native.u.surface; + break; + default: + break; + } + if (win->surface == EGL_NO_SURFACE) + _eglutFatal("failed to create surface"); + + return win; +} + +void +eglutInitAPIMask(int mask) +{ + _eglut->api_mask = mask; +} + +void +eglutInitWindowSize(int width, int height) +{ + _eglut->window_width = width; + _eglut->window_height = height; +} + +void +eglutInit(int argc, char **argv) +{ + int i; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-display") == 0) + _eglut->display_name = argv[++i]; + else if (strcmp(argv[i], "-info") == 0) { + _eglut->verbose = 1; + } + } + + _eglutNativeInitDisplay(); + _eglut->dpy = eglGetDisplay(_eglut->native_dpy); + + if (!eglInitialize(_eglut->dpy, &_eglut->major, &_eglut->minor)) + _eglutFatal("failed to initialize EGL display"); + + _eglut->init_time = _eglutNow(); + + printf("EGL_VERSION = %s\n", eglQueryString(_eglut->dpy, EGL_VERSION)); +} + +int +eglutGet(int state) +{ + int val; + + switch (state) { + case EGLUT_ELAPSED_TIME: + val = _eglutNow() - _eglut->init_time; + break; + default: + val = -1; + break; + } + + return val; +} + +void +eglutIdleFunc(EGLUTidleCB func) +{ + _eglut->idle_cb = func; +} + +void +eglutPostRedisplay(void) +{ + _eglut->redisplay = 1; +} + +void +eglutMainLoop(void) +{ + struct eglut_window *win = _eglut->current; + + if (!win) + _eglutFatal("no window is created\n"); + + if (win->reshape_cb) + win->reshape_cb(win->native.width, win->native.height); + + _eglutNativeEventLoop(); +} + +static void +_eglutFini(void) +{ + eglTerminate(_eglut->dpy); + _eglutNativeFiniDisplay(); +} + +static void +_eglutDefaultKeyboard(unsigned char key) +{ + if (key == 27) { + /* XXX it causes some bug in st/egl KMS backend */ + if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA) + eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + _eglutDestroyWindow(_eglut->current); + _eglutFini(); + + exit(0); + } +} + +int +eglutCreateWindow(const char *title) +{ + struct eglut_window *win; + + win = _eglutCreateWindow(title, 0, 0, + _eglut->window_width, _eglut->window_height); + + win->index = _eglut->num_windows++; + win->reshape_cb = NULL; + win->display_cb = NULL; + win->keyboard_cb = _eglutDefaultKeyboard; + win->special_cb = NULL; + + if (!eglMakeCurrent(_eglut->dpy, win->surface, win->surface, win->context)) + _eglutFatal("failed to make window current"); + _eglut->current = win; + + return win->index; +} + +int +eglutGetWindowWidth(void) +{ + struct eglut_window *win = _eglut->current; + return win->native.width; +} + +int +eglutGetWindowHeight(void) +{ + struct eglut_window *win = _eglut->current; + return win->native.height; +} + +void +eglutDisplayFunc(EGLUTdisplayCB func) +{ + struct eglut_window *win = _eglut->current; + win->display_cb = func; + +} + +void +eglutReshapeFunc(EGLUTreshapeCB func) +{ + struct eglut_window *win = _eglut->current; + win->reshape_cb = func; +} + +void +eglutKeyboardFunc(EGLUTkeyboardCB func) +{ + struct eglut_window *win = _eglut->current; + win->keyboard_cb = func; +} + +void +eglutSpecialFunc(EGLUTspecialCB func) +{ + struct eglut_window *win = _eglut->current; + win->special_cb = func; +} diff --git a/progs/egl/eglut/eglut.h b/progs/egl/eglut/eglut.h new file mode 100644 index 0000000000..521cc12eab --- /dev/null +++ b/progs/egl/eglut/eglut.h @@ -0,0 +1,67 @@ +#ifndef EGLUT_H +#define EGLUT_H + +/* used by eglutInitAPIMask */ +enum { + EGLUT_OPENGL_BIT = 0x1, + EGLUT_OPENGL_ES1_BIT = 0x2, + EGLUT_OPENGL_ES2_BIT = 0x4, + EGLUT_OPENVG_BIT = 0x8 +}; + +/* used by EGLUTspecialCB */ +enum { + /* function keys */ + EGLUT_KEY_F1, + EGLUT_KEY_F2, + EGLUT_KEY_F3, + EGLUT_KEY_F4, + EGLUT_KEY_F5, + EGLUT_KEY_F6, + EGLUT_KEY_F7, + EGLUT_KEY_F8, + EGLUT_KEY_F9, + EGLUT_KEY_F10, + EGLUT_KEY_F11, + EGLUT_KEY_F12, + + /* directional keys */ + EGLUT_KEY_LEFT, + EGLUT_KEY_UP, + EGLUT_KEY_RIGHT, + EGLUT_KEY_DOWN, +}; + +/* used by eglutGet */ +enum { + EGLUT_ELAPSED_TIME +}; + +typedef void (*EGLUTidleCB)(void); +typedef void (*EGLUTreshapeCB)(int, int); +typedef void (*EGLUTdisplayCB)(void); +typedef void (*EGLUTkeyboardCB)(unsigned char); +typedef void (*EGLUTspecialCB)(int); + +void eglutInitAPIMask(int mask); +void eglutInitWindowSize(int width, int height); +void eglutInit(int argc, char **argv); + +int eglutGet(int state); + +void eglutIdleFunc(EGLUTidleCB func); +void eglutPostRedisplay(void); + +void eglutMainLoop(void); + +int eglutCreateWindow(const char *title); + +int eglutGetWindowWidth(void); +int eglutGetWindowHeight(void); + +void eglutDisplayFunc(EGLUTdisplayCB func); +void eglutReshapeFunc(EGLUTreshapeCB func); +void eglutKeyboardFunc(EGLUTkeyboardCB func); +void eglutSpecialFunc(EGLUTspecialCB func); + +#endif /* EGLUT_H */ diff --git a/progs/egl/eglut/eglut_screen.c b/progs/egl/eglut/eglut_screen.c new file mode 100644 index 0000000000..50549e4bcf --- /dev/null +++ b/progs/egl/eglut/eglut_screen.c @@ -0,0 +1,154 @@ +#include +#include +#include + +#define EGL_EGLEXT_PROTOTYPES +#include "EGL/egl.h" +#include "EGL/eglext.h" + +#include "eglutint.h" + +#define MAX_MODES 100 + +static EGLScreenMESA kms_screen; +static EGLModeMESA kms_mode; +static EGLint kms_width, kms_height; + +void +_eglutNativeInitDisplay(void) +{ + _eglut->native_dpy = EGL_DEFAULT_DISPLAY; + _eglut->surface_type = EGL_SCREEN_BIT_MESA; +} + +void +_eglutNativeFiniDisplay(void) +{ + kms_screen = 0; + kms_mode = 0; + kms_width = 0; + kms_height = 0; +} + +static void +init_kms(void) +{ + EGLModeMESA modes[MAX_MODES]; + EGLint num_screens, num_modes; + EGLint width, height, best_mode; + EGLint i; + + if (!eglGetScreensMESA(_eglut->dpy, &kms_screen, 1, &num_screens) || + !num_screens) + _eglutFatal("eglGetScreensMESA failed\n"); + + if (!eglGetModesMESA(_eglut->dpy, kms_screen, + modes, MAX_MODES, &num_modes) || !num_modes) + _eglutFatal("eglGetModesMESA failed!\n"); + + printf("Found %d modes:\n", num_modes); + + best_mode = 0; + width = 0; + height = 0; + for (i = 0; i < num_modes; i++) { + EGLint w, h; + eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_WIDTH, &w); + eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_HEIGHT, &h); + printf("%3d: %d x %d\n", i, w, h); + if (w > width && h > height) { + width = w; + height = h; + best_mode = i; + } + } + + printf("Will use screen size: %d x %d\n", width, height); + + kms_mode = modes[best_mode]; + kms_width = width; + kms_height = height; +} + +void +_eglutNativeInitWindow(struct eglut_window *win, const char *title, + int x, int y, int w, int h) +{ + EGLint surf_attribs[16]; + EGLint i; + const char *exts; + + exts = eglQueryString(_eglut->dpy, EGL_EXTENSIONS); + if (!exts || !strstr(exts, "EGL_MESA_screen_surface")) + _eglutFatal("EGL_MESA_screen_surface is not supported\n"); + + init_kms(); + + i = 0; + surf_attribs[i++] = EGL_WIDTH; + surf_attribs[i++] = kms_width; + surf_attribs[i++] = EGL_HEIGHT; + surf_attribs[i++] = kms_height; + surf_attribs[i++] = EGL_NONE; + + /* create surface */ + win->native.u.surface = eglCreateScreenSurfaceMESA(_eglut->dpy, + win->config, surf_attribs); + if (win->native.u.surface == EGL_NO_SURFACE) + _eglutFatal("eglCreateScreenSurfaceMESA failed\n"); + + if (!eglShowScreenSurfaceMESA(_eglut->dpy, kms_screen, + win->native.u.surface, kms_mode)) + _eglutFatal("eglShowScreenSurfaceMESA failed\n"); + + win->native.width = kms_width; + win->native.height = kms_height; +} + +void +_eglutNativeFiniWindow(struct eglut_window *win) +{ + eglShowScreenSurfaceMESA(_eglut->dpy, + kms_screen, EGL_NO_SURFACE, 0); + eglDestroySurface(_eglut->dpy, win->native.u.surface); +} + +void +_eglutNativeEventLoop(void) +{ + int start = _eglutNow(); + int frames = 0; + + _eglut->redisplay = 1; + + while (1) { + struct eglut_window *win = _eglut->current; + int now = _eglutNow(); + + if (now - start > 5000) { + double elapsed = (double) (now - start) / 1000.0; + + printf("%d frames in %3.1f seconds = %6.3f FPS\n", + frames, elapsed, frames / elapsed); + + start = now; + frames = 0; + + /* send escape */ + if (win->keyboard_cb) + win->keyboard_cb(27); + } + + if (_eglut->idle_cb) + _eglut->idle_cb(); + + if (_eglut->redisplay) { + _eglut->redisplay = 0; + + if (win->display_cb) + win->display_cb(); + eglSwapBuffers(_eglut->dpy, win->surface); + frames++; + } + } +} diff --git a/progs/egl/eglut/eglut_x11.c b/progs/egl/eglut/eglut_x11.c new file mode 100644 index 0000000000..f3b2280374 --- /dev/null +++ b/progs/egl/eglut/eglut_x11.c @@ -0,0 +1,220 @@ +#include +#include +#include + +#include "eglutint.h" + +void +_eglutNativeInitDisplay(void) +{ + _eglut->native_dpy = XOpenDisplay(_eglut->display_name); + if (!_eglut->native_dpy) + _eglutFatal("failed to initialize native display"); + + _eglut->surface_type = EGL_WINDOW_BIT; +} + +void +_eglutNativeFiniDisplay(void) +{ + XCloseDisplay(_eglut->native_dpy); +} + +void +_eglutNativeInitWindow(struct eglut_window *win, const char *title, + int x, int y, int w, int h) +{ + XVisualInfo *visInfo, visTemplate; + int num_visuals; + Window root, xwin; + XSetWindowAttributes attr; + unsigned long mask; + EGLint vid; + + if (!eglGetConfigAttrib(_eglut->dpy, + win->config, EGL_NATIVE_VISUAL_ID, &vid)) + _eglutFatal("failed to get visual id"); + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(_eglut->native_dpy, + VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) + _eglutFatal("failed to get an visual of id 0x%x", vid); + + root = RootWindow(_eglut->native_dpy, DefaultScreen(_eglut->native_dpy)); + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap(_eglut->native_dpy, + root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + xwin = XCreateWindow(_eglut->native_dpy, root, x, y, w, h, + 0, visInfo->depth, InputOutput, visInfo->visual, mask, &attr); + if (!xwin) + _eglutFatal("failed to create a window"); + + XFree(visInfo); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = w; + sizehints.height = h; + sizehints.flags = USSize | USPosition; + XSetNormalHints(_eglut->native_dpy, xwin, &sizehints); + XSetStandardProperties(_eglut->native_dpy, xwin, + title, title, None, (char **) NULL, 0, &sizehints); + } + + XMapWindow(_eglut->native_dpy, xwin); + + win->native.u.window = xwin; + win->native.width = w; + win->native.height = h; +} + +void +_eglutNativeFiniWindow(struct eglut_window *win) +{ + XDestroyWindow(_eglut->native_dpy, win->native.u.window); +} + +static int +lookup_keysym(KeySym sym) +{ + int special; + + switch (sym) { + case XK_F1: + special = EGLUT_KEY_F1; + break; + case XK_F2: + special = EGLUT_KEY_F2; + break; + case XK_F3: + special = EGLUT_KEY_F3; + break; + case XK_F4: + special = EGLUT_KEY_F4; + break; + case XK_F5: + special = EGLUT_KEY_F5; + break; + case XK_F6: + special = EGLUT_KEY_F6; + break; + case XK_F7: + special = EGLUT_KEY_F7; + break; + case XK_F8: + special = EGLUT_KEY_F8; + break; + case XK_F9: + special = EGLUT_KEY_F9; + break; + case XK_F10: + special = EGLUT_KEY_F10; + break; + case XK_F11: + special = EGLUT_KEY_F11; + break; + case XK_F12: + special = EGLUT_KEY_F12; + break; + case XK_KP_Left: + case XK_Left: + special = EGLUT_KEY_LEFT; + break; + case XK_KP_Up: + case XK_Up: + special = EGLUT_KEY_UP; + break; + case XK_KP_Right: + case XK_Right: + special = EGLUT_KEY_RIGHT; + break; + case XK_KP_Down: + case XK_Down: + special = EGLUT_KEY_DOWN; + break; + default: + special = -1; + break; + } + + return special; +} + +static void +next_event(struct eglut_window *win) +{ + int redraw = 0; + XEvent event; + + if (!XPending(_eglut->native_dpy)) { + if (_eglut->idle_cb) + _eglut->idle_cb(); + return; + } + + XNextEvent(_eglut->native_dpy, &event); + + switch (event.type) { + case Expose: + redraw = 1; + break; + case ConfigureNotify: + win->native.width = event.xconfigure.width; + win->native.height = event.xconfigure.height; + if (win->reshape_cb) + win->reshape_cb(win->native.width, win->native.height); + break; + case KeyPress: + { + char buffer[1]; + KeySym sym; + int r; + + r = XLookupString(&event.xkey, + buffer, sizeof(buffer), &sym, NULL); + if (r && win->keyboard_cb) { + win->keyboard_cb(buffer[0]); + } + else if (!r && win->special_cb) { + r = lookup_keysym(sym); + if (r >= 0) + win->special_cb(r); + } + } + redraw = 1; + break; + default: + ; /*no-op*/ + } + + _eglut->redisplay = redraw; +} + +void +_eglutNativeEventLoop(void) +{ + while (1) { + struct eglut_window *win = _eglut->current; + + next_event(win); + + if (_eglut->redisplay) { + _eglut->redisplay = 0; + + if (win->display_cb) + win->display_cb(); + eglSwapBuffers(_eglut->dpy, win->surface); + } + } +} diff --git a/progs/egl/eglut/eglutint.h b/progs/egl/eglut/eglutint.h new file mode 100644 index 0000000000..54d329f328 --- /dev/null +++ b/progs/egl/eglut/eglutint.h @@ -0,0 +1,78 @@ +#ifndef _EGLUTINT_H_ +#define _EGLUTINT_H_ + +#include "EGL/egl.h" +#include "eglut.h" + +struct eglut_window { + EGLConfig config; + EGLContext context; + + /* initialized by native display */ + struct { + union { + EGLNativeWindowType window; + EGLNativePixmapType pixmap; + EGLSurface surface; /* pbuffer or screen surface */ + } u; + int width, height; + } native; + + EGLSurface surface; + + int index; + + EGLUTreshapeCB reshape_cb; + EGLUTdisplayCB display_cb; + EGLUTkeyboardCB keyboard_cb; + EGLUTspecialCB special_cb; +}; + +struct eglut_state { + int api_mask; + int window_width, window_height; + const char *display_name; + int verbose; + int init_time; + + EGLUTidleCB idle_cb; + + int num_windows; + + /* initialized by native display */ + EGLNativeDisplayType native_dpy; + EGLint surface_type; + + EGLDisplay dpy; + EGLint major, minor; + + struct eglut_window *current; + + int redisplay; +}; + +extern struct eglut_state *_eglut; + +void +_eglutFatal(char *format, ...); + +int +_eglutNow(void); + +void +_eglutNativeInitDisplay(void); + +void +_eglutNativeFiniDisplay(void); + +void +_eglutNativeInitWindow(struct eglut_window *win, const char *title, + int x, int y, int w, int h); + +void +_eglutNativeFiniWindow(struct eglut_window *win); + +void +_eglutNativeEventLoop(void); + +#endif /* _EGLUTINT_H_ */ -- cgit v1.2.3 From 589f6740ea90c61af95a08dfe6b8bcc0a22ef4d2 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 12:21:06 +0800 Subject: progs/egl: Port eglgears to eglut. --- progs/egl/opengl/Makefile | 37 +++++-- progs/egl/opengl/eglgears.c | 241 ++++++-------------------------------------- 2 files changed, 59 insertions(+), 219 deletions(-) diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile index 50a60c701d..6a4cea870d 100644 --- a/progs/egl/opengl/Makefile +++ b/progs/egl/opengl/Makefile @@ -9,7 +9,15 @@ INCLUDE_DIRS = -I$(TOP)/include HEADERS = $(TOP)/include/GLES/egl.h LIB_DEP = $(TOP)/$(LIB_DIR)/libEGL.so -LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL +LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL -lm + +EGLUT_DIR = $(TOP)/progs/egl/eglut + +EGLUT_DEMOS = \ + eglgears + +EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) +EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) PROGRAMS = \ demo1 \ @@ -17,7 +25,6 @@ PROGRAMS = \ demo3 \ egltri \ eglinfo \ - eglgears \ eglscreen \ peglgears \ xeglgears \ @@ -26,11 +33,11 @@ PROGRAMS = \ .c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + $(CC) -c $(INCLUDE_DIRS) -I$(EGLUT_DIR) $(CFLAGS) $< -o $@ -default: $(PROGRAMS) +default: $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) demo1: demo1.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) @@ -47,9 +54,6 @@ egltri: egltri.o $(HEADERS) $(LIB_DEP) eglinfo: eglinfo.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -eglgears: eglgears.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm - eglscreen: eglscreen.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) @@ -65,6 +69,23 @@ xeglthreads: xeglthreads.o $(HEADERS) $(LIB_DEP) xegl_tri: xegl_tri.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) + +$(EGLUT_DIR)/libeglut-x11.a $(EGLUT_DIR)/libeglut-screen.a: + @$(MAKE) -C $(EGLUT_DIR) + +# define the rules for EGLUT demos +define eglut-demo-rule +$(1)_x11 $(1)_screen: $(1)_%: $(1).o $(EGLUT_DIR)/libeglut-%.a $(LIB_DEP) +endef +$(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) + +# build EGLUT demos +$(EGLUT_X11_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -L$(EGLUT_DIR) -leglut-$* + clean: -rm -f *.o *~ - -rm -f $(PROGRAMS) + -rm -f $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) + @$(MAKE) -C $(EGLUT_DIR) clean diff --git a/progs/egl/opengl/eglgears.c b/progs/egl/opengl/eglgears.c index 63490953ae..28da9c0ac7 100644 --- a/progs/egl/opengl/eglgears.c +++ b/progs/egl/opengl/eglgears.c @@ -27,78 +27,16 @@ * Program runs for 5 seconds then exits, outputing framerate to console */ -#define EGL_EGLEXT_PROTOTYPES - -#include #include -#include -#include -#include #include #include -#include - -#define MAX_CONFIGS 10 -#define MAX_MODES 100 - -#define BENCHMARK - -#ifdef BENCHMARK - -/* XXX this probably isn't very portable */ - -#include -#include - -/* return current time (in seconds) */ -static double -current_time(void) -{ - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - -#else /*BENCHMARK*/ - -/* dummy */ -static double -current_time(void) -{ - /* update this function for other platforms! */ - static double t = 0.0; - static int warn = 1; - if (warn) { - fprintf(stderr, "Warning: current_time() not implemented!!\n"); - warn = 0; - } - return t += 1.0; -} - -#endif /*BENCHMARK*/ - - -#ifndef M_PI -#define M_PI 3.14159265 -#endif +#include "eglut.h" static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; static GLint gear1, gear2, gear3; static GLfloat angle = 0.0; -#if 0 -static GLfloat eyesep = 5.0; /* Eye separation. */ -static GLfloat fix_point = 40.0; /* Fixation point distance. */ -static GLfloat left, right, asp; /* Stereo frustum params. */ -#endif - - /* * * Draw a gear wheel. You'll probably want to call this function when @@ -270,6 +208,22 @@ draw(void) } +static void +idle(void) +{ + static double t0 = -1.; + double dt, t = eglutGet(EGLUT_ELAPSED_TIME) / 1000.0; + if (t0 < 0.0) + t0 = t; + dt = t - t0; + t0 = t; + + angle += 70.0 * dt; /* 70 degrees per second */ + angle = fmod(angle, 360.0); /* prevents eventual overflow */ + + eglutPostRedisplay(); +} + /* new window size or exposure */ static void reshape(int width, int height) @@ -325,158 +279,23 @@ init(void) glEnable(GL_NORMALIZE); } - - - -static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr) -{ - double st = current_time(); - double ct = st; - int frames = 0; - GLfloat seconds, fps; - - while (ct - st < ttr) - { - double tt = current_time(); - double dt = tt - ct; - ct = tt; - - /* advance rotation for next frame */ - angle += 70.0 * dt; /* 70 degrees per second */ - if (angle > 3600.0) - angle -= 3600.0; - - draw(); - - eglSwapBuffers(dpy, surf); - - - frames++; - } - - seconds = ct - st; - fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); - -} - - int main(int argc, char *argv[]) { - int maj, min; - EGLContext ctx; - EGLSurface screen_surf; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - EGLModeMESA mode[MAX_MODES]; - EGLScreenMESA screen; - EGLint count; - EGLint chosenMode = 0; - GLboolean printInfo = GL_FALSE; - EGLint width = 0, height = 0; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) - { - if (strcmp(argv[i], "-info") == 0) - { - printInfo = GL_TRUE; - } - else - printf("Warning: unknown parameter: %s\n", argv[i]); - } - - /* DBR : Create EGL context/surface etc */ - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("eglgears: eglInitialize failed\n"); - exit(1); - } - - printf("eglgears: EGL version = %d.%d\n", maj, min); - printf("eglgears: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - /* XXX use ChooseConfig */ - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - eglGetScreensMESA(d, &screen, 1, &count); - - if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { - printf("eglgears: eglGetModesMESA failed!\n"); - return 0; - } - - /* Print list of modes, and find the one to use */ - printf("eglgears: Found %d modes:\n", count); - for (i = 0; i < count; i++) { - EGLint w, h; - eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - chosenMode = i; - } - } - printf("eglgears: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("eglgears: failed to create context\n"); - return 0; - } - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("eglgears: failed to create screen surface\n"); - return 0; - } - - b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); - if (!b) { - printf("eglgears: show surface failed\n"); - return 0; - } - - b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); - if (!b) { - printf("eglgears: make current failed\n"); - return 0; - } - - if (printInfo) - { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - init(); - reshape(width, height); + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_BIT); + eglutInit(argc, argv); - glDrawBuffer( GL_BACK ); + eglutCreateWindow("eglgears"); - run_gears(d, screen_surf, 5.0); - - eglDestroySurface(d, screen_surf); - eglDestroyContext(d, ctx); - eglTerminate(d); + eglutIdleFunc(idle); + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + + init(); + glDrawBuffer(GL_BACK); - return 0; + eglutMainLoop(); + + return 0; } -- cgit v1.2.3 From 02551cab472fae0359f4f432e4ad05ba2f241ba6 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 13:12:16 +0800 Subject: progs/egl: Porg xegl_tri to eglut. --- progs/egl/opengl/Makefile | 10 +- progs/egl/opengl/xegl_tri.c | 274 +++++--------------------------------------- 2 files changed, 30 insertions(+), 254 deletions(-) diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile index 6a4cea870d..04a89b1d4a 100644 --- a/progs/egl/opengl/Makefile +++ b/progs/egl/opengl/Makefile @@ -14,7 +14,8 @@ LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL -lm EGLUT_DIR = $(TOP)/progs/egl/eglut EGLUT_DEMOS = \ - eglgears + eglgears \ + xegl_tri EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) @@ -28,8 +29,7 @@ PROGRAMS = \ eglscreen \ peglgears \ xeglgears \ - xeglthreads \ - xegl_tri + xeglthreads .c.o: @@ -66,10 +66,6 @@ xeglgears: xeglgears.o $(HEADERS) $(LIB_DEP) xeglthreads: xeglthreads.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lpthread -lm $(X11_LIBS) -xegl_tri: xegl_tri.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm $(X11_LIBS) - - $(EGLUT_DIR)/libeglut-x11.a $(EGLUT_DIR)/libeglut-screen.a: @$(MAKE) -C $(EGLUT_DIR) diff --git a/progs/egl/opengl/xegl_tri.c b/progs/egl/opengl/xegl_tri.c index 1f1a005a21..fb1dde3529 100644 --- a/progs/egl/opengl/xegl_tri.c +++ b/progs/egl/opengl/xegl_tri.c @@ -26,16 +26,12 @@ */ -#include #include #include -#include #include -#include -#include -#include -#include /* using full OpenGL for now */ -#include +#include + +#include "eglut.h" static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; @@ -103,259 +99,43 @@ init(void) } -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) +special_key(int special) { - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: glXCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); + switch (special) { + case EGLUT_KEY_LEFT: + view_roty += 5.0; + break; + case EGLUT_KEY_RIGHT: + view_roty -= 5.0; + break; + case EGLUT_KEY_UP: + view_rotx += 5.0; + break; + case EGLUT_KEY_DOWN: + view_rotx -= 5.0; + break; + default: + break; } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; } - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - int main(int argc, char *argv[]) { - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_BIT); + eglutInit(argc, argv); - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } + eglutCreateWindow("egltri"); - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "xegl_tri", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - } + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + eglutSpecialFunc(special_key); init(); - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); + eglutMainLoop(); return 0; } -- cgit v1.2.3 From 765b30849cd271896901f9e02c920187e82c6494 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 13:16:06 +0800 Subject: progs/egl: Replace egltri by xegl_tri. With the switch to eglut, xegl_tri supports both X11 and EGL_MESA_screen_surface. Have it replace egltri. --- progs/egl/opengl/Makefile | 6 +- progs/egl/opengl/egltri.c | 297 +++++++++++++------------------------------- progs/egl/opengl/xegl_tri.c | 141 --------------------- 3 files changed, 88 insertions(+), 356 deletions(-) delete mode 100644 progs/egl/opengl/xegl_tri.c diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile index 04a89b1d4a..cca843f457 100644 --- a/progs/egl/opengl/Makefile +++ b/progs/egl/opengl/Makefile @@ -15,7 +15,7 @@ EGLUT_DIR = $(TOP)/progs/egl/eglut EGLUT_DEMOS = \ eglgears \ - xegl_tri + egltri EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) @@ -24,7 +24,6 @@ PROGRAMS = \ demo1 \ demo2 \ demo3 \ - egltri \ eglinfo \ eglscreen \ peglgears \ @@ -48,9 +47,6 @@ demo2: demo2.o $(HEADERS) $(LIB_DEP) demo3: demo3.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -egltri: egltri.o $(HEADERS) $(LIB_DEP) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) - eglinfo: eglinfo.o $(HEADERS) $(LIB_DEP) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) diff --git a/progs/egl/opengl/egltri.c b/progs/egl/opengl/egltri.c index 006e06eb03..fb1dde3529 100644 --- a/progs/egl/opengl/egltri.c +++ b/progs/egl/opengl/egltri.c @@ -1,18 +1,16 @@ /* - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. * Copyright (C) 2008 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL @@ -22,243 +20,122 @@ */ /* - * This program is based on eglgears and xegl_tri. - * Remixed by Jakob Bornecrantz - * - * No command line options. - * Program runs for 5 seconds then exits, outputing framerate to console + * Draw a triangle with X/EGL. + * Brian Paul + * 3 June 2008 */ -#define EGL_EGLEXT_PROTOTYPES -#include #include #include -#include #include #include -#include -#include -#define MAX_CONFIGS 10 -#define MAX_MODES 100 +#include "eglut.h" -/* XXX this probably isn't very portable */ +static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; -#include -#include -/* return current time (in seconds) */ -static double -current_time(void) +static void +draw(void) { - struct timeval tv; -#ifdef __VMS - (void) gettimeofday(&tv, NULL ); -#else - struct timezone tz; - (void) gettimeofday(&tv, &tz); -#endif - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][3] = { + { 1, 0, 0 }, + { 0, 1, 0 }, + { 0, 0, 1 } + }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1, 0, 0); + glRotatef(view_roty, 0, 1, 0); + glRotatef(view_rotz, 0, 0, 1); + + { + glVertexPointer(2, GL_FLOAT, 0, verts); + glColorPointer(3, GL_FLOAT, 0, colors); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + } + + glPopMatrix(); } -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - -static void draw() +/* new window size or exposure */ +static void +reshape(int width, int height) { - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][3] = { - { 1, 0, 0 }, - { 0, 1, 0 }, - { 0, 0, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + GLfloat ar = (GLfloat) width / (GLfloat) height; - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); + glViewport(0, 0, (GLint) width, (GLint) height); - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(3, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); } -static void init() -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} -/* new window size or exposure */ -static void reshape(int width, int height) +static void +init(void) { - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); + glClearColor(0.4, 0.4, 0.4, 0.0); } -static void run(EGLDisplay dpy, EGLSurface surf, int ttr) -{ - double st = current_time(); - double ct = st; - int frames = 0; - GLfloat seconds, fps; - - while (ct - st < ttr) - { - ct = current_time(); - - draw(); - eglSwapBuffers(dpy, surf); - - frames++; - } - - seconds = ct - st; - fps = frames / seconds; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps); +static void +special_key(int special) +{ + switch (special) { + case EGLUT_KEY_LEFT: + view_roty += 5.0; + break; + case EGLUT_KEY_RIGHT: + view_roty -= 5.0; + break; + case EGLUT_KEY_UP: + view_rotx += 5.0; + break; + case EGLUT_KEY_DOWN: + view_rotx -= 5.0; + break; + default: + break; + } } -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - int maj, min; - EGLContext ctx; - EGLSurface screen_surf; - EGLConfig configs[MAX_CONFIGS]; - EGLint numConfigs, i; - EGLBoolean b; - EGLDisplay d; - EGLint screenAttribs[10]; - EGLModeMESA mode[MAX_MODES]; - EGLScreenMESA screen; - EGLint count, chosenMode = 0; - GLboolean printInfo = GL_FALSE; - EGLint width = 0, height = 0; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) - { - if (strcmp(argv[i], "-info") == 0) - { - printInfo = GL_TRUE; - } - else - printf("Warning: unknown parameter: %s\n", argv[i]); - } - - /* DBR : Create EGL context/surface etc */ - d = eglGetDisplay(EGL_DEFAULT_DISPLAY); - assert(d); - - if (!eglInitialize(d, &maj, &min)) { - printf("egltri: eglInitialize failed\n"); - exit(1); - } - - printf("egltri: EGL version = %d.%d\n", maj, min); - printf("egltri: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR)); - - /* XXX use ChooseConfig */ - eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs); - eglGetScreensMESA(d, &screen, 1, &count); - - if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) { - printf("egltri: eglGetModesMESA failed!\n"); - return 0; - } - - /* Print list of modes, and find the one to use */ - printf("egltri: Found %d modes:\n", count); - for (i = 0; i < count; i++) { - EGLint w, h; - eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - chosenMode = i; - } - } - printf("egltri: Using screen mode/size %d: %d x %d\n", chosenMode, width, height); - - eglBindAPI(EGL_OPENGL_API); - ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL); - if (ctx == EGL_NO_CONTEXT) { - printf("egltri: failed to create context\n"); - return 0; - } - - /* build up screenAttribs array */ - i = 0; - screenAttribs[i++] = EGL_WIDTH; - screenAttribs[i++] = width; - screenAttribs[i++] = EGL_HEIGHT; - screenAttribs[i++] = height; - screenAttribs[i++] = EGL_NONE; - - screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs); - if (screen_surf == EGL_NO_SURFACE) { - printf("egltri: failed to create screen surface\n"); - return 0; - } - - b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]); - if (!b) { - printf("egltri: show surface failed\n"); - return 0; - } - - b = eglMakeCurrent(d, screen_surf, screen_surf, ctx); - if (!b) { - printf("egltri: make current failed\n"); - return 0; - } - - if (printInfo) - { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_BIT); + eglutInit(argc, argv); - init(); - reshape(width, height); + eglutCreateWindow("egltri"); - glDrawBuffer( GL_BACK ); + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + eglutSpecialFunc(special_key); - run(d, screen_surf, 5.0); + init(); - eglDestroySurface(d, screen_surf); - eglDestroyContext(d, ctx); - eglTerminate(d); + eglutMainLoop(); - return 0; + return 0; } diff --git a/progs/egl/opengl/xegl_tri.c b/progs/egl/opengl/xegl_tri.c deleted file mode 100644 index fb1dde3529..0000000000 --- a/progs/egl/opengl/xegl_tri.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Draw a triangle with X/EGL. - * Brian Paul - * 3 June 2008 - */ - - -#include -#include -#include -#include - -#include "eglut.h" - - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - - -static void -draw(void) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][3] = { - { 1, 0, 0 }, - { 0, 1, 0 }, - { 0, 0, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(3, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - - -static void -init(void) -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - - -static void -special_key(int special) -{ - switch (special) { - case EGLUT_KEY_LEFT: - view_roty += 5.0; - break; - case EGLUT_KEY_RIGHT: - view_roty -= 5.0; - break; - case EGLUT_KEY_UP: - view_rotx += 5.0; - break; - case EGLUT_KEY_DOWN: - view_rotx -= 5.0; - break; - default: - break; - } -} - -int -main(int argc, char *argv[]) -{ - eglutInitWindowSize(300, 300); - eglutInitAPIMask(EGLUT_OPENGL_BIT); - eglutInit(argc, argv); - - eglutCreateWindow("egltri"); - - eglutReshapeFunc(reshape); - eglutDisplayFunc(draw); - eglutSpecialFunc(special_key); - - init(); - - eglutMainLoop(); - - return 0; -} -- cgit v1.2.3 From dd7276f494f81e57450fac93434ed6d9abfe8e41 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 13:47:53 +0800 Subject: progs/egl: Port ES1 tri to eglut. This also removes EGL_MESA_screen_surface version of ES1 tri as eglut supports the extension. --- progs/egl/opengles1/Makefile | 35 +++- progs/egl/opengles1/screen/Makefile | 6 +- progs/egl/opengles1/screen/tri.c | 129 --------------- progs/egl/opengles1/tri.c | 311 +++--------------------------------- 4 files changed, 54 insertions(+), 427 deletions(-) delete mode 100644 progs/egl/opengles1/screen/tri.c diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index 0dd47edf1b..d6c09c6abe 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -19,6 +19,14 @@ ES1_LIBS = \ -L$(TOP)/$(LIB_DIR) -lEGL \ -L$(TOP)/$(LIB_DIR) -lGLESv1_CM $(LIBDRM_LIB) -lX11 +EGLUT_DIR = $(TOP)/progs/egl/eglut + +EGLUT_DEMOS = \ + tri + +EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) +EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) + PROGRAMS = \ bindtex \ drawtex \ @@ -27,16 +35,15 @@ PROGRAMS = \ pbuffer \ render_tex \ torus \ - tri \ two_win .c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + $(CC) -c $(INCLUDE_DIRS) -I$(EGLUT_DIR) $(CFLAGS) $< -o $@ -default: $(PROGRAMS) +default: $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) @@ -72,11 +79,23 @@ two_win: two_win.o $(ES1_LIB_DEPS) $(CC) $(CFLAGS) two_win.o $(ES1_LIBS) -o $@ -tri: tri.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) tri.o $(ES1_LIBS) -o $@ +$(EGLUT_DIR)/libeglut-x11.a $(EGLUT_DIR)/libeglut-screen.a: + @$(MAKE) -C $(EGLUT_DIR) +# define the rules for EGLUT demos +define eglut-demo-rule +$(1)_x11 $(1)_screen: $(1)_%: $(1).o $(EGLUT_DIR)/libeglut-%.a $(ES1_LIB_DEPS) +endef +$(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) + +# build EGLUT demos +$(EGLUT_X11_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(ES1_LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(ES1_LIBS) -L$(EGLUT_DIR) -leglut-$* -clean: - rm -f *.o *~ - rm -f $(PROGRAMS) +clean: + -rm -f *.o *~ + -rm -f $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) + @$(MAKE) -C $(EGLUT_DIR) clean diff --git a/progs/egl/opengles1/screen/Makefile b/progs/egl/opengles1/screen/Makefile index 5b2a59c71c..0c3c136ff2 100644 --- a/progs/egl/opengles1/screen/Makefile +++ b/progs/egl/opengles1/screen/Makefile @@ -13,8 +13,7 @@ ES1_LIB_DEPS = \ WINSYS_OBJS = winsys.o PROGRAMS = \ - gears \ - tri + gears .c.o: $(CC) -c $(ES1_CFLAGS) $(CFLAGS) $< -o $@ @@ -24,9 +23,6 @@ default: $(PROGRAMS) gears: gears.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) -tri: tri.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) - clean: -rm -f *.o *~ -rm -f $(PROGRAMS) diff --git a/progs/egl/opengles1/screen/tri.c b/progs/egl/opengles1/screen/tri.c deleted file mode 100644 index bab9499944..0000000000 --- a/progs/egl/opengles1/screen/tri.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on egltri by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Brian Paul All Rights Reserved. - * Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include -#include "winsys.h" - -static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; - -static void tri_init() -{ - glClearColor(0.4, 0.4, 0.4, 0.0); -} - -static void tri_reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -10.0); -} - -static void tri_draw(void *data) -{ - static const GLfloat verts[3][2] = { - { -1, -1 }, - { 1, -1 }, - { 0, 1 } - }; - static const GLfloat colors[3][4] = { - { 1, 0, 0, 1 }, - { 0, 1, 0, 1 }, - { 0, 0, 1, 1 } - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1, 0, 0); - glRotatef(view_roty, 0, 1, 0); - glRotatef(view_rotz, 0, 0, 1); - - { - glVertexPointer(2, GL_FLOAT, 0, verts); - glColorPointer(4, GL_FLOAT, 0, colors); - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - - glDrawArrays(GL_TRIANGLES, 0, 3); - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - } - - glPopMatrix(); -} - -static void tri_run(void) -{ - winsysRun(3.0, tri_draw, NULL); -} - -int main(int argc, char *argv[]) -{ - EGLint width, height; - GLboolean printInfo = GL_FALSE; - int i; - - /* parse cmd line args */ - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - printf("Warning: unknown parameter: %s\n", argv[i]); - } - } - - if (!winsysInitScreen()) - exit(1); - winsysQueryScreenSize(&width, &height); - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } - - tri_init(); - tri_reshape(width, height); - tri_run(); - - winsysFiniScreen(); - - return 0; -} diff --git a/progs/egl/opengles1/tri.c b/progs/egl/opengles1/tri.c index 42a978207c..01ad9bd37e 100644 --- a/progs/egl/opengles1/tri.c +++ b/progs/egl/opengles1/tri.c @@ -25,27 +25,18 @@ * 5 June 2008 */ -#define USE_FULL_GL 0 - #define USE_FIXED_POINT 0 #include #include -#include #include -#include -#include -#include -#include -#if USE_FULL_GL -#include /* use full OpenGL */ -#else #include /* use OpenGL ES 1.x */ #include -#endif #include +#include "eglut.h" + #define FLOAT_TO_FIXED(X) ((X) * 65535.0) @@ -178,293 +169,43 @@ init(void) test_query_matrix(); } - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - -#if USE_FULL_GL - eglBindAPI(EGL_OPENGL_API); -#else - eglBindAPI(EGL_OPENGL_ES_API); -#endif - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) +special_key(int special) { - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } + switch (special) { + case EGLUT_KEY_LEFT: + view_roty += 5.0; + break; + case EGLUT_KEY_RIGHT: + view_roty -= 5.0; + break; + case EGLUT_KEY_UP: + view_rotx += 5.0; + break; + case EGLUT_KEY_DOWN: + view_rotx -= 5.0; + break; + default: + break; } } - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - - int main(int argc, char *argv[]) { - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - static struct { - char *name; - GLenum value; - enum {GetString, GetInteger} type; - } info_items[] = { - {"GL_RENDERER", GL_RENDERER, GetString}, - {"GL_VERSION", GL_VERSION, GetString}, - {"GL_VENDOR", GL_VENDOR, GetString}, - {"GL_EXTENSIONS", GL_EXTENSIONS, GetString}, - {"GL_MAX_PALETTE_MATRICES_OES", GL_MAX_PALETTE_MATRICES_OES, GetInteger}, - {"GL_MAX_VERTEX_UNITS_OES", GL_MAX_VERTEX_UNITS_OES, GetInteger}, - }; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_ES1_BIT); + eglutInit(argc, argv); - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); + eglutCreateWindow("tri"); - make_x_window(x_dpy, egl_dpy, - "OpenGL ES 1.x tri", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + eglutSpecialFunc(special_key); - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - for (i = 0; i < sizeof(info_items)/sizeof(info_items[0]); i++) { - switch (info_items[i].type) { - case GetString: - printf("%s = %s\n", info_items[i].name, (char *)glGetString(info_items[i].value)); - break; - case GetInteger: { - GLint rv = -1; - glGetIntegerv(info_items[i].value, &rv); - printf("%s = %d\n", info_items[i].name, rv); - break; - } - } - } - }; init(); - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); + eglutMainLoop(); return 0; } -- cgit v1.2.3 From 7b48d88407655dc135d7a3c2c47d9df3e8dff01e Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 14:03:30 +0800 Subject: progs/egl: Port ES1 gears to eglut. As gears in the last demo under "screen" subdirectory, this also removes the directory. --- progs/egl/opengles1/.gitignore | 3 +- progs/egl/opengles1/Makefile | 1 + progs/egl/opengles1/gears.c | 383 ++++++++++++++++++++++++++++++++++++ progs/egl/opengles1/screen/Makefile | 28 --- progs/egl/opengles1/screen/gears.c | 374 ----------------------------------- progs/egl/opengles1/screen/winsys.c | 272 ------------------------- progs/egl/opengles1/screen/winsys.h | 36 ---- 7 files changed, 385 insertions(+), 712 deletions(-) create mode 100644 progs/egl/opengles1/gears.c delete mode 100644 progs/egl/opengles1/screen/Makefile delete mode 100644 progs/egl/opengles1/screen/gears.c delete mode 100644 progs/egl/opengles1/screen/winsys.c delete mode 100644 progs/egl/opengles1/screen/winsys.h diff --git a/progs/egl/opengles1/.gitignore b/progs/egl/opengles1/.gitignore index 8c1c9a8ef9..e95e393b00 100644 --- a/progs/egl/opengles1/.gitignore +++ b/progs/egl/opengles1/.gitignore @@ -1,8 +1,7 @@ -screen/gears -screen/tri bindtex drawtex es1_info +gears msaa pbuffer render_tex diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index d6c09c6abe..27caa0cd0f 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -22,6 +22,7 @@ ES1_LIBS = \ EGLUT_DIR = $(TOP)/progs/egl/eglut EGLUT_DEMOS = \ + gears \ tri EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) diff --git a/progs/egl/opengles1/gears.c b/progs/egl/opengles1/gears.c new file mode 100644 index 0000000000..8462a4871a --- /dev/null +++ b/progs/egl/opengles1/gears.c @@ -0,0 +1,383 @@ +/* + * Copyright (C) 2009 Chia-I Wu + * + * Based on eglgears by + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include +#include "eglut.h" + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + + +struct gear { + GLuint vbo; + GLfloat *vertices; + GLsizei stride; + + GLint num_teeth; +}; + +static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; +static struct gear gears[3]; +static GLfloat angle = 0.0; + +/* + * Initialize a gear wheel. + * + * Input: gear - gear to initialize + * inner_radius - radius of hole at center + * outer_radius - radius at center of teeth + * width - width of gear + * teeth - number of teeth + * tooth_depth - depth of tooth + */ +static void +init_gear(struct gear *gear, GLfloat inner_radius, GLfloat outer_radius, + GLfloat width, GLint teeth, GLfloat tooth_depth) +{ + GLfloat r0, r1, r2; + GLfloat a0, da; + GLint verts_per_tooth, total_verts, total_size; + GLint count, i; + GLfloat *verts; + + r0 = inner_radius; + r1 = outer_radius - tooth_depth / 2.0; + r2 = outer_radius + tooth_depth / 2.0; + + a0 = 2.0 * M_PI / teeth; + da = a0 / 4.0; + + gear->vbo = 0; + gear->vertices = NULL; + gear->stride = sizeof(GLfloat) * 6; /* XYZ + normal */ + gear->num_teeth = teeth; + + verts_per_tooth = 10 + 4; + total_verts = teeth * verts_per_tooth; + total_size = total_verts * gear->stride; + + verts = malloc(total_size); + if (!verts) { + printf("failed to allocate vertices\n"); + return; + } + +#define GEAR_VERT(r, n, sign) \ + do { \ + verts[count * 6 + 0] = (r) * vx[n]; \ + verts[count * 6 + 1] = (r) * vy[n]; \ + verts[count * 6 + 2] = (sign) * width * 0.5; \ + verts[count * 6 + 3] = normal[0]; \ + verts[count * 6 + 4] = normal[1]; \ + verts[count * 6 + 5] = normal[2]; \ + count++; \ + } while (0) + + count = 0; + for (i = 0; i < teeth; i++) { + GLfloat normal[3]; + GLfloat vx[5], vy[5]; + GLfloat u, v; + + normal[0] = 0.0; + normal[1] = 0.0; + normal[2] = 0.0; + + vx[0] = cos(i * a0 + 0 * da); + vy[0] = sin(i * a0 + 0 * da); + vx[1] = cos(i * a0 + 1 * da); + vy[1] = sin(i * a0 + 1 * da); + vx[2] = cos(i * a0 + 2 * da); + vy[2] = sin(i * a0 + 2 * da); + vx[3] = cos(i * a0 + 3 * da); + vy[3] = sin(i * a0 + 3 * da); + vx[4] = cos(i * a0 + 4 * da); + vy[4] = sin(i * a0 + 4 * da); + + /* outward faces of a tooth, 10 verts */ + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r1, 0, 1); + GEAR_VERT(r1, 0, -1); + + u = r2 * vx[1] - r1 * vx[0]; + v = r2 * vy[1] - r1 * vy[0]; + normal[0] = v; + normal[1] = -u; + GEAR_VERT(r2, 1, 1); + GEAR_VERT(r2, 1, -1); + + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r2, 2, 1); + GEAR_VERT(r2, 2, -1); + + u = r1 * vx[3] - r2 * vx[2]; + v = r1 * vy[3] - r2 * vy[2]; + normal[0] = v; + normal[1] = -u; + GEAR_VERT(r1, 3, 1); + GEAR_VERT(r1, 3, -1); + + normal[0] = vx[0]; + normal[1] = vy[0]; + GEAR_VERT(r1, 4, 1); + GEAR_VERT(r1, 4, -1); + + /* inside radius cylinder, 4 verts */ + normal[0] = -vx[4]; + normal[1] = -vy[4]; + GEAR_VERT(r0, 4, 1); + GEAR_VERT(r0, 4, -1); + + normal[0] = -vx[0]; + normal[1] = -vy[0]; + GEAR_VERT(r0, 0, 1); + GEAR_VERT(r0, 0, -1); + + assert(count % verts_per_tooth == 0); + } + assert(count == total_verts); +#undef GEAR_VERT + + gear->vertices = verts; + + /* setup VBO */ + glGenBuffers(1, &gear->vbo); + if (gear->vbo) { + glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); + glBufferData(GL_ARRAY_BUFFER, total_size, verts, GL_STATIC_DRAW); + } +} + + +static void +draw_gear(const struct gear *gear) +{ + GLint i; + + if (!gear->vbo && !gear->vertices) { + printf("nothing to be drawn\n"); + return; + } + + if (gear->vbo) { + glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); + glVertexPointer(3, GL_FLOAT, gear->stride, (const GLvoid *) 0); + glNormalPointer(GL_FLOAT, gear->stride, (const GLvoid *) (sizeof(GLfloat) * 3)); + } else { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glVertexPointer(3, GL_FLOAT, gear->stride, gear->vertices); + glNormalPointer(GL_FLOAT, gear->stride, gear->vertices + 3); + } + + glEnableClientState(GL_VERTEX_ARRAY); + + for (i = 0; i < gear->num_teeth; i++) { + const GLint base = (10 + 4) * i; + GLushort indices[7]; + + glShadeModel(GL_FLAT); + + /* front face */ + indices[0] = base + 12; + indices[1] = base + 0; + indices[2] = base + 2; + indices[3] = base + 4; + indices[4] = base + 6; + indices[5] = base + 8; + indices[6] = base + 10; + + glNormal3f(0.0, 0.0, 1.0); + glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); + + /* back face */ + indices[0] = base + 13; + indices[1] = base + 11; + indices[2] = base + 9; + indices[3] = base + 7; + indices[4] = base + 5; + indices[5] = base + 3; + indices[6] = base + 1; + + glNormal3f(0.0, 0.0, -1.0); + glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); + + glEnableClientState(GL_NORMAL_ARRAY); + + /* outward face of a tooth */ + glDrawArrays(GL_TRIANGLE_STRIP, base, 10); + + /* inside radius cylinder */ + glShadeModel(GL_SMOOTH); + glDrawArrays(GL_TRIANGLE_STRIP, base + 10, 4); + + glDisableClientState(GL_NORMAL_ARRAY); + } + + glDisableClientState(GL_VERTEX_ARRAY); +} + + +static void +gears_draw(void) +{ + static const GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; + static const GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; + static const GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + glRotatef(view_rotx, 1.0, 0.0, 0.0); + glRotatef(view_roty, 0.0, 1.0, 0.0); + glRotatef(view_rotz, 0.0, 0.0, 1.0); + + glPushMatrix(); + glTranslatef(-3.0, -2.0, 0.0); + glRotatef(angle, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); + draw_gear(&gears[0]); + + glPopMatrix(); + + glPushMatrix(); + glTranslatef(3.1, -2.0, 0.0); + glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green); + draw_gear(&gears[1]); + + glPopMatrix(); + + glPushMatrix(); + glTranslatef(-3.1, 4.2, 0.0); + glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); + + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue); + draw_gear(&gears[2]); + + glPopMatrix(); + + glPopMatrix(); +} + + +static void gears_fini(void) +{ + GLint i; + for (i = 0; i < 3; i++) { + struct gear *gear = &gears[i]; + if (gear->vbo) { + glDeleteBuffers(1, &gear->vbo); + gear->vbo = 0; + } + if (gear->vertices) { + free(gear->vertices); + gear->vertices = NULL; + } + } +} + + +static void gears_init(void) +{ + static const GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; + + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glEnable(GL_CULL_FACE); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); + glEnable(GL_NORMALIZE); + + init_gear(&gears[0], 1.0, 4.0, 1.0, 20, 0.7); + init_gear(&gears[1], 0.5, 2.0, 2.0, 10, 0.7); + init_gear(&gears[2], 1.3, 2.0, 0.5, 10, 0.7); +} + + +/* new window size or exposure */ +static void +gears_reshape(int width, int height) +{ + GLfloat h = (GLfloat) height / (GLfloat) width; + + glViewport(0, 0, (GLint) width, (GLint) height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-1.0, 1.0, -h, h, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -40.0); +} + + +static void +gears_idle(void) +{ + static double t0 = -1.; + double dt, t = eglutGet(EGLUT_ELAPSED_TIME) / 1000.0; + if (t0 < 0.0) + t0 = t; + dt = t - t0; + t0 = t; + + angle += 70.0 * dt; /* 70 degrees per second */ + angle = fmod(angle, 360.0); /* prevents eventual overflow */ + + eglutPostRedisplay(); +} + + +int +main(int argc, char *argv[]) +{ + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_ES1_BIT); + eglutInit(argc, argv); + + eglutCreateWindow("gears"); + + eglutIdleFunc(gears_idle); + eglutReshapeFunc(gears_reshape); + eglutDisplayFunc(gears_draw); + + gears_init(); + + eglutMainLoop(); + + gears_fini(); + + return 0; +} diff --git a/progs/egl/opengles1/screen/Makefile b/progs/egl/opengles1/screen/Makefile deleted file mode 100644 index 0c3c136ff2..0000000000 --- a/progs/egl/opengles1/screen/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# progs/egl/opengles1/screen/Makefile - -TOP = ../../../.. -include $(TOP)/configs/current - -ES1_CFLAGS = -I$(TOP)/include -ES1_LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGLESv1_CM - -ES1_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv1_CM.so - -WINSYS_OBJS = winsys.o - -PROGRAMS = \ - gears - -.c.o: - $(CC) -c $(ES1_CFLAGS) $(CFLAGS) $< -o $@ - -default: $(PROGRAMS) - -gears: gears.o $(WINSYS_OBJS) $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) -o $@ $@.o $(WINSYS_OBJS) $(ES1_LIBS) - -clean: - -rm -f *.o *~ - -rm -f $(PROGRAMS) diff --git a/progs/egl/opengles1/screen/gears.c b/progs/egl/opengles1/screen/gears.c deleted file mode 100644 index c7625826b9..0000000000 --- a/progs/egl/opengles1/screen/gears.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on eglgears by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include - -#include -#include "winsys.h" - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - - -struct gear { - GLuint vbo; - GLfloat *vertices; - GLsizei stride; - - GLint num_teeth; -}; - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static struct gear gears[3]; -static GLfloat angle = 0.0; - -/* - * Initialize a gear wheel. - * - * Input: gear - gear to initialize - * inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void -init_gear(struct gear *gear, GLfloat inner_radius, GLfloat outer_radius, - GLfloat width, GLint teeth, GLfloat tooth_depth) -{ - GLfloat r0, r1, r2; - GLfloat a0, da; - GLint verts_per_tooth, total_verts, total_size; - GLint count, i; - GLfloat *verts; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - a0 = 2.0 * M_PI / teeth; - da = a0 / 4.0; - - gear->vbo = 0; - gear->vertices = NULL; - gear->stride = sizeof(GLfloat) * 6; /* XYZ + normal */ - gear->num_teeth = teeth; - - verts_per_tooth = 10 + 4; - total_verts = teeth * verts_per_tooth; - total_size = total_verts * gear->stride; - - verts = malloc(total_size); - if (!verts) { - printf("failed to allocate vertices\n"); - return; - } - -#define GEAR_VERT(r, n, sign) \ - do { \ - verts[count * 6 + 0] = (r) * vx[n]; \ - verts[count * 6 + 1] = (r) * vy[n]; \ - verts[count * 6 + 2] = (sign) * width * 0.5; \ - verts[count * 6 + 3] = normal[0]; \ - verts[count * 6 + 4] = normal[1]; \ - verts[count * 6 + 5] = normal[2]; \ - count++; \ - } while (0) - - count = 0; - for (i = 0; i < teeth; i++) { - GLfloat normal[3]; - GLfloat vx[5], vy[5]; - GLfloat u, v; - - normal[0] = 0.0; - normal[1] = 0.0; - normal[2] = 0.0; - - vx[0] = cos(i * a0 + 0 * da); - vy[0] = sin(i * a0 + 0 * da); - vx[1] = cos(i * a0 + 1 * da); - vy[1] = sin(i * a0 + 1 * da); - vx[2] = cos(i * a0 + 2 * da); - vy[2] = sin(i * a0 + 2 * da); - vx[3] = cos(i * a0 + 3 * da); - vy[3] = sin(i * a0 + 3 * da); - vx[4] = cos(i * a0 + 4 * da); - vy[4] = sin(i * a0 + 4 * da); - - /* outward faces of a tooth, 10 verts */ - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r1, 0, 1); - GEAR_VERT(r1, 0, -1); - - u = r2 * vx[1] - r1 * vx[0]; - v = r2 * vy[1] - r1 * vy[0]; - normal[0] = v; - normal[1] = -u; - GEAR_VERT(r2, 1, 1); - GEAR_VERT(r2, 1, -1); - - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r2, 2, 1); - GEAR_VERT(r2, 2, -1); - - u = r1 * vx[3] - r2 * vx[2]; - v = r1 * vy[3] - r2 * vy[2]; - normal[0] = v; - normal[1] = -u; - GEAR_VERT(r1, 3, 1); - GEAR_VERT(r1, 3, -1); - - normal[0] = vx[0]; - normal[1] = vy[0]; - GEAR_VERT(r1, 4, 1); - GEAR_VERT(r1, 4, -1); - - /* inside radius cylinder, 4 verts */ - normal[0] = -vx[4]; - normal[1] = -vy[4]; - GEAR_VERT(r0, 4, 1); - GEAR_VERT(r0, 4, -1); - - normal[0] = -vx[0]; - normal[1] = -vy[0]; - GEAR_VERT(r0, 0, 1); - GEAR_VERT(r0, 0, -1); - - assert(count % verts_per_tooth == 0); - } - assert(count == total_verts); -#undef GEAR_VERT - - gear->vertices = verts; - - /* setup VBO */ - glGenBuffers(1, &gear->vbo); - if (gear->vbo) { - glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); - glBufferData(GL_ARRAY_BUFFER, total_size, verts, GL_STATIC_DRAW); - } -} - - -static void -draw_gear(const struct gear *gear) -{ - GLint i; - - if (!gear->vbo && !gear->vertices) { - printf("nothing to be drawn\n"); - return; - } - - if (gear->vbo) { - glBindBuffer(GL_ARRAY_BUFFER, gear->vbo); - glVertexPointer(3, GL_FLOAT, gear->stride, (const GLvoid *) 0); - glNormalPointer(GL_FLOAT, gear->stride, (const GLvoid *) (sizeof(GLfloat) * 3)); - } else { - glBindBuffer(GL_ARRAY_BUFFER, 0); - glVertexPointer(3, GL_FLOAT, gear->stride, gear->vertices); - glNormalPointer(GL_FLOAT, gear->stride, gear->vertices + 3); - } - - glEnableClientState(GL_VERTEX_ARRAY); - - for (i = 0; i < gear->num_teeth; i++) { - const GLint base = (10 + 4) * i; - GLushort indices[7]; - - glShadeModel(GL_FLAT); - - /* front face */ - indices[0] = base + 12; - indices[1] = base + 0; - indices[2] = base + 2; - indices[3] = base + 4; - indices[4] = base + 6; - indices[5] = base + 8; - indices[6] = base + 10; - - glNormal3f(0.0, 0.0, 1.0); - glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); - - /* back face */ - indices[0] = base + 13; - indices[1] = base + 11; - indices[2] = base + 9; - indices[3] = base + 7; - indices[4] = base + 5; - indices[5] = base + 3; - indices[6] = base + 1; - - glNormal3f(0.0, 0.0, -1.0); - glDrawElements(GL_TRIANGLE_FAN, 7, GL_UNSIGNED_SHORT, indices); - - glEnableClientState(GL_NORMAL_ARRAY); - - /* outward face of a tooth */ - glDrawArrays(GL_TRIANGLE_STRIP, base, 10); - - /* inside radius cylinder */ - glShadeModel(GL_SMOOTH); - glDrawArrays(GL_TRIANGLE_STRIP, base + 10, 4); - - glDisableClientState(GL_NORMAL_ARRAY); - } - - glDisableClientState(GL_VERTEX_ARRAY); -} - - -static void -gears_draw(void *data) -{ - static const GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 }; - static const GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 }; - static const GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, red); - draw_gear(&gears[0]); - - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, green); - draw_gear(&gears[1]); - - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, blue); - draw_gear(&gears[2]); - - glPopMatrix(); - - glPopMatrix(); - - /* advance rotation for next frame */ - angle += 0.5; /* 0.5 degree per frame */ - if (angle > 3600.0) - angle -= 3600.0; -} - - -static void gears_fini(void) -{ - GLint i; - for (i = 0; i < 3; i++) { - struct gear *gear = &gears[i]; - if (gear->vbo) { - glDeleteBuffers(1, &gear->vbo); - gear->vbo = 0; - } - if (gear->vertices) { - free(gear->vertices); - gear->vertices = NULL; - } - } -} - - -static void gears_init(void) -{ - static const GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 }; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - glEnable(GL_NORMALIZE); - - init_gear(&gears[0], 1.0, 4.0, 1.0, 20, 0.7); - init_gear(&gears[1], 0.5, 2.0, 2.0, 10, 0.7); - init_gear(&gears[2], 1.3, 2.0, 0.5, 10, 0.7); -} - - -/* new window size or exposure */ -static void -gears_reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustumf(-1.0, 1.0, -h, h, 5.0, 60.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - - -static void gears_run(void) -{ - winsysRun(5.0, gears_draw, NULL); -} - - -int -main(int argc, char *argv[]) -{ - EGLint width, height; - - if (!winsysInitScreen()) - exit(1); - winsysQueryScreenSize(&width, &height); - - gears_init(); - gears_reshape(width, height); - gears_run(); - gears_fini(); - - winsysFiniScreen(); - - return 0; -} diff --git a/progs/egl/opengles1/screen/winsys.c b/progs/egl/opengles1/screen/winsys.c deleted file mode 100644 index 84d00471eb..0000000000 --- a/progs/egl/opengles1/screen/winsys.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Based on eglgears by - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include -#include - -#define EGL_EGLEXT_PROTOTYPES - -#include -#include - -#include "winsys.h" - -#define MAX_MODES 100 - -static struct { - EGLBoolean verbose; - - EGLDisplay dpy; - EGLConfig conf; - - EGLScreenMESA screen; - EGLModeMESA mode; - EGLint width, height; - - EGLContext ctx; - EGLSurface surf; -} screen; - - -static EGLBoolean -init_screen(void) -{ - EGLModeMESA modes[MAX_MODES]; - EGLint num_screens, num_modes; - EGLint width, height, best_mode; - EGLint i; - - if (!eglGetScreensMESA(screen.dpy, &screen.screen, 1, &num_screens) || - !num_screens) { - printf("eglGetScreensMESA failed\n"); - return EGL_FALSE; - } - - if (!eglGetModesMESA(screen.dpy, screen.screen, modes, MAX_MODES, - &num_modes) || - !num_modes) { - printf("eglGetModesMESA failed!\n"); - return EGL_FALSE; - } - - printf("Found %d modes:\n", num_modes); - - best_mode = 0; - width = 0; - height = 0; - for (i = 0; i < num_modes; i++) { - EGLint w, h; - eglGetModeAttribMESA(screen.dpy, modes[i], EGL_WIDTH, &w); - eglGetModeAttribMESA(screen.dpy, modes[i], EGL_HEIGHT, &h); - printf("%3d: %d x %d\n", i, w, h); - if (w > width && h > height) { - width = w; - height = h; - best_mode = i; - } - } - - screen.mode = modes[best_mode]; - screen.width = width; - screen.height = height; - - return EGL_TRUE; -} - - -static EGLBoolean -init_display(void) -{ - EGLint maj, min; - const char *exts; - const EGLint attribs[] = { - EGL_SURFACE_TYPE, 0x0, /* should be EGL_SCREEN_BIT_MESA */ - EGL_RENDERABLE_TYPE, 0x0, /* should be EGL_OPENGL_ES_BIT */ - EGL_NONE - }; - EGLint num_configs; - - screen.dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (!screen.dpy) { - printf("eglGetDisplay failed\n"); - return EGL_FALSE; - } - - if (!eglInitialize(screen.dpy, &maj, &min)) { - printf("eglInitialize failed\n"); - return EGL_FALSE; - } - - printf("EGL_VERSION = %s\n", eglQueryString(screen.dpy, EGL_VERSION)); - printf("EGL_VENDOR = %s\n", eglQueryString(screen.dpy, EGL_VENDOR)); - - exts = eglQueryString(screen.dpy, EGL_EXTENSIONS); - assert(exts); - - if (!strstr(exts, "EGL_MESA_screen_surface")) { - printf("EGL_MESA_screen_surface is not supported\n"); - return EGL_FALSE; - } - - if (!eglChooseConfig(screen.dpy, attribs, &screen.conf, 1, - &num_configs) || - !num_configs) { - printf("eglChooseConfig failed\n"); - return EGL_FALSE; - } - - return EGL_TRUE; -} - - -EGLBoolean -winsysInitScreen(void) -{ - EGLint surf_attribs[20]; - EGLint i; - EGLBoolean ok; - - if (!init_display()) - goto fail; - if (!init_screen()) - goto fail; - - /* create context */ - screen.ctx = eglCreateContext(screen.dpy, screen.conf, - EGL_NO_CONTEXT, NULL); - if (screen.ctx == EGL_NO_CONTEXT) { - printf("eglCreateContext failed\n"); - goto fail; - } - - i = 0; - surf_attribs[i++] = EGL_WIDTH; - surf_attribs[i++] = screen.width; - surf_attribs[i++] = EGL_HEIGHT; - surf_attribs[i++] = screen.height; - surf_attribs[i++] = EGL_NONE; - - /* create surface */ - printf("Using screen size: %d x %d\n", screen.width, screen.height); - screen.surf = eglCreateScreenSurfaceMESA(screen.dpy, screen.conf, - surf_attribs); - if (screen.surf == EGL_NO_SURFACE) { - printf("eglCreateScreenSurfaceMESA failed\n"); - goto fail; - } - - ok = eglMakeCurrent(screen.dpy, screen.surf, screen.surf, screen.ctx); - if (!ok) { - printf("eglMakeCurrent failed\n"); - goto fail; - } - - ok = eglShowScreenSurfaceMESA(screen.dpy, screen.screen, - screen.surf, screen.mode); - if (!ok) { - printf("eglShowScreenSurfaceMESA failed\n"); - goto fail; - } - - return EGL_TRUE; - -fail: - winsysFiniScreen(); - return EGL_FALSE; -} - - -EGLBoolean -winsysQueryScreenSize(EGLint *width, EGLint *height) -{ - if (!screen.dpy) - return EGL_FALSE; - - if (width) - *width = screen.width; - if (height) - *height = screen.height; - - return EGL_TRUE; -} - - -void -winsysFiniScreen(void) -{ - if (screen.dpy) { - eglMakeCurrent(screen.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, - EGL_NO_CONTEXT); - if (screen.surf != EGL_NO_SURFACE) - eglDestroySurface(screen.dpy, screen.surf); - if (screen.ctx != EGL_NO_CONTEXT) - eglDestroyContext(screen.dpy, screen.ctx); - eglTerminate(screen.dpy); - - memset(&screen, 0, sizeof(screen)); - } -} - - -void -winsysSwapBuffers(void) -{ - eglSwapBuffers(screen.dpy, screen.surf); -} - - -/* return current time (in seconds) */ -double -winsysNow(void) -{ - struct timeval tv; - gettimeofday(&tv, NULL); - return (double) tv.tv_sec + tv.tv_usec / 1000000.0; -} - - -void -winsysRun(double seconds, void (*draw_frame)(void *data), void *data) -{ - double begin, end, last_frame, duration; - EGLint num_frames = 0; - - begin = winsysNow(); - end = begin + seconds; - - last_frame = begin; - while (last_frame < end) { - draw_frame(data); - winsysSwapBuffers(); - last_frame = winsysNow(); - num_frames++; - } - - duration = last_frame - begin; - printf("%d frames in %3.1f seconds = %6.3f FPS\n", - num_frames, duration, (double) num_frames / duration); -} diff --git a/progs/egl/opengles1/screen/winsys.h b/progs/egl/opengles1/screen/winsys.h deleted file mode 100644 index 679c7e0bd6..0000000000 --- a/progs/egl/opengles1/screen/winsys.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2009 Chia-I Wu - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef _WINSYS_H_ -#define _WINSYS_H_ - -#include - -EGLBoolean winsysInitScreen(void); -EGLBoolean winsysQueryScreenSize(EGLint *width, EGLint *height); -void winsysFiniScreen(void); - -void winsysSwapBuffers(void); -double winsysNow(void); - -void winsysRun(double seconds, void (*draw_frame)(void *data), void *data); - -#endif /* _WINSYS_H_ */ -- cgit v1.2.3 From 532b7400fd2959936c7344e4c38f6efbbef77924 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 22:03:54 +0800 Subject: progs/egl: Port OpenVG lion and sp to eglut. --- progs/egl/openvg/Makefile | 50 +++++--- progs/egl/openvg/eglcommon.c | 289 ------------------------------------------- progs/egl/openvg/eglcommon.h | 20 --- progs/egl/openvg/lion.c | 244 ++---------------------------------- progs/egl/openvg/sp.c | 47 +++---- 5 files changed, 59 insertions(+), 591 deletions(-) delete mode 100644 progs/egl/openvg/eglcommon.c delete mode 100644 progs/egl/openvg/eglcommon.h diff --git a/progs/egl/openvg/Makefile b/progs/egl/openvg/Makefile index 8a4c4d81a4..8ab0e68d87 100644 --- a/progs/egl/openvg/Makefile +++ b/progs/egl/openvg/Makefile @@ -3,37 +3,53 @@ TOP = ../../.. include $(TOP)/configs/current -VG_LIBS=-lm -pthread -lX11 -lEGL -lOpenVG +VG_LIBS=-lm -lEGL -lOpenVG INCLUDE_DIRS = -I$(TOP)/include +EGLUT_DIR = $(TOP)/progs/egl/eglut + +EGLUT_DEMOS = \ + sp + +EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) +EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) + PROGRAMS = \ - lion \ - sp + lion_x11 \ + lion_screen .c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ + $(CC) -c $(INCLUDE_DIRS) -I$(EGLUT_DIR) $(CFLAGS) $< -o $@ -default: $(PROGRAMS) +default: $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) -lion: lion.o lion-render.o - $(CC) $(CFLAGS) lion.o lion-render.o -L$(TOP)/$(LIB_DIR) $(VG_LIBS) -o $@ +lion_x11: lion.o lion-render.o $(EGLUT_DIR)/libeglut-x11.a + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ lion.o lion-render.o \ + $(VG_LIBS) -L$(EGLUT_DIR) -leglut-x11 -lX11 -lion.o: lion.c lion-render.h $(HEADERS) - $(CC) -c $(CFLAGS) -I$(TOP)/include lion.c -lion-render.o: lion-render.c lion-render.h $(HEADERS) - $(CC) -c $(CFLAGS) -I$(TOP)/include lion-render.c +lion_screen: lion.o lion-render.o $(EGLUT_DIR)/libeglut-screen.a + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ lion.o lion-render.o \ + $(VG_LIBS) -L$(EGLUT_DIR) -leglut-screen -sp: sp.c eglcommon.o - $(CC) $(INCLUDE_DIRS) $(CFLAGS) $^ -L$(TOP)/$(LIB_DIR) $(LIBS) $(VG_LIBS) $(APP_LIB_DEPS) -o $@ +$(EGLUT_DIR)/libeglut-x11.a $(EGLUT_DIR)/libeglut-screen.a: + @$(MAKE) -C $(EGLUT_DIR) -eglcommon.o: eglcommon.c $(HEADERS) - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) eglcommon.c +# define the rules for EGLUT demos +define eglut-demo-rule +$(1)_x11 $(1)_screen: $(1)_%: $(1).o $(EGLUT_DIR)/libeglut-%.a +endef +$(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) +# build EGLUT demos +$(EGLUT_X11_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(VG_LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(VG_LIBS) -L$(EGLUT_DIR) -leglut-$* clean: rm -f *.o *~ - rm -f *.so - rm -f $(PROGRAMS) + rm -f $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) + @$(MAKE) -C $(EGLUT_DIR) clean diff --git a/progs/egl/openvg/eglcommon.c b/progs/egl/openvg/eglcommon.c deleted file mode 100644 index 0316e596c6..0000000000 --- a/progs/egl/openvg/eglcommon.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "eglcommon.h" - - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* using full OpenGL for now */ -#include - - -static init_func init = 0; -static draw_func draw = 0; -static reshape_func reshape = 0; -static key_func keyPress = 0; -static VGint width = 300, height = 300; - - -void set_window_size(int w, int h) -{ - width = w; - height = h; -} - -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENVG_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - int redraw = 0; - XEvent event; - - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - if (reshape) { - width = event.xconfigure.width; - height = event.xconfigure.height; - reshape(event.xconfigure.width, event.xconfigure.height); - } - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (!keyPress || !keyPress(code)) { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } - } -} - -int window_width(void) -{ - return width; -} - -int window_height(void) -{ - return height; -} - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - -int run(int argc, char **argv, - init_func init_f, - reshape_func resh_f, - draw_func draw_f, - key_func key_f) -{ - const int winWidth = width, winHeight = height; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - init = init_f; - draw = draw_f; - reshape = resh_f; - keyPress = key_f; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "OpenVG Example", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); - printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); - printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); - } - - if (init) - init(); - - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - if (reshape) - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglMakeCurrent(egl_dpy, 0, 0, 0); - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); - - return 0; -} - diff --git a/progs/egl/openvg/eglcommon.h b/progs/egl/openvg/eglcommon.h deleted file mode 100644 index 958dae9f98..0000000000 --- a/progs/egl/openvg/eglcommon.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef EGLCOMMON_H -#define EGLCOMMON_H - -typedef void (*init_func)(); -typedef void (*reshape_func)(int, int); -typedef void (*draw_func)(); -typedef int (*key_func)(unsigned key); - - -void set_window_size(int width, int height); -int window_width(void); -int window_height(void); - -int run(int argc, char **argv, - init_func init, - reshape_func resh, - draw_func draw, - key_func key); - -#endif diff --git a/progs/egl/openvg/lion.c b/progs/egl/openvg/lion.c index adb269bfd8..c5dba4fcea 100644 --- a/progs/egl/openvg/lion.c +++ b/progs/egl/openvg/lion.c @@ -1,15 +1,8 @@ -#include -#include -#include -#include -#include -#include -#include -#include #include -#include +#include #include "lion-render.h" +#include "eglut.h" static VGint width, height; struct lion *lion = 0; @@ -29,6 +22,7 @@ draw(void) lion_render(lion); ++angle; + eglutPostRedisplay(); } @@ -51,239 +45,21 @@ init(void) } -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ -static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) -{ - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs) || - !num_configs) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENVG_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); - } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; -} - - -static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) -{ - while (1) { - XEvent event; - - while (XPending(dpy) > 0) { - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == 27) { - /* escape */ - return; - } - } - break; - default: - ; /*no-op*/ - } - } - - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } -} - - -static void -usage(void) -{ - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); -} - int main(int argc, char *argv[]) { - const int winWidth = 350, winHeight = 450; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; + eglutInitWindowSize(350, 450); + eglutInitAPIMask(EGLUT_OPENVG_BIT); + eglutInit(argc, argv); - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } + eglutCreateWindow("Lion Example"); - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "Lion Example", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("VG_RENDERER = %s\n", (char *) vgGetString(VG_RENDERER)); - printf("VG_VERSION = %s\n", (char *) vgGetString(VG_VERSION)); - printf("VG_VENDOR = %s\n", (char *) vgGetString(VG_VENDOR)); - } + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); init(); - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); + eglutMainLoop(); return 0; } diff --git a/progs/egl/openvg/sp.c b/progs/egl/openvg/sp.c index 424ec47d69..a20c0a3b4e 100644 --- a/progs/egl/openvg/sp.c +++ b/progs/egl/openvg/sp.c @@ -1,13 +1,9 @@ -#include "eglcommon.h" - #include #include -#include #include -#include #include -#include +#include "eglut.h" #define ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) @@ -475,36 +471,13 @@ reshape(int w, int h) { } -static int -key_press(unsigned key) -{ - switch(key) { - case XK_Right: - - break; - case XK_Left: - break; - case XK_Up: - break; - case XK_Down: - break; - case 'a': - break; - case 's': - break; - default: - break; - } - return VG_FALSE; -} - static void draw(void) { VGint i; VGfloat save_matrix[9]; - vgClear(0, 0, window_width(), window_height()); + vgClear(0, 0, eglutGetWindowWidth(), eglutGetWindowHeight()); vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); vgLoadIdentity(); @@ -532,6 +505,18 @@ draw(void) int main(int argc, char **argv) { - set_window_size(400, 400); - return run(argc, argv, init, reshape, draw, key_press); + eglutInitWindowSize(400, 400); + eglutInitAPIMask(EGLUT_OPENVG_BIT); + eglutInit(argc, argv); + + eglutCreateWindow("sp"); + + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + + init(); + + eglutMainLoop(); + + return 0; } -- cgit v1.2.3 From a49db89326504e72f62e5243536ca1e0fcb759a3 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 1 Apr 2010 14:25:15 +0800 Subject: Update DEMO_FILES for demos using EGL. Reflect the recent addtion of eglut and reorganization of the EGL demos. This helps remove ~2k lines of duplicated code $ git diff --shortstat -M 57cc1db87b5cacffd3344c49062c8289b7d46e78 18 files changed, 298 insertions(+), 2178 deletions(-) --- Makefile | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index e0d852e534..4e85f1f262 100644 --- a/Makefile +++ b/Makefile @@ -407,14 +407,18 @@ DEMO_FILES = \ $(DIRECTORY)/progs/demos/*.cxx \ $(DIRECTORY)/progs/demos/*.dat \ $(DIRECTORY)/progs/demos/README \ - $(DIRECTORY)/progs/egl/Makefile \ - $(DIRECTORY)/progs/egl/*.[ch] \ - $(DIRECTORY)/progs/es1/*/Makefile \ - $(DIRECTORY)/progs/es1/*/*.[ch] \ - $(DIRECTORY)/progs/es2/*/Makefile \ - $(DIRECTORY)/progs/es2/*/*.[ch] \ - $(DIRECTORY)/progs/openvg/*/Makefile \ - $(DIRECTORY)/progs/openvg/*/*.[ch] \ + $(DIRECTORY)/progs/egl/eglut/Makefile \ + $(DIRECTORY)/progs/egl/eglut/*.[ch] \ + $(DIRECTORY)/progs/egl/opengl/Makefile \ + $(DIRECTORY)/progs/egl/opengl/*.[ch] \ + $(DIRECTORY)/progs/egl/opengles1/Makefile \ + $(DIRECTORY)/progs/egl/opengles1/*.[ch] \ + $(DIRECTORY)/progs/egl/opengles2/Makefile \ + $(DIRECTORY)/progs/egl/opengles2/*.[ch] \ + $(DIRECTORY)/progs/egl/openvg/Makefile \ + $(DIRECTORY)/progs/egl/openvg/*.[ch] \ + $(DIRECTORY)/progs/egl/openvg/*/Makefile \ + $(DIRECTORY)/progs/egl/openvg/*/*.[ch] \ $(DIRECTORY)/progs/fbdev/Makefile \ $(DIRECTORY)/progs/fbdev/glfbdevtest.c \ $(DIRECTORY)/progs/objviewer/*.[ch] \ -- cgit v1.2.3 From 38afd1e4452d5ed357cce0d7a604948a9fb563aa Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Thu, 1 Apr 2010 17:29:48 +0200 Subject: gallium/util: add copyright header to u_half.c --- src/gallium/auxiliary/util/u_half.c | 39 +++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 62d74d4c6f..525ee7b1ec 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -1,7 +1,39 @@ -#include "util/u_half.h" +/* + * Copyright 2010 Luca Barbieri + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ -/* see www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf +/* The code is a reimplementation of the algorithm in + * www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf * "Fast Half Float Conversions" by Jeroen van der Zijp, Nov 2008 + * + * The table contents have been slightly changed so that the exponent + * bias is now in the exponent table instead of the mantissa table (mostly + * for cosmetic reasons, and because it theoretically allows a variant + * that flushes denormal to zero but uses a mantissa table with 24-bit + * entries). + * + * The tables are also constructed slightly differently. */ /* Note that using a 64K * 4 table is a terrible idea since it will not fit @@ -16,6 +48,9 @@ * Note however that if denormals are never encountered, the L1 cache usage * is only about 4608 bytes anyway. */ + +#include "util/u_half.h" + uint32_t util_half_to_float_mantissa_table[2048]; uint32_t util_half_to_float_exponent_table[64]; uint32_t util_half_to_float_offset_table[64]; -- cgit v1.2.3 From e011272fa357fbb22377220fa1d8655d063e4aa0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 16:38:01 +0100 Subject: st/python: Always use softpipe as reference driver. --- src/gallium/state_trackers/python/st_device.c | 2 +- .../state_trackers/python/st_hardpipe_winsys.c | 2 +- .../state_trackers/python/st_softpipe_winsys.c | 22 ++++++++++++++-------- src/gallium/state_trackers/python/st_winsys.h | 2 +- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/gallium/state_trackers/python/st_device.c b/src/gallium/state_trackers/python/st_device.c index 44d65e3fc1..4f227a092c 100644 --- a/src/gallium/state_trackers/python/st_device.c +++ b/src/gallium/state_trackers/python/st_device.c @@ -85,7 +85,7 @@ st_device_create(boolean hardware) if (hardware) screen = st_hardware_screen_create(); else - screen = st_software_screen_create(); + screen = st_software_screen_create("softpipe"); screen = trace_screen_create(screen); if (!screen) diff --git a/src/gallium/state_trackers/python/st_hardpipe_winsys.c b/src/gallium/state_trackers/python/st_hardpipe_winsys.c index b141177b79..c6743dbd9c 100644 --- a/src/gallium/state_trackers/python/st_hardpipe_winsys.c +++ b/src/gallium/state_trackers/python/st_hardpipe_winsys.c @@ -208,5 +208,5 @@ st_hardware_screen_create(void) if(st_hardpipe_load()) return pfnGetGalliumScreenMESA(); else - return st_software_screen_create(); + return st_software_screen_create(NULL); } diff --git a/src/gallium/state_trackers/python/st_softpipe_winsys.c b/src/gallium/state_trackers/python/st_softpipe_winsys.c index 0a332aaa9f..8584bad467 100644 --- a/src/gallium/state_trackers/python/st_softpipe_winsys.c +++ b/src/gallium/state_trackers/python/st_softpipe_winsys.c @@ -35,27 +35,29 @@ struct pipe_screen * -st_software_screen_create(void) +st_software_screen_create(const char *driver) { struct sw_winsys *ws; - const char *default_driver; - const char *driver; struct pipe_screen *screen = NULL; + if (!driver) { + const char *default_driver; + #if defined(HAVE_LLVMPIPE) - default_driver = "llvmpipe"; + default_driver = "llvmpipe"; #elif defined(HAVE_SOFTPIPE) - default_driver = "softpipe"; + default_driver = "softpipe"; #else - default_driver = ""; + default_driver = ""; #endif + driver = debug_get_option("GALLIUM_DRIVER", default_driver); + } + ws = null_sw_create(); if(!ws) return NULL; - driver = debug_get_option("GALLIUM_DRIVER", default_driver); - #ifdef HAVE_LLVMPIPE if (strcmp(driver, "llvmpipe") == 0) { screen = llvmpipe_create_screen(ws); @@ -68,5 +70,9 @@ st_software_screen_create(void) } #endif + if (!screen) { + ws->destroy(ws); + } + return screen; } diff --git a/src/gallium/state_trackers/python/st_winsys.h b/src/gallium/state_trackers/python/st_winsys.h index e1a99383a4..7d4066d947 100644 --- a/src/gallium/state_trackers/python/st_winsys.h +++ b/src/gallium/state_trackers/python/st_winsys.h @@ -37,7 +37,7 @@ struct pipe_screen * st_hardware_screen_create(void); struct pipe_screen * -st_software_screen_create(void); +st_software_screen_create(const char *driver); #endif /* ST_WINSYS_H_ */ -- cgit v1.2.3 From 811e602954f3093e7fbfbcc464c3b3f1870876ed Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 17:26:50 +0100 Subject: python/tests: Several cleanups. --- progs/gallium/python/tests/surface_copy.py | 116 +++++++++++++------------ progs/gallium/python/tests/texture_blit.py | 5 +- progs/gallium/python/tests/texture_render.py | 4 +- progs/gallium/python/tests/texture_transfer.py | 109 ++++++++++++----------- 4 files changed, 117 insertions(+), 117 deletions(-) diff --git a/progs/gallium/python/tests/surface_copy.py b/progs/gallium/python/tests/surface_copy.py index 9364fd1110..3eefa690bd 100755 --- a/progs/gallium/python/tests/surface_copy.py +++ b/progs/gallium/python/tests/surface_copy.py @@ -27,6 +27,9 @@ ########################################################################## +import os +import random + from gallium import * from base import * @@ -68,6 +71,14 @@ class TextureTest(TestCase): level = self.level zslice = self.zslice + tex_usage = PIPE_TEXTURE_USAGE_SAMPLER + geom_flags = 0 + if not dev.is_format_supported(format, target, tex_usage, geom_flags): + raise TestSkip + + if not dev.is_format_supported(format, target, tex_usage, geom_flags): + raise TestSkip + # textures dst_texture = dev.texture_create( target = target, @@ -76,10 +87,8 @@ class TextureTest(TestCase): height = height, depth = depth, last_level = last_level, - tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET, + tex_usage = tex_usage, ) - if dst_texture is None: - raise TestSkip dst_surface = dst_texture.get_surface(face = face, level = level, zslice = zslice) @@ -95,8 +104,6 @@ class TextureTest(TestCase): src_surface = src_texture.get_surface() - x = 0 - y = 0 w = dst_surface.width h = dst_surface.height @@ -113,7 +120,6 @@ class TextureTest(TestCase): if dst_raw != src_raw: raise TestFailure - def main(): @@ -124,27 +130,7 @@ def main(): targets = [ PIPE_TEXTURE_2D, PIPE_TEXTURE_CUBE, - #PIPE_TEXTURE_3D, - ] - - formats = [ - PIPE_FORMAT_B8G8R8A8_UNORM, - PIPE_FORMAT_B8G8R8X8_UNORM, - PIPE_FORMAT_B8G8R8A8_SRGB, - PIPE_FORMAT_B5G6R5_UNORM, - PIPE_FORMAT_B5G5R5A1_UNORM, - PIPE_FORMAT_B4G4R4A4_UNORM, - PIPE_FORMAT_Z32_UNORM, - PIPE_FORMAT_S8Z24_UNORM, - PIPE_FORMAT_X8Z24_UNORM, - PIPE_FORMAT_Z16_UNORM, - PIPE_FORMAT_S8_UNORM, - PIPE_FORMAT_A8_UNORM, - PIPE_FORMAT_L8_UNORM, - PIPE_FORMAT_DXT1_RGB, - PIPE_FORMAT_DXT1_RGBA, - PIPE_FORMAT_DXT3_RGBA, - PIPE_FORMAT_DXT5_RGBA, + PIPE_TEXTURE_3D, ] sizes = [64, 32, 16, 8, 4, 2, 1] @@ -161,36 +147,52 @@ def main(): PIPE_TEX_FACE_NEG_Z, ] - for target in targets: - for format in formats: - for size in sizes: - if target == PIPE_TEXTURE_3D: - depth = size - else: - depth = 1 - for face in faces: - if target != PIPE_TEXTURE_CUBE and face: - continue - levels = lods(size) - for last_level in range(levels): - for level in range(0, last_level + 1): - zslice = 0 - while zslice < depth >> level: - test = TextureTest( - dev = dev, - ctx = ctx, - target = target, - format = format, - width = size, - height = size, - depth = depth, - last_level = last_level, - face = face, - level = level, - zslice = zslice, - ) - suite.add_test(test) - zslice = (zslice + 1)*2 - 1 + try: + n = int(sys.argv[1]) + except: + n = 10000 + + for i in range(n): + format = random.choice(formats.keys()) + if not util_format_is_depth_or_stencil(format): + is_depth_or_stencil = util_format_is_depth_or_stencil(format) + + if is_depth_or_stencil: + target = PIPE_TEXTURE_2D + else: + target = random.choice(targets) + + size = random.choice(sizes) + + if target == PIPE_TEXTURE_3D: + depth = size + else: + depth = 1 + + if target == PIPE_TEXTURE_CUBE: + face = random.choice(faces) + else: + face = PIPE_TEX_FACE_POS_X + + levels = lods(size) + last_level = random.randint(0, levels - 1) + level = random.randint(0, last_level) + zslice = random.randint(0, max(depth >> level, 1) - 1) + + test = TextureTest( + dev = dev, + ctx = ctx, + target = target, + format = format, + width = size, + height = size, + depth = depth, + last_level = last_level, + face = face, + level = level, + zslice = zslice, + ) + suite.add_test(test) suite.run() diff --git a/progs/gallium/python/tests/texture_blit.py b/progs/gallium/python/tests/texture_blit.py index 5ae0a7398d..385cf16cd5 100755 --- a/progs/gallium/python/tests/texture_blit.py +++ b/progs/gallium/python/tests/texture_blit.py @@ -555,6 +555,7 @@ def main(): random.seed(0xdead3eef) dev = Device() + ctx = dev.context_create() suite = TestSuite() targets = [ @@ -577,8 +578,6 @@ def main(): PIPE_TEX_FACE_NEG_Z, ] - ctx = dev.context_create() - try: n = int(sys.argv[1]) except: @@ -602,7 +601,7 @@ def main(): depth = 1 if target == PIPE_TEXTURE_CUBE: - face =random.choice(faces) + face = random.choice(faces) else: face = PIPE_TEX_FACE_POS_X diff --git a/progs/gallium/python/tests/texture_render.py b/progs/gallium/python/tests/texture_render.py index 1e26639db6..12def7ec72 100755 --- a/progs/gallium/python/tests/texture_render.py +++ b/progs/gallium/python/tests/texture_render.py @@ -258,10 +258,10 @@ def main(): PIPE_FORMAT_B5G5R5A1_UNORM, PIPE_FORMAT_B4G4R4A4_UNORM, #PIPE_FORMAT_Z32_UNORM, - #PIPE_FORMAT_S8Z24_UNORM, + #PIPE_FORMAT_S8_USCALED_Z24_UNORM, #PIPE_FORMAT_X8Z24_UNORM, #PIPE_FORMAT_Z16_UNORM, - #PIPE_FORMAT_S8_UNORM, + #PIPE_FORMAT_S8_USCALED, PIPE_FORMAT_A8_UNORM, PIPE_FORMAT_L8_UNORM, #PIPE_FORMAT_DXT1_RGB, diff --git a/progs/gallium/python/tests/texture_transfer.py b/progs/gallium/python/tests/texture_transfer.py index 97a28e01a4..639d3d362c 100755 --- a/progs/gallium/python/tests/texture_transfer.py +++ b/progs/gallium/python/tests/texture_transfer.py @@ -29,6 +29,7 @@ import os +import random from gallium import * from base import * @@ -71,8 +72,12 @@ class TextureTest(TestCase): level = self.level zslice = self.zslice - tex_usage = 0 + tex_usage = PIPE_TEXTURE_USAGE_SAMPLER + geom_flags = 0 + if not dev.is_format_supported(format, target, tex_usage, geom_flags): + raise TestSkip + # textures texture = dev.texture_create( target = target, format = format, @@ -82,13 +87,11 @@ class TextureTest(TestCase): last_level = last_level, tex_usage = tex_usage, ) - if texture is None: - raise TestSkip surface = texture.get_surface(face, level, zslice) - stride = util_format_get_stride(format, width) - size = util_format_get_nblocksy(format, height) * stride + stride = util_format_get_stride(format, surface.width) + size = util_format_get_nblocksy(format, surface.height) * stride in_raw = os.urandom(size) @@ -111,26 +114,6 @@ def main(): PIPE_TEXTURE_3D, ] - formats = [ - PIPE_FORMAT_B8G8R8A8_UNORM, - PIPE_FORMAT_B8G8R8X8_UNORM, - PIPE_FORMAT_B8G8R8A8_SRGB, - PIPE_FORMAT_B5G6R5_UNORM, - PIPE_FORMAT_B5G5R5A1_UNORM, - PIPE_FORMAT_B4G4R4A4_UNORM, - PIPE_FORMAT_Z32_UNORM, - PIPE_FORMAT_S8Z24_UNORM, - PIPE_FORMAT_X8Z24_UNORM, - PIPE_FORMAT_Z16_UNORM, - PIPE_FORMAT_S8_UNORM, - PIPE_FORMAT_A8_UNORM, - PIPE_FORMAT_L8_UNORM, - PIPE_FORMAT_DXT1_RGB, - PIPE_FORMAT_DXT1_RGBA, - PIPE_FORMAT_DXT3_RGBA, - PIPE_FORMAT_DXT5_RGBA, - ] - sizes = [64, 32, 16, 8, 4, 2, 1] #sizes = [1020, 508, 252, 62, 30, 14, 6, 3] #sizes = [64] @@ -145,36 +128,52 @@ def main(): PIPE_TEX_FACE_NEG_Z, ] - for target in targets: - for format in formats: - for size in sizes: - if target == PIPE_TEXTURE_3D: - depth = size - else: - depth = 1 - for face in faces: - if target != PIPE_TEXTURE_CUBE and face: - continue - levels = lods(size) - for last_level in range(levels): - for level in range(0, last_level + 1): - zslice = 0 - while zslice < depth >> level: - test = TextureTest( - dev = dev, - ctx = ctx, - target = target, - format = format, - width = size, - height = size, - depth = depth, - last_level = last_level, - face = face, - level = level, - zslice = zslice, - ) - suite.add_test(test) - zslice = (zslice + 1)*2 - 1 + try: + n = int(sys.argv[1]) + except: + n = 10000 + + for i in range(n): + format = random.choice(formats.keys()) + if not util_format_is_depth_or_stencil(format): + is_depth_or_stencil = util_format_is_depth_or_stencil(format) + + if is_depth_or_stencil: + target = PIPE_TEXTURE_2D + else: + target = random.choice(targets) + + size = random.choice(sizes) + + if target == PIPE_TEXTURE_3D: + depth = size + else: + depth = 1 + + if target == PIPE_TEXTURE_CUBE: + face = random.choice(faces) + else: + face = PIPE_TEX_FACE_POS_X + + levels = lods(size) + last_level = random.randint(0, levels - 1) + level = random.randint(0, last_level) + zslice = random.randint(0, max(depth >> level, 1) - 1) + + test = TextureTest( + dev = dev, + ctx = ctx, + target = target, + format = format, + width = size, + height = size, + depth = depth, + last_level = last_level, + face = face, + level = level, + zslice = zslice, + ) + suite.add_test(test) suite.run() -- cgit v1.2.3 From f14c5adbc78b010d1b07eee9f0f65a99d0df4248 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 17:35:46 +0100 Subject: st/python: Allow to sample only in the [0,1] range. --- src/gallium/state_trackers/python/p_context.i | 5 ++- src/gallium/state_trackers/python/st_sample.c | 58 ++++++++++++++++++--------- src/gallium/state_trackers/python/st_sample.h | 6 ++- 3 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/gallium/state_trackers/python/p_context.i b/src/gallium/state_trackers/python/p_context.i index bccaeead01..02ce5647eb 100644 --- a/src/gallium/state_trackers/python/p_context.i +++ b/src/gallium/state_trackers/python/p_context.i @@ -589,9 +589,10 @@ error1: void surface_sample_rgba(struct st_surface *surface, - float *rgba) + float *rgba, + int norm = 0) { - st_sample_surface($self->pipe, surface, rgba); + st_sample_surface($self->pipe, surface, rgba, norm != 0); } unsigned diff --git a/src/gallium/state_trackers/python/st_sample.c b/src/gallium/state_trackers/python/st_sample.c index e2c1e06017..218a77fb0a 100644 --- a/src/gallium/state_trackers/python/st_sample.c +++ b/src/gallium/state_trackers/python/st_sample.c @@ -50,7 +50,7 @@ static uint32_t st_random(void) { seed = UINT64_C(134775813) * seed + UINT64_C(1); - return (uint16_t)(seed >> 32); + return (uint32_t)(seed >> 32); } @@ -470,25 +470,42 @@ static INLINE void st_sample_generic_pixel_block(enum pipe_format format, uint8_t *raw, float *rgba, unsigned rgba_stride, - unsigned w, unsigned h) + unsigned w, unsigned h, + boolean norm) { unsigned i; unsigned x, y, ch; int blocksize = util_format_get_blocksize(format); - for(i = 0; i < blocksize; ++i) - raw[i] = (uint8_t)st_random(); - - - pipe_tile_raw_to_rgba(format, - raw, - w, h, - rgba, rgba_stride); - - if(format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV) { - for(y = 0; y < h; ++y) { - for(x = 0; x < w; ++x) { - for(ch = 0; ch < 4; ++ch) { + if (norm) { + for (y = 0; y < h; ++y) { + for (x = 0; x < w; ++x) { + for (ch = 0; ch < 4; ++ch) { + unsigned offset = y*rgba_stride + x*4 + ch; + rgba[offset] = (st_random() & 0xff) / (double)0xff; + } + } + } + + util_format_write_4f(format, + rgba, rgba_stride * sizeof(float), + raw, util_format_get_stride(format, w), + 0, 0, w, h); + + } else { + for (i = 0; i < blocksize; ++i) + raw[i] = (uint8_t)st_random(); + } + + util_format_read_4f(format, + rgba, rgba_stride * sizeof(float), + raw, util_format_get_stride(format, w), + 0, 0, w, h); + + if (format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV) { + for (y = 0; y < h; ++y) { + for (x = 0; x < w; ++x) { + for (ch = 0; ch < 4; ++ch) { unsigned offset = y*rgba_stride + x*4 + ch; rgba[offset] = CLAMP(rgba[offset], 0.0f, 1.0f); } @@ -505,7 +522,8 @@ void st_sample_pixel_block(enum pipe_format format, void *raw, float *rgba, unsigned rgba_stride, - unsigned w, unsigned h) + unsigned w, unsigned h, + boolean norm) { switch(format) { case PIPE_FORMAT_DXT1_RGB: @@ -516,7 +534,7 @@ st_sample_pixel_block(enum pipe_format format, break; default: - st_sample_generic_pixel_block(format, raw, rgba, rgba_stride, w, h); + st_sample_generic_pixel_block(format, raw, rgba, rgba_stride, w, h, norm); break; } } @@ -525,7 +543,8 @@ st_sample_pixel_block(enum pipe_format format, void st_sample_surface(struct pipe_context *pipe, struct st_surface *surface, - float *rgba) + float *rgba, + boolean norm) { struct pipe_texture *texture = surface->texture; unsigned width = u_minify(texture->width0, surface->level); @@ -564,7 +583,8 @@ st_sample_surface(struct pipe_context *pipe, rgba + y * blockheight * rgba_stride + x * blockwidth * 4, rgba_stride, MIN2(blockwidth, width - x*blockwidth), - MIN2(blockheight, height - y*blockheight)); + MIN2(blockheight, height - y*blockheight), + norm); } } diff --git a/src/gallium/state_trackers/python/st_sample.h b/src/gallium/state_trackers/python/st_sample.h index 6fb8417add..2fdbb391f3 100644 --- a/src/gallium/state_trackers/python/st_sample.h +++ b/src/gallium/state_trackers/python/st_sample.h @@ -40,12 +40,14 @@ void st_sample_pixel_block(enum pipe_format format, void *raw, float *rgba, unsigned rgba_stride, - unsigned w, unsigned h); + unsigned w, unsigned h, + boolean norm); void st_sample_surface(struct pipe_context *pipe, struct st_surface *surface, - float *rgba); + float *rgba, + boolean norm); #endif /* ST_SAMPLE_H_ */ -- cgit v1.2.3 From 675fcb6cae9bbcd5a7b2e7b2edf3871f82beb6cf Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 17:36:37 +0100 Subject: python/tests: We're using a rgba8 rendertarget so sample only in the [0, 1] range. --- progs/gallium/python/tests/texture_blit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/progs/gallium/python/tests/texture_blit.py b/progs/gallium/python/tests/texture_blit.py index 385cf16cd5..a68c081931 100755 --- a/progs/gallium/python/tests/texture_blit.py +++ b/progs/gallium/python/tests/texture_blit.py @@ -191,7 +191,7 @@ class TextureColorSampleTest(TestCase): zslice = zslice, ) - ctx.surface_sample_rgba(surface, expected_rgba) + ctx.surface_sample_rgba(surface, expected_rgba, True) ctx.set_fragment_sampler_texture(0, texture) @@ -428,7 +428,7 @@ class TextureDepthSampleTest(TestCase): zslice = zslice, ) - ctx.surface_sample_rgba(surface, expected_rgba) + ctx.surface_sample_rgba(surface, expected_rgba, True) ctx.set_fragment_sampler_texture(0, texture) -- cgit v1.2.3 From 8f38135e283a0e81510fb40fb9e0c918436fa5f1 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 17:45:29 +0100 Subject: llvmpipe: Support sampling from signed and mixed siged formats. --- src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 73 ++++++++++++++++++++--- 1 file changed, 64 insertions(+), 9 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c index c9fbe0ad10..e5153a4bbb 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c @@ -108,18 +108,32 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, switch(format_desc->channel[chan].type) { case UTIL_FORMAT_TYPE_VOID: - input = NULL; + input = lp_build_undef(type); break; case UTIL_FORMAT_TYPE_UNSIGNED: - if(type.floating) { - if(start) - input = LLVMBuildLShr(builder, input, lp_build_const_int_vec(type, start), ""); - if(stop < format_desc->block.bits) { - unsigned mask = ((unsigned long long)1 << width) - 1; - input = LLVMBuildAnd(builder, input, lp_build_const_int_vec(type, mask), ""); - } + /* + * Align the LSB + */ + + if (start) { + input = LLVMBuildLShr(builder, input, lp_build_const_int_vec(type, start), ""); + } + + /* + * Zero the MSBs + */ + + if (stop < format_desc->block.bits) { + unsigned mask = ((unsigned long long)1 << width) - 1; + input = LLVMBuildAnd(builder, input, lp_build_const_int_vec(type, mask), ""); + } + /* + * Type conversion + */ + + if (type.floating) { if(format_desc->channel[chan].normalized) input = lp_build_unsigned_norm_to_float(builder, width, type, input); else @@ -130,10 +144,51 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, assert(0); input = lp_build_undef(type); } + + break; + + case UTIL_FORMAT_TYPE_SIGNED: + /* + * Align the sign bit first. + */ + + if (stop < type.width) { + unsigned bits = type.width - stop; + LLVMValueRef bits_val = lp_build_const_int_vec(type, bits); + input = LLVMBuildShl(builder, input, bits_val, ""); + } + + /* + * Align the LSB (with an arithmetic shift to preserve the sign) + */ + + if (format_desc->channel[chan].size < type.width) { + unsigned bits = type.width - format_desc->channel[chan].size; + LLVMValueRef bits_val = lp_build_const_int_vec(type, bits); + input = LLVMBuildAShr(builder, input, bits_val, ""); + } + + /* + * Type conversion + */ + + if (type.floating) { + input = LLVMBuildSIToFP(builder, input, lp_build_vec_type(type), ""); + if (format_desc->channel[chan].normalized) { + double scale = 1.0 / ((1 << (format_desc->channel[chan].size - 1)) - 1); + LLVMValueRef scale_val = lp_build_const_vec(type, scale); + input = LLVMBuildMul(builder, input, scale_val, ""); + } + } + else { + /* FIXME */ + assert(0); + input = lp_build_undef(type); + } + break; default: - /* fall through */ input = lp_build_undef(type); break; } -- cgit v1.2.3 From 4edffe026e387f6a038d7538577bf5ecc168f223 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Thu, 1 Apr 2010 18:40:27 +0200 Subject: gallium/util: rewrite global constructor system for half floats (GCC/MSVC only!) NOTE: this commit will cause Gallium to fail to build on any compiler except GCC, the Microsoft C compiler and compatible compilers that claim to be one of those. This commit removes the u_gctors.cpp mechanism, in favor of using compiler-specific syntax to add global constructors from C files. This solves the problem of u_gctors.o not being pulled from static libraries and avoids using C++. However, it needs compiler-specific support for every compiler. The Microsoft C compiler support has not been tested. --- progs/gallium/unit/u_format_test.c | 1 - src/gallium/auxiliary/Makefile | 3 -- src/gallium/auxiliary/util/u_gctors.cpp | 17 ----------- src/gallium/auxiliary/util/u_half.c | 5 +++- src/gallium/auxiliary/util/u_half.h | 5 ---- src/gallium/auxiliary/util/u_init.h | 51 +++++++++++++++++++++++++++++++++ 6 files changed, 55 insertions(+), 27 deletions(-) delete mode 100644 src/gallium/auxiliary/util/u_gctors.cpp create mode 100644 src/gallium/auxiliary/util/u_init.h diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 6ccef23617..ca4c92f5b7 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -404,7 +404,6 @@ int main(int argc, char **argv) { boolean success; - util_half_init_tables(); util_format_s3tc_init(); success = test_all(); diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 14c0fb1840..1db4aaa439 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -139,9 +139,6 @@ C_SOURCES = \ #vl/vl_csc.c \ #vl/vl_shader_build.c \ -CPP_SOURCES = \ - util/u_gctors.cpp - GALLIVM_SOURCES = \ gallivm/lp_bld_alpha.c \ gallivm/lp_bld_arit.c \ diff --git a/src/gallium/auxiliary/util/u_gctors.cpp b/src/gallium/auxiliary/util/u_gctors.cpp deleted file mode 100644 index 3d2dc5b7ad..0000000000 --- a/src/gallium/auxiliary/util/u_gctors.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/* this file uses the C++ global constructor mechanism to automatically - initialize global data - - __attribute__((constructor)) allows to do this in C, but is GCC-only -*/ - -#include "u_half.h" - -struct util_gctor_t -{ - util_gctor_t() - { - util_half_init_tables(); - } -}; - -static struct util_gctor_t util_gctor; diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 525ee7b1ec..4611b201b9 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -50,6 +50,7 @@ */ #include "util/u_half.h" +#include "util/u_init.h" uint32_t util_half_to_float_mantissa_table[2048]; uint32_t util_half_to_float_exponent_table[64]; @@ -57,7 +58,7 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -void util_half_init_tables(void) +static void util_half_init_tables(void) { int i; @@ -153,3 +154,5 @@ void util_half_init_tables(void) util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; } } + +UTIL_INIT(util_half_init_tables); diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 0ca660faf3..5afdd925a6 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -4,7 +4,6 @@ #include "pipe/p_compiler.h" #include "u_math.h" - #ifdef __cplusplus extern "C" { #endif @@ -59,10 +58,6 @@ util_float_to_half(float f) return util_floatui_to_half(i.ui); } -/* called by u_gctors.cpp, which defines the prototype itself */ -void util_half_init_tables(void); - - #ifdef __cplusplus } #endif diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h new file mode 100644 index 0000000000..edbcf2dcb9 --- /dev/null +++ b/src/gallium/auxiliary/util/u_init.h @@ -0,0 +1,51 @@ +/* + * Copyright 2010 Luca Barbieri + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#ifndef U_INIT_H +#define U_INIT_H + +/* Use UTIL_INIT(f) to have f called at program initialization. + Note that it is only guaranteed to be called if any symbol in the + .c file it is in sis referenced by the program. + + UTIL_INIT functions are called in arbitrary order. +*/ + +#ifdef __cplusplus +/* use a C++ global constructor */ +#define UTIL_INIT(f) struct f##__gctor_t {f##__gctor_t() {x();}} f##__gctor; +#elif defined(_MSC_VER) +/* add a pointer to the section where MSVC stores global constructor pointers */ +/* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and + http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */ +#define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init; +#elif defined(__GNUC__) +#define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();} +#else +#error Unsupported compiler: please find out how to implement global initializers in C on it +#endif + +#endif + -- cgit v1.2.3 From 8c519e5f87ad6e96c68a13fab636ffdb8c4930e9 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Thu, 1 Apr 2010 19:06:05 +0200 Subject: scons: Remove `util/u_gctors.cpp'. --- src/gallium/auxiliary/SConscript | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index 02b8045096..d0443db3f7 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -143,7 +143,6 @@ source = [ 'util/u_format_s3tc.c', 'util/u_format_table.c', 'util/u_format_tests.c', - 'util/u_gctors.cpp', 'util/u_gen_mipmap.c', 'util/u_half.c', 'util/u_handle_table.c', -- cgit v1.2.3 From 13d2f3c7380be6cf476d56269c17b52c53f313b3 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Thu, 1 Apr 2010 19:25:25 +0200 Subject: util: Declare .CRT$XCU data segment. --- src/gallium/auxiliary/util/u_init.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h index edbcf2dcb9..40dafadf97 100644 --- a/src/gallium/auxiliary/util/u_init.h +++ b/src/gallium/auxiliary/util/u_init.h @@ -40,6 +40,7 @@ /* add a pointer to the section where MSVC stores global constructor pointers */ /* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */ +#pragma data_seg(".CRT$XCU") #define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init; #elif defined(__GNUC__) #define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();} -- cgit v1.2.3 From 7e1aceaf0a1fb7b4ee44c7bc488f03b584b8b785 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 1 Apr 2010 19:00:03 +0100 Subject: llvmpipe: Support sampling from PIPE_FORMAT_R32_FLOAT. --- src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 46 +++++++++++++++++++++-- src/gallium/drivers/llvmpipe/lp_screen.c | 3 +- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c index e5153a4bbb..9f242844e5 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c @@ -80,6 +80,24 @@ lp_build_format_swizzle_soa(const struct util_format_description *format_desc, } +/** + * Unpack several pixels in SoA. + * + * It takes a vector of packed pixels: + * + * packed = {P0, P1, P2, P3, ..., Pn} + * + * And will produce four vectors: + * + * red = {R0, R1, R2, R3, ..., Rn} + * green = {G0, G1, G2, G3, ..., Gn} + * blue = {B0, B1, B2, B3, ..., Bn} + * alpha = {A0, A1, A2, A3, ..., An} + * + * It requires that a packed pixel fits into an element of the output + * channels. The common case is when converting pixel with a depth of 32 bit or + * less into floats. + */ void lp_build_unpack_rgba_soa(LLVMBuilderRef builder, const struct util_format_description *format_desc, @@ -91,11 +109,13 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, unsigned start; unsigned chan; - /* FIXME: Support more formats */ - assert(format_desc->is_bitmask); + /* FIXME: Support more pixel formats */ assert(format_desc->block.width == 1); assert(format_desc->block.height == 1); - assert(format_desc->block.bits <= 32); + assert(format_desc->block.bits <= type.width); + /* FIXME: Support more output types */ + assert(type.floating); + assert(type.width == 32); /* Decode the input vector components */ start = 0; @@ -188,7 +208,27 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, break; + case UTIL_FORMAT_TYPE_FLOAT: + if (type.floating) { + assert(start == 0); + assert(stop == 32); + assert(type.width == 32); + input = LLVMBuildBitCast(builder, input, lp_build_vec_type(type), ""); + } + else { + /* FIXME */ + assert(0); + input = lp_build_undef(type); + } + break; + + case UTIL_FORMAT_TYPE_FIXED: + assert(0); + input = lp_build_undef(type); + break; + default: + assert(0); input = lp_build_undef(type); break; } diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 5ad581bd17..625d4092db 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -222,7 +222,8 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen, /* FIXME: Temporary restrictions. See lp_bld_sample_soa.c */ if(tex_usage & PIPE_TEXTURE_USAGE_SAMPLER) { - if(!format_desc->is_bitmask) + if(!format_desc->is_bitmask && + format != PIPE_FORMAT_R32_FLOAT) return FALSE; if(format_desc->colorspace != UTIL_FORMAT_COLORSPACE_RGB && -- cgit v1.2.3 From 437902ce978cde9a0e1aa260f12dc232a8501c42 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 11:51:15 -0700 Subject: xdemos: Fix a build failure for non-autoconf configs Signed-off-by: Jeremy Huddleston --- progs/xdemos/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/progs/xdemos/Makefile b/progs/xdemos/Makefile index e87d55d011..d5c627aa34 100644 --- a/progs/xdemos/Makefile +++ b/progs/xdemos/Makefile @@ -11,7 +11,7 @@ LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) # Add X11 and pthread libs to satisfy GNU gold. APP_LIB_DEPS += -lX11 -lpthread -LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(libdir) $(APP_LIB_DEPS) +LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_LIB_DIR) $(APP_LIB_DEPS) PROGS = \ corender \ -- cgit v1.2.3 From 86a7978d37393ee34f876569ac06ffdb8d7289ae Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 12:28:41 -0700 Subject: xdemos: Build object files first This helps debugging on darwin. Signed-off-by: Jeremy Huddleston --- progs/xdemos/Makefile | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/progs/xdemos/Makefile b/progs/xdemos/Makefile index d5c627aa34..29cba0c888 100644 --- a/progs/xdemos/Makefile +++ b/progs/xdemos/Makefile @@ -53,17 +53,18 @@ EXTRA_PROGS = \ ##### RULES ##### -.SUFFIXES: -.SUFFIXES: .c +.o: $(LIB_DEP) + $(APP_CC) $(LDFLAGS) $< $(LIBS) -o $@ -.c: $(LIB_DEP) - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ +.c.o: + $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< -c -o $@ ##### TARGETS ##### default: $(PROGS) +$(PROGS): $(PROGS:%=%.o) extra: $(EXTRA_PROGS) @@ -74,45 +75,29 @@ clean: # special cases +pbutil.o: pbutil.h +pbinfo.o: pbutil.h pbinfo: pbinfo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbinfo.o pbutil.o $(LIBS) -o $@ +pbdemo.o: pbutil.h pbdemo: pbdemo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbdemo.o pbutil.o $(LIBS) -o $@ -pbinfo.o: pbinfo.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbinfo.c - -pbdemo.o: pbdemo.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbdemo.c - -pbutil.o: pbutil.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbutil.c - +glxgears_fbconfig.o: pbutil.h glxgears_fbconfig: glxgears_fbconfig.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) glxgears_fbconfig.o pbutil.o $(LIBS) -o $@ -glxgears_fbconfig.o: glxgears_fbconfig.c pbutil.h - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) -c -I. $(CFLAGS) glxgears_fbconfig.c - +xuserotfont.o: xuserotfont.h +xrotfontdemo.o: xuserotfont.h xrotfontdemo: xrotfontdemo.o xuserotfont.o $(APP_CC) $(CFLAGS) $(LDFLAGS) xrotfontdemo.o xuserotfont.o $(LIBS) -o $@ -xuserotfont.o: xuserotfont.c xuserotfont.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xuserotfont.c - -xrotfontdemo.o: xrotfontdemo.c xuserotfont.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xrotfontdemo.c - +ipc.o: ipc.h +corender.o: ipc.h corender: corender.o ipc.o $(APP_CC) $(CFLAGS) $(LDFLAGS) corender.o ipc.o $(LIBS) -o $@ -corender.o: corender.c ipc.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) corender.c - -ipc.o: ipc.c ipc.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) ipc.c - -yuvrect_client: yuvrect_client.c - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ +yuvrect_client: yuvrect_client.o + $(APP_CC) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ -- cgit v1.2.3 From 0594cf70883b64692ba617d85f4f9b4e636e5c2b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 11:01:31 -0700 Subject: apple: Initial import of libGL for OSX from AppleSGLX svn repository. Signed-off-by: Jeremy Huddleston --- src/glx/apple/.gitignore | 4 + src/glx/apple/GL_aliases | 8 + src/glx/apple/GL_extensions | 106 + src/glx/apple/GL_noop | 15 + src/glx/apple/GL_promoted | 4 + src/glx/apple/Makefile | 97 + src/glx/apple/OVERALL_DESIGN | 18 + src/glx/apple/README_UPDATING | 8 + src/glx/apple/RELEASE_NOTES | 71 + src/glx/apple/TODO | 26 + src/glx/apple/apple_cgl.c | 128 + src/glx/apple/apple_cgl.h | 86 + src/glx/apple/apple_exports.list | 623 + src/glx/apple/apple_glx.c | 214 + src/glx/apple/apple_glx.h | 49 + src/glx/apple/apple_glx_context.c | 616 + src/glx/apple/apple_glx_context.h | 85 + src/glx/apple/apple_glx_drawable.c | 542 + src/glx/apple/apple_glx_drawable.h | 223 + src/glx/apple/apple_glx_pbuffer.c | 330 + src/glx/apple/apple_glx_pixmap.c | 230 + src/glx/apple/apple_glx_surface.c | 224 + src/glx/apple/apple_visual.c | 144 + src/glx/apple/apple_visual.h | 41 + src/glx/apple/apple_xgl_api_read.c | 134 + src/glx/apple/apple_xgl_api_read.h | 47 + src/glx/apple/apple_xgl_api_stereo.c | 119 + src/glx/apple/apple_xgl_api_stereo.h | 39 + src/glx/apple/apple_xgl_api_viewport.c | 45 + src/glx/apple/apple_xgl_api_viewport.h | 36 + src/glx/apple/appledri.c | 452 + src/glx/apple/appledri.h | 124 + src/glx/apple/appledristr.h | 266 + src/glx/apple/gen_api_header.tcl | 86 + src/glx/apple/gen_api_library.tcl | 212 + src/glx/apple/gen_code.tcl | 50 + src/glx/apple/gen_defs.tcl | 67 + src/glx/apple/gen_exports.tcl | 132 + src/glx/apple/gen_funcs.tcl | 635 + src/glx/apple/gen_gl_h.sh | 33 + src/glx/apple/gen_types.tcl | 32 + src/glx/apple/glx_empty.c | 375 + src/glx/apple/glx_error.c | 65 + src/glx/apple/glx_error.h | 33 + src/glx/apple/glxreply.c | 134 + src/glx/apple/include/GL/gl.h.template | 130 + src/glx/apple/include/GL/gl.hMESA | 2285 +++ src/glx/apple/include/GL/glext.h | 8459 +++++++++ src/glx/apple/include/GL/glext.hMESA | 7649 ++++++++ src/glx/apple/include/GL/glx.h | 519 + src/glx/apple/include/GL/glxext.h | 933 + src/glx/apple/include/GL/internal/glcore.h | 189 + src/glx/apple/include/simple_list.h | 197 + src/glx/apple/specs/enum.spec | 7487 ++++++++ src/glx/apple/specs/enumext.spec | 6195 +++++++ src/glx/apple/specs/gl.spec | 26844 +++++++++++++++++++++++++++ src/glx/apple/specs/gl.tm | 317 + src/glx/apple/specs/glx.spec | 599 + src/glx/apple/specs/glxenum.spec | 414 + src/glx/apple/specs/glxenumext.spec | 503 + src/glx/apple/specs/glxext.spec | 1318 ++ src/glx/glcontextmodes.c | 4 + src/glx/glx_pbuffer.c | 196 +- src/glx/glxclient.h | 13 + src/glx/glxcmds.c | 195 +- src/glx/glxcurrent.c | 53 +- src/glx/glxext.c | 76 +- src/glx/glxextensions.c | 38 + src/glx/indirect_size.c | 2 +- src/glx/xfont.c | 2 +- 70 files changed, 71587 insertions(+), 38 deletions(-) create mode 100644 src/glx/apple/.gitignore create mode 100644 src/glx/apple/GL_aliases create mode 100644 src/glx/apple/GL_extensions create mode 100644 src/glx/apple/GL_noop create mode 100644 src/glx/apple/GL_promoted create mode 100644 src/glx/apple/Makefile create mode 100644 src/glx/apple/OVERALL_DESIGN create mode 100644 src/glx/apple/README_UPDATING create mode 100644 src/glx/apple/RELEASE_NOTES create mode 100644 src/glx/apple/TODO create mode 100644 src/glx/apple/apple_cgl.c create mode 100644 src/glx/apple/apple_cgl.h create mode 100644 src/glx/apple/apple_exports.list create mode 100644 src/glx/apple/apple_glx.c create mode 100644 src/glx/apple/apple_glx.h create mode 100644 src/glx/apple/apple_glx_context.c create mode 100644 src/glx/apple/apple_glx_context.h create mode 100644 src/glx/apple/apple_glx_drawable.c create mode 100644 src/glx/apple/apple_glx_drawable.h create mode 100644 src/glx/apple/apple_glx_pbuffer.c create mode 100644 src/glx/apple/apple_glx_pixmap.c create mode 100644 src/glx/apple/apple_glx_surface.c create mode 100644 src/glx/apple/apple_visual.c create mode 100644 src/glx/apple/apple_visual.h create mode 100644 src/glx/apple/apple_xgl_api_read.c create mode 100644 src/glx/apple/apple_xgl_api_read.h create mode 100644 src/glx/apple/apple_xgl_api_stereo.c create mode 100644 src/glx/apple/apple_xgl_api_stereo.h create mode 100644 src/glx/apple/apple_xgl_api_viewport.c create mode 100644 src/glx/apple/apple_xgl_api_viewport.h create mode 100644 src/glx/apple/appledri.c create mode 100644 src/glx/apple/appledri.h create mode 100644 src/glx/apple/appledristr.h create mode 100644 src/glx/apple/gen_api_header.tcl create mode 100644 src/glx/apple/gen_api_library.tcl create mode 100644 src/glx/apple/gen_code.tcl create mode 100644 src/glx/apple/gen_defs.tcl create mode 100644 src/glx/apple/gen_exports.tcl create mode 100644 src/glx/apple/gen_funcs.tcl create mode 100644 src/glx/apple/gen_gl_h.sh create mode 100644 src/glx/apple/gen_types.tcl create mode 100644 src/glx/apple/glx_empty.c create mode 100644 src/glx/apple/glx_error.c create mode 100644 src/glx/apple/glx_error.h create mode 100644 src/glx/apple/glxreply.c create mode 100644 src/glx/apple/include/GL/gl.h.template create mode 100644 src/glx/apple/include/GL/gl.hMESA create mode 100644 src/glx/apple/include/GL/glext.h create mode 100644 src/glx/apple/include/GL/glext.hMESA create mode 100644 src/glx/apple/include/GL/glx.h create mode 100644 src/glx/apple/include/GL/glxext.h create mode 100644 src/glx/apple/include/GL/internal/glcore.h create mode 100644 src/glx/apple/include/simple_list.h create mode 100644 src/glx/apple/specs/enum.spec create mode 100644 src/glx/apple/specs/enumext.spec create mode 100644 src/glx/apple/specs/gl.spec create mode 100644 src/glx/apple/specs/gl.tm create mode 100644 src/glx/apple/specs/glx.spec create mode 100644 src/glx/apple/specs/glxenum.spec create mode 100644 src/glx/apple/specs/glxenumext.spec create mode 100644 src/glx/apple/specs/glxext.spec diff --git a/src/glx/apple/.gitignore b/src/glx/apple/.gitignore new file mode 100644 index 0000000000..3cc2d13013 --- /dev/null +++ b/src/glx/apple/.gitignore @@ -0,0 +1,4 @@ +apple_xgl_api.[hc] +exports.list +stage.[1234] + diff --git a/src/glx/apple/GL_aliases b/src/glx/apple/GL_aliases new file mode 100644 index 0000000000..a8390d2408 --- /dev/null +++ b/src/glx/apple/GL_aliases @@ -0,0 +1,8 @@ +#GL_EXT_texture_object +alias AreTexturesResidentEXT AreTexturesResident +alias BindTextureEXT BindTexture +alias DeleteTexturesEXT DeleteTextures +alias GenTexturesEXT GenTextures +alias IsTextureEXT IsTexture +alias PrioritizeTexturesEXT PrioritizeTextures +alias TexImage3DEXT TexImage3D diff --git a/src/glx/apple/GL_extensions b/src/glx/apple/GL_extensions new file mode 100644 index 0000000000..073666c367 --- /dev/null +++ b/src/glx/apple/GL_extensions @@ -0,0 +1,106 @@ +extension ARB_transpose_matrix +extension ARB_vertex_program +extension ARB_vertex_blend +extension ARB_window_pos +extension ARB_shader_objects +extension ARB_vertex_shader +extension ARB_shading_language_100 +extension ARB_imaging +extension ARB_point_parameters +extension ARB_texture_env_crossbar +extension ARB_texture_border_clamp +extension ARB_multitexture +extension ARB_texture_env_add +extension ARB_texture_cube_map +extension ARB_texture_env_dot3 +extension ARB_multisample +extension ARB_texture_env_combine +extension ARB_texture_compression +extension ARB_texture_mirrored_repeat +extension ARB_shadow +extension ARB_depth_texture +extension ARB_shadow_ambient +extension ARB_fragment_program +extension ARB_fragment_program_shadow +extension ARB_fragment_shader +extension ARB_occlusion_query +extension ARB_point_sprite +extension ARB_texture_non_power_of_two +extension ARB_vertex_buffer_object +extension ARB_pixel_buffer_object +extension ARB_draw_buffers +extension ARB_shader_texture_lod +extension ARB_texture_rectangle +extension ARB_texture_float +extension ARB_half_float_pixel + +extension EXT_multi_draw_arrays +extension EXT_clip_volume_hint +extension EXT_rescale_normal +extension EXT_draw_range_elements +extension EXT_fog_coord +extension EXT_gpu_program_parameters +extension EXT_geometry_shader4 + +#The gl.spec has the wrong arguments for GetTransformFeedbackVaryingEXT +#extension EXT_transform_feedback +extension EXT_compiled_vertex_array +extension EXT_framebuffer_object +extension EXT_framebuffer_blit +extension EXT_framebuffer_multisample +extension EXT_texture_rectangle +extension EXT_texture_env_add +extension EXT_blend_color +extension EXT_blend_minmax +extension EXT_blend_subtract +extension EXT_texture_lod_bias +extension EXT_abgr +extension EXT_bgra +extension EXT_stencil_wrap +extension EXT_texture_filter_anisotropic +extension EXT_separate_specular_color +extension EXT_secondary_color +extension EXT_blend_func_separate +extension EXT_shadow_funcs +extension EXT_stencil_two_side +extension EXT_texture_compression_s3tc +extension EXT_texture_compression_dxt1 +extension EXT_texture_sRGB +extension EXT_blend_equation_separate +extension EXT_texture_mirror_clamp +extension EXT_packed_depth_stencil + +extension APPLE_client_storage +extension APPLE_specular_vector +extension APPLE_transform_hint +extension APPLE_packed_pixels +#The gl.spec has different argument types for this: +#extension APPLE_fence +extension APPLE_vertex_array_object +extension APPLE_vertex_program_evaluators +extension APPLE_element_array +extension APPLE_flush_render +extension APPLE_aux_depth_stencil +extension APPLE_flush_buffer_range +extension APPLE_ycbcr_422 +#The gl.spec has different argument types for this: +#extension APPLE_vertex_array_range +extension APPLE_texture_range +extension APPLE_float_pixels +extension APPLE_pixel_buffer +extension APPLE_object_purgeable + +#The OpenGL framework has moved this to the core OpenGL, and eliminated EXT_convolution listing. +#extension EXT_convolution + +#Leopard supports these according to nm. +#Applications should use the GL_EXTENSIONS list to determine capabilities. +extension EXT_paletted_texture +extension APPLE_fence +extension NV_vertex_program4 +extension EXT_draw_buffers2 +extension EXT_gpu_shader4 +extension ATI_pn_triangles +extension NV_register_combiners +extension EXT_depth_bounds_test + diff --git a/src/glx/apple/GL_noop b/src/glx/apple/GL_noop new file mode 100644 index 0000000000..2581be1a7d --- /dev/null +++ b/src/glx/apple/GL_noop @@ -0,0 +1,15 @@ +#These are for compatibility with the old libGL. +noop SGI_color_table +noop EXT_convolution +noop EXT_cull_vertex +noop NV_fence +noop SGIS_detail_texture +noop SGIX_fragment_lighting +noop SGIX_flush_raster +noop EXT_vertex_array +noop SGIX_instruments +noop EXT_histogram +noop NV_vertex_program +noop PGI_misc_hints +noop SGIS_multisample +noop EXT_multisample diff --git a/src/glx/apple/GL_promoted b/src/glx/apple/GL_promoted new file mode 100644 index 0000000000..a16dc6ae65 --- /dev/null +++ b/src/glx/apple/GL_promoted @@ -0,0 +1,4 @@ +promoted MESA_window_pos +promoted ARB_window_pos +promoted EXT_copy_texture +promoted ARB_vertex_program diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile new file mode 100644 index 0000000000..b3d163aba9 --- /dev/null +++ b/src/glx/apple/Makefile @@ -0,0 +1,97 @@ +INSTALL_DIR = /usr/X11 +X11_DIR = $(INSTALL_DIR) + +CC=gcc +GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT $(RC_CFLAGS) $(CFLAGS) +GL_LDFLAGS=-L$(INSTALL_DIR)/lib -L$(X11_DIR)/lib $(LDFLAGS) -Wl,-single_module + +TCLSH=tclsh8.5 + +MKDIR=mkdir +INSTALL=install +LN=ln +RM=rm + +INCLUDE=-I. -Iinclude -Iinclude/internal -I.. -DGLX_ALIAS_UNSUPPORTED -I$(INSTALL_DIR)/include -I$(X11_DIR)/include +COMPILE=$(CC) $(INCLUDE) $(GL_CFLAGS) -c + +#The directory with the final binaries. +BUILD_DIR=builds + +all: $(BUILD_DIR)/libGL.1.2.dylib + +OBJECTS=glxext.o glxcmds.o glx_pbuffer.o glx_query.o glxcurrent.o glxextensions.o \ + appledri.o apple_glx_context.o apple_glx.o pixel.o \ + compsize.o apple_visual.o apple_cgl.o glxreply.o glcontextmodes.o \ + apple_xgl_api.o apple_glx_drawable.o xfont.o apple_glx_pbuffer.o \ + apple_glx_pixmap.o apple_xgl_api_read.o glx_empty.o glx_error.o \ + apple_xgl_api_viewport.o apple_glx_surface.o apple_xgl_api_stereo.o + +$(BUILD_DIR)/libGL.1.2.dylib: $(OBJECTS) + -if ! test -d $(BUILD_DIR); then $(MKDIR) $(BUILD_DIR); fi + $(CC) $(GL_CFLAGS) -o $@ -dynamiclib -install_name $(INSTALL_DIR)/lib/libGL.1.dylib -compatibility_version 1.2 -current_version 1.2 -lXplugin -framework ApplicationServices -framework CoreFoundation $(GL_LDFLAGS) -lXext -lX11 -Wl,-exported_symbols_list,exports.list $(OBJECTS) + +.c.o: + $(COMPILE) $< + +apple_glx_drawable.o: apple_glx_drawable.h apple_glx_drawable.c include/GL/gl.h +apple_xgl_api.o: apple_xgl_api.h apple_xgl_api.c apple_xgl_api_stereo.c include/GL/gl.h +apple_xgl_api_read.o: apple_xgl_api_read.h apple_xgl_api_read.c apple_xgl_api.h include/GL/gl.h +apple_xgl_api_viewport.o: apple_xgl_api_viewport.h apple_xgl_api_viewport.c apple_xgl_api.h include/GL/gl.h +apple_xgl_api_stereo.o: apple_xgl_api_stereo.h apple_xgl_api_stereo.c apple_xgl_api.h include/GL/gl.h +glcontextmodes.o: glcontextmodes.c include/GL/gl.h +glxext.o: glxext.c include/GL/gl.h +glxreply.o: glxreply.c include/GL/gl.h +glxcmds.o: glxcmds.c apple_glx_context.h include/GL/gl.h +glx_pbuffer.o: glx_pbuffer.c include/GL/gl.h +glx_error.o: glx_error.c include/GL/gl.h +glx_query.o: glx_query.c include/GL/gl.h +glxcurrent.o: glxcurrent.c include/GL/gl.h +glxextensions.o: glxextensions.c include/GL/gl.h +glxhash.o: glxhash.h glxhash.c include/GL/gl.h +appledri.o: appledri.h appledristr.h appledri.c include/GL/gl.h +apple_glx_context.o: apple_glx_context.c apple_glx_context.h apple_glx_context.h include/GL/gl.h +apple_glx.o: apple_glx.h apple_glx.c apple_xgl_api.h include/GL/gl.h +apple_visual.o: apple_visual.h apple_visual.c include/GL/gl.h +apple_cgl.o: apple_cgl.h apple_cgl.c include/GL/gl.h +apple_glx_pbuffer.o: apple_glx_drawable.h apple_glx_pbuffer.c include/GL/gl.h +apple_glx_pixmap.o: apple_glx_drawable.h apple_glx_pixmap.c appledri.h include/GL/gl.h +apple_glx_surface.o: apple_glx_drawable.h apple_glx_surface.c appledri.h include/GL/gl.h +xfont.o: xfont.c include/GL/gl.h +compsize.o: compsize.c include/GL/gl.h +renderpix.o: renderpix.c include/GL/gl.h +singlepix.o: singlepix.c include/GL/gl.h +pixel.o: pixel.c include/GL/gl.h +glx_empty.o: glx_empty.c include/GL/gl.h + +apple_xgl_api.c: apple_xgl_api.h +apple_xgl_api.h: gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl + $(TCLSH) gen_code.tcl + +include/GL/gl.h: include/GL/gl.h.template gen_gl_h.sh + ./gen_gl_h.sh include/GL/gl.h.template $@ + +install_headers: include/GL/gl.h + $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GL + $(INSTALL) -m 644 include/GL/gl.h include/GL/glext.h include/GL/glx.h include/GL/glxext.h $(DESTDIR)$(INSTALL_DIR)/include/GL + +install_libraries: $(BUILD_DIR)/libGL.1.2.dylib + $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/lib + $(INSTALL) -m 755 $(BUILD_DIR)/libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib + $(RM) -f $(DESTDIR)$(INSTALL_DIR)/lib/libGL.dylib + $(LN) -s libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib/libGL.dylib + $(RM) -f $(DESTDIR)$(INSTALL_DIR)/lib/libGL.1.dylib + $(LN) -s libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib/libGL.1.dylib + +install: install_headers install_libraries + +clean: + rm -rf $(BUILD_DIR) + rm -f *.o *.a + rm -f *.c~ *.h~ + rm -f apple_xgl_api.h apple_xgl_api.c + rm -f *.dylib + rm -f include/GL/gl.h + +%.c : ../%.c + ln -s $< diff --git a/src/glx/apple/OVERALL_DESIGN b/src/glx/apple/OVERALL_DESIGN new file mode 100644 index 0000000000..c394b2115c --- /dev/null +++ b/src/glx/apple/OVERALL_DESIGN @@ -0,0 +1,18 @@ +A lot of the code is automatically generated. + +The following are generated based on specs/gl.spec and specs/enum.spec (from OpenGL.org): + +apple_xgl_api.h +apple_xgl_api.c +exports.list +include/GL/gl.h +include/GL/glext.h (includes the OpenGL framework glext.h) + +The gen_code.tcl script is what executes the various gen_*.tcl scripts to produce those. + +You will need Tcl 8.5 for the gen_code.tcl script. + +The tests/ directory contains some tests that are built in testbuilds. + +The tests built in testbuilds don't require installation of the library. + diff --git a/src/glx/apple/README_UPDATING b/src/glx/apple/README_UPDATING new file mode 100644 index 0000000000..7b1bbe02c5 --- /dev/null +++ b/src/glx/apple/README_UPDATING @@ -0,0 +1,8 @@ +The design of most of this code is such that we extend the GLX structures +with a void * named apple. + +The GLX functions that need to do Apple-specific things are passed +&s->apple in order to initialize the private structures. + +Thus when updating, just run a diff against glxext.c or glxcmds.c, and +manually merge from there as needed. diff --git a/src/glx/apple/RELEASE_NOTES b/src/glx/apple/RELEASE_NOTES new file mode 100644 index 0000000000..c5c603e76d --- /dev/null +++ b/src/glx/apple/RELEASE_NOTES @@ -0,0 +1,71 @@ +AppleSGLX Release Notes + +o OpenGL Support + +AppleSGLX supports the same version of OpenGL as Leopard (OpenGL 2.1). +Many extensions from the OpenGL framework are now builtin. + +This adds support for GLSL, and a variety of other features. + +o Thread Support + +Thread support has been improved since the libGL in XQuartz 2.3.2.1. + +o GLX 1.4 Support + +The GLX 1.3 and 1.4 functions should all work with a few exceptions +as outlined in this document. + +o glXMakeContextCurrent (a GLX 1.3 feature) + +glXMakeContextCurrent should work with the readable drawable. The +OpenGL functions: glReadPixels, glCopyPixels, and glCopyColorTable, +should use the readable drawable if it's different than the rendering +drawable. + +o glXGetProcAddress (a GLX 1.4 feature and ARB extension) + +glXGetProcAddress should work and allow getting the address of any +extension functions you may need from the X11 libGL, or OpenGL framework +libGL. Previous versions of the X11 libGL didn't allow getting the newer +OpenGL framework addresses. + +o GLXPixmaps + +New support for GLXPixmaps works well with mixed X11 and OpenGL drawing +operations. You can create them using glXCreateGLXPixmap or +glXCreatePixmap. + +o GLXPbuffers + +Support for GLXPbuffers has been added. These are drawables that are +not possible to render to with X11, which is allowed by the spec. +A GLXPbuffer will never generate a clobber event, however +glXSelectEvent and glXGetSelectedEvent should operate normally. + +Clobber events are not generated due to low-level architectural +differences. The contents of your pbuffers will not be clobbered. + +o Shared Contexts + +Due to basic low-level architectural differences the usage of shared +contexts requires a similar visual or GLXFBConfig be used in the +creation of a shared context. It's best if you specify the same +visual. This is due to a CGL design difference, and not something +that is easily worked around. UPDATE: some changes made seem to +help resolve this issue in many cases, so you may be able to use a +shared context without this restriction. + + +o Indirect + +The X server supports indirect fairly well, so OpenGL applications +can be run remotely and displayed by XQuartz. This means you can run +applications from a remote host on an XQuartz X server. + +AppleSGLX does not support indirect rendering. Any indirect context +created will appear to glXIsDirect as an indirect context, but it +does not actually support indirect rendering to a remote X server. + +AppleSGLX supports GLXPixmaps and GLXPbuffers with direct and indirect +contexts, though they are all direct contexts by definition (see above). diff --git a/src/glx/apple/TODO b/src/glx/apple/TODO new file mode 100644 index 0000000000..4a063fe0ed --- /dev/null +++ b/src/glx/apple/TODO @@ -0,0 +1,26 @@ +Test shared contexts! + +Go over every glxcmd in glxcmds.c and make sure we have them working. +Verify the XError behavior of GLXPixmap support functions. + +Test GLXPixmap support with various pixmap depths. + +Test GLXPixmap support with invalid pixmaps (to stress the protocol code). + +-- Feb 10, 2009 + +Test glXCopyContext. + +-- Dec 12 2008 + +TEST glXCopyContext needs some work and additional code in apple_glx.c. + +---- + +Make sure we report the proper list of GLX extensions available. Apple direct may not support some +that Mesa does, and vice-versa. + +Modify create_destroy_context and create a new test called create_destroy_context_thread_race. +Where 2 threads are doing the same sort of path of create and destroy. The locking should protect +us there, but we need to verify nothing goes wrong. + diff --git a/src/glx/apple/apple_cgl.c b/src/glx/apple/apple_cgl.c new file mode 100644 index 0000000000..737d757ed5 --- /dev/null +++ b/src/glx/apple/apple_cgl.c @@ -0,0 +1,128 @@ +/* + Copyright (c) 2008 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include + +#include "apple_cgl.h" +#include "apple_glx.h" + +#ifndef OPENGL_FRAMEWORK_PATH +#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL" +#endif + +static void *dl_handle = NULL; + +struct apple_cgl_api apple_cgl; + +static bool initialized = false; + +static void * +sym(void *h, const char *name) +{ + void *s; + + s = dlsym(h, name); + + if (NULL == s) { + fprintf(stderr, "error: %s\n", dlerror()); + abort(); + } + + return s; +} + +void +apple_cgl_init(void) +{ + void *h; + GLint major = 0, minor = 0; + const char *opengl_framework_path; + + if (initialized) + return; + + opengl_framework_path = getenv("OPENGL_FRAMEWORK_PATH"); + if (!opengl_framework_path) { + opengl_framework_path = OPENGL_FRAMEWORK_PATH; + } + + (void) dlerror(); /*drain dlerror */ + h = dlopen(opengl_framework_path, RTLD_NOW); + + if (NULL == h) { + fprintf(stderr, "error: unable to dlopen %s : %s\n", + opengl_framework_path, dlerror()); + abort(); + } + + dl_handle = h; + + apple_cgl.get_version = sym(h, "CGLGetVersion"); + + apple_cgl.get_version(&major, &minor); + + apple_glx_diagnostic("CGL major %d minor %d\n", major, minor); + + if (1 != major) { + fprintf(stderr, "WARNING: the CGL major version has changed!\n" + "libGL may be incompatible!\n"); + } + + apple_cgl.choose_pixel_format = sym(h, "CGLChoosePixelFormat"); + apple_cgl.destroy_pixel_format = sym(h, "CGLDestroyPixelFormat"); + + apple_cgl.clear_drawable = sym(h, "CGLClearDrawable"); + apple_cgl.flush_drawable = sym(h, "CGLFlushDrawable"); + + apple_cgl.create_context = sym(h, "CGLCreateContext"); + apple_cgl.destroy_context = sym(h, "CGLDestroyContext"); + + apple_cgl.set_current_context = sym(h, "CGLSetCurrentContext"); + apple_cgl.get_current_context = sym(h, "CGLGetCurrentContext"); + apple_cgl.error_string = sym(h, "CGLErrorString"); + + apple_cgl.set_off_screen = sym(h, "CGLSetOffScreen"); + + apple_cgl.copy_context = sym(h, "CGLCopyContext"); + + apple_cgl.create_pbuffer = sym(h, "CGLCreatePBuffer"); + apple_cgl.destroy_pbuffer = sym(h, "CGLDestroyPBuffer"); + apple_cgl.set_pbuffer = sym(h, "CGLSetPBuffer"); + + initialized = true; +} + +void * +apple_cgl_get_dl_handle(void) +{ + return dl_handle; +} diff --git a/src/glx/apple/apple_cgl.h b/src/glx/apple/apple_cgl.h new file mode 100644 index 0000000000..5e98a00fe7 --- /dev/null +++ b/src/glx/apple/apple_cgl.h @@ -0,0 +1,86 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#ifndef APPLE_CGL_H +#define APPLE_CGL_H + +#include +#include +#include +#include + +/* For GLint and GLsizei on Tiger */ +#include + +struct apple_cgl_api +{ + void (*get_version) (GLint * majorvers, GLint * minorvers); + + CGLError(*choose_pixel_format) (const CGLPixelFormatAttribute * attribs, + CGLPixelFormatObj * pix, GLint * npix); + CGLError(*destroy_pixel_format) (CGLPixelFormatObj pix); + + CGLError(*clear_drawable) (CGLContextObj ctx); + CGLError(*flush_drawable) (CGLContextObj ctx); + + CGLError(*create_context) (CGLPixelFormatObj pix, CGLContextObj share, + CGLContextObj * ctx); + CGLError(*destroy_context) (CGLContextObj pix); + + CGLError(*set_current_context) (CGLContextObj ctx); + CGLContextObj(*get_current_context) (void); + const char *(*error_string) (CGLError error); + + CGLError(*set_off_screen) (CGLContextObj ctx, + GLsizei width, GLsizei height, GLint rowbytes, + void *baseaddr); + + CGLError(*copy_context) (CGLContextObj src, CGLContextObj dst, + GLbitfield mask); + + CGLError(*create_pbuffer) (GLsizei width, + GLsizei height, + GLenum target, + GLenum internalFormat, + GLint max_level, CGLPBufferObj * pbuffer); + + CGLError(*destroy_pbuffer) (CGLPBufferObj pbuffer); + + CGLError(*set_pbuffer) (CGLContextObj ctx, + CGLPBufferObj pbuffer, + GLenum face, GLint level, GLint screen); +}; + +extern struct apple_cgl_api apple_cgl; + +extern void apple_cgl_init(void); + +extern void *apple_cgl_get_dl_handle(void); + +#endif diff --git a/src/glx/apple/apple_exports.list b/src/glx/apple/apple_exports.list new file mode 100644 index 0000000000..f4790119a5 --- /dev/null +++ b/src/glx/apple/apple_exports.list @@ -0,0 +1,623 @@ +_glAccum +_glAlphaFunc +_glAreTexturesResident +_glArrayElement +_glBegin +_glBindTexture +_glBitmap +_glBlendColor +_glBlendEquation +_glBlendEquationSeparate +_glBlendFunc +_glCallList +_glCallLists +_glClear +_glClearAccum +_glClearColor +_glClearDepth +_glClearIndex +_glClearStencil +_glClipPlane +_glColor3b +_glColor3bv +_glColor3d +_glColor3dv +_glColor3f +_glColor3fv +_glColor3i +_glColor3iv +_glColor3s +_glColor3sv +_glColor3ub +_glColor3ubv +_glColor3ui +_glColor3uiv +_glColor3us +_glColor3usv +_glColor4b +_glColor4bv +_glColor4d +_glColor4dv +_glColor4f +_glColor4fv +_glColor4i +_glColor4iv +_glColor4s +_glColor4sv +_glColor4ub +_glColor4ubv +_glColor4ui +_glColor4uiv +_glColor4us +_glColor4usv +_glColorMask +_glColorMaterial +_glColorPointer +_glColorSubTable +_glColorTable +_glColorTableParameterfv +_glColorTableParameteriv +_glConvolutionFilter1D +_glConvolutionFilter2D +_glConvolutionParameterf +_glConvolutionParameterfv +_glConvolutionParameteri +_glConvolutionParameteriv +_glCopyColorSubTable +_glCopyColorTable +_glCopyConvolutionFilter1D +_glCopyConvolutionFilter2D +_glCopyPixels +_glCopyTexImage1D +_glCopyTexImage2D +_glCopyTexSubImage1D +_glCopyTexSubImage2D +_glCopyTexSubImage3D +_glCullFace +_glDeleteLists +_glDeleteTextures +_glDepthFunc +_glDepthMask +_glDepthRange +_glDisable +_glDisableClientState +_glDrawArrays +_glDrawBuffer +_glDrawElements +_glDrawPixels +_glDrawRangeElements +_glEdgeFlag +_glEdgeFlagPointer +_glEdgeFlagv +_glEnable +_glEnableClientState +_glEnd +_glEndList +_glEvalCoord1d +_glEvalCoord1dv +_glEvalCoord1f +_glEvalCoord1fv +_glEvalCoord2d +_glEvalCoord2dv +_glEvalCoord2f +_glEvalCoord2fv +_glEvalMesh1 +_glEvalMesh2 +_glEvalPoint1 +_glEvalPoint2 +_glFeedbackBuffer +_glFinish +_glFlush +_glFogf +_glFogfv +_glFogi +_glFogiv +_glFrontFace +_glFrustum +_glGenLists +_glGenTextures +_glGetBooleanv +_glGetClipPlane +_glGetColorTable +_glGetColorTableParameterfv +_glGetColorTableParameteriv +_glGetConvolutionFilter +_glGetConvolutionParameterfv +_glGetConvolutionParameteriv +_glGetDoublev +_glGetError +_glGetFloatv +_glGetHistogram +_glGetHistogramParameterfv +_glGetHistogramParameteriv +_glGetIntegerv +_glGetLightfv +_glGetLightiv +_glGetMapdv +_glGetMapfv +_glGetMapiv +_glGetMaterialfv +_glGetMaterialiv +_glGetMinmax +_glGetMinmaxParameterfv +_glGetMinmaxParameteriv +_glGetPixelMapfv +_glGetPixelMapuiv +_glGetPixelMapusv +_glGetPointerv +_glGetPolygonStipple +_glGetSeparableFilter +_glGetString +_glGetTexEnvfv +_glGetTexEnviv +_glGetTexGendv +_glGetTexGenfv +_glGetTexGeniv +_glGetTexImage +_glGetTexLevelParameterfv +_glGetTexLevelParameteriv +_glGetTexParameterfv +_glGetTexParameteriv +_glHint +_glHistogram +_glIndexMask +_glIndexPointer +_glIndexd +_glIndexdv +_glIndexf +_glIndexfv +_glIndexi +_glIndexiv +_glIndexs +_glIndexsv +_glIndexub +_glIndexubv +_glInitNames +_glInterleavedArrays +_glIsEnabled +_glIsList +_glIsTexture +_glLightModelf +_glLightModelfv +_glLightModeli +_glLightModeliv +_glLightf +_glLightfv +_glLighti +_glLightiv +_glLineStipple +_glLineWidth +_glListBase +_glLoadIdentity +_glLoadMatrixd +_glLoadMatrixf +_glLoadName +_glLogicOp +_glMap1d +_glMap1f +_glMap2d +_glMap2f +_glMapGrid1d +_glMapGrid1f +_glMapGrid2d +_glMapGrid2f +_glMaterialf +_glMaterialfv +_glMateriali +_glMaterialiv +_glMatrixMode +_glMinmax +_glMultMatrixd +_glMultMatrixf +_glNewList +_glNormal3b +_glNormal3bv +_glNormal3d +_glNormal3dv +_glNormal3f +_glNormal3fv +_glNormal3i +_glNormal3iv +_glNormal3s +_glNormal3sv +_glNormalPointer +_glOrtho +_glPassThrough +_glPixelMapfv +_glPixelMapuiv +_glPixelMapusv +_glPixelStoref +_glPixelStorei +_glPixelTransferf +_glPixelTransferi +_glPixelZoom +_glPointSize +_glPolygonMode +_glPolygonOffset +_glPolygonStipple +_glPopAttrib +_glPopClientAttrib +_glPopMatrix +_glPopName +_glPrioritizeTextures +_glPushAttrib +_glPushClientAttrib +_glPushMatrix +_glPushName +_glRasterPos2d +_glRasterPos2dv +_glRasterPos2f +_glRasterPos2fv +_glRasterPos2i +_glRasterPos2iv +_glRasterPos2s +_glRasterPos2sv +_glRasterPos3d +_glRasterPos3dv +_glRasterPos3f +_glRasterPos3fv +_glRasterPos3i +_glRasterPos3iv +_glRasterPos3s +_glRasterPos3sv +_glRasterPos4d +_glRasterPos4dv +_glRasterPos4f +_glRasterPos4fv +_glRasterPos4i +_glRasterPos4iv +_glRasterPos4s +_glRasterPos4sv +_glReadBuffer +_glReadPixels +_glRectd +_glRectdv +_glRectf +_glRectfv +_glRecti +_glRectiv +_glRects +_glRectsv +_glRenderMode +_glResetHistogram +_glResetMinmax +_glRotated +_glRotatef +_glScaled +_glScalef +_glScissor +_glSelectBuffer +_glSeparableFilter2D +_glShadeModel +_glStencilFunc +_glStencilMask +_glStencilOp +_glTexCoord1d +_glTexCoord1dv +_glTexCoord1f +_glTexCoord1fv +_glTexCoord1i +_glTexCoord1iv +_glTexCoord1s +_glTexCoord1sv +_glTexCoord2d +_glTexCoord2dv +_glTexCoord2f +_glTexCoord2fv +_glTexCoord2i +_glTexCoord2iv +_glTexCoord2s +_glTexCoord2sv +_glTexCoord3d +_glTexCoord3dv +_glTexCoord3f +_glTexCoord3fv +_glTexCoord3i +_glTexCoord3iv +_glTexCoord3s +_glTexCoord3sv +_glTexCoord4d +_glTexCoord4dv +_glTexCoord4f +_glTexCoord4fv +_glTexCoord4i +_glTexCoord4iv +_glTexCoord4s +_glTexCoord4sv +_glTexCoordPointer +_glTexEnvf +_glTexEnvfv +_glTexEnvi +_glTexEnviv +_glTexGend +_glTexGendv +_glTexGenf +_glTexGenfv +_glTexGeni +_glTexGeniv +_glTexImage1D +_glTexImage2D +_glTexImage3D +_glTexParameterf +_glTexParameterfv +_glTexParameteri +_glTexParameteriv +_glTexSubImage1D +_glTexSubImage2D +_glTexSubImage3D +_glTranslated +_glTranslatef +_glVertex2d +_glVertex2dv +_glVertex2f +_glVertex2fv +_glVertex2i +_glVertex2iv +_glVertex2s +_glVertex2sv +_glVertex3d +_glVertex3dv +_glVertex3f +_glVertex3fv +_glVertex3i +_glVertex3iv +_glVertex3s +_glVertex3sv +_glVertex4d +_glVertex4dv +_glVertex4f +_glVertex4fv +_glVertex4i +_glVertex4iv +_glVertex4s +_glVertex4sv +_glVertexPointer +_glViewport +_glSampleCoverage +_glSamplePass +_glLoadTransposeMatrixf +_glLoadTransposeMatrixd +_glMultTransposeMatrixf +_glMultTransposeMatrixd +_glCompressedTexImage3D +_glCompressedTexImage2D +_glCompressedTexImage1D +_glCompressedTexSubImage3D +_glCompressedTexSubImage2D +_glCompressedTexSubImage1D +_glGetCompressedTexImage +_glActiveTexture +_glClientActiveTexture +_glMultiTexCoord1d +_glMultiTexCoord1dv +_glMultiTexCoord1f +_glMultiTexCoord1fv +_glMultiTexCoord1i +_glMultiTexCoord1iv +_glMultiTexCoord1s +_glMultiTexCoord1sv +_glMultiTexCoord2d +_glMultiTexCoord2dv +_glMultiTexCoord2f +_glMultiTexCoord2fv +_glMultiTexCoord2i +_glMultiTexCoord2iv +_glMultiTexCoord2s +_glMultiTexCoord2sv +_glMultiTexCoord3d +_glMultiTexCoord3dv +_glMultiTexCoord3f +_glMultiTexCoord3fv +_glMultiTexCoord3i +_glMultiTexCoord3iv +_glMultiTexCoord3s +_glMultiTexCoord3sv +_glMultiTexCoord4d +_glMultiTexCoord4dv +_glMultiTexCoord4f +_glMultiTexCoord4fv +_glMultiTexCoord4i +_glMultiTexCoord4iv +_glMultiTexCoord4s +_glMultiTexCoord4sv +_glFogCoordf +_glFogCoordfv +_glFogCoordd +_glFogCoorddv +_glFogCoordPointer +_glSecondaryColor3b +_glSecondaryColor3bv +_glSecondaryColor3d +_glSecondaryColor3dv +_glSecondaryColor3f +_glSecondaryColor3fv +_glSecondaryColor3i +_glSecondaryColor3iv +_glSecondaryColor3s +_glSecondaryColor3sv +_glSecondaryColor3ub +_glSecondaryColor3ubv +_glSecondaryColor3ui +_glSecondaryColor3uiv +_glSecondaryColor3us +_glSecondaryColor3usv +_glSecondaryColorPointer +_glPointParameterf +_glPointParameterfv +_glPointParameteri +_glPointParameteriv +_glBlendFuncSeparate +_glMultiDrawArrays +_glMultiDrawElements +_glWindowPos2d +_glWindowPos2dv +_glWindowPos2f +_glWindowPos2fv +_glWindowPos2i +_glWindowPos2iv +_glWindowPos2s +_glWindowPos2sv +_glWindowPos3d +_glWindowPos3dv +_glWindowPos3f +_glWindowPos3fv +_glWindowPos3i +_glWindowPos3iv +_glWindowPos3s +_glWindowPos3sv +_glGenQueries +_glDeleteQueries +_glIsQuery +_glBeginQuery +_glEndQuery +_glGetQueryiv +_glGetQueryObjectiv +_glGetQueryObjectuiv +_glBindBuffer +_glDeleteBuffers +_glGenBuffers +_glIsBuffer +_glBufferData +_glBufferSubData +_glGetBufferSubData +_glMapBuffer +_glUnmapBuffer +_glGetBufferParameteriv +_glGetBufferPointerv +_glDrawBuffers +_glVertexAttrib1d +_glVertexAttrib1dv +_glVertexAttrib1f +_glVertexAttrib1fv +_glVertexAttrib1s +_glVertexAttrib1sv +_glVertexAttrib2d +_glVertexAttrib2dv +_glVertexAttrib2f +_glVertexAttrib2fv +_glVertexAttrib2s +_glVertexAttrib2sv +_glVertexAttrib3d +_glVertexAttrib3dv +_glVertexAttrib3f +_glVertexAttrib3fv +_glVertexAttrib3s +_glVertexAttrib3sv +_glVertexAttrib4Nbv +_glVertexAttrib4Niv +_glVertexAttrib4Nsv +_glVertexAttrib4Nub +_glVertexAttrib4Nubv +_glVertexAttrib4Nuiv +_glVertexAttrib4Nusv +_glVertexAttrib4bv +_glVertexAttrib4d +_glVertexAttrib4dv +_glVertexAttrib4f +_glVertexAttrib4fv +_glVertexAttrib4iv +_glVertexAttrib4s +_glVertexAttrib4sv +_glVertexAttrib4ubv +_glVertexAttrib4uiv +_glVertexAttrib4usv +_glVertexAttribPointer +_glEnableVertexAttribArray +_glDisableVertexAttribArray +_glGetVertexAttribdv +_glGetVertexAttribfv +_glGetVertexAttribiv +_glGetVertexAttribPointerv +_glDeleteShader +_glDetachShader +_glCreateShader +_glShaderSource +_glCompileShader +_glCreateProgram +_glAttachShader +_glLinkProgram +_glUseProgram +_glDeleteProgram +_glValidateProgram +_glUniform1f +_glUniform2f +_glUniform3f +_glUniform4f +_glUniform1i +_glUniform2i +_glUniform3i +_glUniform4i +_glUniform1fv +_glUniform2fv +_glUniform3fv +_glUniform4fv +_glUniform1iv +_glUniform2iv +_glUniform3iv +_glUniform4iv +_glUniformMatrix2fv +_glUniformMatrix3fv +_glUniformMatrix4fv +_glIsShader +_glIsProgram +_glGetShaderiv +_glGetProgramiv +_glGetAttachedShaders +_glGetShaderInfoLog +_glGetProgramInfoLog +_glGetUniformLocation +_glGetActiveUniform +_glGetUniformfv +_glGetUniformiv +_glGetShaderSource +_glBindAttribLocation +_glGetActiveAttrib +_glGetAttribLocation +_glStencilFuncSeparate +_glStencilOpSeparate +_glStencilMaskSeparate +_glUniformMatrix2x3fv +_glUniformMatrix3x2fv +_glUniformMatrix2x4fv +_glUniformMatrix4x2fv +_glUniformMatrix3x4fv +_glUniformMatrix4x3fv +_glXChooseVisual +_glXCreateContext +_glXDestroyContext +_glXMakeCurrent +_glXCopyContext +_glXSwapBuffers +_glXCreateGLXPixmap +_glXDestroyGLXPixmap +_glXQueryExtension +_glXQueryVersion +_glXIsDirect +_glXGetConfig +_glXGetCurrentContext +_glXGetCurrentDrawable +_glXWaitGL +_glXWaitX +_glXUseXFont +_glXQueryExtensionsString +_glXQueryServerString +_glXGetClientString +_glXGetCurrentDisplay +_glXChooseFBConfig +_glXGetFBConfigAttrib +_glXGetFBConfigs +_glXGetVisualFromFBConfig +_glXCreateWindow +_glXDestroyWindow +_glXCreatePixmap +_glXDestroyPixmap +_glXCreatePbuffer +_glXDestroyPbuffer +_glXQueryDrawable +_glXCreateNewContext +_glXMakeContextCurrent +_glXGetCurrentReadDrawable +_glXQueryContext +_glXSelectEvent +_glXGetSelectedEvent +_glXGetProcAddress diff --git a/src/glx/apple/apple_glx.c b/src/glx/apple/apple_glx.c new file mode 100644 index 0000000000..d9bc091715 --- /dev/null +++ b/src/glx/apple/apple_glx.c @@ -0,0 +1,214 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include +#include +#include +#include "appledri.h" +#include "apple_glx.h" +#include "apple_glx_context.h" +#include "apple_cgl.h" +#include "apple_xgl_api.h" + +static bool initialized = false; +static int dri_event_base = 0; + +const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + +#ifndef OPENGL_LIB_PATH +#define OPENGL_LIB_PATH "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib" +#endif + +static void *libgl_handle = NULL; + +static bool diagnostic = false; + +void +apple_glx_diagnostic(const char *fmt, ...) +{ + va_list vl; + + if (diagnostic) { + fprintf(stderr, "DIAG: "); + + va_start(vl, fmt); + vfprintf(stderr, fmt, vl); + va_end(vl); + } +} + +int +apple_get_dri_event_base(void) +{ + if (!initialized) { + fprintf(stderr, + "error: dri_event_base called before apple_init_glx!\n"); + abort(); + } + return dri_event_base; +} + +static void +surface_notify_handler(Display * dpy, unsigned int uid, int kind) +{ + + switch (kind) { + case AppleDRISurfaceNotifyDestroyed: + apple_glx_diagnostic("%s: surface destroyed %u\n", __func__, uid); + apple_glx_surface_destroy(uid); + break; + + case AppleDRISurfaceNotifyChanged:{ + int updated; + + updated = apple_glx_context_surface_changed(uid, pthread_self()); + + apple_glx_diagnostic("surface notify updated %d\n", updated); + } + break; + + default: + fprintf(stderr, "unhandled kind of event: %d in %s\n", kind, __func__); + } +} + +xp_client_id +apple_glx_get_client_id(void) +{ + static xp_client_id id; + + if (0 == id) { + if ((XP_Success != xp_init(XP_IN_BACKGROUND)) || + (Success != xp_get_client_id(&id))) { + return 0; + } + } + + return id; +} + +/* Return true if an error occured. */ +bool +apple_init_glx(Display * dpy) +{ + int eventBase, errorBase; + int major, minor, patch; + + if (!XAppleDRIQueryExtension(dpy, &eventBase, &errorBase)) + return true; + + if (!XAppleDRIQueryVersion(dpy, &major, &minor, &patch)) + return true; + + if (initialized) + return false; + + if (getenv("LIBGL_DIAGNOSTIC")) { + printf("initializing libGL in %s\n", __func__); + diagnostic = true; + } + + apple_cgl_init(); + apple_xgl_init_direct(); + libgl_handle = dlopen(OPENGL_LIB_PATH, RTLD_LAZY); + (void) apple_glx_get_client_id(); + + XAppleDRISetSurfaceNotifyHandler(surface_notify_handler); + + /* This should really be per display. */ + dri_event_base = eventBase; + initialized = true; + + return false; +} + +void +apple_glx_swap_buffers(void *ptr) +{ + struct apple_glx_context *ac = ptr; + + /* This may not be needed with CGLFlushDrawable: */ + glFlush(); + apple_cgl.flush_drawable(ac->context_obj); +} + +void * +apple_glx_get_proc_address(const GLubyte * procname) +{ + size_t len; + void *h, *s; + char *pname = (char *) procname; + + assert(NULL != procname); + len = strlen(pname); + + if (len < 3) { + return NULL; + } + + if ((pname != strstr(pname, "glX")) && (pname != strstr(pname, "gl"))) { + fprintf(stderr, + "warning: get proc address request is not for a gl or glX function"); + return NULL; + } + + /* Search using the default symbols first. */ + (void) dlerror(); /*drain dlerror */ + h = dlopen(NULL, RTLD_NOW); + if (NULL == h) { + fprintf(stderr, "warning: get proc address: %s\n", dlerror()); + return NULL; + } + + s = dlsym(h, pname); + + if (NULL == s) { + /* Try the libGL.dylib from the OpenGL.framework. */ + s = dlsym(libgl_handle, pname); + } + + dlclose(h); + + return s; +} + +void +apple_glx_waitx(Display * dpy, void *ptr) +{ + struct apple_private_context *ac = ptr; + + (void) ac; + + glFlush(); + glFinish(); + XSync(dpy, False); +} diff --git a/src/glx/apple/apple_glx.h b/src/glx/apple/apple_glx.h new file mode 100644 index 0000000000..3ee54aa6cf --- /dev/null +++ b/src/glx/apple/apple_glx.h @@ -0,0 +1,49 @@ +/* + Copyright (c) 2008 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#ifndef APPLE_GLX_H +#define APPLE_GLX_H + +#include +#include +#include +#include +#include +#define XP_NO_X_HEADERS +#include + +void apple_glx_diagnostic(const char *fmt, ...); +xp_client_id apple_glx_get_client_id(void); +bool apple_init_glx(Display * dpy); +void apple_glx_swap_buffers(void *ptr); +void *apple_glx_get_proc_address(const GLubyte * procname); +void apple_glx_waitx(Display * dpy, void *ptr); +int apple_get_dri_event_base(void); + +#endif diff --git a/src/glx/apple/apple_glx_context.c b/src/glx/apple/apple_glx_context.c new file mode 100644 index 0000000000..c58d05a59a --- /dev/null +++ b/src/glx/apple/apple_glx_context.c @@ -0,0 +1,616 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +// Get the newer glext.h first +#include +#include + +#include +#include +#include + +#include "glxclient.h" + +#include "apple_glx.h" +#include "apple_glx_context.h" +#include "appledri.h" +#include "apple_visual.h" +#include "apple_cgl.h" +#include "apple_glx_drawable.h" + +static pthread_mutex_t context_lock = PTHREAD_MUTEX_INITIALIZER; + +/* + * This should be locked on creation and destruction of the + * apple_glx_contexts. + * + * It's also locked when the surface_notify_handler is searching + * for a uid associated with a surface. + */ +static struct apple_glx_context *context_list = NULL; + +/* This guards the context_list above. */ +static void +lock_context_list(void) +{ + int err; + + err = pthread_mutex_lock(&context_lock); + + if (err) { + fprintf(stderr, "pthread_mutex_lock failure in %s: %d\n", + __func__, err); + abort(); + } +} + +static void +unlock_context_list(void) +{ + int err; + + err = pthread_mutex_unlock(&context_lock); + + if (err) { + fprintf(stderr, "pthread_mutex_unlock failure in %s: %d\n", + __func__, err); + abort(); + } +} + +static bool +is_context_valid(struct apple_glx_context *ac) +{ + struct apple_glx_context *i; + + lock_context_list(); + + for (i = context_list; i; i = i->next) { + if (ac == i) { + unlock_context_list(); + return true; + } + } + + unlock_context_list(); + + return false; +} + +/* This creates an apple_private_context struct. + * + * It's typically called to save the struct in a GLXContext. + * + * This is also where the CGLContextObj is created, and the CGLPixelFormatObj. + */ +bool +apple_glx_create_context(void **ptr, Display * dpy, int screen, + const void *mode, void *sharedContext, + int *errorptr, bool * x11errorptr) +{ + struct apple_glx_context *ac; + struct apple_glx_context *sharedac = sharedContext; + CGLError error; + + *ptr = NULL; + + ac = malloc(sizeof *ac); + + if (NULL == ac) { + *errorptr = BadAlloc; + *x11errorptr = true; + return true; + } + + if (sharedac && !is_context_valid(sharedac)) { + *errorptr = GLXBadContext; + *x11errorptr = false; + return true; + } + + ac->context_obj = NULL; + ac->pixel_format_obj = NULL; + ac->drawable = NULL; + ac->thread_id = pthread_self(); + ac->screen = screen; + ac->double_buffered = false; + ac->uses_stereo = false; + ac->need_update = false; + ac->is_current = false; + ac->made_current = false; + ac->last_surface_window = None; + + apple_visual_create_pfobj(&ac->pixel_format_obj, mode, + &ac->double_buffered, &ac->uses_stereo, + /*offscreen */ false); + + error = apple_cgl.create_context(ac->pixel_format_obj, + sharedac ? sharedac->context_obj : NULL, + &ac->context_obj); + + + if (error) { + (void) apple_cgl.destroy_pixel_format(ac->pixel_format_obj); + + free(ac); + + if (kCGLBadMatch == error) { + *errorptr = BadMatch; + *x11errorptr = true; + } + else { + *errorptr = GLXBadContext; + *x11errorptr = false; + } + + if (getenv("LIBGL_DIAGNOSTIC")) + fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); + + return true; + } + + /* The context creation succeeded, so we can link in the new context. */ + lock_context_list(); + + if (context_list) + context_list->previous = ac; + + ac->previous = NULL; + ac->next = context_list; + context_list = ac; + + *ptr = ac; + + apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n", + __func__, (void *) ac, (void *) ac->context_obj); + + unlock_context_list(); + + return false; +} + +void +apple_glx_destroy_context(void **ptr, Display * dpy) +{ + struct apple_glx_context *ac = *ptr; + + if (NULL == ac) + return; + + apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n", + __func__, (void *) ac, (void *) ac->context_obj); + + if (apple_cgl.get_current_context() == ac->context_obj) { + apple_glx_diagnostic("%s: context ac->context_obj %p " + "is still current!\n", __func__, + (void *) ac->context_obj); + if (apple_cgl.set_current_context(NULL)) { + abort(); + } + } + + /* Remove ac from the context_list as soon as possible. */ + lock_context_list(); + + if (ac->previous) { + ac->previous->next = ac->next; + } + else { + context_list = ac->next; + } + + if (ac->next) { + ac->next->previous = ac->previous; + } + + unlock_context_list(); + + + if (apple_cgl.clear_drawable(ac->context_obj)) { + fprintf(stderr, "error: while clearing drawable!\n"); + abort(); + } + + /* + * This potentially causes surface_notify_handler to be called in + * apple_glx.c... + * We can NOT have a lock held at this point. It would result in + * an abort due to an attempted deadlock. This is why we earlier + * removed the ac pointer from the double-linked list. + */ + if (ac->drawable) { + ac->drawable->destroy(ac->drawable); + } + + if (apple_cgl.destroy_pixel_format(ac->pixel_format_obj)) { + fprintf(stderr, "error: destroying pixel format in %s\n", __func__); + abort(); + } + + if (apple_cgl.destroy_context(ac->context_obj)) { + fprintf(stderr, "error: destroying context_obj in %s\n", __func__); + abort(); + } + + free(ac); + + *ptr = NULL; + + apple_glx_garbage_collect_drawables(dpy); +} + + +/* Return true if an error occured. */ +bool +apple_glx_make_current_context(Display * dpy, void *oldptr, void *ptr, + GLXDrawable drawable) +{ + struct apple_glx_context *oldac = oldptr; + struct apple_glx_context *ac = ptr; + struct apple_glx_drawable *newagd = NULL; + CGLError cglerr; + bool same_drawable = false; + +#if 0 + apple_glx_diagnostic("%s: oldac %p ac %p drawable 0x%lx\n", + __func__, (void *) oldac, (void *) ac, drawable); + + apple_glx_diagnostic("%s: oldac->context_obj %p ac->context_obj %p\n", + __func__, + (void *) (oldac ? oldac->context_obj : NULL), + (void *) (ac ? ac->context_obj : NULL)); +#endif + + /* This a common path for GLUT and other apps, so special case it. */ + if (ac && ac->drawable && ac->drawable->drawable == drawable) { + same_drawable = true; + + if (ac->is_current) + return false; + } + + /* Reset the is_current state of the old context, if non-NULL. */ + if (oldac && (ac != oldac)) + oldac->is_current = false; + + if (NULL == ac) { + /*Clear the current context for this thread. */ + apple_cgl.set_current_context(NULL); + + if (oldac) { + oldac->is_current = false; + + if (oldac->drawable) { + oldac->drawable->destroy(oldac->drawable); + oldac->drawable = NULL; + } + + /* Invalidate this to prevent surface recreation. */ + oldac->last_surface_window = None; + } + + return false; + } + + if (None == drawable) { + bool error = false; + + /* Clear the current drawable for this context_obj. */ + + if (apple_cgl.set_current_context(ac->context_obj)) + error = true; + + if (apple_cgl.clear_drawable(ac->context_obj)) + error = true; + + if (ac->drawable) { + ac->drawable->destroy(ac->drawable); + ac->drawable = NULL; + } + + /* Invalidate this to prevent surface recreation. */ + ac->last_surface_window = None; + + apple_glx_diagnostic("%s: drawable is None, error is: %d\n", + __func__, error); + + return error; + } + + /* This is an optimisation to avoid searching for the current drawable. */ + if (ac->drawable && ac->drawable->drawable == drawable) { + newagd = ac->drawable; + } + else { + /* Find the drawable if possible, and retain a reference to it. */ + newagd = + apple_glx_drawable_find(drawable, APPLE_GLX_DRAWABLE_REFERENCE); + } + + /* + * Try to destroy the old drawable, so long as the new one + * isn't the old. + */ + if (ac->drawable && !same_drawable) { + ac->drawable->destroy(ac->drawable); + ac->drawable = NULL; + } + + if (NULL == newagd) { + if (apple_glx_surface_create(dpy, ac->screen, drawable, &newagd)) + return true; + + /* The drawable is referenced once by apple_glx_surface_create. */ + + /* + * FIXME: We actually need 2 references to prevent premature surface + * destruction. The problem is that the surface gets destroyed in + * the case of the context being reused for another window, and + * we then lose the surface contents. Wait for destruction of a + * window to destroy a surface. + * + * Note: this may leave around surfaces we don't want around, if + * say we are using X for raster drawing after OpenGL rendering, + * but it will be compatible with the old libGL's behavior. + * + * Someday the X11 and OpenGL rendering must be unified at some + * layer. I suspect we can do that via shared memory and + * multiple threads in the X server (1 for each context created + * by a client). This would also allow users to render from + * multiple clients to the same OpenGL surface. In fact it could + * all be OpenGL. + * + */ + newagd->reference(newagd); + + /* Save the new drawable with the context structure. */ + ac->drawable = newagd; + } + else { + /* We are reusing an existing drawable structure. */ + + if (same_drawable) { + assert(ac->drawable == newagd); + /* The drawable_find above retained a reference for us. */ + } + else { + ac->drawable = newagd; + } + } + + /* + * Avoid this costly path if this is the same drawable and the + * context is already current. + */ + + if (same_drawable && ac->is_current) { + apple_glx_diagnostic("%s: same_drawable and ac->is_current\n"); + return false; + } + + cglerr = apple_cgl.set_current_context(ac->context_obj); + + if (kCGLNoError != cglerr) { + fprintf(stderr, "set current error: %s\n", + apple_cgl.error_string(cglerr)); + return true; + } + + ac->is_current = true; + + assert(NULL != ac->context_obj); + assert(NULL != ac->drawable); + + ac->thread_id = pthread_self(); + + /* This will be set if the pending_destroy code indicates it should be: */ + ac->last_surface_window = None; + + switch (ac->drawable->type) { + case APPLE_GLX_DRAWABLE_PBUFFER: + case APPLE_GLX_DRAWABLE_SURFACE: + case APPLE_GLX_DRAWABLE_PIXMAP: + if (ac->drawable->callbacks.make_current) { + if (ac->drawable->callbacks.make_current(ac, ac->drawable)) + return true; + } + break; + + default: + fprintf(stderr, "internal error: invalid drawable type: %d\n", + ac->drawable->type); + abort(); + } + + return false; +} + +bool +apple_glx_is_current_drawable(Display * dpy, void *ptr, GLXDrawable drawable) +{ + struct apple_glx_context *ac = ptr; + + if (ac->drawable && ac->drawable->drawable == drawable) { + return true; + } + else if (NULL == ac->drawable && None != ac->last_surface_window) { + apple_glx_context_update(dpy, ac); + + return (ac->drawable && ac->drawable->drawable == drawable); + } + + return false; +} + +bool +apple_glx_copy_context(void *currentptr, void *srcptr, void *destptr, + unsigned long mask, int *errorptr, bool * x11errorptr) +{ + struct apple_glx_context *src, *dest; + CGLError err; + + src = srcptr; + dest = destptr; + + if (src->screen != dest->screen) { + *errorptr = BadMatch; + *x11errorptr = true; + return true; + } + + if (dest == currentptr || dest->is_current) { + *errorptr = BadAccess; + *x11errorptr = true; + return true; + } + + /* + * If srcptr is the current context then we should do an implicit glFlush. + */ + if (currentptr == srcptr) + glFlush(); + + err = apple_cgl.copy_context(src->context_obj, dest->context_obj, + (GLbitfield) mask); + + if (kCGLNoError != err) { + *errorptr = GLXBadContext; + *x11errorptr = false; + return true; + } + + return false; +} + +/* + * The value returned is the total number of contexts set to update. + * It's meant for debugging/introspection. + */ +int +apple_glx_context_surface_changed(unsigned int uid, pthread_t caller) +{ + struct apple_glx_context *ac; + int updated = 0; + + lock_context_list(); + + for (ac = context_list; ac; ac = ac->next) { + if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type + && ac->drawable->types.surface.uid == uid) { + + if (caller == ac->thread_id) { + apple_glx_diagnostic("caller is the same thread for uid %u\n", + uid); + + xp_update_gl_context(ac->context_obj); + } + else { + ac->need_update = true; + ++updated; + } + } + } + + unlock_context_list(); + + return updated; +} + +void +apple_glx_context_update(Display * dpy, void *ptr) +{ + struct apple_glx_context *ac = ptr; + + if (NULL == ac->drawable && None != ac->last_surface_window) { + bool failed; + + /* Attempt to recreate the surface for a destroyed drawable. */ + failed = + apple_glx_make_current_context(dpy, ac, ac, ac->last_surface_window); + + apple_glx_diagnostic("%s: surface recreation failed? %s\n", __func__, + failed ? "YES" : "NO"); + } + + if (ac->need_update) { + xp_update_gl_context(ac->context_obj); + ac->need_update = false; + + apple_glx_diagnostic("%s: updating context %p\n", __func__, ptr); + } + + if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type + && ac->drawable->types.surface.pending_destroy) { + apple_glx_diagnostic("%s: clearing drawable %p\n", __func__, ptr); + apple_cgl.clear_drawable(ac->context_obj); + + if (ac->drawable) { + struct apple_glx_drawable *d; + + apple_glx_diagnostic("%s: attempting to destroy drawable %p\n", + __func__, ptr); + apple_glx_diagnostic("%s: ac->drawable->drawable is 0x%lx\n", + __func__, ac->drawable->drawable); + + d = ac->drawable; + + ac->last_surface_window = d->drawable; + + ac->drawable = NULL; + + /* + * This will destroy the surface drawable if there are + * no references to it. + * It also subtracts 1 from the reference_count. + * If there are references to it, then it's probably made + * current in another context. + */ + d->destroy(d); + } + } +} + +bool +apple_glx_context_uses_stereo(void *ptr) +{ + struct apple_glx_context *ac = ptr; + + return ac->uses_stereo; +} diff --git a/src/glx/apple/apple_glx_context.h b/src/glx/apple/apple_glx_context.h new file mode 100644 index 0000000000..7e2394f2bb --- /dev/null +++ b/src/glx/apple/apple_glx_context.h @@ -0,0 +1,85 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#ifndef APPLE_GLX_CONTEXT_H +#define APPLE_GLX_CONTEXT_H + +#include +#include +#include +#include +#include +#define XP_NO_X_HEADERS +#include +#undef XP_NO_X_HEADERS + +#include "apple_glx_drawable.h" + +struct apple_glx_context +{ + CGLContextObj context_obj; + CGLPixelFormatObj pixel_format_obj; + struct apple_glx_drawable *drawable; + pthread_t thread_id; + int screen; + bool double_buffered; + bool uses_stereo; + bool need_update; + bool is_current; /* True if the context is current in some thread. */ + bool made_current; /* True if the context has ever been made current. */ + + /* + * last_surface is set by the pending_destroy code handler for a drawable. + * Due to a CG difference, we have to recreate a surface if the window + * is unmapped and mapped again. + */ + Window last_surface_window; + struct apple_glx_context *previous, *next; +}; + +bool apple_glx_create_context(void **ptr, Display * dpy, int screen, + const void *mode, void *sharedContext, + int *errorptr, bool * x11errorptr); +void apple_glx_destroy_context(void **ptr, Display * dpy); + +bool apple_glx_make_current_context(Display * dpy, void *oldptr, void *ptr, + GLXDrawable drawable); +bool apple_glx_is_current_drawable(Display * dpy, void *ptr, + GLXDrawable drawable); + +bool apple_glx_copy_context(void *currentptr, void *srcptr, void *destptr, + unsigned long mask, int *errorptr, + bool * x11errorptr); + +int apple_glx_context_surface_changed(unsigned int uid, pthread_t caller); + +void apple_glx_context_update(Display * dpy, void *ptr); + +bool apple_glx_context_uses_stereo(void *ptr); + +#endif /*APPLE_GLX_CONTEXT_H */ diff --git a/src/glx/apple/apple_glx_drawable.c b/src/glx/apple/apple_glx_drawable.c new file mode 100644 index 0000000000..5530224335 --- /dev/null +++ b/src/glx/apple/apple_glx_drawable.c @@ -0,0 +1,542 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include +#include +#include "apple_glx.h" +#include "apple_glx_context.h" +#include "apple_glx_drawable.h" +#include "appledri.h" + +static pthread_mutex_t drawables_lock = PTHREAD_MUTEX_INITIALIZER; +static struct apple_glx_drawable *drawables_list = NULL; + +static void +lock_drawables_list(void) +{ + int err; + + err = pthread_mutex_lock(&drawables_lock); + + if (err) { + fprintf(stderr, "pthread_mutex_lock failure in %s: %d\n", + __func__, err); + abort(); + } +} + +static void +unlock_drawables_list(void) +{ + int err; + + err = pthread_mutex_unlock(&drawables_lock); + + if (err) { + fprintf(stderr, "pthread_mutex_unlock failure in %s: %d\n", + __func__, err); + abort(); + } +} + +struct apple_glx_drawable * +apple_glx_find_drawable(Display * dpy, GLXDrawable drawable) +{ + struct apple_glx_drawable *i, *agd = NULL; + + lock_drawables_list(); + + for (i = drawables_list; i; i = i->next) { + if (i->drawable == drawable) { + agd = i; + break; + } + } + + unlock_drawables_list(); + + return agd; +} + +static void +drawable_lock(struct apple_glx_drawable *agd) +{ + int err; + + err = pthread_mutex_lock(&agd->mutex); + + if (err) { + fprintf(stderr, "pthread_mutex_lock error: %d\n", err); + abort(); + } +} + +static void +drawable_unlock(struct apple_glx_drawable *d) +{ + int err; + + err = pthread_mutex_unlock(&d->mutex); + + if (err) { + fprintf(stderr, "pthread_mutex_unlock error: %d\n", err); + abort(); + } +} + + +static void +reference_drawable(struct apple_glx_drawable *d) +{ + d->lock(d); + d->reference_count++; + d->unlock(d); +} + +static void +release_drawable(struct apple_glx_drawable *d) +{ + d->lock(d); + d->reference_count--; + d->unlock(d); +} + +/* The drawables list must be locked prior to calling this. */ +/* Return true if the drawable was destroyed. */ +static bool +destroy_drawable(struct apple_glx_drawable *d) +{ + + d->lock(d); + + if (d->reference_count > 0) { + d->unlock(d); + return false; + } + + d->unlock(d); + + if (d->previous) { + d->previous->next = d->next; + } + else { + /* + * The item must be at the head of the list, if it + * has no previous pointer. + */ + drawables_list = d->next; + } + + if (d->next) + d->next->previous = d->previous; + + unlock_drawables_list(); + + if (d->callbacks.destroy) { + /* + * Warning: this causes other routines to be called (potentially) + * from surface_notify_handler. It's probably best to not have + * any locks at this point locked. + */ + d->callbacks.destroy(d->display, d); + } + + apple_glx_diagnostic("%s: freeing %p\n", __func__, (void *) d); + + free(d); + + /* So that the locks are balanced and the caller correctly unlocks. */ + lock_drawables_list(); + + return true; +} + +/* + * This is typically called when a context is destroyed or the current + * drawable is made None. + */ +static bool +destroy_drawable_callback(struct apple_glx_drawable *d) +{ + bool result; + + d->lock(d); + + apple_glx_diagnostic("%s: %p ->reference_count before -- %d\n", __func__, + (void *) d, d->reference_count); + + d->reference_count--; + + if (d->reference_count > 0) { + d->unlock(d); + return false; + } + + d->unlock(d); + + lock_drawables_list(); + + result = destroy_drawable(d); + + unlock_drawables_list(); + + return result; +} + +static bool +is_pbuffer(struct apple_glx_drawable *d) +{ + return APPLE_GLX_DRAWABLE_PBUFFER == d->type; +} + +static bool +is_pixmap(struct apple_glx_drawable *d) +{ + return APPLE_GLX_DRAWABLE_PIXMAP == d->type; +} + +static void +common_init(Display * dpy, GLXDrawable drawable, struct apple_glx_drawable *d) +{ + int err; + pthread_mutexattr_t attr; + + d->display = dpy; + d->reference_count = 0; + d->drawable = drawable; + d->type = -1; + + err = pthread_mutexattr_init(&attr); + + if (err) { + fprintf(stderr, "pthread_mutexattr_init error: %d\n", err); + abort(); + } + + /* + * There are some patterns that require a recursive mutex, + * when working with locks that protect the apple_glx_drawable, + * and reference functions like ->reference, and ->release. + */ + err = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + + if (err) { + fprintf(stderr, "error: setting pthread mutex type: %d\n", err); + abort(); + } + + err = pthread_mutex_init(&d->mutex, &attr); + + if (err) { + fprintf(stderr, "pthread_mutex_init error: %d\n", err); + abort(); + } + + (void) pthread_mutexattr_destroy(&attr); + + d->lock = drawable_lock; + d->unlock = drawable_unlock; + + d->reference = reference_drawable; + d->release = release_drawable; + + d->destroy = destroy_drawable_callback; + + d->is_pbuffer = is_pbuffer; + d->is_pixmap = is_pixmap; + + d->width = -1; + d->height = -1; + d->row_bytes = 0; + d->path[0] = '\0'; + d->fd = -1; + d->buffer = NULL; + d->buffer_length = 0; + + d->previous = NULL; + d->next = NULL; +} + +static void +link_tail(struct apple_glx_drawable *agd) +{ + lock_drawables_list(); + + /* Link the new drawable into the global list. */ + agd->next = drawables_list; + + if (drawables_list) + drawables_list->previous = agd; + + drawables_list = agd; + + unlock_drawables_list(); +} + +/*WARNING: this returns a locked and referenced object. */ +bool +apple_glx_drawable_create(Display * dpy, + int screen, + GLXDrawable drawable, + struct apple_glx_drawable **agdResult, + struct apple_glx_drawable_callbacks *callbacks) +{ + struct apple_glx_drawable *d; + + d = calloc(1, sizeof *d); + + if (NULL == d) { + perror("malloc"); + return true; + } + + common_init(dpy, drawable, d); + d->type = callbacks->type; + d->callbacks = *callbacks; + + d->reference(d); + d->lock(d); + + link_tail(d); + + apple_glx_diagnostic("%s: new drawable %p\n", __func__, (void *) d); + + *agdResult = d; + + return false; +} + +static int error_count = 0; + +static int +error_handler(Display * dpy, XErrorEvent * err) +{ + if (err->error_code == BadWindow) { + ++error_count; + } + + return 0; +} + +void +apple_glx_garbage_collect_drawables(Display * dpy) +{ + struct apple_glx_drawable *d, *dnext; + Window root; + int x, y; + unsigned int width, height, bd, depth; + int (*old_handler) (Display *, XErrorEvent *); + + + if (NULL == drawables_list) + return; + + old_handler = XSetErrorHandler(error_handler); + + XSync(dpy, False); + + lock_drawables_list(); + + for (d = drawables_list; d;) { + dnext = d->next; + + d->lock(d); + + if (d->reference_count > 0) { + /* + * Skip this, because some context still retains a reference + * to the drawable. + */ + d->unlock(d); + d = dnext; + continue; + } + + d->unlock(d); + + error_count = 0; + + /* + * Mesa uses XGetWindowAttributes, but some of these things are + * most definitely not Windows, and that's against the rules. + * XGetGeometry on the other hand is legal with a Pixmap and Window. + */ + XGetGeometry(dpy, d->drawable, &root, &x, &y, &width, &height, &bd, + &depth); + + if (error_count > 0) { + /* + * Note: this may not actually destroy the drawable. + * If another context retains a reference to the drawable + * after the reference count test above. + */ + (void) destroy_drawable(d); + error_count = 0; + } + + d = dnext; + } + + XSetErrorHandler(old_handler); + + unlock_drawables_list(); +} + +unsigned int +apple_glx_get_drawable_count(void) +{ + unsigned int result = 0; + struct apple_glx_drawable *d; + + lock_drawables_list(); + + for (d = drawables_list; d; d = d->next) + ++result; + + unlock_drawables_list(); + + return result; +} + +struct apple_glx_drawable * +apple_glx_drawable_find_by_type(GLXDrawable drawable, int type, int flags) +{ + struct apple_glx_drawable *d; + + lock_drawables_list(); + + for (d = drawables_list; d; d = d->next) { + if (d->type == type && d->drawable == drawable) { + if (flags & APPLE_GLX_DRAWABLE_REFERENCE) + d->reference(d); + + if (flags & APPLE_GLX_DRAWABLE_LOCK) + d->lock(d); + + unlock_drawables_list(); + + return d; + } + } + + unlock_drawables_list(); + + return NULL; +} + +struct apple_glx_drawable * +apple_glx_drawable_find(GLXDrawable drawable, int flags) +{ + struct apple_glx_drawable *d; + + lock_drawables_list(); + + for (d = drawables_list; d; d = d->next) { + if (d->drawable == drawable) { + if (flags & APPLE_GLX_DRAWABLE_REFERENCE) + d->reference(d); + + if (flags & APPLE_GLX_DRAWABLE_LOCK) + d->lock(d); + + unlock_drawables_list(); + + return d; + } + } + + unlock_drawables_list(); + + return NULL; +} + +/* Return true if the type is valid for the drawable. */ +bool +apple_glx_drawable_destroy_by_type(Display * dpy, + GLXDrawable drawable, int type) +{ + struct apple_glx_drawable *d; + + lock_drawables_list(); + + for (d = drawables_list; d; d = d->next) { + if (drawable == d->drawable && type == d->type) { + /* + * The user has requested that we destroy this resource. + * However, there may be references in the contexts to it, so + * release it, and call destroy_drawable which doesn't destroy + * if the reference_count is > 0. + */ + d->release(d); + + apple_glx_diagnostic("%s d->reference_count %d\n", + __func__, d->reference_count); + + destroy_drawable(d); + unlock_drawables_list(); + return true; + } + } + + unlock_drawables_list(); + + return false; +} + +struct apple_glx_drawable * +apple_glx_drawable_find_by_uid(unsigned int uid, int flags) +{ + struct apple_glx_drawable *d; + + lock_drawables_list(); + + for (d = drawables_list; d; d = d->next) { + /* Only surfaces have a uid. */ + if (APPLE_GLX_DRAWABLE_SURFACE == d->type) { + if (d->types.surface.uid == uid) { + if (flags & APPLE_GLX_DRAWABLE_REFERENCE) + d->reference(d); + + if (flags & APPLE_GLX_DRAWABLE_LOCK) + d->lock(d); + + unlock_drawables_list(); + + return d; + } + } + } + + unlock_drawables_list(); + + return NULL; +} diff --git a/src/glx/apple/apple_glx_drawable.h b/src/glx/apple/apple_glx_drawable.h new file mode 100644 index 0000000000..a15858963d --- /dev/null +++ b/src/glx/apple/apple_glx_drawable.h @@ -0,0 +1,223 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#ifndef APPLE_GLX_DRAWABLE_H +#define APPLE_GLX_DRAWABLE_H + +#include +#include +#include +#include +#define XP_NO_X_HEADERS +#include +#undef XP_NO_X_HEADERS +#include "apple_glx_context.h" + +enum +{ + APPLE_GLX_DRAWABLE_SURFACE = 1, + APPLE_GLX_DRAWABLE_PBUFFER, + APPLE_GLX_DRAWABLE_PIXMAP +}; + +/* The flag for the find routine. */ +enum +{ + APPLE_GLX_DRAWABLE_LOCK = 2, + APPLE_GLX_DRAWABLE_REFERENCE = 4 +}; + +struct apple_glx_context; +struct apple_glx_drawable; + +struct apple_glx_surface +{ + xp_surface_id surface_id; + unsigned int uid; + bool pending_destroy; +}; + +struct apple_glx_pbuffer +{ + GLXPbuffer xid; /* our pixmap */ + int width, height; + GLint fbconfigID; + CGLPBufferObj buffer_obj; + unsigned long event_mask; +}; + +struct apple_glx_pixmap +{ + GLXPixmap xpixmap; + void *buffer; + int width, height, pitch, /*bytes per pixel */ bpp; + size_t size; + char path[PATH_MAX]; + int fd; + CGLPixelFormatObj pixel_format_obj; + CGLContextObj context_obj; + GLint fbconfigID; +}; + +struct apple_glx_drawable_callbacks +{ + int type; + bool(*make_current) (struct apple_glx_context * ac, + struct apple_glx_drawable * d); + void (*destroy) (Display * dpy, struct apple_glx_drawable * d); +}; + +struct apple_glx_drawable +{ + Display *display; + int reference_count; + GLXDrawable drawable; + int type; /* APPLE_GLX_DRAWABLE_* */ + + union + { + struct apple_glx_pixmap pixmap; + struct apple_glx_pbuffer pbuffer; + struct apple_glx_surface surface; + } types; + + struct apple_glx_drawable_callbacks callbacks; + + /* + * This mutex protects the reference count and any other drawable data. + * It's used to prevent an early release of a drawable. + */ + pthread_mutex_t mutex; + void (*lock) (struct apple_glx_drawable * agd); + void (*unlock) (struct apple_glx_drawable * agd); + + void (*reference) (struct apple_glx_drawable * agd); + void (*release) (struct apple_glx_drawable * agd); + + bool(*destroy) (struct apple_glx_drawable * agd); + + bool(*is_pbuffer) (struct apple_glx_drawable * agd); + + bool(*is_pixmap) (struct apple_glx_drawable * agd); + +/*BEGIN These are used for the mixed mode drawing... */ + int width, height; + int row_bytes; + char path[PATH_MAX]; + int fd; /* The file descriptor for this drawable's shared memory. */ + void *buffer; /* The memory for the drawable. Typically shared memory. */ + size_t buffer_length; + /*END*/ struct apple_glx_drawable *previous, *next; +}; + +struct apple_glx_context; + +/* May return NULL if not found */ +struct apple_glx_drawable *apple_glx_find_drawable(Display * dpy, + GLXDrawable drawable); + +/* Returns true on error and locks the agd result with a reference. */ +bool apple_glx_drawable_create(Display * dpy, + int screen, + GLXDrawable drawable, + struct apple_glx_drawable **agd, + struct apple_glx_drawable_callbacks + *callbacks); + +/* Returns true on error */ +bool apple_glx_create_drawable(Display * dpy, + struct apple_glx_context *ac, + GLXDrawable drawable, + struct apple_glx_drawable **agd); + +void apple_glx_garbage_collect_drawables(Display * dpy); + +/* + * This returns the total number of drawables. + * It's mostly intended for debugging and introspection. + */ +unsigned int apple_glx_get_drawable_count(void); + +struct apple_glx_drawable *apple_glx_drawable_find_by_type(GLXDrawable + drawable, int type, + int flags); + +struct apple_glx_drawable *apple_glx_drawable_find(GLXDrawable drawable, + int flags); + + +bool apple_glx_drawable_destroy_by_type(Display * dpy, GLXDrawable drawable, + int type); + +struct apple_glx_drawable *apple_glx_drawable_find_by_uid(unsigned int uid, + int flags); + +/* Surfaces */ + +bool apple_glx_surface_create(Display * dpy, int screen, GLXDrawable drawable, + struct apple_glx_drawable **resultptr); + +void apple_glx_surface_destroy(unsigned int uid); + +/* Pbuffers */ + +/* Returns true if an error occurred. */ +bool apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config, + int width, int height, int *errorcode, + GLXPbuffer * pbuf); + +/* Returns true if the pbuffer was invalid. */ +bool apple_glx_pbuffer_destroy(Display * dpy, GLXPbuffer pbuf); + +/* Returns true if the pbuffer was valid and the attribute. */ +bool apple_glx_pbuffer_query(GLXDrawable d, int attribute, + unsigned int *value); + +/* Returns true if the GLXDrawable is a valid GLXPbuffer, and the mask is set. */ +bool apple_glx_pbuffer_set_event_mask(GLXDrawable d, unsigned long mask); + +/* Returns true if the GLXDrawable is a valid GLXPbuffer, and the *mask is set. */ +bool apple_glx_pbuffer_get_event_mask(GLXDrawable d, unsigned long *mask); + + +/* Pixmaps */ + +/* mode is a __GLcontextModes * */ +/* Returns true if an error occurred. */ +bool apple_glx_pixmap_create(Display * dpy, int screen, Pixmap pixmap, + const void *mode); + +/* Returns true if an error occurred. */ +bool apple_glx_pixmap_destroy(Display * dpy, Pixmap pixmap); + +bool apple_glx_pixmap_query(GLXPixmap pixmap, int attribute, + unsigned int *value); + + + +#endif diff --git a/src/glx/apple/apple_glx_pbuffer.c b/src/glx/apple/apple_glx_pbuffer.c new file mode 100644 index 0000000000..3dfdc54763 --- /dev/null +++ b/src/glx/apple/apple_glx_pbuffer.c @@ -0,0 +1,330 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include "apple_glx.h" +#include "glcontextmodes.h" +#include "apple_glx_context.h" +#include "apple_glx_drawable.h" +#include "apple_cgl.h" + +static bool pbuffer_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d); + +static void pbuffer_destroy(Display * dpy, struct apple_glx_drawable *d); + +static struct apple_glx_drawable_callbacks callbacks = { + .type = APPLE_GLX_DRAWABLE_PBUFFER, + .make_current = pbuffer_make_current, + .destroy = pbuffer_destroy +}; + + +/* Return true if an error occurred. */ +bool +pbuffer_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d) +{ + struct apple_glx_pbuffer *pbuf = &d->types.pbuffer; + CGLError cglerr; + + assert(APPLE_GLX_DRAWABLE_PBUFFER == d->type); + + cglerr = apple_cgl.set_pbuffer(ac->context_obj, pbuf->buffer_obj, 0, 0, 0); + + if (kCGLNoError != cglerr) { + fprintf(stderr, "set_pbuffer: %s\n", apple_cgl.error_string(cglerr)); + return true; + } + + if (!ac->made_current) { + glViewport(0, 0, pbuf->width, pbuf->height); + glScissor(0, 0, pbuf->width, pbuf->height); + ac->made_current = true; + } + + apple_glx_diagnostic("made pbuffer drawable 0x%lx current\n", d->drawable); + + return false; +} + +void +pbuffer_destroy(Display * dpy, struct apple_glx_drawable *d) +{ + struct apple_glx_pbuffer *pbuf = &d->types.pbuffer; + + assert(APPLE_GLX_DRAWABLE_PBUFFER == d->type); + + apple_glx_diagnostic("destroying pbuffer for drawable 0x%lx\n", + d->drawable); + + apple_cgl.destroy_pbuffer(pbuf->buffer_obj); + XFreePixmap(dpy, pbuf->xid); +} + +/* Return true if an error occurred. */ +bool +apple_glx_pbuffer_destroy(Display * dpy, GLXPbuffer pbuf) +{ + return !apple_glx_drawable_destroy_by_type(dpy, pbuf, + APPLE_GLX_DRAWABLE_PBUFFER); +} + +/* Return true if an error occurred. */ +bool +apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config, + int width, int height, int *errorcode, + GLXPbuffer * result) +{ + struct apple_glx_drawable *d; + struct apple_glx_pbuffer *pbuf = NULL; + CGLError err; + Window root; + int screen; + Pixmap xid; + __GLcontextModes *modes = (__GLcontextModes *) config; + + root = DefaultRootWindow(dpy); + screen = DefaultScreen(dpy); + + /* + * This pixmap is only used for a persistent XID. + * The XC-MISC extension cleans up XIDs and reuses them transparently, + * so we need to retain a server-side reference. + */ + xid = XCreatePixmap(dpy, root, (unsigned int) 1, + (unsigned int) 1, DefaultDepth(dpy, screen)); + + if (None == xid) { + *errorcode = BadAlloc; + return true; + } + + if (apple_glx_drawable_create(dpy, screen, xid, &d, &callbacks)) { + *errorcode = BadAlloc; + return true; + } + + /* The lock is held in d from create onward. */ + pbuf = &d->types.pbuffer; + + pbuf->xid = xid; + pbuf->width = width; + pbuf->height = height; + + err = apple_cgl.create_pbuffer(width, height, GL_TEXTURE_RECTANGLE_EXT, + (modes->alphaBits > 0) ? GL_RGBA : GL_RGB, + 0, &pbuf->buffer_obj); + + if (kCGLNoError != err) { + d->unlock(d); + d->destroy(d); + *errorcode = BadMatch; + return true; + } + + pbuf->fbconfigID = modes->fbconfigID; + + pbuf->event_mask = 0; + + *result = pbuf->xid; + + d->unlock(d); + + return false; +} + + + +/* Return true if an error occurred. */ +static bool +get_max_size(int *widthresult, int *heightresult) +{ + CGLContextObj oldcontext; + GLint ar[2]; + + oldcontext = apple_cgl.get_current_context(); + + if (!oldcontext) { + /* + * There is no current context, so we need to make one in order + * to call glGetInteger. + */ + CGLPixelFormatObj pfobj; + CGLError err; + CGLPixelFormatAttribute attr[10]; + int c = 0; + GLint vsref = 0; + CGLContextObj newcontext; + + attr[c++] = kCGLPFAColorSize; + attr[c++] = 32; + attr[c++] = 0; + + err = apple_cgl.choose_pixel_format(attr, &pfobj, &vsref); + if (kCGLNoError != err) { + if (getenv("LIBGL_DIAGNOSTIC")) { + printf("choose_pixel_format error in %s: %s\n", __func__, + apple_cgl.error_string(err)); + } + + return true; + } + + + err = apple_cgl.create_context(pfobj, NULL, &newcontext); + + if (kCGLNoError != err) { + if (getenv("LIBGL_DIAGNOSTIC")) { + printf("create_context error in %s: %s\n", __func__, + apple_cgl.error_string(err)); + } + + apple_cgl.destroy_pixel_format(pfobj); + + return true; + } + + err = apple_cgl.set_current_context(newcontext); + + if (kCGLNoError != err) { + printf("set_current_context error in %s: %s\n", __func__, + apple_cgl.error_string(err)); + return true; + } + + + glGetIntegerv(GL_MAX_VIEWPORT_DIMS, ar); + + apple_cgl.set_current_context(oldcontext); + apple_cgl.destroy_context(newcontext); + apple_cgl.destroy_pixel_format(pfobj); + } + else { + /* We have a valid context. */ + + glGetIntegerv(GL_MAX_VIEWPORT_DIMS, ar); + } + + *widthresult = ar[0]; + *heightresult = ar[1]; + + return false; +} + +bool +apple_glx_pbuffer_query(GLXPbuffer p, int attr, unsigned int *value) +{ + bool result = false; + struct apple_glx_drawable *d; + struct apple_glx_pbuffer *pbuf; + + d = apple_glx_drawable_find_by_type(p, APPLE_GLX_DRAWABLE_PBUFFER, + APPLE_GLX_DRAWABLE_LOCK); + + if (d) { + pbuf = &d->types.pbuffer; + + switch (attr) { + case GLX_WIDTH: + *value = pbuf->width; + result = true; + break; + + case GLX_HEIGHT: + *value = pbuf->height; + result = true; + break; + + case GLX_PRESERVED_CONTENTS: + *value = true; + result = true; + break; + + case GLX_LARGEST_PBUFFER:{ + int width, height; + if (get_max_size(&width, &height)) { + fprintf(stderr, "internal error: " + "unable to find the largest pbuffer!\n"); + } + else { + *value = width; + result = true; + } + } + break; + + case GLX_FBCONFIG_ID: + *value = pbuf->fbconfigID; + result = true; + break; + } + + d->unlock(d); + } + + return result; +} + +bool +apple_glx_pbuffer_set_event_mask(GLXDrawable drawable, unsigned long mask) +{ + struct apple_glx_drawable *d; + bool result = false; + + d = apple_glx_drawable_find_by_type(drawable, APPLE_GLX_DRAWABLE_PBUFFER, + APPLE_GLX_DRAWABLE_LOCK); + + if (d) { + d->types.pbuffer.event_mask = mask; + result = true; + d->unlock(d); + } + + return result; +} + +bool +apple_glx_pbuffer_get_event_mask(GLXDrawable drawable, unsigned long *mask) +{ + struct apple_glx_drawable *d; + bool result = false; + + d = apple_glx_drawable_find_by_type(drawable, APPLE_GLX_DRAWABLE_PBUFFER, + APPLE_GLX_DRAWABLE_LOCK); + if (d) { + *mask = d->types.pbuffer.event_mask; + result = true; + d->unlock(d); + } + + return result; +} diff --git a/src/glx/apple/apple_glx_pixmap.c b/src/glx/apple/apple_glx_pixmap.c new file mode 100644 index 0000000000..af1791afb7 --- /dev/null +++ b/src/glx/apple/apple_glx_pixmap.c @@ -0,0 +1,230 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "apple_glx.h" +#include "apple_cgl.h" +#include "apple_visual.h" +#include "apple_glx_drawable.h" +#include "appledri.h" +#include "glcontextmodes.h" + +static bool pixmap_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d); + +static void pixmap_destroy(Display * dpy, struct apple_glx_drawable *d); + +static struct apple_glx_drawable_callbacks callbacks = { + .type = APPLE_GLX_DRAWABLE_PIXMAP, + .make_current = pixmap_make_current, + .destroy = pixmap_destroy +}; + +static bool +pixmap_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d) +{ + CGLError cglerr; + struct apple_glx_pixmap *p = &d->types.pixmap; + + assert(APPLE_GLX_DRAWABLE_PIXMAP == d->type); + + cglerr = apple_cgl.set_current_context(p->context_obj); + + if (kCGLNoError != cglerr) { + fprintf(stderr, "set current context: %s\n", + apple_cgl.error_string(cglerr)); + return true; + } + + cglerr = apple_cgl.set_off_screen(p->context_obj, p->width, p->height, + p->pitch, p->buffer); + + if (kCGLNoError != cglerr) { + fprintf(stderr, "set off screen: %s\n", apple_cgl.error_string(cglerr)); + + return true; + } + + if (!ac->made_current) { + glViewport(0, 0, p->width, p->height); + glScissor(0, 0, p->width, p->height); + ac->made_current = true; + } + + return false; +} + +static void +pixmap_destroy(Display * dpy, struct apple_glx_drawable *d) +{ + struct apple_glx_pixmap *p = &d->types.pixmap; + + if (p->pixel_format_obj) + (void) apple_cgl.destroy_pixel_format(p->pixel_format_obj); + + if (p->context_obj) + (void) apple_cgl.destroy_context(p->context_obj); + + XAppleDRIDestroyPixmap(dpy, p->xpixmap); + + if (p->buffer) { + if (munmap(p->buffer, p->size)) + perror("munmap"); + + if (-1 == close(p->fd)) + perror("close"); + + if (shm_unlink(p->path)) + perror("shm_unlink"); + } + + apple_glx_diagnostic("destroyed pixmap buffer for: 0x%lx\n", d->drawable); +} + +/* Return true if an error occurred. */ +bool +apple_glx_pixmap_create(Display * dpy, int screen, Pixmap pixmap, + const void *mode) +{ + struct apple_glx_drawable *d; + struct apple_glx_pixmap *p; + bool double_buffered; + bool uses_stereo; + CGLError error; + const __GLcontextModes *cmodes = mode; + + if (apple_glx_drawable_create(dpy, screen, pixmap, &d, &callbacks)) + return true; + + /* d is locked and referenced at this point. */ + + p = &d->types.pixmap; + + p->xpixmap = pixmap; + p->buffer = NULL; + + if (!XAppleDRICreatePixmap(dpy, screen, pixmap, + &p->width, &p->height, &p->pitch, &p->bpp, + &p->size, p->path, PATH_MAX)) { + d->unlock(d); + d->destroy(d); + return true; + } + + p->fd = shm_open(p->path, O_RDWR, 0); + + if (p->fd < 0) { + perror("shm_open"); + d->unlock(d); + d->destroy(d); + return true; + } + + p->buffer = mmap(NULL, p->size, PROT_READ | PROT_WRITE, + MAP_FILE | MAP_SHARED, p->fd, 0); + + if (MAP_FAILED == p->buffer) { + perror("mmap"); + d->unlock(d); + d->destroy(d); + return true; + } + + apple_visual_create_pfobj(&p->pixel_format_obj, mode, &double_buffered, + &uses_stereo, /*offscreen */ true); + + error = apple_cgl.create_context(p->pixel_format_obj, NULL, + &p->context_obj); + + if (kCGLNoError != error) { + d->unlock(d); + d->destroy(d); + return true; + } + + p->fbconfigID = cmodes->fbconfigID; + + d->unlock(d); + + apple_glx_diagnostic("created: pixmap buffer for 0x%lx\n", d->drawable); + + return false; +} + +bool +apple_glx_pixmap_query(GLXPixmap pixmap, int attr, unsigned int *value) +{ + struct apple_glx_drawable *d; + struct apple_glx_pixmap *p; + bool result = false; + + d = apple_glx_drawable_find_by_type(pixmap, APPLE_GLX_DRAWABLE_PIXMAP, + APPLE_GLX_DRAWABLE_LOCK); + + if (d) { + p = &d->types.pixmap; + + switch (attr) { + case GLX_WIDTH: + *value = p->width; + result = true; + break; + + case GLX_HEIGHT: + *value = p->height; + result = true; + break; + + case GLX_FBCONFIG_ID: + *value = p->fbconfigID; + result = true; + break; + } + + d->unlock(d); + } + + return result; +} + +/* Return true if the type is valid for pixmap. */ +bool +apple_glx_pixmap_destroy(Display * dpy, GLXPixmap pixmap) +{ + return !apple_glx_drawable_destroy_by_type(dpy, pixmap, + APPLE_GLX_DRAWABLE_PIXMAP); +} diff --git a/src/glx/apple/apple_glx_surface.c b/src/glx/apple/apple_glx_surface.c new file mode 100644 index 0000000000..6db2910a46 --- /dev/null +++ b/src/glx/apple/apple_glx_surface.c @@ -0,0 +1,224 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#include +#include "glxclient.h" +#include "apple_glx.h" +#include "appledri.h" +#include "apple_glx_drawable.h" + +static bool surface_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d); + +static void surface_destroy(Display * dpy, struct apple_glx_drawable *d); + + +static struct apple_glx_drawable_callbacks callbacks = { + .type = APPLE_GLX_DRAWABLE_SURFACE, + .make_current = surface_make_current, + .destroy = surface_destroy +}; + +static void +update_viewport_and_scissor(Display * dpy, GLXDrawable drawable) +{ + Window root; + int x, y; + unsigned int width = 0, height = 0, bd, depth; + + XGetGeometry(dpy, drawable, &root, &x, &y, &width, &height, &bd, &depth); + + glViewport(0, 0, width, height); + glScissor(0, 0, width, height); +} + +static bool +surface_make_current(struct apple_glx_context *ac, + struct apple_glx_drawable *d) +{ + struct apple_glx_surface *s = &d->types.surface; + xp_error error; + + assert(APPLE_GLX_DRAWABLE_SURFACE == d->type); + + apple_glx_diagnostic("%s: ac->context_obj %p s->surface_id %u\n", + __func__, (void *) ac->context_obj, s->surface_id); + + error = xp_attach_gl_context(ac->context_obj, s->surface_id); + + if (error) { + fprintf(stderr, "error: xp_attach_gl_context returned: %d\n", error); + return true; + } + + + if (!ac->made_current) { + /* + * The first time a new context is made current the glViewport + * and glScissor should be updated. + */ + update_viewport_and_scissor(ac->drawable->display, + ac->drawable->drawable); + ac->made_current = true; + } + + apple_glx_diagnostic("%s: drawable 0x%lx\n", __func__, d->drawable); + + return false; +} + +static void +surface_destroy(Display * dpy, struct apple_glx_drawable *d) +{ + struct apple_glx_surface *s = &d->types.surface; + + apple_glx_diagnostic("%s: s->surface_id %u\n", __func__, s->surface_id); + + xp_error error = xp_destroy_surface(s->surface_id); + + if (error) { + fprintf(stderr, "xp_destroy_surface error: %d\n", (int) error); + } + + /* + * Check if this surface destroy came from the surface being destroyed + * on the server. If s->pending_destroy is true, then it did, and + * we don't want to try to destroy the surface on the server. + */ + if (!s->pending_destroy) { + /* + * Warning: this causes other routines to be called (potentially) + * from surface_notify_handler. It's probably best to not have + * any locks at this point locked. + */ + XAppleDRIDestroySurface(d->display, DefaultScreen(d->display), + d->drawable); + + apple_glx_diagnostic + ("%s: destroyed a surface for drawable 0x%lx uid %u\n", __func__, + d->drawable, s->uid); + } +} + +/* Return true if an error occured. */ +static bool +create_surface(Display * dpy, int screen, struct apple_glx_drawable *d) +{ + struct apple_glx_surface *s = &d->types.surface; + unsigned int key[2]; + xp_client_id id; + + id = apple_glx_get_client_id(); + if (0 == id) + return true; + + assert(None != d->drawable); + + s->pending_destroy = false; + + if (XAppleDRICreateSurface(dpy, screen, d->drawable, id, key, &s->uid)) { + xp_error error; + + error = xp_import_surface(key, &s->surface_id); + + if (error) { + fprintf(stderr, "error: xp_import_surface returned: %d\n", error); + return true; + } + + apple_glx_diagnostic("%s: created a surface for drawable 0x%lx" + " with uid %u\n", __func__, d->drawable, s->uid); + return false; /*success */ + } + + return true; /* unable to create a surface. */ +} + +/* Return true if an error occured. */ +/* This returns a referenced object via resultptr. */ +bool +apple_glx_surface_create(Display * dpy, int screen, + GLXDrawable drawable, + struct apple_glx_drawable ** resultptr) +{ + struct apple_glx_drawable *d; + + if (apple_glx_drawable_create(dpy, screen, drawable, &d, &callbacks)) + return true; + + /* apple_glx_drawable_create creates a locked and referenced object. */ + + if (create_surface(dpy, screen, d)) { + d->unlock(d); + d->destroy(d); + return true; + } + + *resultptr = d; + + d->unlock(d); + + return false; +} + +/* + * All surfaces are reference counted, and surfaces are only created + * when the window is made current. When all contexts no longer reference + * a surface drawable the apple_glx_drawable gets destroyed, and thus + * its surface is destroyed. + * + * However we can make the destruction occur a bit sooner by setting + * pending_destroy, which is then checked for in glViewport by + * apple_glx_context_update. + */ +void +apple_glx_surface_destroy(unsigned int uid) +{ + struct apple_glx_drawable *d; + + d = apple_glx_drawable_find_by_uid(uid, APPLE_GLX_DRAWABLE_REFERENCE + | APPLE_GLX_DRAWABLE_LOCK); + + if (d) { + d->types.surface.pending_destroy = true; + d->release(d); + /* + * We release 2 references to the surface. One was acquired by + * the find, and the other was leftover from a context, or + * the surface being displayed, so the destroy() will decrease it + * once more. + * + * If the surface is in a context, it will take one d->destroy(d); + * to actually destroy it when the pending_destroy is processed + * by a glViewport callback (see apple_glx_context_update()). + */ + d->destroy(d); + + d->unlock(d); + } +} diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c new file mode 100644 index 0000000000..e80914741e --- /dev/null +++ b/src/glx/apple/apple_visual.c @@ -0,0 +1,144 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "apple_cgl.h" +#include "apple_visual.h" +#include "apple_glx.h" +#include "glcontextmodes.h" + +enum +{ + MAX_ATTR = 60 +}; + +/*mode is a __GlcontextModes*/ +void +apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode, + bool * double_buffered, bool * uses_stereo, + bool offscreen) +{ + CGLPixelFormatAttribute attr[MAX_ATTR]; + const __GLcontextModes *c = mode; + int numattr = 0; + GLint vsref = 0; + CGLError error = 0; + + if (offscreen) { + apple_glx_diagnostic + ("offscreen rendering enabled. Using kCGLPFAOffScreen\n"); + + attr[numattr++] = kCGLPFAOffScreen; + attr[numattr++] = kCGLPFAColorSize; + attr[numattr++] = 32; + } + else if (getenv("LIBGL_ALWAYS_SOFTWARE") != NULL) { + apple_glx_diagnostic + ("Software rendering requested. Using kCGLRendererGenericFloatID.\n"); + attr[numattr++] = kCGLPFARendererID; + attr[numattr++] = kCGLRendererGenericFloatID; + } + else if (getenv("LIBGL_ALLOW_SOFTWARE") != NULL) { + apple_glx_diagnostic + ("Software rendering is not being excluded. Not using kCGLPFAAccelerated.\n"); + } + else { + attr[numattr++] = kCGLPFAAccelerated; + } + + /* + * The program chose a config based on the fbconfigs or visuals. + * Those are based on the attributes from CGL, so we probably + * do want the closest match for the color, depth, and accum. + */ + attr[numattr++] = kCGLPFAClosestPolicy; + + if (c->stereoMode) { + attr[numattr++] = kCGLPFAStereo; + *uses_stereo = true; + } + else { + *uses_stereo = false; + } + + if (c->doubleBufferMode) { + attr[numattr++] = kCGLPFADoubleBuffer; + *double_buffered = true; + } + else { + *double_buffered = false; + } + + attr[numattr++] = kCGLPFAColorSize; + attr[numattr++] = c->redBits + c->greenBits + c->blueBits; + attr[numattr++] = kCGLPFAAlphaSize; + attr[numattr++] = c->alphaBits; + + if ((c->accumRedBits + c->accumGreenBits + c->accumBlueBits) > 0) { + attr[numattr++] = kCGLPFAAccumSize; + attr[numattr++] = c->accumRedBits + c->accumGreenBits + + c->accumBlueBits + c->accumAlphaBits; + } + + if (c->depthBits > 0) { + attr[numattr++] = kCGLPFADepthSize; + attr[numattr++] = c->depthBits; + } + + if (c->stencilBits > 0) { + attr[numattr++] = kCGLPFAStencilSize; + attr[numattr++] = c->stencilBits; + } + + if (c->sampleBuffers > 0) { + attr[numattr++] = kCGLPFAMultisample; + attr[numattr++] = kCGLPFASampleBuffers; + attr[numattr++] = c->sampleBuffers; + attr[numattr++] = kCGLPFASamples; + attr[numattr++] = c->samples; + } + + attr[numattr++] = 0; + + assert(numattr < MAX_ATTR); + + error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); + + if (error) { + fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); + abort(); + } +} diff --git a/src/glx/apple/apple_visual.h b/src/glx/apple/apple_visual.h new file mode 100644 index 0000000000..ebfafa340b --- /dev/null +++ b/src/glx/apple/apple_visual.h @@ -0,0 +1,41 @@ +/* + Copyright (c) 2008 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#ifndef APPLE_VISUAL_H +#define APPLE_VISUAL_H + +#include +#include + +/* mode is expected to be of type __GLcontextModes. */ +void apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode, + bool * double_buffered, bool * uses_stereo, + bool offscreen); + +#endif diff --git a/src/glx/apple/apple_xgl_api_read.c b/src/glx/apple/apple_xgl_api_read.c new file mode 100644 index 0000000000..3dcb31b71a --- /dev/null +++ b/src/glx/apple/apple_xgl_api_read.c @@ -0,0 +1,134 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +/* + * This file works with the glXMakeContextCurrent readable drawable. + * + * The way it works is by swapping the currentDrawable for the currentReadable + * drawable if they are different. + */ +#include +#include "apple_xgl_api_read.h" +#include "apple_xgl_api.h" +#include "apple_cgl.h" +#include "apple_glx_context.h" + +extern struct apple_xgl_api __gl_api; + +struct apple_xgl_saved_state +{ + bool swapped; +}; + +static void +SetRead(struct apple_xgl_saved_state *saved) +{ + GLXContext gc = __glXGetCurrentContext(); + + /* + * By default indicate that the state was not swapped, so that UnsetRead + * functions correctly. + */ + saved->swapped = false; + + /* + * If the readable drawable isn't the same as the drawable then + * the user has requested a readable drawable with glXMakeContextCurrent(). + * We emulate this behavior by switching the current drawable. + */ + if (None != gc->currentReadable + && gc->currentReadable != gc->currentDrawable) { + Display *dpy = glXGetCurrentDisplay(); + + saved->swapped = true; + + if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + gc->currentReadable)) { + /* An error occurred, so try to restore the old context state. */ + (void) apple_glx_make_current_context(dpy, gc->apple, gc->apple, + gc->currentDrawable); + saved->swapped = false; + } + } +} + +static void +UnsetRead(struct apple_xgl_saved_state *saved) +{ + if (saved->swapped) { + GLXContext gc = __glXGetCurrentContext(); + Display *dpy = glXGetCurrentDisplay(); + + if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + gc->currentDrawable)) { + /* + * An error occurred restoring the drawable. + * It's unclear what to do about that. + */ + } + } +} + +void +glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, void *pixels) +{ + struct apple_xgl_saved_state saved; + + SetRead(&saved); + + __gl_api.ReadPixels(x, y, width, height, format, type, pixels); + + UnsetRead(&saved); +} + +void +glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) +{ + struct apple_xgl_saved_state saved; + + SetRead(&saved); + + __gl_api.CopyPixels(x, y, width, height, type); + + UnsetRead(&saved); +} + +void +glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, + GLsizei width) +{ + struct apple_xgl_saved_state saved; + + SetRead(&saved); + + __gl_api.CopyColorTable(target, internalformat, x, y, width); + + UnsetRead(&saved); +} diff --git a/src/glx/apple/apple_xgl_api_read.h b/src/glx/apple/apple_xgl_api_read.h new file mode 100644 index 0000000000..ffeb32afb8 --- /dev/null +++ b/src/glx/apple/apple_xgl_api_read.h @@ -0,0 +1,47 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +/* + * This file works with the glXMakeContextCurrent readable drawable. + */ +#ifndef APPLE_XGL_API_READ_H +#define APPLE_XGL_API_READ_H + +#include "glxclient.h" + +extern void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, void *pixels); + +extern void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, + GLenum type); + +extern void glCopyColorTable(GLenum target, GLenum internalformat, GLint x, + GLint y, GLsizei width); + +#endif diff --git a/src/glx/apple/apple_xgl_api_stereo.c b/src/glx/apple/apple_xgl_api_stereo.c new file mode 100644 index 0000000000..b50e3119cd --- /dev/null +++ b/src/glx/apple/apple_xgl_api_stereo.c @@ -0,0 +1,119 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include +#include "apple_xgl_api_stereo.h" +#include "apple_xgl_api.h" +#include "apple_glx_context.h" + +extern struct apple_xgl_api __gl_api; +/* + * These are special functions for stereoscopic support + * differences in MacOS X. + */ +void +glDrawBuffer(GLenum mode) +{ + GLXContext gc = glXGetCurrentContext(); + + if (gc && apple_glx_context_uses_stereo(gc->apple)) { + GLenum buf[2]; + GLsizei n = 0; + + switch (mode) { + case GL_BACK: + buf[0] = GL_BACK_LEFT; + buf[1] = GL_BACK_RIGHT; + n = 2; + break; + case GL_FRONT: + buf[0] = GL_FRONT_LEFT; + buf[1] = GL_FRONT_RIGHT; + n = 2; + break; + + default: + buf[0] = mode; + n = 1; + break; + } + + __gl_api.DrawBuffers(n, buf); + } + else { + __gl_api.DrawBuffer(mode); + } +} + + +void +glDrawBuffers(GLsizei n, const GLenum * bufs) +{ + GLXContext gc = glXGetCurrentContext(); + + if (gc && apple_glx_context_uses_stereo(gc->apple)) { + GLenum newbuf[n + 2]; + GLsizei i, outi = 0; + bool have_back = false; + bool have_front = false; + + for (i = 0; i < n; ++i) { + if (GL_BACK == bufs[i]) { + have_back = true; + } + else if (GL_FRONT == bufs[i]) { + have_back = true; + } + else { + newbuf[outi++] = bufs[i]; + } + } + + if (have_back) { + newbuf[outi++] = GL_BACK_LEFT; + newbuf[outi++] = GL_BACK_RIGHT; + } + + if (have_front) { + newbuf[outi++] = GL_FRONT_LEFT; + newbuf[outi++] = GL_FRONT_RIGHT; + } + + __gl_api.DrawBuffers(outi, newbuf); + } + else { + __gl_api.DrawBuffers(n, bufs); + } +} + +void +glDrawBuffersARB(GLsizei n, const GLenum * bufs) +{ + glDrawBuffers(n, bufs); +} diff --git a/src/glx/apple/apple_xgl_api_stereo.h b/src/glx/apple/apple_xgl_api_stereo.h new file mode 100644 index 0000000000..c285363f6f --- /dev/null +++ b/src/glx/apple/apple_xgl_api_stereo.h @@ -0,0 +1,39 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#include "glxclient.h" + +#ifndef APPLE_XGL_API_STEREO_H +#define APPLE_XGL_API_STEREO_H + +extern void glDrawBuffer(GLenum mode); +extern void glDrawBuffers(GLsizei n, const GLenum * bufs); +extern void glDrawBuffersARB(GLsizei n, const GLenum * bufs); + +#endif diff --git a/src/glx/apple/apple_xgl_api_viewport.c b/src/glx/apple/apple_xgl_api_viewport.c new file mode 100644 index 0000000000..d3fbc7c41e --- /dev/null +++ b/src/glx/apple/apple_xgl_api_viewport.c @@ -0,0 +1,45 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#include "apple_glx_context.h" +#include "apple_xgl_api.h" +#include "apple_xgl_api_viewport.h" + +extern struct apple_xgl_api __gl_api; + +void +glViewport(GLint x, GLint y, GLsizei width, GLsizei height) +{ + GLXContext gc = __glXGetCurrentContext(); + Display *dpy = glXGetCurrentDisplay(); + + if (gc && gc->apple) + apple_glx_context_update(dpy, gc->apple); + + __gl_api.Viewport(x, y, width, height); +} diff --git a/src/glx/apple/apple_xgl_api_viewport.h b/src/glx/apple/apple_xgl_api_viewport.h new file mode 100644 index 0000000000..6c89ca7998 --- /dev/null +++ b/src/glx/apple/apple_xgl_api_viewport.h @@ -0,0 +1,36 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#ifndef APPLE_XGL_API_VIEWPORT_H +#define APPLE_XGL_API_VIEWPORT_H + +#include "glxclient.h" + +void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); + +#endif diff --git a/src/glx/apple/appledri.c b/src/glx/apple/appledri.c new file mode 100644 index 0000000000..4f2e8f9914 --- /dev/null +++ b/src/glx/apple/appledri.c @@ -0,0 +1,452 @@ +/* $XFree86: xc/lib/GL/dri/XF86dri.c,v 1.12 2001/08/27 17:40:57 dawes Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002, 2008 Apple Computer, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin + * Jens Owen + * Rickard E. (Rik) Faith + * + */ + +/* THIS IS NOT AN X CONSORTIUM STANDARD */ + +#define NEED_EVENTS +#define NEED_REPLIES +#include +#include "appledristr.h" +#include +#include +#include + +static XExtensionInfo _appledri_info_data; +static XExtensionInfo *appledri_info = &_appledri_info_data; +static char *appledri_extension_name = APPLEDRINAME; + +#define AppleDRICheckExtension(dpy,i,val) \ + XextCheckExtension (dpy, i, appledri_extension_name, val) + +/***************************************************************************** + * * + * private utility routines * + * * + *****************************************************************************/ + +static int close_display(Display * dpy, XExtCodes * extCodes); +static Bool wire_to_event(Display * dpy, XEvent * re, xEvent * event); + +static /* const */ XExtensionHooks appledri_extension_hooks = { + NULL, /* create_gc */ + NULL, /* copy_gc */ + NULL, /* flush_gc */ + NULL, /* free_gc */ + NULL, /* create_font */ + NULL, /* free_font */ + close_display, /* close_display */ + wire_to_event, /* wire_to_event */ + NULL, /* event_to_wire */ + NULL, /* error */ + NULL, /* error_string */ +}; + +static +XEXT_GENERATE_FIND_DISPLAY(find_display, appledri_info, + appledri_extension_name, + &appledri_extension_hooks, + AppleDRINumberEvents, NULL) + + static XEXT_GENERATE_CLOSE_DISPLAY(close_display, appledri_info) + + static void (*surface_notify_handler) (); + + void *XAppleDRISetSurfaceNotifyHandler(void (*fun) ()) +{ + void *old = surface_notify_handler; + surface_notify_handler = fun; + return old; +} + +static Bool +wire_to_event(Display *dpy, XEvent *re, xEvent *event) +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRINotifyEvent *sevent; + + AppleDRICheckExtension(dpy, info, False); + + switch ((event->u.u.type & 0x7f) - info->codes->first_event) { + case AppleDRISurfaceNotify: + sevent = (xAppleDRINotifyEvent *) event; + if (surface_notify_handler != NULL) { + (*surface_notify_handler) (dpy, (unsigned int) sevent->arg, + (int) sevent->kind); + } + return False; + } + return False; +} + +/***************************************************************************** + * * + * public Apple-DRI Extension routines * + * * + *****************************************************************************/ + +#if 0 +#include +#define TRACE(msg) fprintf(stderr, "AppleDRI%s\n", msg); +#else +#define TRACE(msg) +#endif + + +Bool +XAppleDRIQueryExtension(dpy, event_basep, error_basep) + Display *dpy; + int *event_basep, *error_basep; +{ + XExtDisplayInfo *info = find_display(dpy); + + TRACE("QueryExtension..."); + if (XextHasExtension(info)) { + *event_basep = info->codes->first_event; + *error_basep = info->codes->first_error; + TRACE("QueryExtension... return True"); + return True; + } + else { + TRACE("QueryExtension... return False"); + return False; + } +} + +Bool +XAppleDRIQueryVersion(dpy, majorVersion, minorVersion, patchVersion) + Display *dpy; + int *majorVersion; + int *minorVersion; + int *patchVersion; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIQueryVersionReply rep; + xAppleDRIQueryVersionReq *req; + + TRACE("QueryVersion..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIQueryVersion, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIQueryVersion; + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryVersion... return False"); + return False; + } + *majorVersion = rep.majorVersion; + *minorVersion = rep.minorVersion; + *patchVersion = rep.patchVersion; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryVersion... return True"); + return True; +} + +Bool +XAppleDRIQueryDirectRenderingCapable(dpy, screen, isCapable) + Display *dpy; + int screen; + Bool *isCapable; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIQueryDirectRenderingCapableReply rep; + xAppleDRIQueryDirectRenderingCapableReq *req; + + TRACE("QueryDirectRenderingCapable..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIQueryDirectRenderingCapable, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIQueryDirectRenderingCapable; + req->screen = screen; + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryDirectRenderingCapable... return False"); + return False; + } + *isCapable = rep.isCapable; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryDirectRenderingCapable... return True"); + return True; +} + +Bool +XAppleDRIAuthConnection(dpy, screen, magic) + Display *dpy; + int screen; + unsigned int magic; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIAuthConnectionReq *req; + xAppleDRIAuthConnectionReply rep; + + TRACE("AuthConnection..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIAuthConnection, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIAuthConnection; + req->screen = screen; + req->magic = magic; + rep.authenticated = 0; + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse) || !rep.authenticated) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("AuthConnection... return False"); + return False; + } + UnlockDisplay(dpy); + SyncHandle(); + TRACE("AuthConnection... return True"); + return True; +} + +Bool +XAppleDRICreateSurface(dpy, screen, drawable, client_id, key, uid) + Display *dpy; + int screen; + Drawable drawable; + unsigned int client_id; + unsigned int *key; + unsigned int *uid; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRICreateSurfaceReply rep; + xAppleDRICreateSurfaceReq *req; + + TRACE("CreateSurface..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRICreateSurface, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRICreateSurface; + req->screen = screen; + req->drawable = drawable; + req->client_id = client_id; + rep.key_0 = rep.key_1 = rep.uid = 0; + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse) || !rep.key_0) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("CreateSurface... return False"); + return False; + } + key[0] = rep.key_0; + key[1] = rep.key_1; + *uid = rep.uid; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("CreateSurface... return True"); + return True; +} + +Bool +XAppleDRIDestroySurface(dpy, screen, drawable) + Display *dpy; + int screen; + Drawable drawable; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIDestroySurfaceReq *req; + + TRACE("DestroySurface..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIDestroySurface, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIDestroySurface; + req->screen = screen; + req->drawable = drawable; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("DestroySurface... return True"); + return True; +} + +Bool +XAppleDRICreateSharedBuffer(Display * dpy, int screen, Drawable drawable, + Bool doubleSwap, char *path, size_t pathlen, + int *width, int *height) +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRICreateSharedBufferReq *req; + xAppleDRICreateSharedBufferReply rep; + + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRICreateSharedBuffer, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRICreateSharedBuffer; + req->screen = screen; + req->drawable = drawable; + req->doubleSwap = doubleSwap; + + + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { + puts("REPLY ERROR"); + + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + + printf("rep.stringLength %d\n", (int) rep.stringLength); + + if (rep.stringLength > 0 && rep.stringLength <= pathlen) { + _XReadPad(dpy, path, rep.stringLength); + + printf("path: %s\n", path); + + *width = rep.width; + *height = rep.height; + + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + UnlockDisplay(dpy); + SyncHandle(); + + return False; +} + +Bool +XAppleDRISwapBuffers(Display * dpy, int screen, Drawable drawable) +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRISwapBuffersReq *req; + + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRISwapBuffers, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRISwapBuffers; + req->screen = screen; + req->drawable = drawable; + UnlockDisplay(dpy); + SyncHandle(); + + return True; +} + +Bool +XAppleDRICreatePixmap(Display * dpy, int screen, Drawable drawable, + int *width, int *height, int *pitch, int *bpp, + size_t * size, char *bufname, size_t bufnamesize) +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRICreatePixmapReq *req; + xAppleDRICreatePixmapReply rep; + + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRICreatePixmap, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRICreatePixmap; + req->screen = screen; + req->drawable = drawable; + + if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + + /* + printf("rep.stringLength %d\n", (int) rep.stringLength); + */ + + if (rep.stringLength > 0 && rep.stringLength <= bufnamesize) { + _XReadPad(dpy, bufname, rep.stringLength); + + printf("path: %s\n", bufname); + + *width = rep.width; + *height = rep.height; + *pitch = rep.pitch; + *bpp = rep.bpp; + *size = rep.size; + + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + else if (rep.stringLength > 0) { + _XEatData(dpy, rep.stringLength); + } + + UnlockDisplay(dpy); + SyncHandle(); + + return True; +} + +/* + * Call it a drawable, because we really don't know what it is + * until it reaches the server, and we should keep that in mind. + */ +Bool +XAppleDRIDestroyPixmap(Display * dpy, Pixmap drawable) +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIDestroyPixmapReq *req; + + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIDestroyPixmap, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIDestroyPixmap; + req->drawable = drawable; + UnlockDisplay(dpy); + SyncHandle(); + + return True; +} diff --git a/src/glx/apple/appledri.h b/src/glx/apple/appledri.h new file mode 100644 index 0000000000..0108378ca3 --- /dev/null +++ b/src/glx/apple/appledri.h @@ -0,0 +1,124 @@ +/* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002, 2008, 2009 Apple Computer, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin + * Jens Owen + * Rickard E. (Rik) Faith + * + */ + +#ifndef _APPLEDRI_H_ +#define _APPLEDRI_H_ + +#include +#include + +#define X_AppleDRIQueryVersion 0 +#define X_AppleDRIQueryDirectRenderingCapable 1 +#define X_AppleDRICreateSurface 2 +#define X_AppleDRIDestroySurface 3 +#define X_AppleDRIAuthConnection 4 +#define X_AppleDRICreateSharedBuffer 5 +#define X_AppleDRISwapBuffers 6 +#define X_AppleDRICreatePixmap 7 +#define X_AppleDRIDestroyPixmap 8 + +/* Requests up to and including 18 were used in a previous version */ + +/* Events */ +#define AppleDRIObsoleteEvent1 0 +#define AppleDRIObsoleteEvent2 1 +#define AppleDRIObsoleteEvent3 2 +#define AppleDRISurfaceNotify 3 +#define AppleDRINumberEvents 4 + +/* Errors */ +#define AppleDRIClientNotLocal 0 +#define AppleDRIOperationNotSupported 1 +#define AppleDRINumberErrors (AppleDRIOperationNotSupported + 1) + +/* Kinds of SurfaceNotify events: */ +#define AppleDRISurfaceNotifyChanged 0 +#define AppleDRISurfaceNotifyDestroyed 1 + +#ifndef _APPLEDRI_SERVER_ + +typedef struct +{ + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came frome a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* window of event */ + Time time; /* server timestamp when event happened */ + int kind; /* subtype of event */ + int arg; +} XAppleDRINotifyEvent; + +_XFUNCPROTOBEGIN + Bool XAppleDRIQueryExtension(Display * dpy, int *event_base, + int *error_base); + +Bool XAppleDRIQueryVersion(Display * dpy, int *majorVersion, + int *minorVersion, int *patchVersion); + +Bool XAppleDRIQueryDirectRenderingCapable(Display * dpy, int screen, + Bool * isCapable); + +void *XAppleDRISetSurfaceNotifyHandler(void (*fun) (Display * dpy, + unsigned uid, int kind)); + +Bool XAppleDRIAuthConnection(Display * dpy, int screen, unsigned int magic); + +Bool XAppleDRICreateSurface(Display * dpy, int screen, Drawable drawable, + unsigned int client_id, unsigned int key[2], + unsigned int *uid); + +Bool XAppleDRIDestroySurface(Display * dpy, int screen, Drawable drawable); + +Bool XAppleDRISynchronizeSurfaces(Display * dpy); + +Bool XAppleDRICreateSharedBuffer(Display * dpy, int screen, Drawable drawable, + Bool doubleSwap, char *path, size_t pathlen, + int *width, int *height); + +Bool XAppleDRISwapBuffers(Display * dpy, int screen, Drawable drawable); + +Bool XAppleDRICreatePixmap(Display * dpy, int screen, Drawable drawable, + int *width, int *height, int *pitch, int *bpp, + size_t * size, char *bufname, size_t bufnamesize); + +Bool XAppleDRIDestroyPixmap(Display * dpy, Pixmap pixmap); + +_XFUNCPROTOEND +#endif /* _APPLEDRI_SERVER_ */ +#endif /* _APPLEDRI_H_ */ diff --git a/src/glx/apple/appledristr.h b/src/glx/apple/appledristr.h new file mode 100644 index 0000000000..b5ffe5b46a --- /dev/null +++ b/src/glx/apple/appledristr.h @@ -0,0 +1,266 @@ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002, 2008, 2009 Apple Computer, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin + * Jens Owen + * Rickard E. (Rik) Fiath + * + */ + +#ifndef _APPLEDRISTR_H_ +#define _APPLEDRISTR_H_ + +#include "appledri.h" + +#define APPLEDRINAME "Apple-DRI" + +#define APPLE_DRI_MAJOR_VERSION 1 /* current version numbers */ +#define APPLE_DRI_MINOR_VERSION 0 +#define APPLE_DRI_PATCH_VERSION 0 + +typedef struct _AppleDRIQueryVersion +{ + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRIQueryVersion */ + CARD16 length B16; +} xAppleDRIQueryVersionReq; +#define sz_xAppleDRIQueryVersionReq 4 + +typedef struct +{ + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD16 majorVersion B16; /* major version of DRI protocol */ + CARD16 minorVersion B16; /* minor version of DRI protocol */ + CARD32 patchVersion B32; /* patch version of DRI protocol */ + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRIQueryVersionReply; +#define sz_xAppleDRIQueryVersionReply 32 + +typedef struct _AppleDRIQueryDirectRenderingCapable +{ + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ + CARD16 length B16; + CARD32 screen B32; +} xAppleDRIQueryDirectRenderingCapableReq; +#define sz_xAppleDRIQueryDirectRenderingCapableReq 8 + +typedef struct +{ + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + BOOL isCapable; + BOOL pad2; + BOOL pad3; + BOOL pad4; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; + CARD32 pad8 B32; + CARD32 pad9 B32; +} xAppleDRIQueryDirectRenderingCapableReply; +#define sz_xAppleDRIQueryDirectRenderingCapableReply 32 + +typedef struct _AppleDRIAuthConnection +{ + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRICloseConnection */ + CARD16 length B16; + CARD32 screen B32; + CARD32 magic B32; +} xAppleDRIAuthConnectionReq; +#define sz_xAppleDRIAuthConnectionReq 12 + +typedef struct +{ + BYTE type; + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 authenticated B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRIAuthConnectionReply; +#define zx_xAppleDRIAuthConnectionReply 32 + +typedef struct _AppleDRICreateSurface +{ + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRICreateSurface */ + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; + CARD32 client_id B32; +} xAppleDRICreateSurfaceReq; +#define sz_xAppleDRICreateSurfaceReq 16 + +typedef struct +{ + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 key_0 B32; + CARD32 key_1 B32; + CARD32 uid B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRICreateSurfaceReply; +#define sz_xAppleDRICreateSurfaceReply 32 + +typedef struct _AppleDRIDestroySurface +{ + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRIDestroySurface */ + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; +} xAppleDRIDestroySurfaceReq; +#define sz_xAppleDRIDestroySurfaceReq 12 + +typedef struct _AppleDRINotify +{ + BYTE type; /* always eventBase + event type */ + BYTE kind; + CARD16 sequenceNumber B16; + CARD32 time B32; /* time of change */ + CARD32 pad1 B32; + CARD32 arg B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRINotifyEvent; +#define sz_xAppleDRINotifyEvent 32 + + +typedef struct +{ + CARD8 reqType; + CARD8 driReqType; + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; + BOOL doubleSwap; + CARD8 pad1, pad2, pad3; +} xAppleDRICreateSharedBufferReq; + +#define sz_xAppleDRICreateSharedBufferReq 16 + +typedef struct +{ + BYTE type; + BYTE data1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 stringLength B32; /* 0 on error */ + CARD32 width B32; + CARD32 height B32; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; +} xAppleDRICreateSharedBufferReply; + +#define sz_xAppleDRICreateSharedBufferReply 32 + +typedef struct +{ + CARD8 reqType; + CARD8 driReqType; + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; +} xAppleDRISwapBuffersReq; + +#define sz_xAppleDRISwapBuffersReq 12 + +typedef struct +{ + CARD8 reqType; /*1 */ + CARD8 driReqType; /*2 */ + CARD16 length B16; /*4 */ + CARD32 screen B32; /*8 */ + CARD32 drawable B32; /*12 */ +} xAppleDRICreatePixmapReq; + +#define sz_xAppleDRICreatePixmapReq 12 + +typedef struct +{ + BYTE type; /*1 */ + BOOL pad1; /*2 */ + CARD16 sequenceNumber B16; /*4 */ + CARD32 length B32; /*8 */ + CARD32 width B32; /*12 */ + CARD32 height B32; /*16 */ + CARD32 pitch B32; /*20 */ + CARD32 bpp B32; /*24 */ + CARD32 size B32; /*28 */ + CARD32 stringLength B32; /*32 */ +} xAppleDRICreatePixmapReply; + +#define sz_xAppleDRICreatePixmapReply 32 + +typedef struct +{ + CARD8 reqType; /*1 */ + CARD8 driReqType; /*2 */ + CARD16 length B16; /*4 */ + CARD32 drawable B32; /*8 */ +} xAppleDRIDestroyPixmapReq; + +#define sz_xAppleDRIDestroyPixmapReq 8 + +#ifdef _APPLEDRI_SERVER_ + +void AppleDRISendEvent( +#if NeedFunctionPrototypes + int /* type */ , + unsigned int /* mask */ , + int /* which */ , + int /* arg */ +#endif + ); + +#endif /* _APPLEDRI_SERVER_ */ +#endif /* _APPLEDRISTR_H_ */ diff --git a/src/glx/apple/gen_api_header.tcl b/src/glx/apple/gen_api_header.tcl new file mode 100644 index 0000000000..9e986de504 --- /dev/null +++ b/src/glx/apple/gen_api_header.tcl @@ -0,0 +1,86 @@ + +package require Tcl 8.5 + +set license { +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +} + +set this_script [info script] + +proc main {argc argv} { + if {2 != $argc} { + puts stderr "syntax is: [set ::this_script] serialized-array-file output.h" + return 1 + } + + set fd [open [lindex $argv 0] r] + array set api [read $fd] + close $fd + + set fd [open [lindex $argv 1] w] + + puts $fd "/* This file was automatically generated by [set ::this_script]. */" + puts $fd $::license + + puts $fd " +#ifndef APPLE_XGL_API_H +#define APPLE_XGL_API_H +" + + puts $fd "struct apple_xgl_api \{" + + set sorted [lsort -dictionary [array names api]] + + foreach f $sorted { + set attr $api($f) + set pstr "" + + if {[dict exists $attr alias_for] || [dict exists $attr noop]} { + #Skip this function. + continue + } + + foreach p [dict get $attr parameters] { + append pstr "[lindex $p 0] [lindex $p 1], " + } + + set pstr [string trimright $pstr ", "] + puts $fd "\t[dict get $attr return] (*[set f])([set pstr]);" + } + + puts $fd "\};" + puts $fd "void apple_xgl_init_direct(void); + +#endif /*APPLE_XGL_API_H*/ +" + + return 0 +} +exit [main $::argc $::argv] \ No newline at end of file diff --git a/src/glx/apple/gen_api_library.tcl b/src/glx/apple/gen_api_library.tcl new file mode 100644 index 0000000000..159f9c085f --- /dev/null +++ b/src/glx/apple/gen_api_library.tcl @@ -0,0 +1,212 @@ +package require Tcl 8.5 + +set license { +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +} + +set gl_license { +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ +} + +set init_code { +static void *glsym(void *handle, const char *name) { + void *sym = dlsym(handle, name); + + if(NULL == sym) { + fprintf(stderr, "Error: symbol not found: '%s'. " + "Error information: %s\n", + name, dlerror()); + abort(); + } + + return sym; +} + +} + +set dlopen_code { +#ifndef LIBGLNAME +#define LIBGLNAME "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib" +#endif LIBGLNAME + + (void)dlerror(); /*drain dlerror()*/ + + handle = dlopen(LIBGLNAME, RTLD_LAZY); + + if(NULL == handle) { + fprintf(stderr, "error: unable to dlopen " + LIBGLNAME " :" "%s\n", dlerror()); + abort(); + } +} + +set this_script [info script] + +proc main {argc argv} { + if {2 != $argc} { + puts stderr "syntax is: [set ::this_script] serialized-array-file output.c" + return 1 + } + + + set fd [open [lindex $argv 0] r] + array set api [read $fd] + close $fd + + set fd [open [lindex $argv 1] w] + + puts $fd "/* This file was automatically generated by [set ::this_script]. */" + puts $fd $::license + + puts $fd { +#define GL_GLEXT_PROTOTYPES +#include +#include +#include "glxclient.h" +#include "apple_xgl_api.h" +#include "apple_glx_context.h" + } + + puts $fd "struct apple_xgl_api __gl_api;" + + set sorted [lsort -dictionary [array names api]] + + set exclude [list DrawBuffer DrawBuffers DrawBuffersARB] + + #These are special to glXMakeContextCurrent. + #See also: apple_xgl_api_read.c. + lappend exclude ReadPixels CopyPixels CopyColorTable + + #This is excluded to work with surface updates. + lappend exclude Viewport + + foreach f $sorted { + if {$f in $exclude} { + continue + } + + set attr $api($f) + + set pstr "" + + foreach p [dict get $attr parameters] { + append pstr "[lindex $p 0] [lindex $p 1], " + } + + set pstr [string trimright $pstr ", "] + + if {![string length $pstr]} { + set pstr void + } + + set callvars "" + + foreach p [dict get $attr parameters] { + append callvars "[lindex $p end], " + } + + set callvars [string trimright $callvars ", "] + + set return "" + if {"void" ne [dict get $attr return]} { + set return "return " + } + + if {[dict exists $attr noop]} { + if {"void" eq [dict get $attr return]} { + set body "/*noop*/" + } else { + set body "return 0; /*noop*/" + } + } elseif {[dict exists $attr alias_for]} { + set alias [dict get $attr alias_for] + set body "[set return] gl[set alias]([set callvars]);" + } else { + set body "[set return]__gl_api.[set f]([set callvars]);" + } + + puts $fd "GLAPI [dict get $attr return] APIENTRY gl[set f]([set pstr]) \{\n\t$body\n\}" + } + + puts $fd $::init_code + + puts $fd "void apple_xgl_init_direct(void) \{" + puts $fd "\tvoid *handle;" + + puts $fd $::dlopen_code + + foreach f $sorted { + set attr $api($f) + + puts $attr + puts $f + + if {[dict exists $attr alias_for] || [dict exists $attr noop]} { + #Function f is an alias_for another, so we shouldn't try + #to load it. + continue + } + + puts $fd "\t__gl_api.$f = glsym(handle, \"gl$f\");" + } + + puts $fd "\}\n" + close $fd + + return 0 +} +exit [main $::argc $::argv] diff --git a/src/glx/apple/gen_code.tcl b/src/glx/apple/gen_code.tcl new file mode 100644 index 0000000000..bb38d9f1c9 --- /dev/null +++ b/src/glx/apple/gen_code.tcl @@ -0,0 +1,50 @@ +if 0 { + Copyright (c) 2008 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +} + +package require Tcl 8.5 + +proc main {} { + set tclsh [info nameofexecutable] + + puts TYPES + exec $tclsh ./gen_types.tcl stage.1 + puts DEFS + exec $tclsh ./gen_defs.tcl specs/enum.spec stage.2 + puts FUNCS + exec $tclsh ./gen_funcs.tcl specs/gl.spec stage.3 stage.4 + puts HEADER + exec $tclsh ./gen_api_header.tcl stage.4 apple_xgl_api.h + puts "C API" + exec $tclsh ./gen_api_library.tcl stage.4 apple_xgl_api.c + puts "EXPORTS" + exec $tclsh ./gen_exports.tcl stage.4 exports.list + + return 0 +} +exit [main] diff --git a/src/glx/apple/gen_defs.tcl b/src/glx/apple/gen_defs.tcl new file mode 100644 index 0000000000..d32694db72 --- /dev/null +++ b/src/glx/apple/gen_defs.tcl @@ -0,0 +1,67 @@ +#This parses and generates #defines from an enum.spec type of file. + +proc main {argc argv} { + if {2 != $argc} { + puts stderr "syntax is: [info script] input.spec output.h" + exit 1 + } + + set fd [open [lindex $argv 0] r] + set data [read $fd] + close $fd + + set fd [open [lindex $argv 1] w] + + set state "" + + puts $fd "#define GL_VERSION_1_1 1" + puts $fd "#define GL_VERSION_1_2 1" + puts $fd "#define GL_VERSION_1_3 1" + puts $fd "#define GL_VERSION_1_4 1" + puts $fd "#define GL_VERSION_1_5 1" + puts $fd "#define GL_VERSION_2_0 1" + #puts $fd "#define GL_VERSION_3_0 1" + + set mask "" + array set ar {} + + foreach line [split $data \n] { + if {[regexp {^\S*#.*} $line] > 0} { + #puts COMMENT:$line + set state "" + } elseif {"enum" eq $state} { + if {[string match "\t*" $line]} { + if {[regexp {^\tuse.*} $line] > 0} { + lassign [split [string trim $line]] use usemask def + set usemask [string trim $usemask] + set def [string trim $def] + puts $fd "/* GL_$def */" + } else { + lassign [split [string trim $line] =] def value + set def [string trim $def] + set value [string trim $value] + + #Trim out the data like: 0x0B00 # 4 F + set value [lindex [split $value] 0] + + puts $fd "#define GL_$def $value" + + #Save this association with the value. + set d $ar($mask) + dict set d $def $value + set ar($mask) $d + } + } else { + set state "" + } + } elseif {[string match "* enum:*" $line]} { + lassign [split $line] mask _ + puts $fd "\n/*[string trim $mask]*/" + set ar($mask) [dict create] + set state enum + } + } + + close $fd +} +main $::argc $::argv diff --git a/src/glx/apple/gen_exports.tcl b/src/glx/apple/gen_exports.tcl new file mode 100644 index 0000000000..acfe6e6a9e --- /dev/null +++ b/src/glx/apple/gen_exports.tcl @@ -0,0 +1,132 @@ +if 0 { + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +} + +package require Tcl 8.5 + +proc main {argc argv} { + if {2 != $argc} { + puts stderr "syntax is: [info script] serialized-array-file export.list" + return 1 + } + + set fd [open [lindex $argv 0] r] + array set api [read $fd] + close $fd + + #Start with 1.0 + set glxlist [list \ + glXChooseVisual glXCreateContext glXDestroyContext \ + glXMakeCurrent glXCopyContext glXSwapBuffers \ + glXCreateGLXPixmap glXDestroyGLXPixmap \ + glXQueryExtension glXQueryVersion \ + glXIsDirect glXGetConfig \ + glXGetCurrentContext glXGetCurrentDrawable \ + glXWaitGL glXWaitX glXUseXFont] + + #GLX 1.1 and later + lappend glxlist glXQueryExtensionsString glXQueryServerString \ + glXGetClientString + + #GLX 1.2 and later + lappend glxlist glXGetCurrentDisplay + + #GLX 1.3 and later + lappend glxlist glXChooseFBConfig glXGetFBConfigAttrib \ + glXGetFBConfigs glXGetVisualFromFBConfig \ + glXCreateWindow glXDestroyWindow \ + glXCreatePixmap glXDestroyPixmap \ + glXCreatePbuffer glXDestroyPbuffer \ + glXQueryDrawable glXCreateNewContext \ + glXMakeContextCurrent glXGetCurrentReadDrawable \ + glXQueryContext glXSelectEvent glXGetSelectedEvent + + #GLX 1.4 and later + lappend glxlist glXGetProcAddress + + #Extensions + lappend glxlist glXGetProcAddressARB + + #Old extensions we don't support and never really have, but need for + #symbol compatibility. See also: glx_empty.c + lappend glxlist glXSwapIntervalSGI glXSwapIntervalMESA \ + glXGetSwapIntervalMESA glXBeginFrameTrackingMESA \ + glXEndFrameTrackingMESA glXGetFrameUsageMESA \ + glXQueryFrameTrackingMESA glXGetVideoSyncSGI \ + glXWaitVideoSyncSGI glXJoinSwapGroupSGIX \ + glXBindSwapBarrierSGIX glXQueryMaxSwapBarriersSGIX \ + glXGetSyncValuesOML glXSwapBuffersMscOML \ + glXWaitForMscOML glXWaitForSbcOML \ + glXAllocateMemoryMESA glXFreeMemoryMESA \ + glXGetMemoryOffsetMESA glXReleaseBuffersMESA \ + glXCreateGLXPixmapMESA glXCopySubBufferMESA \ + glXQueryGLXPbufferSGIX glXCreateGLXPbufferSGIX \ + glXDestroyGLXPbufferSGIX glXSelectEventSGIX \ + glXGetSelectedEventSGIX + + #These are for GLX_SGIX_fbconfig, which isn't implemented, because + #we have the GLX 1.3 GLXFBConfig functions which are in the standard spec. + #It should be possible to support these to some extent. + #The old libGL somewhat supported the GLXFBConfigSGIX code, but lacked + #pbuffer, and pixmap support. + #We mainly just need these stubs for linking with apps, because for + #some reason the OpenGL site suggests using the latest glxext.h, + #and glxext.h defines all GLX extensions, which doesn't seem right for + #compile-time capability detection. + #See also: http://www.mesa3d.org/brianp/sig97/exten.htm#Compile + #which conflicts with: the ABI registry from what I saw on opengl.org. + #By disabling some of the #defines in glxext.h we break some software, + #and by enabling them without the symbols we break others (in Mesa). + #I think a lot of OpenGL-based programs have issues one way or another. + #It seems that even Mesa developers are confused on this issue, because + #Mesa-7.3/progs/xdemos/glxgears_fbconfig.c has comments about breakage + #in some comments. + lappend glxlist glXGetFBConfigAttribSGIX \ + glXChooseFBConfigSGIX \ + glXGetVisualFromFBConfigSGIX \ + glXCreateGLXPixmapWithConfigSGIX \ + glXCreateContextWithConfigSGIX \ + glXGetFBConfigFromVisualSGIX + + + set fd [open [lindex $argv 1] w] + + foreach f [lsort -dictionary [array names api]] { + puts $fd _gl$f + } + + foreach f [lsort -dictionary $glxlist] { + puts $fd _$f + } + + close $fd + + return 0 +} + +exit [main $::argc $::argv] \ No newline at end of file diff --git a/src/glx/apple/gen_funcs.tcl b/src/glx/apple/gen_funcs.tcl new file mode 100644 index 0000000000..ff314dc6a7 --- /dev/null +++ b/src/glx/apple/gen_funcs.tcl @@ -0,0 +1,635 @@ +package require Tcl 8.5 + +#input is specs/gl.spec + +set license { +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +} + + +proc extension name { + global extensions + + set extensions($name) 1 +} + +proc alias {from to} { + global aliases + + set aliases($from) $to +} + +proc promoted name { + global promoted + + set promoted($name) 1 +} + +proc noop name { + global noop + + set noop($name) 1 +} + +set dir [file dirname [info script]] + +source [file join $dir GL_extensions] +source [file join $dir GL_aliases] +source [file join $dir GL_promoted] +source [file join $dir GL_noop] + +proc is-extension-supported? name { + global extensions + + return [info exists extensions($name)] +} + +#This is going to need to be updated for OpenGL >= 2.1 in SnowLeopard. +array set typemap { + void void + List GLuint + Mode GLenum + CheckedFloat32 GLfloat + CheckedInt32 GLint + Float32 GLfloat + Int32 GLint + Int64 GLint64EXT + UInt64 GLuint64EXT + Float64 GLdouble + ListMode GLuint + SizeI GLsizei + ListNameType GLenum + Void void + BeginMode GLenum + CoordF GLfloat + UInt8 GLubyte + Boolean GLboolean + ColorIndexValueD GLdouble + ColorB GLbyte + ColorD GLdouble + ColorF GLfloat + ColorI GLint + ColorS GLshort + ColorUB GLubyte + ColorUI GLuint + ColorUS GLushort + ColorIndexValueF GLfloat + ColorIndexValueI GLint + ColorIndexValueS GLshort + Int8 GLbyte + CoordD GLdouble + Int16 GLshort + CoordI GLint + CoordS GLshort + ClipPlaneName GLenum + MaterialFace GLenum + ColorMaterialParameter GLenum + CullFaceMode GLenum + FogParameter GLenum + FrontFaceDirection GLenum + HintTarget GLenum + HintMode GLenum + LightName GLenum + LightParameter GLenum + LightModelParameter GLenum + LineStipple GLushort + MaterialParameter GLenum + PolygonMode GLenum + WinCoord GLint + ShadingModel GLenum + TextureTarget GLenum + TextureParameterName GLenum + TextureComponentCount GLenum + PixelFormat GLenum + PixelType GLenum + TextureEnvTarget GLenum + TextureEnvParameter GLenum + TextureCoordName GLenum + TextureGenParameter GLenum + FeedbackType GLenum + FeedbackElement GLfloat + SelectName GLuint + RenderingMode GLenum + DrawBufferMode GLenum + ClearBufferMask GLbitfield + MaskedColorIndexValueF GLfloat + ClampedColorF GLclampf + StencilValue GLint + ClampedFloat64 GLclampd + MaskedStencilValue GLuint + MaskedColorIndexValueI GLuint + AccumOp GLenum + EnableCap GLenum + AttribMask GLbitfield + MapTarget GLenum + MeshMode1 GLenum + MeshMode2 GLenum + AlphaFunction GLenum + ClampedFloat32 GLclampf + BlendingFactorSrc GLenum + BlendingFactorDest GLenum + LogicOp GLenum + StencilFunction GLenum + ClampedStencilValue GLint + MaskedStencilValue GLuint + StencilOp GLenum + DepthFunction GLenum + PixelTransferParameter GLenum + PixelStoreParameter GLenum + PixelMap GLenum + UInt32 GLuint + UInt16 GLushort + ReadBufferMode GLenum + PixelCopyType GLenum + GetPName GLenum + ErrorCode GLenum + GetMapQuery GLenum + String "const GLubyte *" + StringName GLenum + GetTextureParameter GLenum + MatrixMode GLenum + ColorPointerType GLenum + DrawElementsType GLenum + GetPointervPName GLenum + VoidPointer "void *" + IndexPointerType GLenum + InterleavedArrayFormat GLenum + NormalPointerType GLenum + TexCoordPointerType GLenum + VertexPointerType GLenum + PixelInternalFormat GLenum + Texture GLuint + ColorIndexValueUB GLubyte + ClientAttribMask GLbitfield + BlendEquationMode GLenum + ColorTableTarget GLenum + ColorTableParameterPName GLenum + GetColorTableParameterPName GLenum + ConvolutionTarget GLenum + ConvolutionParameter GLenum + GetConvolutionParameterPName GLenum + SeparableTarget GLenum + HistogramTarget GLenum + GetHistogramParameterPName GLenum + MinmaxTarget GLenum + GetMinmaxParameterPName GLenum + TextureTarget GLenum + TextureUnit GLenum + CompressedTextureARB "void" + BlendFuncSeparateParameterEXT GLenum + FogPointerTypeEXT GLenum + PointParameterNameARB GLenum + GLenum GLenum + BufferTargetARB GLenum + ConstUInt32 "const GLuint" + BufferSize GLsizeiptr + ConstVoid "const GLvoid" + BufferUsageARB GLenum + BufferOffset GLintptr + BufferAccessARB GLenum + BufferPNameARB GLenum + BufferPointerNameARB GLenum + BlendEquationModeEXT GLenum + DrawBufferModeATI GLenum + StencilFaceDirection GLenum + Char GLchar + VertexAttribPropertyARB GLenum + VertexAttribPointerPropertyARB GLenum + CharPointer "GLchar *" + VertexAttribPointerTypeARB GLenum + ClampColorTargetARB unknown3.0 + ClampColorModeARB unknown3.0 + VertexAttribEnum GLenum + VertexAttribEnumNV GLenum + DrawBufferName unknown3.0 + WeightPointerTypeARB GLenum + ProgramTargetARB GLenum + ProgramFormatARB GLenum + ProgramStringPropertyARB GLenum + BufferSizeARB GLsizeiptrARB + BufferOffsetARB GLintptrARB + handleARB GLhandleARB + charPointerARB "GLcharARB *" + charARB GLcharARB + RenderbufferTarget GLenum + FramebufferTarget GLenum + FramebufferAttachment GLenum + BinormalPointerTypeEXT GLenum + HintTargetPGI GLenum + ProgramParameterPName GLenum + ProgramPropertyARB GLenum + ElementPointerTypeATI GLenum + FenceNV GLuint + FenceConditionNV GLenum + ObjectTypeAPPLE GLenum + VertexArrayPNameAPPLE GLenum + SeparableTargetEXT GLenum + ColorTableTargetSGI GLenum + ColorTableParameterPNameSGI GLenum + CombinerOutputNV GLenum + CombinerStageNV GLenum + CombinerPortionNV GLenum + CombinerRegisterNV GLenum + CombinerScaleNV GLenum + CombinerBiasNV GLenum + CombinerComponentUsageNV GLenum + CombinerMappingNV GLenum + CombinerParameterNV GLenum + CombinerVariableNV GLenum + ConvolutionParameterEXT GLenum + ConvolutionTargetEXT GLenum + CullParameterEXT GLenum + FenceParameterNameNV GLenum + FragmentLightModelParameterSGIX GLenum + FragmentLightNameSGIX GLenum + FragmentLightParameterSGIX GLenum + GetColorTableParameterPNameSGI GLenum + GetHistogramParameterPNameEXT GLenum + GetMinmaxParameterPNameEXT GLenum + HistogramTargetEXT GLenum + LightEnvParameterSGIX GLenum + MinmaxTargetEXT GLenum + PNTrianglesPNameATI GLenum + ProgramCharacterNV GLubyte + SamplePatternEXT GLenum + SamplePatternSGIS GLenum + TypeEnum GLenum +} + +proc psplit s { + set r [list] + set token "" + + foreach c [split $s ""] { + if {[string is space -strict $c]} { + if {[string length $token]} { + lappend r $token + } + set token "" + } else { + append token $c + } + } + + if {[string length $token]} { + lappend r $token + } + + return $r +} + +proc is-extension? str { + #Check if the trailing name of the function is NV, or EXT, and so on. + + if {[string is upper [string index $str end]] + && [string is upper [string index $str end-1]]} { + return 1 + } + + return 0 +} + + +proc parse {data arvar} { + upvar 1 $arvar ar + + set state "" + set name "" + + foreach line [split $data \n] { + if {"attr" eq $state} { + if {[string match "\t*" $line]} { + set plist [psplit [lindex [split $line "#"] 0]] + #puts PLIST:$plist + set master $ar($name) + set param [dict get $master parameters] + + switch -- [llength $plist] { + 1 { + dict set master [lindex $plist 0] "" + } + + 2 { + #standard key, value pair + set key [lindex $plist 0] + set value [lindex $plist 1] + + dict set master $key $value + } + + default { + set key [lindex $plist 0] + + #puts PLIST:$plist + + if {"param" eq $key} { + lappend param [list [lindex $plist 1] [lindex $plist 2] [lindex $plist 3] [lindex $plist 4]] + } else { + dict set master $key [lrange $plist 1 end] + } + } + } + + dict set master parameters $param + + set ar($name) $master + } else { + set state "" + } + } elseif {[regexp {^([A-Z_a-z0-9]+)\((.*)\)\S*} $line all name argv] > 0} { + #puts "MATCH:$name ARGV:$argv" + + #Trim the spaces in the elements. + set newargv [list] + foreach a [split $argv ,] { + lappend newargv [string trim $a] + } + + + set d [dict create name $name arguments $newargv \ + parameters [dict create]] + set ar($name) $d + set state attr + } + } +} + +#This returns true if the category is valid for an extension. +proc is-valid-category? c { + set clist [list display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform VERSION_1_0 VERSION_1_0_DEPRECATED VERSION_1_1 VERSION_1_1_DEPRECATED VERSION_1_2 VERSION_1_2_DEPRECATED VERSION_1_3 VERSION_1_3_DEPRECATED VERSION_1_4 VERSION_1_4_DEPRECATED VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 VERSION_3_0_DEPRECATED VERSION_3_1 VERSION_3_2] + + set result [expr {$c in $clist}] + + + if {!$result} { + set result [is-extension-supported? $c] + } + + return $result +} + +proc translate-parameters {func parameters} { + global typemap + + set newparams [list] + + foreach p $parameters { + set var [lindex $p 0] + + set ptype [lindex $p 1] + + if {![info exists typemap($ptype)]} { + set ::missingTypes($ptype) $func + continue + } + + set type $typemap($ptype) + + #In the gl.spec file is MultiDrawArrays first and count + #are really 'in' so we make them const. + #The gl.spec notes this problem. + if {("MultiDrawArrays" eq $func) && ("first" eq $var)} { + set final_type "const $type *" + } elseif {("MultiDrawArrays" eq $func) && ("count" eq $var)} { + set final_type "const $type *" + } elseif {"array" eq [lindex $p 3]} { + if {"in" eq [lindex $p 2]} { + set final_type "const $type *" + } else { + set final_type "$type *" + } + } else { + set final_type $type + } + + lappend newparams [list $final_type $var] + } + + return $newparams +} + +proc api-new-entry {info func} { + global typemap + + set master [dict create] + set rettype [dict get $info return] + + if {![info exists typemap($rettype)]} { + set ::missingTypes($rettype) $func + } else { + dict set master return $typemap($rettype) + } + + dict set master parameters [translate-parameters $func \ + [dict get $info parameters]] + + return $master +} + +proc main {argc argv} { + global extensions typemap aliases promoted noop + + set fd [open [lindex $argv 0] r] + set data [read $fd] + close $fd + + array set ar {} + + parse $data ar + + array set newapi {} + array set missingTypes {} + + foreach {key value} [array get ar] { + puts "KEY:$key VALUE:$value" + + set category [dict get $value category] + + #Invalidate any of the extensions and things not in the spec we support. + set valid [is-valid-category? $category] + puts VALID:$valid + + if {!$valid} { + continue + } + + puts "VALID:$key" + + if {"BlitFramebuffer" eq $key} { + #This was promoted to an ARB extension after Leopard it seems. + set key BlitFramebufferEXT + } + + if {"ARB_framebuffer_object" eq $category} { + #This wasn't an ARB extension in Leopard either. + if {![string match *EXT $key]} { + append key EXT + } + } + + set newapi($key) [api-new-entry $value $key] + } + + #Now iterate and support as many aliases as we can for promoted functions + #based on if the newapi contains the function. + foreach {func value} [array get ar] { + if {![info exists promoted([dict get $value category])]} { + continue + } + + if {[dict exists $value alias]} { + #We have an alias. Let's see if we have the implementation. + set alias [dict get $value alias] + + if {[info exists newapi($alias)] && ![info exists newapi($func)]} { + #We have an implementing function available. + puts "HAVE:$key ALIAS:$alias" + + set master [api-new-entry $value $func] + dict set master alias_for $alias + set newapi($func) $master + } + } + } + + parray noop + + #Now handle the no-op compatibility categories. + foreach {func value} [array get ar] { + if {[info exists noop([dict get $value category])]} { + if {[info exists newapi($func)]} { + puts stderr "$func shouldn't be a noop" + exit 1 + } + + set master [api-new-entry $value $func] + dict set master noop 1 + set newapi($func) $master + } + } + + + + parray newapi + + if {[array size ::missingTypes]} { + parray ::missingTypes + return 1 + } + + foreach {from to} [array get aliases] { + set d $newapi($to) + dict set d alias_for $to + set newapi($from) $d + } + + #Iterate the nm output and set each symbol in an associative array. + array set validapi {} + + foreach line [split [exec nm -j -g /System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib] \n] { + set fn [string trim $line] + + #Only match the _gl functions. + if {[string match _gl* $fn]} { + set finalfn [string range $fn 3 end] + puts FINALFN:$finalfn + set validapi($finalfn) $finalfn + } + } + + puts "Correcting the API functions to match the OpenGL framework." + #parray validapi + + #Iterate the newapi and unset any members that the + #libGL.dylib doesn't support, assuming they aren't no-ops. + foreach fn [array names newapi] { + if {![info exists validapi($fn)]} { + puts "WARNING: libGL.dylib lacks support for: $fn" + + if {[dict exists $newapi($fn) noop] + && [dict get $newapi($fn) noop]} { + #This is no-op, so we should skip it. + continue + } + + #Is the function an alias for another in libGL? + if {[dict exists $newapi($fn) alias_for]} { + set alias [dict get $newapi($fn) alias_for] + + if {![info exists validapi($alias)]} { + puts "WARNING: alias function doesn't exist for $fn." + puts "The alias is $alias." + puts "unsetting $fn" + unset newapi($fn) + } + } else { + puts "unsetting $fn" + unset newapi($fn) + } + } + } + + + #Now print a warning about any symbols that libGL supports that we don't. + foreach fn [array names validapi] { + if {![info exists newapi($fn)]} { + puts "AppleSGLX is missing $fn" + } + } + + puts "NOW GENERATING:[lindex $::argv 1]" + set fd [open [lindex $::argv 1] w] + + set sorted [lsort -dictionary [array names newapi]] + + foreach f $sorted { + set attr $newapi($f) + set pstr "" + foreach p [dict get $attr parameters] { + append pstr "[lindex $p 0] [lindex $p 1], " + } + set pstr [string trimright $pstr ", "] + puts $fd "[dict get $attr return] gl[set f]($pstr); " + } + + close $fd + + if {$::argc == 3} { + puts "NOW GENERATING:[lindex $::argv 2]" + #Dump the array as a serialized list. + set fd [open [lindex $::argv 2] w] + puts $fd [array get newapi] + close $fd + } + + return 0 +} +exit [main $::argc $::argv] + diff --git a/src/glx/apple/gen_gl_h.sh b/src/glx/apple/gen_gl_h.sh new file mode 100644 index 0000000000..f10ddd0bfc --- /dev/null +++ b/src/glx/apple/gen_gl_h.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +INFILE=$1 +OUTFILE=$2 + +generate_macros() { + grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl{,ext}.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"' +} + +generate_function_pointers() { + { + echo "#define GL_GLEXT_FUNCTION_POINTERS 1" + echo "#define GL_GLEXT_LEGACY 1" + generate_macros + echo '#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h"' + } | ${CC:-gcc} -E - | grep typedef.*PFN +} + +cat ${INFILE} | while IFS= read LINE ; do + case $LINE in + "@CGL_MESA_COMPAT_MACROS@") + generate_macros + ;; + "@CGL_MESA_FUNCTION_POINTERS@") + if ! grep -q GL_GLEXT_PROTOTYPES /System/Library/Frameworks/OpenGL.framework/Headers/gl.h ; then + generate_function_pointers + fi + ;; + *) + printf "${LINE}\n" + ;; + esac +done > ${OUTFILE} diff --git a/src/glx/apple/gen_types.tcl b/src/glx/apple/gen_types.tcl new file mode 100644 index 0000000000..ed20bdaec0 --- /dev/null +++ b/src/glx/apple/gen_types.tcl @@ -0,0 +1,32 @@ + +proc main {argc argv} { + if {1 != $argc} { + puts stderr "syntax is: [info script] output.h" + exit 1 + } + + set fd [open [lindex $argv 0] w] + puts $fd " +/*OpenGL primitive typedefs*/ +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef signed char GLbyte; +typedef short GLshort; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLubyte; +typedef unsigned short GLushort; +typedef unsigned int GLuint; +typedef float GLfloat; +typedef float GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void GLvoid; + +typedef long GLintptr; +typedef long GLsizeiptr; +" + +} +main $::argc $::argv diff --git a/src/glx/apple/glx_empty.c b/src/glx/apple/glx_empty.c new file mode 100644 index 0000000000..44c5a256f2 --- /dev/null +++ b/src/glx/apple/glx_empty.c @@ -0,0 +1,375 @@ +#include "glxclient.h" +#include "glxextensions.h" +#include "glcontextmodes.h" + +/* +** GLX_SGI_swap_control +*/ +int +glXSwapIntervalSGI(int interval) +{ + (void) interval; + return 0; +} + + +/* +** GLX_MESA_swap_control +*/ +int +glXSwapIntervalMESA(unsigned int interval) +{ + (void) interval; + return GLX_BAD_CONTEXT; +} + + +int +glXGetSwapIntervalMESA(void) +{ + return 0; +} + + +/* +** GLX_MESA_swap_frame_usage +*/ + +int +glXBeginFrameTrackingMESA(Display * dpy, GLXDrawable drawable) +{ + int status = GLX_BAD_CONTEXT; + (void) dpy; + (void) drawable; + return status; +} + + +int +glXEndFrameTrackingMESA(Display * dpy, GLXDrawable drawable) +{ + int status = GLX_BAD_CONTEXT; + (void) dpy; + (void) drawable; + return status; +} + + +int +glXGetFrameUsageMESA(Display * dpy, GLXDrawable drawable, GLfloat * usage) +{ + int status = GLX_BAD_CONTEXT; + (void) dpy; + (void) drawable; + (void) usage; + return status; +} + +int +glXQueryFrameTrackingMESA(Display * dpy, GLXDrawable drawable, + int64_t * sbc, int64_t * missedFrames, + GLfloat * lastMissedUsage) +{ + int status = GLX_BAD_CONTEXT; + (void) dpy; + (void) drawable; + (void) sbc; + (void) missedFrames; + (void) lastMissedUsage; + return status; +} + +/* +** GLX_SGI_video_sync +*/ +int +glXGetVideoSyncSGI(unsigned int *count) +{ + (void) count; + return GLX_BAD_CONTEXT; +} + +int +glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) +{ + (void) count; + return GLX_BAD_CONTEXT; +} + + +/* +** GLX_SGIX_swap_group +*/ +void +glXJoinSwapGroupSGIX(Display * dpy, GLXDrawable drawable, GLXDrawable member) +{ + (void) dpy; + (void) drawable; + (void) member; +} + + +/* +** GLX_SGIX_swap_barrier +*/ +void +glXBindSwapBarrierSGIX(Display * dpy, GLXDrawable drawable, int barrier) +{ + (void) dpy; + (void) drawable; + (void) barrier; +} + +Bool +glXQueryMaxSwapBarriersSGIX(Display * dpy, int screen, int *max) +{ + (void) dpy; + (void) screen; + (void) max; + return False; +} + + +/* +** GLX_OML_sync_control +*/ +Bool +glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, + int64_t * ust, int64_t * msc, int64_t * sbc) +{ + (void) dpy; + (void) drawable; + (void) ust; + (void) msc; + (void) sbc; + return False; +} + +int64_t +glXSwapBuffersMscOML(Display * dpy, GLXDrawable drawable, + int64_t target_msc, int64_t divisor, int64_t remainder) +{ + (void) dpy; + (void) drawable; + (void) target_msc; + (void) divisor; + (void) remainder; + return 0; +} + + +Bool +glXWaitForMscOML(Display * dpy, GLXDrawable drawable, + int64_t target_msc, int64_t divisor, + int64_t remainder, int64_t * ust, + int64_t * msc, int64_t * sbc) +{ + (void) dpy; + (void) drawable; + (void) target_msc; + (void) divisor; + (void) remainder; + (void) ust; + (void) msc; + (void) sbc; + return False; +} + + +Bool +glXWaitForSbcOML(Display * dpy, GLXDrawable drawable, + int64_t target_sbc, int64_t * ust, + int64_t * msc, int64_t * sbc) +{ + (void) dpy; + (void) drawable; + (void) target_sbc; + (void) ust; + (void) msc; + (void) sbc; + return False; +} + + +/** + * GLX_MESA_allocate_memory + */ +/*@{*/ + +PUBLIC void * +glXAllocateMemoryMESA(Display * dpy, int scrn, + size_t size, float readFreq, + float writeFreq, float priority) +{ + (void) dpy; + (void) scrn; + (void) size; + (void) readFreq; + (void) writeFreq; + (void) priority; + return NULL; +} + + +PUBLIC void +glXFreeMemoryMESA(Display * dpy, int scrn, void *pointer) +{ +#ifdef __DRI_ALLOCATE + __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, scrn); + + if (psc && psc->allocate) + (*psc->allocate->freeMemory) (psc->__driScreen, pointer); + +#else + (void) dpy; + (void) scrn; + (void) pointer; +#endif /* __DRI_ALLOCATE */ +} + + +PUBLIC GLuint +glXGetMemoryOffsetMESA(Display * dpy, int scrn, const void *pointer) +{ + (void) dpy; + (void) scrn; + (void) pointer; + return ~0L; +} + +Bool +glXReleaseBuffersMESA(Display * dpy, GLXDrawable d) +{ + (void) dpy; + (void) d; + return False; +} + + +PUBLIC GLXPixmap +glXCreateGLXPixmapMESA(Display * dpy, XVisualInfo * visual, + Pixmap pixmap, Colormap cmap) +{ + (void) dpy; + (void) visual; + (void) pixmap; + (void) cmap; + return 0; +} + + +/** + * GLX_MESA_copy_sub_buffer + */ +void +glXCopySubBufferMESA(Display * dpy, GLXDrawable drawable, + int x, int y, int width, int height) +{ + (void) dpy; + (void) drawable; + (void) x; + (void) y; + (void) width; + (void) height; +} + + +PUBLIC int +glXQueryGLXPbufferSGIX(Display * dpy, GLXDrawable drawable, + int attribute, unsigned int *value) +{ + (void) dpy; + (void) drawable; + (void) attribute; + (void) value; + return 0; +} + +PUBLIC GLXDrawable +glXCreateGLXPbufferSGIX(Display * dpy, GLXFBConfig config, + unsigned int width, unsigned int height, + int *attrib_list) +{ + (void) dpy; + (void) config; + (void) width; + (void) height; + (void) attrib_list; + return None; +} + +#if 0 +/* GLX_SGIX_fbconfig */ +PUBLIC int +glXGetFBConfigAttribSGIX(Display * dpy, void *config, int a, int *b) +{ + (void) dpy; + (void) config; + (void) a; + (void) b; + return 0; +} + +PUBLIC void * +glXChooseFBConfigSGIX(Display * dpy, int a, int *b, int *c) +{ + (void) dpy; + (void) a; + (void) b; + (void) c; + return NULL; +} + +PUBLIC GLXPixmap +glXCreateGLXPixmapWithConfigSGIX(Display * dpy, void *config, Pixmap p) +{ + (void) dpy; + (void) config; + (void) p; + return None; +} + +PUBLIC GLXContext +glXCreateContextWithConfigSGIX(Display * dpy, void *config, int a, + GLXContext b, Bool c) +{ + (void) dpy; + (void) config; + (void) a; + (void) b; + (void) c; + return NULL; +} + +PUBLIC XVisualInfo * +glXGetVisualFromFBConfigSGIX(Display * dpy, void *config) +{ + (void) dpy; + (void) config; + return NULL; +} + +PUBLIC void * +glXGetFBConfigFromVisualSGIX(Display * dpy, XVisualInfo * visinfo) +{ + (void) dpy; + (void) visinfo; + return NULL; +} +#endif + + +PUBLIC +GLX_ALIAS_VOID(glXDestroyGLXPbufferSGIX, + (Display * dpy, GLXDrawable pbuf), + (dpy, pbuf), glXDestroyPbuffer) + + PUBLIC GLX_ALIAS_VOID(glXSelectEventSGIX, + (Display * dpy, GLXDrawable drawable, + unsigned long mask), (dpy, drawable, mask), + glXSelectEvent) + + PUBLIC GLX_ALIAS_VOID(glXGetSelectedEventSGIX, + (Display * dpy, GLXDrawable drawable, + unsigned long *mask), (dpy, drawable, mask), + glXGetSelectedEvent) diff --git a/src/glx/apple/glx_error.c b/src/glx/apple/glx_error.c new file mode 100644 index 0000000000..282f7ae40b --- /dev/null +++ b/src/glx/apple/glx_error.c @@ -0,0 +1,65 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#include +#include +#include +#include +#include "glxclient.h" +#include "glx_error.h" + +extern XExtDisplayInfo *__glXFindDisplay(Display * dpy); + +void +__glXSendError(Display * dpy, int errorCode, unsigned long resourceID, + unsigned long minorCode, bool coreX11error) +{ + XExtDisplayInfo *info = __glXFindDisplay(dpy); + GLXContext gc = __glXGetCurrentContext(); + xError error; + + LockDisplay(dpy); + + error.type = X_Error; + + if (coreX11error) { + error.errorCode = errorCode; + } + else { + error.errorCode = info->codes->first_error + errorCode; + } + + error.sequenceNumber = dpy->request; + error.resourceID = resourceID; + error.minorCode = minorCode; + error.majorCode = gc ? gc->majorOpcode : 0; + + _XError(dpy, &error); + + UnlockDisplay(dpy); +} diff --git a/src/glx/apple/glx_error.h b/src/glx/apple/glx_error.h new file mode 100644 index 0000000000..6ba2f854db --- /dev/null +++ b/src/glx/apple/glx_error.h @@ -0,0 +1,33 @@ +/* + Copyright (c) 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ +#include +#include + +void __glXSendError(Display * dpy, int errorCode, unsigned long resourceID, + unsigned long minorCode, bool coreX11error); diff --git a/src/glx/apple/glxreply.c b/src/glx/apple/glxreply.c new file mode 100644 index 0000000000..7280bc9715 --- /dev/null +++ b/src/glx/apple/glxreply.c @@ -0,0 +1,134 @@ +/* + * (C) Copyright Apple Inc. 2008 + * (C) Copyright IBM Corporation 2004, 2005 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * IBM, + * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "glxclient.h" +#include + +CARD32 +__glXReadReply(Display * dpy, size_t size, void *dest, + GLboolean reply_is_always_array) +{ + xGLXSingleReply reply; + + (void) _XReply(dpy, (xReply *) & reply, 0, False); + if (size != 0) { + if ((reply.length > 0) || reply_is_always_array) { + const GLint bytes = (reply_is_always_array) + ? (4 * reply.length) : (reply.size * size); + const GLint extra = 4 - (bytes & 3); + + _XRead(dpy, dest, bytes); + if (extra < 4) { + _XEatData(dpy, extra); + } + } + else { + (void) memcpy(dest, &(reply.pad3), size); + } + } + + return reply.retval; +} + +void +__glXReadPixelReply(Display * dpy, __GLXcontext * gc, unsigned max_dim, + GLint width, GLint height, GLint depth, GLenum format, + GLenum type, void *dest, GLboolean dimensions_in_reply) +{ + xGLXSingleReply reply; + GLint size; + + (void) _XReply(dpy, (xReply *) & reply, 0, False); + + if (dimensions_in_reply) { + width = reply.pad3; + height = reply.pad4; + depth = reply.pad5; + + if ((height == 0) || (max_dim < 2)) { + height = 1; + } + if ((depth == 0) || (max_dim < 3)) { + depth = 1; + } + } + + size = reply.length * 4; + if (size != 0) { + void *buf = Xmalloc(size); + + if (buf == NULL) { + _XEatData(dpy, size); + __glXSetError(gc, GL_OUT_OF_MEMORY); + } + else { + const GLint extra = 4 - (size & 3); + + _XRead(dpy, buf, size); + if (extra < 4) { + _XEatData(dpy, extra); + } + + __glEmptyImage(gc, 3, width, height, depth, format, type, buf, dest); + Xfree(buf); + } + } +} + +#if 0 +GLubyte * +__glXSetupSingleRequest(__GLXcontext * gc, GLint sop, GLint cmdlen) +{ + xGLXSingleReq *req; + Display *const dpy = gc->currentDpy; + + (void) __glXFlushRenderBuffer(gc, gc->pc); + LockDisplay(dpy); + GetReqExtra(GLXSingle, cmdlen, req); + req->reqType = gc->majorOpcode; + req->contextTag = gc->currentContextTag; + req->glxCode = sop; + return (GLubyte *) (req) + sz_xGLXSingleReq; +} +#endif + +GLubyte * +__glXSetupVendorRequest(__GLXcontext * gc, GLint code, GLint vop, + GLint cmdlen) +{ + xGLXVendorPrivateReq *req; + Display *const dpy = gc->currentDpy; + + (void) __glXFlushRenderBuffer(gc, gc->pc); + LockDisplay(dpy); + GetReqExtra(GLXVendorPrivate, cmdlen, req); + req->reqType = gc->majorOpcode; + req->glxCode = code; + req->vendorCode = vop; + req->contextTag = gc->currentContextTag; + return (GLubyte *) (req) + sz_xGLXVendorPrivateReq; +} diff --git a/src/glx/apple/include/GL/gl.h.template b/src/glx/apple/include/GL/gl.h.template new file mode 100644 index 0000000000..72169f98c3 --- /dev/null +++ b/src/glx/apple/include/GL/gl.h.template @@ -0,0 +1,130 @@ +/* + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * Copyright (C) 2009 Apple Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef __X_GL_H +#define __X_GL_H + +/* The following macros exist to address conflicts between the names given to + * function pointers by the MESA API and OpenGL.framework's API. + */ +@CGL_MESA_COMPAT_MACROS@ + +/* On SL, we want to use OpelGL.framework's headers to get both prototypes and + * function pointers (like Mesa's API), but on Leo and before, OpenGL.framework + * can't give us both. + */ + +#ifdef GL_GLEXT_FUNCTION_POINTERS +#define _GL_GLEXT_FUNCTION_POINTERS GL_GLEXT_FUNCTION_POINTERS +#undef GL_GLEXT_FUNCTION_POINTERS +#endif + +#ifdef GL_GLEXT_PROTOTYPES +#define _GL_GLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES +#else +#define GL_GLEXT_PROTOTYPES 1 +#endif + +/* Our glext.h is based on a version from the registry that is newer. */ +#ifdef GL_GLEXT_LEGACY +#define _GL_GLEXT_LEGACY GL_GLEXT_LEGACY +#else +#define GL_GLEXT_LEGACY 1 +#endif + +#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h" + +/* These are not set by the system gl.h */ +#define GL_VERSION_1_2_DEPRECATED 1 +#define GL_VERSION_1_3_DEPRECATED 1 +#define GL_VERSION_1_4_DEPRECATED 1 + +/* Restore our GLEXT-fu */ +#ifdef _GL_GLEXT_FUNCTION_POINTERS +#define GL_GLEXT_FUNCTION_POINTERS _GL_GLEXT_FUNCTION_POINTERS +#undef _GL_GLEXT_FUNCTION_POINTERS +#endif + +#ifdef _GL_GLEXT_PROTOTYPES +#undef _GL_GLEXT_PROTOTYPES +#else +#undef GL_GLEXT_PROTOTYPES +#endif + +#ifdef _GL_GLEXT_LEGACY +#undef _GL_GLEXT_LEGACY +#else +#undef GL_GLEXT_LEGACY +#endif + +@CGL_MESA_FUNCTION_POINTERS@ + +#ifndef GL_GLEXT_LEGACY +#include +#endif + +/* + * This is needed for building apple_glx_pbuffer.c, the latest + * glext.h from the registry lacks it, so it's from the Leopard glext.h: + */ +#ifndef GL_TEXTURE_RECTANGLE_EXT +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#endif + +/* This is needed for building the X server: */ +/* + * GL_MESA_packed_depth_stencil + */ +#ifndef GL_MESA_packed_depth_stencil +#define GL_MESA_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_MESA 0x8750 +#define GL_UNSIGNED_INT_24_8_MESA 0x8751 +#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 +#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 +#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 + +#endif /* GL_MESA_packed_depth_stencil */ + +/* Various other OS projects expect to get these macros from Mesa's gl.h */ +#ifndef GLAPI +#define GLAPI extern +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef APIENTRY +#define APIENTRY GLAPIENTRY +#endif + +/* "P" suffix to be used for a pointer to a function */ +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRYP +#define GLAPIENTRYP GLAPIENTRY * +#endif + +#endif /*__X_GL_H*/ diff --git a/src/glx/apple/include/GL/gl.hMESA b/src/glx/apple/include/GL/gl.hMESA new file mode 100644 index 0000000000..3891a71875 --- /dev/null +++ b/src/glx/apple/include/GL/gl.hMESA @@ -0,0 +1,2285 @@ +/* + * Mesa 3-D graphics library + * Version: 6.5.1 + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef __gl_h_ +#define __gl_h_ + +#if defined(USE_MGL_NAMESPACE) +#include "gl_mangle.h" +#endif + + +/********************************************************************** + * Begin system-specific stuff. Do not do any of this when building + * for SciTech SNAP, as this is all done before this header file is + * included. + */ +#if !defined(__SCITECH_SNAP__) + +#if defined(__BEOS__) +#include /* to get some BeOS-isms */ +#endif + +#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) +#define OPENSTEP +#endif + +#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) +#define __WIN32__ +#endif + +#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# define GLAPI __declspec(dllexport) +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# define GLAPI __declspec(dllimport) +# else /* for use with static link lib build of Win32 edition only */ +# define GLAPI extern +# endif /* _STATIC_MESA support */ +# define GLAPIENTRY __stdcall +#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ +# define GLAPI extern +# define GLAPIENTRY __stdcall +#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 +# define GLAPI __attribute__((visibility("default"))) +# define GLAPIENTRY +#endif /* WIN32 && !CYGWIN */ + +#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) +# define PRAGMA_EXPORT_SUPPORTED 1 +#endif + +/* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by + * including only glut.h, since glut.h depends on windows.h. + * Applications needing to include windows.h with parms other + * than "WIN32_LEAN_AND_MEAN" may include windows.h before + * glut.h or gl.h. + */ +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \ + && !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__) +#include +#endif + +#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +#pragma import on +#endif + +#ifndef GLAPI +#define GLAPI extern +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef APIENTRY +#define APIENTRY GLAPIENTRY +#endif + +/* "P" suffix to be used for a pointer to a function */ +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRYP +#define GLAPIENTRYP GLAPIENTRY * +#endif + +#ifdef CENTERLINE_CLPP +#define signed +#endif + +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export on +#endif + +#endif /* !__SCITECH_SNAP__ */ +/* + * End system-specific stuff. + **********************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_ARB_imaging 1 + + +/* + * Datatypes + */ +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef signed char GLbyte; /* 1-byte signed */ +typedef short GLshort; /* 2-byte signed */ +typedef int GLint; /* 4-byte signed */ +typedef unsigned char GLubyte; /* 1-byte unsigned */ +typedef unsigned short GLushort; /* 2-byte unsigned */ +typedef unsigned int GLuint; /* 4-byte unsigned */ +typedef int GLsizei; /* 4-byte signed */ +typedef float GLfloat; /* single precision float */ +typedef float GLclampf; /* single precision float in [0,1] */ +typedef double GLdouble; /* double precision float */ +typedef double GLclampd; /* double precision float in [0,1] */ + + + +/* + * Constants + */ + +/* Boolean values */ +#define GL_FALSE 0x0 +#define GL_TRUE 0x1 + +/* Data types */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* Primitives */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* Vertex Arrays */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* Matrix Mode */ +#define GL_MATRIX_MODE 0x0BA0 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* Points */ +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 + +/* Lines */ +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 + +/* Polygons */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* Display Lists */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_LIST_MODE 0x0B30 + +/* Depth buffer */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_BITS 0x0D56 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_COMPONENT 0x1902 + +/* Lighting */ +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_SHININESS 0x1601 +#define GL_EMISSION 0x1600 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_SHADE_MODEL 0x0B54 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_NORMALIZE 0x0BA1 + +/* User clipping planes */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* Accumulation buffer */ +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_ACCUM 0x0100 +#define GL_ADD 0x0104 +#define GL_LOAD 0x0101 +#define GL_MULT 0x0103 +#define GL_RETURN 0x0102 + +/* Alpha testing */ +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_ALPHA_TEST_FUNC 0x0BC1 + +/* Blending */ +#define GL_BLEND 0x0BE2 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND_DST 0x0BE0 +#define GL_ZERO 0x0 +#define GL_ONE 0x1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 + +/* Render Mode */ +#define GL_FEEDBACK 0x1C01 +#define GL_RENDER 0x1C00 +#define GL_SELECT 0x1C02 + +/* Feedback */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 + +/* Selection */ +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 + +/* Fog */ +#define GL_FOG 0x0B60 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_COLOR 0x0B66 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_LINEAR 0x2601 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* Logic Ops */ +#define GL_LOGIC_OP 0x0BF1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_CLEAR 0x1500 +#define GL_SET 0x150F +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_NOOP 0x1505 +#define GL_INVERT 0x150A +#define GL_AND 0x1501 +#define GL_NAND 0x150E +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_XOR 0x1506 +#define GL_EQUIV 0x1509 +#define GL_AND_REVERSE 0x1502 +#define GL_AND_INVERTED 0x1504 +#define GL_OR_REVERSE 0x150B +#define GL_OR_INVERTED 0x150D + +/* Stencil */ +#define GL_STENCIL_BITS 0x0D57 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STENCIL_INDEX 0x1901 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 + +/* Buffers, Pixel Drawing/Reading */ +#define GL_NONE 0x0 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +/*GL_FRONT 0x0404 */ +/*GL_BACK 0x0405 */ +/*GL_FRONT_AND_BACK 0x0408 */ +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_COLOR_INDEX 0x1900 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_ALPHA_BITS 0x0D55 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_INDEX_BITS 0x0D51 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_READ_BUFFER 0x0C02 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_BITMAP 0x1A00 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_DITHER 0x0BD0 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 + +/* Implementation limits */ +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B + +/* Gets */ +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_MODE 0x0C30 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_RENDER_MODE 0x0C40 +#define GL_RGBA_MODE 0x0C31 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_VIEWPORT 0x0BA2 + +/* Evaluators */ +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* Hints */ +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* Scissor box */ +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 + +/* Pixel Mode / Transfer */ +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 + +/* Texture mapping */ +#define GL_TEXTURE_ENV 0x2300 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_LINEAR 0x2400 +#define GL_EYE_PLANE 0x2502 +#define GL_SPHERE_MAP 0x2402 +#define GL_DECAL 0x2101 +#define GL_MODULATE 0x2100 +#define GL_NEAREST 0x2600 +#define GL_REPEAT 0x2901 +#define GL_CLAMP 0x2900 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 + +/* Utility */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* Errors */ +#define GL_NO_ERROR 0x0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 + +/* glPush/PopAttrib bits */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000FFFFF + + +/* OpenGL 1.1 */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF + + + +/* + * Miscellaneous + */ + +GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); + +GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glClear( GLbitfield mask ); + +GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); + +GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); + +GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); + +GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); + +GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); + +GLAPI void GLAPIENTRY glCullFace( GLenum mode ); + +GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); + +GLAPI void GLAPIENTRY glPointSize( GLfloat size ); + +GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); + +GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); + +GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); + +GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); + +GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); + +GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); + +GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); + +GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); + +GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); + +GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); + +GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); + +GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glEnable( GLenum cap ); + +GLAPI void GLAPIENTRY glDisable( GLenum cap ); + +GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); + + +GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ + +GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ + + +GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); + +GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); + +GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); + +GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); + +GLAPI void GLAPIENTRY glPopAttrib( void ); + + +GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ + +GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ + + +GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); + +GLAPI GLenum GLAPIENTRY glGetError( void ); + +GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); + +GLAPI void GLAPIENTRY glFinish( void ); + +GLAPI void GLAPIENTRY glFlush( void ); + +GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); + + +/* + * Depth Buffer + */ + +GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); + +GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); + +GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); + +GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); + + +/* + * Accumulation Buffer + */ + +GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); + +GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); + + +/* + * Transformation + */ + +GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); + +GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, + GLsizei width, GLsizei height ); + +GLAPI void GLAPIENTRY glPushMatrix( void ); + +GLAPI void GLAPIENTRY glPopMatrix( void ); + +GLAPI void GLAPIENTRY glLoadIdentity( void ); + +GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glRotated( GLdouble angle, + GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRotatef( GLfloat angle, + GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); + + +/* + * Display Lists + */ + +GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); + +GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); + +GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); + +GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); + +GLAPI void GLAPIENTRY glEndList( void ); + +GLAPI void GLAPIENTRY glCallList( GLuint list ); + +GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, + const GLvoid *lists ); + +GLAPI void GLAPIENTRY glListBase( GLuint base ); + + +/* + * Drawing Functions + */ + +GLAPI void GLAPIENTRY glBegin( GLenum mode ); + +GLAPI void GLAPIENTRY glEnd( void ); + + +GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); +GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); +GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); +GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); +GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); + +GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); +GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glIndexd( GLdouble c ); +GLAPI void GLAPIENTRY glIndexf( GLfloat c ); +GLAPI void GLAPIENTRY glIndexi( GLint c ); +GLAPI void GLAPIENTRY glIndexs( GLshort c ); +GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); +GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); +GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); +GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); +GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); +GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); +GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); +GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); +GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); +GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); +GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); +GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); + +GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, + GLbyte blue, GLbyte alpha ); +GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, + GLdouble blue, GLdouble alpha ); +GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, + GLfloat blue, GLfloat alpha ); +GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, + GLint blue, GLint alpha ); +GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, + GLshort blue, GLshort alpha ); +GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, + GLubyte blue, GLubyte alpha ); +GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, + GLuint blue, GLuint alpha ); +GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, + GLushort blue, GLushort alpha ); + + +GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); + +GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); + + +GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); +GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); +GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); +GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); + +GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); +GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); +GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); +GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); +GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); +GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); +GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); +GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); +GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); +GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); +GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); +GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); + + +GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); +GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); +GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); +GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); + + +/* + * Vertex Arrays (1.1) + */ + +GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); + +GLAPI void GLAPIENTRY glArrayElement( GLint i ); + +GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); + +GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, + const GLvoid *pointer ); + +/* + * Lighting + */ + +GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); + +GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, + GLfloat *params ); +GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); + + +/* + * Raster functions + */ + +GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); + +GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, + const GLfloat *values ); +GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, + const GLuint *values ); +GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, + const GLushort *values ); + +GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); +GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); +GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); + +GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ); + +GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + GLvoid *pixels ); + +GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum type ); + +/* + * Stenciling + */ + +GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); + +GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); + +GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); + +GLAPI void GLAPIENTRY glClearStencil( GLint s ); + + + +/* + * Texture mapping + */ + +GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); +GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); +GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); +GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, + GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, + GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, + GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, + GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, + GLenum format, GLenum type, + GLvoid *pixels ); + + +/* 1.1 functions */ + +GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); + +GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); + +GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); + +GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, + const GLuint *textures, + const GLclampf *priorities ); + +GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, + const GLuint *textures, + GLboolean *residences ); + +GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); + + +GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, + GLint xoffset, + GLsizei width, GLenum format, + GLenum type, const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLsizei height, + GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, + GLsizei width ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint x, GLint y, + GLsizei width, GLsizei height ); + + +/* + * Evaluators + */ + +GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, + GLint stride, + GLint order, const GLdouble *points ); +GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, + GLint stride, + GLint order, const GLfloat *points ); + +GLAPI void GLAPIENTRY glMap2d( GLenum target, + GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, + GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, + const GLdouble *points ); +GLAPI void GLAPIENTRY glMap2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points ); + +GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); +GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); +GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); + +GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); +GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); + +GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); +GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); + +GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); +GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); + +GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, + GLint vn, GLdouble v1, GLdouble v2 ); +GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ); + +GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); + +GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); + +GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); + +GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); + + +/* + * Fog + */ + +GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); + +GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); + +GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); + + +/* + * Selection and Feedback + */ + +GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); + +GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); + +GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); + +GLAPI void GLAPIENTRY glInitNames( void ); + +GLAPI void GLAPIENTRY glLoadName( GLuint name ); + +GLAPI void GLAPIENTRY glPushName( GLuint name ); + +GLAPI void GLAPIENTRY glPopName( void ); + + + +/* + * OpenGL 1.2 + */ + +#define GL_RESCALE_NORMAL 0x803A +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_TEXTURE_BINDING_3D 0x806A + +GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, + GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLsizei depth, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, + GLsizei height, GLsizei depth, + GLenum format, + GLenum type, const GLvoid *pixels); + +GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLint x, + GLint y, GLsizei width, + GLsizei height ); + +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + + +/* + * GL_ARB_imaging + */ + +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_BLEND_EQUATION 0x8009 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_BLEND_COLOR 0x8005 + + +GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, + GLsizei width, GLenum format, + GLenum type, const GLvoid *table ); + +GLAPI void GLAPIENTRY glColorSubTable( GLenum target, + GLsizei start, GLsizei count, + GLenum format, GLenum type, + const GLvoid *data ); + +GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, + const GLint *params); + +GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, + const GLfloat *params); + +GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, + GLenum type, GLvoid *table ); + +GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); + +GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, + GLenum internalformat, GLboolean sink ); + +GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); + +GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, + GLenum format, GLenum type, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, + GLboolean sink ); + +GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); + +GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, + GLenum format, GLenum types, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, + GLenum internalformat, GLsizei width, GLenum format, GLenum type, + const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, + GLfloat params ); + +GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); + +GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, + GLint params ); + +GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width, + GLsizei height); + +GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, + GLenum type, GLvoid *image ); + +GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *row, const GLvoid *column ); + +GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, + GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); + +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); + + + +/* + * OpenGL 1.3 + */ + +/* multitexture */ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +/* texture_cube_map */ +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +/* texture_compression */ +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +/* multisample */ +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +/* transpose_matrix */ +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +/* texture_env_combine */ +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +/* texture_env_dot3 */ +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +/* texture_border_clamp */ +#define GL_CLAMP_TO_BORDER 0x812D + +GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); + +GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); + + +GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); + +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); + + +/* + * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) + */ +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + +GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); +GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); +GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); +GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); +GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); + +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); + +#endif /* GL_ARB_multitexture */ + + + +/* + * Define this token if you want "old-style" header file behaviour (extensions + * defined in gl.h). Otherwise, extensions will be included from glext.h. + */ +#if defined(GL_GLEXT_LEGACY) + +/* All extensions that used to be here are now found in glext.h */ + +#else /* GL_GLEXT_LEGACY */ + +#include + +#endif /* GL_GLEXT_LEGACY */ + + + +#if GL_ARB_shader_objects + +#ifndef GL_MESA_shader_debug +#define GL_MESA_shader_debug 1 + +#define GL_DEBUG_OBJECT_MESA 0x8759 +#define GL_DEBUG_PRINT_MESA 0x875A +#define GL_DEBUG_ASSERT_MESA 0x875B + +GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); +GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); +GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, + GLsizei *length, GLcharARB *debugLog); +GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); + +#endif /* GL_MESA_shader_debug */ + +#endif /* GL_ARB_shader_objects */ + + +/* + * ???. GL_MESA_packed_depth_stencil + * XXX obsolete + */ +#ifndef GL_MESA_packed_depth_stencil +#define GL_MESA_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_MESA 0x8750 +#define GL_UNSIGNED_INT_24_8_MESA 0x8751 +#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 +#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 +#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 + +#endif /* GL_MESA_packed_depth_stencil */ + + +#ifndef GL_MESA_program_debug +#define GL_MESA_program_debug 1 + +#define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 +#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 +#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 +#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 +#define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 +#define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 +#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 +#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 + +typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); + +GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); + +GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); + +#endif /* GL_MESA_program_debug */ + + +#ifndef GL_MESA_texture_array +#define GL_MESA_texture_array 1 + +/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. + */ +#ifndef GL_EXT_texture_array + +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, + GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL_GLEXT_PROTOTYPES */ + +#if 0 +/* (temporarily) disabled because of collision with typedef in glext.h + * that happens if apps include both gl.h and glext.h + */ +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, + GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#endif + +#endif + + +#ifndef GL_ATI_blend_equation_separate +#define GL_ATI_blend_equation_separate 1 + +#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D + +GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); + +#endif /* GL_ATI_blend_equation_separate */ + + + +/** + ** NOTE!!!!! If you add new functions to this file, or update + ** glext.h be sure to regenerate the gl_mangle.h file. See comments + ** in that file for details. + **/ + + + +/********************************************************************** + * Begin system-specific stuff + */ +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export off +#endif + +#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +#pragma import off +#endif +/* + * End system-specific stuff + **********************************************************************/ + + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ diff --git a/src/glx/apple/include/GL/glext.h b/src/glx/apple/include/GL/glext.h new file mode 100644 index 0000000000..c0941aa804 --- /dev/null +++ b/src/glx/apple/include/GL/glext.h @@ -0,0 +1,8459 @@ +#ifndef __glext_h_ +#define __glext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glext.h last updated 2008/11/14 */ +/* Current version at http://www.opengl.org/registry/ */ +#define GL_GLEXT_VERSION 44 + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_RESCALE_NORMAL 0x803A +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE +#define GL_FOG_COORD GL_FOG_COORDINATE +#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE +#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE +#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER +#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +#define GL_SRC0_RGB GL_SOURCE0_RGB +#define GL_SRC1_RGB GL_SOURCE1_RGB +#define GL_SRC2_RGB GL_SOURCE2_RGB +#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA +#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA +#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +/* Reuse tokens from ARB_depth_buffer_float */ +/* reuse GL_DEPTH_COMPONENT32F */ +/* reuse GL_DEPTH32F_STENCIL8 */ +/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_DEFAULT */ +/* reuse GL_FRAMEBUFFER_UNDEFINED */ +/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ +/* reuse GL_INDEX */ +/* reuse GL_MAX_RENDERBUFFER_SIZE */ +/* reuse GL_DEPTH_STENCIL */ +/* reuse GL_UNSIGNED_INT_24_8 */ +/* reuse GL_DEPTH24_STENCIL8 */ +/* reuse GL_TEXTURE_STENCIL_SIZE */ +/* reuse GL_TEXTURE_RED_TYPE */ +/* reuse GL_TEXTURE_GREEN_TYPE */ +/* reuse GL_TEXTURE_BLUE_TYPE */ +/* reuse GL_TEXTURE_ALPHA_TYPE */ +/* reuse GL_TEXTURE_LUMINANCE_TYPE */ +/* reuse GL_TEXTURE_INTENSITY_TYPE */ +/* reuse GL_TEXTURE_DEPTH_TYPE */ +/* reuse GL_UNSIGNED_NORMALIZED */ +/* reuse GL_FRAMEBUFFER_BINDING */ +/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_BINDING */ +/* reuse GL_READ_FRAMEBUFFER */ +/* reuse GL_DRAW_FRAMEBUFFER */ +/* reuse GL_READ_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_SAMPLES */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* reuse GL_FRAMEBUFFER_COMPLETE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ +/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ +/* reuse GL_MAX_COLOR_ATTACHMENTS */ +/* reuse GL_COLOR_ATTACHMENT0 */ +/* reuse GL_COLOR_ATTACHMENT1 */ +/* reuse GL_COLOR_ATTACHMENT2 */ +/* reuse GL_COLOR_ATTACHMENT3 */ +/* reuse GL_COLOR_ATTACHMENT4 */ +/* reuse GL_COLOR_ATTACHMENT5 */ +/* reuse GL_COLOR_ATTACHMENT6 */ +/* reuse GL_COLOR_ATTACHMENT7 */ +/* reuse GL_COLOR_ATTACHMENT8 */ +/* reuse GL_COLOR_ATTACHMENT9 */ +/* reuse GL_COLOR_ATTACHMENT10 */ +/* reuse GL_COLOR_ATTACHMENT11 */ +/* reuse GL_COLOR_ATTACHMENT12 */ +/* reuse GL_COLOR_ATTACHMENT13 */ +/* reuse GL_COLOR_ATTACHMENT14 */ +/* reuse GL_COLOR_ATTACHMENT15 */ +/* reuse GL_DEPTH_ATTACHMENT */ +/* reuse GL_STENCIL_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_RENDERBUFFER_WIDTH */ +/* reuse GL_RENDERBUFFER_HEIGHT */ +/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ +/* reuse GL_STENCIL_INDEX1 */ +/* reuse GL_STENCIL_INDEX4 */ +/* reuse GL_STENCIL_INDEX8 */ +/* reuse GL_STENCIL_INDEX16 */ +/* reuse GL_RENDERBUFFER_RED_SIZE */ +/* reuse GL_RENDERBUFFER_GREEN_SIZE */ +/* reuse GL_RENDERBUFFER_BLUE_SIZE */ +/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ +/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ +/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ +/* reuse GL_MAX_SAMPLES */ +/* Reuse tokens from ARB_framebuffer_sRGB */ +/* reuse GL_FRAMEBUFFER_SRGB */ +/* Reuse tokens from ARB_half_float_vertex */ +/* reuse GL_HALF_FLOAT */ +/* Reuse tokens from ARB_map_buffer_range */ +/* reuse GL_MAP_READ_BIT */ +/* reuse GL_MAP_WRITE_BIT */ +/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ +/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ +/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ +/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ +/* Reuse tokens from ARB_texture_compression_rgtc */ +/* reuse GL_COMPRESSED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_RG_RGTC2 */ +/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ +/* Reuse tokens from ARB_texture_rg */ +/* reuse GL_RG */ +/* reuse GL_RG_INTEGER */ +/* reuse GL_R8 */ +/* reuse GL_R16 */ +/* reuse GL_RG8 */ +/* reuse GL_RG16 */ +/* reuse GL_R16F */ +/* reuse GL_R32F */ +/* reuse GL_RG16F */ +/* reuse GL_RG32F */ +/* reuse GL_R8I */ +/* reuse GL_R8UI */ +/* reuse GL_R16I */ +/* reuse GL_R16UI */ +/* reuse GL_R32I */ +/* reuse GL_R32UI */ +/* reuse GL_RG8I */ +/* reuse GL_RG8UI */ +/* reuse GL_RG16I */ +/* reuse GL_RG16UI */ +/* reuse GL_RG32I */ +/* reuse GL_RG32UI */ +/* Reuse tokens from ARB_vertex_array_object */ +/* reuse GL_VERTEX_ARRAY_BINDING */ +#endif + +#ifndef GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#ifndef GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#ifndef GL_ARB_texture_env_add +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#ifndef GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#ifndef GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#ifndef GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#ifndef GL_ARB_window_pos +#endif + +#ifndef GL_ARB_vertex_program +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#endif + +#ifndef GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 +#endif + +#ifndef GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#endif + +#ifndef GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#ifndef GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_draw_instanced +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_INDEX 0x8222 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_instanced_arrays +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#ifndef GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#ifndef GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#ifndef GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +#endif + +#ifndef GL_EXT_subtexture +#endif + +#ifndef GL_EXT_copy_texture +#endif + +#ifndef GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#ifndef GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#ifndef GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#ifndef GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +#endif + +#ifndef GL_SGIS_texture4D +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif + +#ifndef GL_EXT_cmyka +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif + +#ifndef GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#ifndef GL_SGIS_multisample +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#ifndef GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#ifndef GL_EXT_misc_attribute +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif + +#ifndef GL_SGIX_shadow +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#ifndef GL_EXT_blend_logic_op +#endif + +#ifndef GL_SGIX_interlace +#define GL_INTERLACE_SGIX 0x8094 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif + +#ifndef GL_SGIS_texture_select +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif + +#ifndef GL_EXT_point_parameters +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#ifndef GL_SGIX_instruments +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif + +#ifndef GL_SGIX_framezoom +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#endif + +#ifndef GL_FfdMaskSGIX +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +#endif + +#ifndef GL_SGIX_flush_raster +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif + +#ifndef GL_HP_image_transform +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#ifndef GL_INGR_palette_buffer +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif + +#ifndef GL_EXT_color_subtable +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_LIST_PRIORITY_SGIX 0x8182 +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif + +#ifndef GL_EXT_index_texture +#endif + +#ifndef GL_EXT_index_material +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +#endif + +#ifndef GL_EXT_index_func +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_IUI_V2F_EXT 0x81AD +#define GL_IUI_V3F_EXT 0x81AE +#define GL_IUI_N3F_V2F_EXT 0x81AF +#define GL_IUI_N3F_V3F_EXT 0x81B0 +#define GL_T2F_IUI_V2F_EXT 0x81B1 +#define GL_T2F_IUI_V3F_EXT 0x81B2 +#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 +#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#ifndef GL_WIN_phong_shading +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif + +#ifndef GL_WIN_specular_fog +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif + +#ifndef GL_EXT_light_texture +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +/* reuse GL_FRAGMENT_DEPTH_EXT */ +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 +#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 +#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 +#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 +#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 +#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 +#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A +#endif + +#ifndef GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#ifndef GL_SGIX_async +#define GL_ASYNC_MARKER_SGIX 0x8329 +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif + +#ifndef GL_INTEL_texture_scissor +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +#endif + +#ifndef GL_HP_occlusion_test +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#ifndef GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +#endif + +#ifndef GL_EXT_multi_draw_arrays +#endif + +#ifndef GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD +#endif + +#ifndef GL_SUNX_constant_data +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +#endif + +#ifndef GL_SUN_global_alpha +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +#endif + +#ifndef GL_SUN_triangle_list +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +#endif + +#ifndef GL_SUN_vertex +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#ifndef GL_INGR_color_clamp +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INTERLACE_READ_INGR 0x8568 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#ifndef GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif + +#ifndef GL_EXT_texture_env_add +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT GL_MODELVIEW +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#ifndef GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#ifndef GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif + +#ifndef GL_NV_blend_square +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif + +#ifndef GL_MESA_resize_buffers +#endif + +#ifndef GL_MESA_window_pos +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_CULL_VERTEX_IBM 103050 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +#endif + +#ifndef GL_SGIX_subsample +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif + +#ifndef GL_SGI_depth_pass_instrument +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif + +#ifndef GL_3DFX_tbuffer +#endif + +#ifndef GL_EXT_multisample +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif + +#ifndef GL_SGIX_resample +#define GL_PACK_RESAMPLE_SGIX 0x842C +#define GL_UNPACK_RESAMPLE_SGIX 0x842D +#define GL_RESAMPLE_REPLICATE_SGIX 0x842E +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif + +#ifndef GL_NV_evaluators +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#ifndef GL_NV_texture_compression_vtc +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 +#endif + +#ifndef GL_NV_texture_shader +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#ifndef GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif + +#ifndef GL_OML_interlace +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif + +#ifndef GL_OML_subsample +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif + +#ifndef GL_OML_resample +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_REG_6_ATI 0x8927 +#define GL_REG_7_ATI 0x8928 +#define GL_REG_8_ATI 0x8929 +#define GL_REG_9_ATI 0x892A +#define GL_REG_10_ATI 0x892B +#define GL_REG_11_ATI 0x892C +#define GL_REG_12_ATI 0x892D +#define GL_REG_13_ATI 0x892E +#define GL_REG_14_ATI 0x892F +#define GL_REG_15_ATI 0x8930 +#define GL_REG_16_ATI 0x8931 +#define GL_REG_17_ATI 0x8932 +#define GL_REG_18_ATI 0x8933 +#define GL_REG_19_ATI 0x8934 +#define GL_REG_20_ATI 0x8935 +#define GL_REG_21_ATI 0x8936 +#define GL_REG_22_ATI 0x8937 +#define GL_REG_23_ATI 0x8938 +#define GL_REG_24_ATI 0x8939 +#define GL_REG_25_ATI 0x893A +#define GL_REG_26_ATI 0x893B +#define GL_REG_27_ATI 0x893C +#define GL_REG_28_ATI 0x893D +#define GL_REG_29_ATI 0x893E +#define GL_REG_30_ATI 0x893F +#define GL_REG_31_ATI 0x8940 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_CON_8_ATI 0x8949 +#define GL_CON_9_ATI 0x894A +#define GL_CON_10_ATI 0x894B +#define GL_CON_11_ATI 0x894C +#define GL_CON_12_ATI 0x894D +#define GL_CON_13_ATI 0x894E +#define GL_CON_14_ATI 0x894F +#define GL_CON_15_ATI 0x8950 +#define GL_CON_16_ATI 0x8951 +#define GL_CON_17_ATI 0x8952 +#define GL_CON_18_ATI 0x8953 +#define GL_CON_19_ATI 0x8954 +#define GL_CON_20_ATI 0x8955 +#define GL_CON_21_ATI 0x8956 +#define GL_CON_22_ATI 0x8957 +#define GL_CON_23_ATI 0x8958 +#define GL_CON_24_ATI 0x8959 +#define GL_CON_25_ATI 0x895A +#define GL_CON_26_ATI 0x895B +#define GL_CON_27_ATI 0x895C +#define GL_CON_28_ATI 0x895D +#define GL_CON_29_ATI 0x895E +#define GL_CON_30_ATI 0x895F +#define GL_CON_31_ATI 0x8960 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B +#define GL_RED_BIT_ATI 0x00000001 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +#endif + +#ifndef GL_ATI_element_array +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +#endif + +#ifndef GL_SUN_mesh_array +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#ifndef GL_NV_occlusion_query +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +#endif + +#ifndef GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#ifndef GL_NV_vertex_program1_1 +#endif + +#ifndef GL_EXT_shadow_funcs +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A +#endif + +#ifndef GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#ifndef GL_S3_s3tc +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#ifndef GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#ifndef GL_NV_float_buffer +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E +#endif + +#ifndef GL_NV_fragment_program +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 +#endif + +#ifndef GL_NV_half_float +#define GL_HALF_FLOAT_NV 0x140B +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D +#endif + +#ifndef GL_NV_primitive_restart +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F +#endif + +#ifndef GL_NV_vertex_program2 +#endif + +#ifndef GL_ATI_map_object_buffer +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#endif + +#ifndef GL_OES_read_format +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#ifndef GL_MESA_pack_invert +#define GL_PACK_INVERT_MESA 0x8758 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF +#endif + +#ifndef GL_NV_fragment_program_option +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#ifndef GL_NV_vertex_program2_option +/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ +/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ +#endif + +#ifndef GL_NV_vertex_program3 +/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#endif + +#ifndef GL_GREMEDY_string_marker +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E +#endif + +#ifndef GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#ifndef GL_EXT_gpu_program_parameters +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ +/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ +/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ +/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +/* reuse GL_LINES_ADJACENCY_EXT */ +/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ +/* reuse GL_TRIANGLES_ADJACENCY_EXT */ +/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_PROGRAM_POINT_SIZE_EXT */ +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#endif + +#ifndef GL_EXT_draw_instanced +#endif + +#ifndef GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#ifndef GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF +#endif + +#ifndef GL_NV_fragment_program4 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#ifndef GL_NV_geometry_shader4 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 +#endif + +#ifndef GL_EXT_draw_buffers2 +#endif + +#ifndef GL_NV_transform_feedback +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#endif + +#ifndef GL_EXT_texture_integer +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#endif + +#ifndef GL_GREMEDY_frame_terminator +#endif + +#ifndef GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#ifndef GL_NV_present_video +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + +#ifndef GL_EXT_direct_state_access +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F +#endif + +#ifndef GL_EXT_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_EXT_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 +#endif + +#ifndef GL_NV_explicit_multisample +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#endif + +#ifndef GL_NV_transform_feedback2 +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 +#endif + + +/*************************************************************/ + +#include +#ifndef GL_VERSION_2_0 +/* GL type for program/shader text */ +typedef char GLchar; /* native character */ +#endif + +#ifndef GL_VERSION_1_5 +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptr; +typedef ptrdiff_t GLsizeiptr; +#endif + +#ifndef GL_ARB_vertex_buffer_object +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; +#endif + +#ifndef GL_ARB_shader_objects +/* GL types for handling shader object handles and program/shader text */ +typedef char GLcharARB; /* native character */ +typedef unsigned int GLhandleARB; /* shader object handle */ +#endif + +/* GL types for "half" precision (s10e5) float data in host memory */ +#ifndef GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#ifndef GL_NV_half_float +typedef unsigned short GLhalfNV; +#endif + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include /* Fallback option */ +#endif +#endif + +#ifndef GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); +GLAPI void APIENTRY glBlendEquation (GLenum); +GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogram (GLenum); +GLAPI void APIENTRY glResetMinmax (GLenum); +GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum); +GLAPI void APIENTRY glClientActiveTexture (GLenum); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glFogCoordf (GLfloat); +GLAPI void APIENTRY glFogCoordfv (const GLfloat *); +GLAPI void APIENTRY glFogCoordd (GLdouble); +GLAPI void APIENTRY glFogCoorddv (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); +GLAPI void APIENTRY glPointParameteri (GLenum, GLint); +GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); +GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); +GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos2i (GLint, GLint); +GLAPI void APIENTRY glWindowPos2iv (const GLint *); +GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2sv (const GLshort *); +GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3iv (const GLint *); +GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3sv (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQuery (GLuint); +GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); +GLAPI void APIENTRY glEndQuery (GLenum); +GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint); +GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum); +GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *); +GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint); +GLAPI void APIENTRY glAttachShader (GLuint, GLuint); +GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *); +GLAPI void APIENTRY glCompileShader (GLuint); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum); +GLAPI void APIENTRY glDeleteProgram (GLuint); +GLAPI void APIENTRY glDeleteShader (GLuint); +GLAPI void APIENTRY glDetachShader (GLuint, GLuint); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint); +GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgram (GLuint); +GLAPI GLboolean APIENTRY glIsShader (GLuint); +GLAPI void APIENTRY glLinkProgram (GLuint); +GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *); +GLAPI void APIENTRY glUseProgram (GLuint); +GLAPI void APIENTRY glUniform1f (GLint, GLfloat); +GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1i (GLint, GLint); +GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glValidateProgram (GLuint); +GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +/* OpenGL 3.0 also reuses entry points from these extensions: */ +/* ARB_framebuffer_object */ +/* ARB_map_buffer_range */ +/* ARB_vertex_array_object */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glGetBooleani_v (GLenum, GLuint, GLboolean *); +GLAPI void APIENTRY glGetIntegeri_v (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glEnablei (GLenum, GLuint); +GLAPI void APIENTRY glDisablei (GLenum, GLuint); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum, GLuint); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferBase (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLint *); +GLAPI void APIENTRY glClampColor (GLenum, GLenum); +GLAPI void APIENTRY glBeginConditionalRender (GLuint, GLenum); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribI1i (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2i (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3i (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4i (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glGetUniformuiv (GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glUniform1ui (GLint, GLuint); +GLAPI void APIENTRY glUniform2ui (GLint, GLuint, GLuint); +GLAPI void APIENTRY glUniform3ui (GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform4ui (GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform1uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform2uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform3uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform4uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glTexParameterIiv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTexParameterIuiv (GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glClearBufferiv (GLenum, GLint, const GLint *); +GLAPI void APIENTRY glClearBufferuiv (GLenum, GLint, const GLuint *); +GLAPI void APIENTRY glClearBufferfv (GLenum, GLint, const GLfloat *); +GLAPI void APIENTRY glClearBufferfi (GLenum, GLint, GLfloat, GLint); +GLAPI const GLubyte * APIENTRY glGetStringi (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLint *location); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +#endif + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#endif + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); +#endif + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#endif + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#endif + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); +GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); +GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); +GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); +GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); +GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexBlendARB (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#endif + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#endif + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#endif + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); +GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); +#endif + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); +GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); +GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); +GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); +GLAPI void APIENTRY glEndQueryARB (GLenum); +GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); +GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); +GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); +GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); +GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); +GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); +GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); +GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); +GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); +GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1iARB (GLint, GLint); +GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); +GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); +GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); +GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); +GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); +typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); +GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClampColorARB (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +#endif + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint); +GLAPI void APIENTRY glBindRenderbuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei, GLuint *); +GLAPI void APIENTRY glRenderbufferStorage (GLenum, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum, GLenum, GLint *); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint); +GLAPI void APIENTRY glBindFramebuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFramebuffers (GLsizei, GLuint *); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateMipmap (GLenum); +GLAPI void APIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum, GLenum, GLuint, GLint, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint); +GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisor (GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferARB (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArray (GLuint); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenVertexArrays (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#endif + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#endif + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#endif + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#endif + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogramEXT (GLenum); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); +#endif + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +#endif + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +#endif + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#endif + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#endif + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#endif + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#endif + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint); +GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); +GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); +GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); +typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#endif + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#endif + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#endif + +#ifndef GL_SGIX_texture_select +#define GL_SGIX_texture_select 1 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#endif + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#endif + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glDeformSGIX (GLbitfield); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#endif + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#endif + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#endif + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); +GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); +GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#endif + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#endif + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#endif + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum); +GLAPI void APIENTRY glTextureLightEXT (GLenum); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#endif + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#endif + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); +GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +#endif + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#endif + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); +GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); +GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); +GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *); +GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); +GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); +GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); +GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 +#endif + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); +#endif + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#endif + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); +#endif + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#endif + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); +#endif + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#endif + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#endif + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#endif + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); +#endif + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +#endif + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#endif + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#endif + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#endif + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); +GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFinishFenceNV (GLuint); +GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); +GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); +typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#endif + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#endif + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); +GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); +typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#endif + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#endif + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#endif + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); +GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); +typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); +GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); +GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); +GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); +typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); +typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); +GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); +GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#endif + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#endif + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); +GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glSetFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); +GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); +GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); +typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); +GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +#endif + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +/* This is really a WGL extension, but defines some associated GL enums. + * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. + */ +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +#endif + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +#endif + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +#endif + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); +GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); +GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); +GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); +GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); +GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); +GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); +typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); +typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +#endif + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveRestartNV (void); +GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +#endif + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); +GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +#endif + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +#endif + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint); +GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *); +GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *); +GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint); +GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *); +GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum); +GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateMipmapEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +#endif + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +#endif + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *); +GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *); +GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint); +GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *); +GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint); +GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint); +GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +#endif + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +#endif + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble); +GLAPI void APIENTRY glClearDepthdNV (GLdouble); +GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +#endif + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +#endif + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); +#endif + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *); +GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint); +GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +#endif + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum); +GLAPI void APIENTRY glEndTransformFeedbackNV (void); +GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum); +GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); +GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); +GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint); +GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint); +GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +#endif + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); +#endif + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint, GLenum); +GLAPI void APIENTRY glEndConditionalRenderNV (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); +#endif + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum); +GLAPI void APIENTRY glEndTransformFeedbackEXT (void); +GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr); +GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLint *location); +#endif + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield); +GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield); +GLAPI void APIENTRY glMatrixLoadfEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixLoaddEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixMultfEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixMultdEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum); +GLAPI void APIENTRY glMatrixRotatefEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixRotatedEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixScalefEXT (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixScaledEXT (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixFrustumEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixOrthoEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixPopEXT (GLenum); +GLAPI void APIENTRY glMatrixPushEXT (GLenum); +GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glTextureParameterfEXT (GLuint, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glTextureParameterfvEXT (GLuint, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glTextureParameteriEXT (GLuint, GLenum, GLenum, GLint); +GLAPI void APIENTRY glTextureParameterivEXT (GLuint, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetTextureImageEXT (GLuint, GLenum, GLint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint, GLenum, GLint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint, GLenum, GLint, GLenum, GLint *); +GLAPI void APIENTRY glTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum, GLenum, GLint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum, GLenum, GLint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum, GLenum, GLint, GLenum, GLint *); +GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glBindMultiTextureEXT (GLenum, GLenum, GLuint); +GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexEnviEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexGendEXT (GLenum, GLenum, GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexGendvEXT (GLenum, GLenum, GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexGenfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexGeniEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexGenivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum, GLenum, GLenum, GLdouble *); +GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum, GLuint, GLvoid* *); +GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint, GLenum, GLint, GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum, GLenum, GLint, GLvoid *); +GLAPI void APIENTRY glNamedProgramStringEXT (GLuint, GLenum, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint, GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint, GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint, GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint, GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint, GLenum, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint, GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint, GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint, GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint, GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint, GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint, GLenum, GLuint, GLuint *); +GLAPI void APIENTRY glTextureParameterIivEXT (GLuint, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint, GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint, GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glProgramUniform1fEXT (GLuint, GLint, GLfloat); +GLAPI void APIENTRY glProgramUniform2fEXT (GLuint, GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform3fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform4fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform1iEXT (GLuint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform2iEXT (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform3iEXT (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform4iEXT (GLuint, GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint, GLint, GLuint); +GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint, GLint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint, GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint, GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glNamedBufferDataEXT (GLuint, GLsizeiptr, const GLvoid *, GLenum); +GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, const GLvoid *); +GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint, GLenum); +GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint); +GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, GLvoid *); +GLAPI void APIENTRY glTextureBufferEXT (GLuint, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glMultiTexBufferEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint, GLenum); +GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint, GLenum); +GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum, GLenum); +GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint, GLenum); +GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint, GLsizei, const GLenum *); +GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint, GLenum, GLuint, GLint, GLenum); +GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint, GLenum, GLuint); +GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); +typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); +typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +#endif + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 +#endif + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +#endif + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetMultisamplefvNV (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint, GLbitfield); +GLAPI void APIENTRY glTexRenderbufferNV (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); +#endif + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint); +GLAPI void APIENTRY glPauseTransformFeedbackNV (void); +GLAPI void APIENTRY glResumeTransformFeedbackNV (void); +GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glx/apple/include/GL/glext.hMESA b/src/glx/apple/include/GL/glext.hMESA new file mode 100644 index 0000000000..17db4b69eb --- /dev/null +++ b/src/glx/apple/include/GL/glext.hMESA @@ -0,0 +1,7649 @@ +#ifndef __glext_h_ +#define __glext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glext.h last updated 2008/08/10 */ +/* Current version at http://www.opengl.org/registry/ */ +#define GL_GLEXT_VERSION 41 + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_RESCALE_NORMAL 0x803A +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE +#define GL_FOG_COORD GL_FOG_COORDINATE +#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE +#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE +#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER +#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +#define GL_SRC0_RGB GL_SOURCE0_RGB +#define GL_SRC1_RGB GL_SOURCE1_RGB +#define GL_SRC2_RGB GL_SOURCE2_RGB +#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA +#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA +#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#endif + +#ifndef GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#ifndef GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#ifndef GL_ARB_texture_env_add +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#ifndef GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#ifndef GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#ifndef GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#ifndef GL_ARB_window_pos +#endif + +#ifndef GL_ARB_vertex_program +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#endif + +#ifndef GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 +#endif + +#ifndef GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#endif + +#ifndef GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#ifndef GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_draw_instanced +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_INDEX 0x8222 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_instanced_arrays +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#ifndef GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#ifndef GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#ifndef GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +#endif + +#ifndef GL_EXT_subtexture +#endif + +#ifndef GL_EXT_copy_texture +#endif + +#ifndef GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#ifndef GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#ifndef GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#ifndef GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +#endif + +#ifndef GL_SGIS_texture4D +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif + +#ifndef GL_EXT_cmyka +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif + +#ifndef GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#ifndef GL_SGIS_multisample +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#ifndef GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#ifndef GL_EXT_misc_attribute +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif + +#ifndef GL_SGIX_shadow +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#ifndef GL_EXT_blend_logic_op +#endif + +#ifndef GL_SGIX_interlace +#define GL_INTERLACE_SGIX 0x8094 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif + +#ifndef GL_SGIS_texture_select +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif + +#ifndef GL_EXT_point_parameters +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#ifndef GL_SGIX_instruments +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif + +#ifndef GL_SGIX_framezoom +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#endif + +#ifndef GL_FfdMaskSGIX +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +#endif + +#ifndef GL_SGIX_flush_raster +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif + +#ifndef GL_HP_image_transform +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#ifndef GL_INGR_palette_buffer +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif + +#ifndef GL_EXT_color_subtable +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_LIST_PRIORITY_SGIX 0x8182 +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif + +#ifndef GL_EXT_index_texture +#endif + +#ifndef GL_EXT_index_material +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +#endif + +#ifndef GL_EXT_index_func +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_IUI_V2F_EXT 0x81AD +#define GL_IUI_V3F_EXT 0x81AE +#define GL_IUI_N3F_V2F_EXT 0x81AF +#define GL_IUI_N3F_V3F_EXT 0x81B0 +#define GL_T2F_IUI_V2F_EXT 0x81B1 +#define GL_T2F_IUI_V3F_EXT 0x81B2 +#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 +#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#ifndef GL_WIN_phong_shading +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif + +#ifndef GL_WIN_specular_fog +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif + +#ifndef GL_EXT_light_texture +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +/* reuse GL_FRAGMENT_DEPTH_EXT */ +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 +#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 +#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 +#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 +#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 +#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 +#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A +#endif + +#ifndef GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#ifndef GL_SGIX_async +#define GL_ASYNC_MARKER_SGIX 0x8329 +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif + +#ifndef GL_INTEL_texture_scissor +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +#endif + +#ifndef GL_HP_occlusion_test +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#ifndef GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +#endif + +#ifndef GL_EXT_multi_draw_arrays +#endif + +#ifndef GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD +#endif + +#ifndef GL_SUNX_constant_data +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +#endif + +#ifndef GL_SUN_global_alpha +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +#endif + +#ifndef GL_SUN_triangle_list +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +#endif + +#ifndef GL_SUN_vertex +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#ifndef GL_INGR_color_clamp +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INTERLACE_READ_INGR 0x8568 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#ifndef GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif + +#ifndef GL_EXT_texture_env_add +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT GL_MODELVIEW +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#ifndef GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#ifndef GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif + +#ifndef GL_NV_blend_square +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif + +#ifndef GL_MESA_resize_buffers +#endif + +#ifndef GL_MESA_window_pos +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_CULL_VERTEX_IBM 103050 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +#endif + +#ifndef GL_SGIX_subsample +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif + +#ifndef GL_SGI_depth_pass_instrument +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif + +#ifndef GL_3DFX_tbuffer +#endif + +#ifndef GL_EXT_multisample +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif + +#ifndef GL_SGIX_resample +#define GL_PACK_RESAMPLE_SGIX 0x842C +#define GL_UNPACK_RESAMPLE_SGIX 0x842D +#define GL_RESAMPLE_REPLICATE_SGIX 0x842E +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif + +#ifndef GL_NV_evaluators +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#ifndef GL_NV_texture_compression_vtc +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 +#endif + +#ifndef GL_NV_texture_shader +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#ifndef GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif + +#ifndef GL_OML_interlace +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif + +#ifndef GL_OML_subsample +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif + +#ifndef GL_OML_resample +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_REG_6_ATI 0x8927 +#define GL_REG_7_ATI 0x8928 +#define GL_REG_8_ATI 0x8929 +#define GL_REG_9_ATI 0x892A +#define GL_REG_10_ATI 0x892B +#define GL_REG_11_ATI 0x892C +#define GL_REG_12_ATI 0x892D +#define GL_REG_13_ATI 0x892E +#define GL_REG_14_ATI 0x892F +#define GL_REG_15_ATI 0x8930 +#define GL_REG_16_ATI 0x8931 +#define GL_REG_17_ATI 0x8932 +#define GL_REG_18_ATI 0x8933 +#define GL_REG_19_ATI 0x8934 +#define GL_REG_20_ATI 0x8935 +#define GL_REG_21_ATI 0x8936 +#define GL_REG_22_ATI 0x8937 +#define GL_REG_23_ATI 0x8938 +#define GL_REG_24_ATI 0x8939 +#define GL_REG_25_ATI 0x893A +#define GL_REG_26_ATI 0x893B +#define GL_REG_27_ATI 0x893C +#define GL_REG_28_ATI 0x893D +#define GL_REG_29_ATI 0x893E +#define GL_REG_30_ATI 0x893F +#define GL_REG_31_ATI 0x8940 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_CON_8_ATI 0x8949 +#define GL_CON_9_ATI 0x894A +#define GL_CON_10_ATI 0x894B +#define GL_CON_11_ATI 0x894C +#define GL_CON_12_ATI 0x894D +#define GL_CON_13_ATI 0x894E +#define GL_CON_14_ATI 0x894F +#define GL_CON_15_ATI 0x8950 +#define GL_CON_16_ATI 0x8951 +#define GL_CON_17_ATI 0x8952 +#define GL_CON_18_ATI 0x8953 +#define GL_CON_19_ATI 0x8954 +#define GL_CON_20_ATI 0x8955 +#define GL_CON_21_ATI 0x8956 +#define GL_CON_22_ATI 0x8957 +#define GL_CON_23_ATI 0x8958 +#define GL_CON_24_ATI 0x8959 +#define GL_CON_25_ATI 0x895A +#define GL_CON_26_ATI 0x895B +#define GL_CON_27_ATI 0x895C +#define GL_CON_28_ATI 0x895D +#define GL_CON_29_ATI 0x895E +#define GL_CON_30_ATI 0x895F +#define GL_CON_31_ATI 0x8960 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B +#define GL_RED_BIT_ATI 0x00000001 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +#endif + +#ifndef GL_ATI_element_array +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +#endif + +#ifndef GL_SUN_mesh_array +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#ifndef GL_NV_occlusion_query +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +#endif + +#ifndef GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#ifndef GL_NV_vertex_program1_1 +#endif + +#ifndef GL_EXT_shadow_funcs +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A +#endif + +#ifndef GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#ifndef GL_S3_s3tc +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#ifndef GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#ifndef GL_NV_float_buffer +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E +#endif + +#ifndef GL_NV_fragment_program +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 +#endif + +#ifndef GL_NV_half_float +#define GL_HALF_FLOAT_NV 0x140B +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D +#endif + +#ifndef GL_NV_primitive_restart +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F +#endif + +#ifndef GL_NV_vertex_program2 +#endif + +#ifndef GL_ATI_map_object_buffer +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#endif + +#ifndef GL_OES_read_format +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#ifndef GL_MESA_pack_invert +#define GL_PACK_INVERT_MESA 0x8758 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF +#endif + +#ifndef GL_NV_fragment_program_option +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#ifndef GL_NV_vertex_program2_option +/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ +/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ +#endif + +#ifndef GL_NV_vertex_program3 +/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#endif + +#ifndef GL_GREMEDY_string_marker +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E +#endif + +#ifndef GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#ifndef GL_EXT_gpu_program_parameters +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ +/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ +/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ +/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +/* reuse GL_LINES_ADJACENCY_EXT */ +/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ +/* reuse GL_TRIANGLES_ADJACENCY_EXT */ +/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_PROGRAM_POINT_SIZE_EXT */ +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#endif + +#ifndef GL_EXT_draw_instanced +#endif + +#ifndef GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#ifndef GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF +#endif + +#ifndef GL_NV_fragment_program4 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#ifndef GL_NV_geometry_shader4 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 +#endif + +#ifndef GL_EXT_draw_buffers2 +#endif + +#ifndef GL_NV_transform_feedback +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#endif + +#ifndef GL_EXT_texture_integer +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#endif + +#ifndef GL_GREMEDY_frame_terminator +#endif + +#ifndef GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#ifndef GL_NV_present_video +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + + +/*************************************************************/ + +#include +#ifndef GL_VERSION_2_0 +/* GL type for program/shader text */ +typedef char GLchar; /* native character */ +#endif + +#ifndef GL_VERSION_1_5 +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptr; +typedef ptrdiff_t GLsizeiptr; +#endif + +#ifndef GL_ARB_vertex_buffer_object +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; +#endif + +#ifndef GL_ARB_shader_objects +/* GL types for handling shader object handles and program/shader text */ +typedef char GLcharARB; /* native character */ +typedef unsigned int GLhandleARB; /* shader object handle */ +#endif + +/* GL types for "half" precision (s10e5) float data in host memory */ +#ifndef GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#ifndef GL_NV_half_float +typedef unsigned short GLhalfNV; +#endif + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include /* Fallback option */ +#endif +#endif + +#ifndef GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); +GLAPI void APIENTRY glBlendEquation (GLenum); +GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogram (GLenum); +GLAPI void APIENTRY glResetMinmax (GLenum); +GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum); +GLAPI void APIENTRY glClientActiveTexture (GLenum); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glFogCoordf (GLfloat); +GLAPI void APIENTRY glFogCoordfv (const GLfloat *); +GLAPI void APIENTRY glFogCoordd (GLdouble); +GLAPI void APIENTRY glFogCoorddv (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); +GLAPI void APIENTRY glPointParameteri (GLenum, GLint); +GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); +GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); +GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos2i (GLint, GLint); +GLAPI void APIENTRY glWindowPos2iv (const GLint *); +GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2sv (const GLshort *); +GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3iv (const GLint *); +GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3sv (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQuery (GLuint); +GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); +GLAPI void APIENTRY glEndQuery (GLenum); +GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint); +GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum); +GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *); +GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint); +GLAPI void APIENTRY glAttachShader (GLuint, GLuint); +GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *); +GLAPI void APIENTRY glCompileShader (GLuint); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum); +GLAPI void APIENTRY glDeleteProgram (GLuint); +GLAPI void APIENTRY glDeleteShader (GLuint); +GLAPI void APIENTRY glDetachShader (GLuint, GLuint); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint); +GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgram (GLuint); +GLAPI GLboolean APIENTRY glIsShader (GLuint); +GLAPI void APIENTRY glLinkProgram (GLuint); +GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *); +GLAPI void APIENTRY glUseProgram (GLuint); +GLAPI void APIENTRY glUniform1f (GLint, GLfloat); +GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1i (GLint, GLint); +GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glValidateProgram (GLuint); +GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +#endif + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#endif + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); +#endif + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#endif + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#endif + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); +GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); +GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); +GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); +GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); +GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexBlendARB (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#endif + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#endif + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#endif + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); +GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); +#endif + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); +GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); +GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); +GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); +GLAPI void APIENTRY glEndQueryARB (GLenum); +GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); +GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); +GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); +GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); +GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); +GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); +GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); +GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); +GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); +GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1iARB (GLint, GLint); +GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); +GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); +GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); +GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); +GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); +typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); +GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClampColorARB (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +#endif + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#endif + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#endif + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#endif + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#endif + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogramEXT (GLenum); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); +#endif + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +#endif + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +#endif + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#endif + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#endif + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#endif + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#endif + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint); +GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); +GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); +GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); +typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#endif + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#endif + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#endif + +#ifndef GL_SGIX_texture_select +#define GL_SGIX_texture_select 1 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#endif + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#endif + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glDeformSGIX (GLbitfield); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#endif + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#endif + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#endif + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); +GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); +GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#endif + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#endif + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#endif + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum); +GLAPI void APIENTRY glTextureLightEXT (GLenum); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#endif + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#endif + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); +GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +#endif + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#endif + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); +GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); +GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); +GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *); +GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); +GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); +GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); +GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 +#endif + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); +#endif + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#endif + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); +#endif + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#endif + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); +#endif + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#endif + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#endif + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#endif + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); +#endif + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +#endif + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#endif + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#endif + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#endif + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); +GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFinishFenceNV (GLuint); +GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); +GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); +typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#endif + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#endif + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); +GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); +typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#endif + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#endif + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#endif + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); +GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); +typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); +GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); +GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); +GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); +typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); +typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); +GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); +GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#endif + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#endif + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); +GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glSetFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); +GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); +GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); +typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); +GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +#endif + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +/* This is really a WGL extension, but defines some associated GL enums. + * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. + */ +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +#endif + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +#endif + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +#endif + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); +GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); +GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); +GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); +GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); +GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); +GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); +typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); +typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +#endif + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveRestartNV (void); +GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +#endif + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); +GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +#endif + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +#endif + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint); +GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *); +GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *); +GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint); +GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *); +GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum); +GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateMipmapEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +#endif + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +#endif + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *); +GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *); +GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint); +GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *); +GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint); +GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint); +GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +#endif + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +#endif + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble); +GLAPI void APIENTRY glClearDepthdNV (GLdouble); +GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +#endif + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +#endif + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); +#endif + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *); +GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint); +GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +#endif + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum); +GLAPI void APIENTRY glEndTransformFeedbackNV (void); +GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum); +GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); +GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); +GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint); +GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint); +GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +#endif + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); +#endif + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#endif + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glx/apple/include/GL/glx.h b/src/glx/apple/include/GL/glx.h new file mode 100644 index 0000000000..2884401406 --- /dev/null +++ b/src/glx/apple/include/GL/glx.h @@ -0,0 +1,519 @@ +/* + * Mesa 3-D graphics library + * Version: 6.5 + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef GLX_H +#define GLX_H + + +#ifdef __VMS +#include +# ifdef __cplusplus +/* VMS Xlib.h gives problems with C++. + * this avoids a bunch of trivial warnings */ +#pragma message disable nosimpint +#endif +#endif +#include +#include +#ifdef __VMS +# ifdef __cplusplus +#pragma message enable nosimpint +#endif +#endif +#include + + +#if defined(USE_MGL_NAMESPACE) +#include "glx_mangle.h" +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define GLX_VERSION_1_1 1 +#define GLX_VERSION_1_2 1 +#define GLX_VERSION_1_3 1 +#define GLX_VERSION_1_4 1 + +#define GLX_EXTENSION_NAME "GLX" + + + +/* + * Tokens for glXChooseVisual and glXGetConfig: + */ +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 + + +/* + * Error codes returned by glXGetConfig: + */ +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + + +/* + * GLX 1.1 and later: + */ +#define GLX_VENDOR 1 +#define GLX_VERSION 2 +#define GLX_EXTENSIONS 3 + + +/* + * GLX 1.3 and later: + */ +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 + + +/* + * GLX 1.4 and later: + */ +#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ +#define GLX_SAMPLES 0x186a1 /*100001*/ + + + +typedef struct __GLXcontextRec *GLXContext; +typedef XID GLXPixmap; +typedef XID GLXDrawable; +/* GLX 1.3 and later */ +typedef struct __GLXFBConfigRec *GLXFBConfig; +typedef XID GLXFBConfigID; +typedef XID GLXContextID; +typedef XID GLXWindow; +typedef XID GLXPbuffer; + + + +extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, + int *attribList ); + +extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, + GLXContext shareList, Bool direct ); + +extern void glXDestroyContext( Display *dpy, GLXContext ctx ); + +extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, + GLXContext ctx); + +extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, + unsigned long mask ); + +extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); + +extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, + Pixmap pixmap ); + +extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); + +extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); + +extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); + +extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); + +extern int glXGetConfig( Display *dpy, XVisualInfo *visual, + int attrib, int *value ); + +extern GLXContext glXGetCurrentContext( void ); + +extern GLXDrawable glXGetCurrentDrawable( void ); + +extern void glXWaitGL( void ); + +extern void glXWaitX( void ); + +extern void glXUseXFont( Font font, int first, int count, int list ); + + + +/* GLX 1.1 and later */ +extern const char *glXQueryExtensionsString( Display *dpy, int screen ); + +extern const char *glXQueryServerString( Display *dpy, int screen, int name ); + +extern const char *glXGetClientString( Display *dpy, int name ); + + +/* GLX 1.2 and later */ +extern Display *glXGetCurrentDisplay( void ); + + +/* GLX 1.3 and later */ +extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, + const int *attribList, int *nitems ); + +extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, + int attribute, int *value ); + +extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, + int *nelements ); + +extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, + GLXFBConfig config ); + +extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, + Window win, const int *attribList ); + +extern void glXDestroyWindow( Display *dpy, GLXWindow window ); + +extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, + Pixmap pixmap, const int *attribList ); + +extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); + +extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, + const int *attribList ); + +extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); + +extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, + unsigned int *value ); + +extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, + int renderType, GLXContext shareList, + Bool direct ); + +extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, + GLXDrawable read, GLXContext ctx ); + +extern GLXDrawable glXGetCurrentReadDrawable( void ); + +extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, + int *value ); + +extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, + unsigned long mask ); + +extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, + unsigned long *mask ); + +/* GLX 1.3 function pointer typedefs */ +typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); +typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); +typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); + + +/* + * ARB 2. GLX_ARB_get_proc_address + */ +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +typedef void (*__GLXextFuncPtr)(void); +extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); + +#endif /* GLX_ARB_get_proc_address */ + + + +/* GLX 1.4 and later */ +extern void (*glXGetProcAddress(const GLubyte *procname))( void ); + +/* GLX 1.4 function pointer typedefs */ +typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); + + +#ifndef GLX_GLXEXT_LEGACY + +#include + +#endif /* GLX_GLXEXT_LEGACY */ + + +/** + ** The following aren't in glxext.h yet. + **/ + + +/* + * ???. GLX_NV_vertex_array_range + */ +#ifndef GLX_NV_vertex_array_range +#define GLX_NV_vertex_array_range + +extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +extern void glXFreeMemoryNV(GLvoid *pointer); +typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); + +#endif /* GLX_NV_vertex_array_range */ + + +/* + * ???. GLX_MESA_allocate_memory + */ +#ifndef GLX_MESA_allocate_memory +#define GLX_MESA_allocate_memory 1 + +extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); +extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer); +extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer); +typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); +typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer); +typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer); + +#endif /* GLX_MESA_allocate_memory */ + + +/* + * ARB ?. GLX_ARB_render_texture + * XXX This was never finalized! + */ +#ifndef GLX_ARB_render_texture +#define GLX_ARB_render_texture 1 + +extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); +extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); +extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); + +#endif /* GLX_ARB_render_texture */ + + +/* + * Remove this when glxext.h is updated. + */ +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 + +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 + +#endif /* GLX_NV_float_buffer */ + + + +/* + * #?. GLX_MESA_swap_frame_usage + */ +#ifndef GLX_MESA_swap_frame_usage +#define GLX_MESA_swap_frame_usage 1 + +extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); +extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); +extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); +extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); + +typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); +typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); +typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); +typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); + +#endif /* GLX_MESA_swap_frame_usage */ + + + +/* + * #?. GLX_MESA_swap_control + */ +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control 1 + +extern int glXSwapIntervalMESA(unsigned int interval); +extern int glXGetSwapIntervalMESA(void); + +typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); +typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); + +#endif /* GLX_MESA_swap_control */ + + + +/* + * #?. GLX_EXT_texture_from_pixmap + * XXX not finished? + */ +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 + +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 + +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 + +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD + +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT +#define GLX_BACK_EXT GLX_BACK_LEFT_EXT +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB + +extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); +extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); + +#endif /* GLX_EXT_texture_from_pixmap */ + + + + +/*** Should these go here, or in another header? */ +/* +** GLX Events +*/ +typedef struct { + int event_type; /* GLX_DAMAGED or GLX_SAVED */ + int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* XID of Drawable */ + unsigned int buffer_mask; /* mask indicating which buffers are affected */ + unsigned int aux_buffer; /* which aux buffer was affected */ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXPbufferClobberEvent; + +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; +} GLXEvent; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glx/apple/include/GL/glxext.h b/src/glx/apple/include/GL/glxext.h new file mode 100644 index 0000000000..9ac0592e05 --- /dev/null +++ b/src/glx/apple/include/GL/glxext.h @@ -0,0 +1,933 @@ +#ifndef __glxext_h_ +#define __glxext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glxext.h last updated 2009/10/08 */ +/* Current version at http://www.opengl.org/registry/ */ +#define GLX_GLXEXT_VERSION 25 + +#ifndef GLX_VERSION_1_3 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#endif + +#ifndef GLX_VERSION_1_4 +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 +#endif + +#ifndef GLX_ARB_get_proc_address +#endif + +#ifndef GLX_ARB_multisample +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 +#endif + +#ifndef GLX_ARB_fbconfig_float +#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 +#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 +#endif + +#ifndef GLX_ARB_create_context +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 +#endif + +#ifndef GLX_ARB_create_context_profile +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 +#endif + +#ifndef GLX_SGIS_multisample +#define GLX_SAMPLE_BUFFERS_SGIS 100000 +#define GLX_SAMPLES_SGIS 100001 +#endif + +#ifndef GLX_EXT_visual_info +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 +#endif + +#ifndef GLX_SGI_swap_control +#endif + +#ifndef GLX_SGI_video_sync +#endif + +#ifndef GLX_SGI_make_current_read +#endif + +#ifndef GLX_SGIX_video_source +#endif + +#ifndef GLX_EXT_visual_rating +#define GLX_VISUAL_CAVEAT_EXT 0x20 +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D +/* reuse GLX_NONE_EXT */ +#endif + +#ifndef GLX_EXT_import_context +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C +#endif + +#ifndef GLX_SGIX_fbconfig +#define GLX_WINDOW_BIT_SGIX 0x00000001 +#define GLX_PIXMAP_BIT_SGIX 0x00000002 +#define GLX_RGBA_BIT_SGIX 0x00000001 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 +#define GLX_DRAWABLE_TYPE_SGIX 0x8010 +#define GLX_RENDER_TYPE_SGIX 0x8011 +#define GLX_X_RENDERABLE_SGIX 0x8012 +#define GLX_FBCONFIG_ID_SGIX 0x8013 +#define GLX_RGBA_TYPE_SGIX 0x8014 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 +/* reuse GLX_SCREEN_EXT */ +#endif + +#ifndef GLX_SGIX_pbuffer +#define GLX_PBUFFER_BIT_SGIX 0x00000004 +#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 +#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 +#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 +#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 +#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 +#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 +#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 +#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 +#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 +#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 +#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A +#define GLX_PRESERVED_CONTENTS_SGIX 0x801B +#define GLX_LARGEST_PBUFFER_SGIX 0x801C +#define GLX_WIDTH_SGIX 0x801D +#define GLX_HEIGHT_SGIX 0x801E +#define GLX_EVENT_MASK_SGIX 0x801F +#define GLX_DAMAGED_SGIX 0x8020 +#define GLX_SAVED_SGIX 0x8021 +#define GLX_WINDOW_SGIX 0x8022 +#define GLX_PBUFFER_SGIX 0x8023 +#endif + +#ifndef GLX_SGI_cushion +#endif + +#ifndef GLX_SGIX_video_resize +#define GLX_SYNC_FRAME_SGIX 0x00000000 +#define GLX_SYNC_SWAP_SGIX 0x00000001 +#endif + +#ifndef GLX_SGIX_dmbuffer +#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 +#endif + +#ifndef GLX_SGIX_swap_group +#endif + +#ifndef GLX_SGIX_swap_barrier +#endif + +#ifndef GLX_SGIS_blended_overlay +#define GLX_BLENDED_RGBA_SGIS 0x8025 +#endif + +#ifndef GLX_SGIS_shared_multisample +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 +#endif + +#ifndef GLX_SUN_get_transparent_index +#endif + +#ifndef GLX_3DFX_multisample +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 +#define GLX_SAMPLES_3DFX 0x8051 +#endif + +#ifndef GLX_MESA_copy_sub_buffer +#endif + +#ifndef GLX_MESA_pixmap_colormap +#endif + +#ifndef GLX_MESA_release_buffers +#endif + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 +#endif + +#ifndef GLX_SGIX_visual_select_group +#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 +#endif + +#ifndef GLX_OML_swap_method +#define GLX_SWAP_METHOD_OML 0x8060 +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 +#endif + +#ifndef GLX_OML_sync_control +#endif + +#ifndef GLX_NV_float_buffer +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 +#endif + +#ifndef GLX_SGIX_hyperpipe +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 +#endif + +#ifndef GLX_MESA_agp_offset +#endif + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#endif + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 +#endif + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT +#define GLX_BACK_EXT GLX_BACK_LEFT_EXT +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB +#endif + +#ifndef GLX_NV_present_video +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 +#endif + +#ifndef GLX_NV_video_out +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA +#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB +#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC +#endif + +#ifndef GLX_NV_swap_group +#endif + +#ifndef GLX_NV_video_capture +#define GLX_DEVICE_ID_NV 0x20CD +#define GLX_UNIQUE_ID_NV 0x20CE +#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF +#endif + +#ifndef GLX_EXT_swap_control +#define GLX_SWAP_INTERVAL_EXT 0x20F1 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 +#endif + +#ifndef GLX_NV_copy_image +#endif + + +/*************************************************************/ + +#ifndef GLX_ARB_get_proc_address +typedef void (*__GLXextFuncPtr)(void); +#endif + +#ifndef GLX_SGIX_video_source +typedef XID GLXVideoSourceSGIX; +#endif + +#ifndef GLX_SGIX_fbconfig +typedef XID GLXFBConfigIDSGIX; +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; +#endif + +#ifndef GLX_SGIX_pbuffer +typedef XID GLXPbufferSGIX; +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* i.d. of Drawable */ + int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ + int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ + unsigned int mask; /* mask indicating which buffers are affected*/ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXBufferClobberEventSGIX; +#endif + +#ifndef GLX_NV_video_output +typedef unsigned int GLXVideoDeviceNV; +#endif + +#ifndef GLX_NV_video_capture +typedef XID GLXVideoCaptureDeviceNV; +#endif + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GLX_OML_sync_control extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include /* Fallback option */ +#endif +#endif + +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); +extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); +extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); +extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); +extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); +extern void glXDestroyWindow (Display *, GLXWindow); +extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); +extern void glXDestroyPixmap (Display *, GLXPixmap); +extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); +extern void glXDestroyPbuffer (Display *, GLXPbuffer); +extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); +extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); +extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern GLXDrawable glXGetCurrentReadDrawable (void); +extern Display * glXGetCurrentDisplay (void); +extern int glXQueryContext (Display *, GLXContext, int, int *); +extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); +extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); +typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); +typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); +#endif + +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); +#endif + +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); +#endif + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 +#endif + +#ifndef GLX_ARB_fbconfig_float +#define GLX_ARB_fbconfig_float 1 +#endif + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXContext glXCreateContextAttribsARB (Display *, GLXFBConfig, GLXContext, Bool, const int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +#endif + +#ifndef GLX_ARB_create_context_profile +#define GLX_ARB_create_context_profile 1 +#endif + +#ifndef GLX_SGIS_multisample +#define GLX_SGIS_multisample 1 +#endif + +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 +#endif + +#ifndef GLX_SGI_swap_control +#define GLX_SGI_swap_control 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXSwapIntervalSGI (int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); +#endif + +#ifndef GLX_SGI_video_sync +#define GLX_SGI_video_sync 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXGetVideoSyncSGI (unsigned int *); +extern int glXWaitVideoSyncSGI (int, int, unsigned int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); +typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); +#endif + +#ifndef GLX_SGI_make_current_read +#define GLX_SGI_make_current_read 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern GLXDrawable glXGetCurrentReadDrawableSGI (void); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); +#endif + +#ifndef GLX_SGIX_video_source +#define GLX_SGIX_video_source 1 +#ifdef _VL_H +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); +extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); +typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); +#endif /* _VL_H */ +#endif + +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 +#endif + +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Display * glXGetCurrentDisplayEXT (void); +extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); +extern GLXContextID glXGetContextIDEXT (const GLXContext); +extern GLXContext glXImportContextEXT (Display *, GLXContextID); +extern void glXFreeContextEXT (Display *, GLXContext); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); +typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); +typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); +#endif + +#ifndef GLX_SGIX_fbconfig +#define GLX_SGIX_fbconfig 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); +extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); +extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); +extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); +extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); +extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); +typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); +#endif + +#ifndef GLX_SGIX_pbuffer +#define GLX_SGIX_pbuffer 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); +extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); +extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); +extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); +extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); +typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); +typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); +#endif + +#ifndef GLX_SGI_cushion +#define GLX_SGI_cushion 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXCushionSGI (Display *, Window, float); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); +#endif + +#ifndef GLX_SGIX_video_resize +#define GLX_SGIX_video_resize 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); +extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); +extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); +extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); +extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); +typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); +typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); +#endif + +#ifndef GLX_SGIX_dmbuffer +#define GLX_SGIX_dmbuffer 1 +#ifdef _DM_BUFFER_H_ +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); +#endif /* _DM_BUFFER_H_ */ +#endif + +#ifndef GLX_SGIX_swap_group +#define GLX_SGIX_swap_group 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); +#endif + +#ifndef GLX_SGIX_swap_barrier +#define GLX_SGIX_swap_barrier 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); +extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); +#endif + +#ifndef GLX_SUN_get_transparent_index +#define GLX_SUN_get_transparent_index 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); +#endif + +#ifndef GLX_MESA_copy_sub_buffer +#define GLX_MESA_copy_sub_buffer 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); +#endif + +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); +#endif + +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); +#endif + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXSet3DfxModeMESA (int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); +#endif + +#ifndef GLX_SGIX_visual_select_group +#define GLX_SGIX_visual_select_group 1 +#endif + +#ifndef GLX_OML_swap_method +#define GLX_OML_swap_method 1 +#endif + +#ifndef GLX_OML_sync_control +#define GLX_OML_sync_control 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); +extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); +extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); +extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); +extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); +typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); +typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); +typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); +#endif + +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 +#endif + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; +} GLXHyperpipeNetworkSGIX; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int channel; + unsigned int + participationType; + int timeSlice; +} GLXHyperpipeConfigSGIX; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int srcXOrigin, srcYOrigin, srcWidth, srcHeight; + int destXOrigin, destYOrigin, destWidth, destHeight; +} GLXPipeRect; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin, YOrigin, maxHeight, maxWidth; +} GLXPipeRectLimits; + +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *); +extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *); +extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *); +extern int glXDestroyHyperpipeConfigSGIX (Display *, int); +extern int glXBindHyperpipeSGIX (Display *, int); +extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *); +extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *); +extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); +typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); +typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); +#endif + +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern unsigned int glXGetAGPOffsetMESA (const void *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); +#endif + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_EXT_fbconfig_packed_float 1 +#endif + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_EXT_framebuffer_sRGB 1 +#endif + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *); +extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); +#endif + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern unsigned int * glXEnumerateVideoDevicesNV (Display *, int, int *); +extern int glXBindVideoDeviceNV (Display *, unsigned int, unsigned int, const int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef unsigned int * ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); +#endif + +#ifndef GLX_NV_video_output +#define GLX_NV_video_output 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXGetVideoDeviceNV (Display *, int, int, GLXVideoDeviceNV *); +extern int glXReleaseVideoDeviceNV (Display *, int, GLXVideoDeviceNV); +extern int glXBindVideoImageNV (Display *, GLXVideoDeviceNV, GLXPbuffer, int); +extern int glXReleaseVideoImageNV (Display *, GLXPbuffer); +extern int glXSendPbufferToVideoNV (Display *, GLXPbuffer, int, unsigned long *, GLboolean); +extern int glXGetVideoInfoNV (Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); +typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); +typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy, GLXPbuffer pbuf); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +#endif + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXJoinSwapGroupNV (Display *, GLXDrawable, GLuint); +extern Bool glXBindSwapBarrierNV (Display *, GLuint, GLuint); +extern Bool glXQuerySwapGroupNV (Display *, GLXDrawable, GLuint *, GLuint *); +extern Bool glXQueryMaxSwapGroupsNV (Display *, int, GLuint *, GLuint *); +extern Bool glXQueryFrameCountNV (Display *, int, GLuint *); +extern Bool glXResetFrameCountNV (Display *, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count); +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); +#endif + +#ifndef GLX_NV_video_capture +#define GLX_NV_video_capture 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXBindVideoCaptureDeviceNV (Display *, unsigned int, GLXVideoCaptureDeviceNV); +extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *, int, int *); +extern void glXLockVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); +extern int glXQueryVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV, int, int *); +extern void glXReleaseVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); +typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements); +typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); +typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); +typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); +#endif + +#ifndef GLX_EXT_swap_control +#define GLX_EXT_swap_control 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXSwapIntervalEXT (Display *, GLXDrawable, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval); +#endif + +#ifndef GLX_NV_copy_image +#define GLX_NV_copy_image 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXCopyImageSubDataNV (Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glx/apple/include/GL/internal/glcore.h b/src/glx/apple/include/GL/internal/glcore.h new file mode 100644 index 0000000000..9247f89403 --- /dev/null +++ b/src/glx/apple/include/GL/internal/glcore.h @@ -0,0 +1,189 @@ +#ifndef __gl_core_h_ +#define __gl_core_h_ + +/* + * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice including the dates of first publication and + * either this permission notice or a reference to + * http://oss.sgi.com/projects/FreeB/ + * shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of Silicon Graphics, Inc. + * shall not be used in advertising or otherwise to promote the sale, use or + * other dealings in this Software without prior written authorization from + * Silicon Graphics, Inc. + */ + +#if !defined(_WIN32_WCE) +#include +#endif + +#define GL_CORE_SGI 1 +#define GL_CORE_MESA 2 +#define GL_CORE_APPLE 4 +#define GL_CORE_WINDOWS 8 + +typedef struct __GLcontextRec __GLcontext; + +/* +** This file defines the interface between the GL core and the surrounding +** "operating system" that supports it (currently the GLX or WGL extensions). +** +** Members (data and function pointers) are documented as imported or +** exported according to how they are used by the core rendering functions. +** Imported members are initialized by the "operating system" and used by +** the core functions. Exported members are initialized by the core functions +** and used by the "operating system". +*/ + +/** + * Mode and limit information for a context. This information is + * kept around in the context so that values can be used during + * command execution, and for returning information about the + * context to the application. + * + * Instances of this structure are shared by the driver and the loader. To + * maintain binary compatability, new fields \b must be added only to the + * end of the structure. + * + * \sa _gl_context_modes_create + */ +typedef struct __GLcontextModesRec { + struct __GLcontextModesRec * next; + + GLboolean rgbMode; + GLboolean floatMode; + GLboolean colorIndexMode; + GLuint doubleBufferMode; + GLuint stereoMode; + + GLboolean haveAccumBuffer; + GLboolean haveDepthBuffer; + GLboolean haveStencilBuffer; + + GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ + GLuint redMask, greenMask, blueMask, alphaMask; + GLint rgbBits; /* total bits for rgb */ + GLint indexBits; /* total bits for colorindex */ + + GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; + GLint depthBits; + GLint stencilBits; + + GLint numAuxBuffers; + + GLint level; + + GLint pixmapMode; + + /* GLX */ + GLint visualID; + GLint visualType; /**< One of the GLX X visual types. (i.e., + * \c GLX_TRUE_COLOR, etc.) + */ + + /* EXT_visual_rating / GLX 1.2 */ + GLint visualRating; + + /* EXT_visual_info / GLX 1.2 */ + GLint transparentPixel; + /* colors are floats scaled to ints */ + GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; + GLint transparentIndex; + + /* ARB_multisample / SGIS_multisample */ + GLint sampleBuffers; + GLint samples; + + /* SGIX_fbconfig / GLX 1.3 */ + GLint drawableType; + GLint renderType; + GLint xRenderable; + GLint fbconfigID; + + /* SGIX_pbuffer / GLX 1.3 */ + GLint maxPbufferWidth; + GLint maxPbufferHeight; + GLint maxPbufferPixels; + GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ + GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ + + /* SGIX_visual_select_group */ + GLint visualSelectGroup; + + /* OML_swap_method */ + GLint swapMethod; + + GLint screen; + + /* EXT_texture_from_pixmap */ + GLint bindToTextureRgb; + GLint bindToTextureRgba; + GLint bindToMipmapTexture; + GLint bindToTextureTargets; + GLint yInverted; + +#ifdef __APPLE__ + void *apple; +#endif +} __GLcontextModes; + +/* Several fields of __GLcontextModes can take these as values. Since + * GLX header files may not be available everywhere they need to be used, + * redefine them here. + */ +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLX_DONT_CARE 0xFFFFFFFF + +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 + +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 + +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA + +#endif /* __gl_core_h_ */ diff --git a/src/glx/apple/include/simple_list.h b/src/glx/apple/include/simple_list.h new file mode 100644 index 0000000000..63475f6f74 --- /dev/null +++ b/src/glx/apple/include/simple_list.h @@ -0,0 +1,197 @@ +/** + * \file simple_list.h + * Simple macros for type-safe, intrusive lists. + * + * Intended to work with a list sentinal which is created as an empty + * list. Insert & delete are O(1). + * + * \author + * (C) 1997, Keith Whitwell + */ + +/* + * Mesa 3-D graphics library + * Version: 3.5 + * + * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef _SIMPLE_LIST_H +#define _SIMPLE_LIST_H + +/** + * Remove an element from list. + * + * \param elem element to remove. + */ +#define remove_from_list(elem) \ +do { \ + (elem)->next->prev = (elem)->prev; \ + (elem)->prev->next = (elem)->next; \ +} while (0) + +/** + * Insert an element to the list head. + * + * \param list list. + * \param elem element to insert. + */ +#define insert_at_head(list, elem) \ +do { \ + (elem)->prev = list; \ + (elem)->next = (list)->next; \ + (list)->next->prev = elem; \ + (list)->next = elem; \ +} while(0) + +/** + * Insert an element to the list tail. + * + * \param list list. + * \param elem element to insert. + */ +#define insert_at_tail(list, elem) \ +do { \ + (elem)->next = list; \ + (elem)->prev = (list)->prev; \ + (list)->prev->next = elem; \ + (list)->prev = elem; \ +} while(0) + +/** + * Move an element to the list head. + * + * \param list list. + * \param elem element to move. + */ +#define move_to_head(list, elem) \ +do { \ + remove_from_list(elem); \ + insert_at_head(list, elem); \ +} while (0) + +/** + * Move an element to the list tail. + * + * \param list list. + * \param elem element to move. + */ +#define move_to_tail(list, elem) \ +do { \ + remove_from_list(elem); \ + insert_at_tail(list, elem); \ +} while (0) + +/** + * Make a empty list empty. + * + * \param sentinal list (sentinal element). + */ +#define make_empty_list(sentinal) \ +do { \ + (sentinal)->next = sentinal; \ + (sentinal)->prev = sentinal; \ +} while (0) + +/** + * Get list first element. + * + * \param list list. + * + * \return pointer to first element. + */ +#define first_elem(list) ((list)->next) + +/** + * Get list last element. + * + * \param list list. + * + * \return pointer to last element. + */ +#define last_elem(list) ((list)->prev) + +/** + * Get next element. + * + * \param elem element. + * + * \return pointer to next element. + */ +#define next_elem(elem) ((elem)->next) + +/** + * Get previous element. + * + * \param elem element. + * + * \return pointer to previous element. + */ +#define prev_elem(elem) ((elem)->prev) + +/** + * Test whether element is at end of the list. + * + * \param list list. + * \param elem element. + * + * \return non-zero if element is at end of list, or zero otherwise. + */ +#define at_end(list, elem) ((elem) == (list)) + +/** + * Test if a list is empty. + * + * \param list list. + * + * \return non-zero if list empty, or zero otherwise. + */ +#define is_empty_list(list) ((list)->next == (list)) + +/** + * Walk through the elements of a list. + * + * \param ptr pointer to the current element. + * \param list list. + * + * \note It should be followed by a { } block or a single statement, as in a \c + * for loop. + */ +#define foreach(ptr, list) \ + for( ptr=(list)->next ; ptr!=list ; ptr=(ptr)->next ) + +/** + * Walk through the elements of a list. + * + * Same as #foreach but lets you unlink the current value during a list + * traversal. Useful for freeing a list, element by element. + * + * \param ptr pointer to the current element. + * \param t temporary pointer. + * \param list list. + * + * \note It should be followed by a { } block or a single statement, as in a \c + * for loop. + */ +#define foreach_s(ptr, t, list) \ + for(ptr=(list)->next,t=(ptr)->next; list != ptr; ptr=t, t=(t)->next) + +#endif diff --git a/src/glx/apple/specs/enum.spec b/src/glx/apple/specs/enum.spec new file mode 100644 index 0000000000..6a51165254 --- /dev/null +++ b/src/glx/apple/specs/enum.spec @@ -0,0 +1,7487 @@ +# This is the OpenGL and OpenGL ES enumerant registry. +# +# It is an extremely important file. Do not mess with it unless +# you know what you're doing and have permission to do so. +# +############################################################################### +# +# Before modifying this file, read the following: +# +# ONLY the Khronos API Registrar (Jon Leech, jon 'at' alumni.caltech.edu) +# may allocate new enumerants outside the 'experimental' range described +# below. Any modifications to this file not performed by the Registrar +# are incompatible with the OpenGL API. The master copy of the registry, +# showing up-to-date enumerant allocations, is maintained in the +# OpenGL registry at +# +# http://www.opengl.org/registry/ +# +# The following guidelines are thus only for reference purposes +# (unless you're the Registrar) +# +# Enumerant values for extensions CANNOT be chosen arbitrarily, since +# the enumerant value space is shared by all GL implementations. It is +# therefore imperative that the procedures described in this file be +# followed carefully when allocating extension enum values. +# +# - Use tabs, not spaces. +# +# - When adding enum values for a new extension, use existing extensions +# as a guide. +# +# - When a vendor has committed to releasing a new extension and needs to +# allocate enum values for that extension, the vendor may request that the +# ARB allocate a previously unallocated block of 16 enum values, in the +# range 0x8000-0xFFFF, for the vendor's exclusive use. +# +# - The vendor that introduces an extension will allocate enum values for +# it as if it is a single-vendor extension, even if it is a multi-vendor +# (EXT) extension. +# +# - The file enum.spec is primarily a reference. The file enumext.spec +# contains enumerants for all OpenGL 1.2 and OpenGL extensions in a form +# used to generate . +# +# - If a vendor hasn't yet released an extension, just add a comment to +# enum.spec that contains the name of the extension and the range of enum +# values used by the extension. When the vendor releases the extension, +# put the actual enum assignments in enum.spec and enumext.spec. +# +# - Allocate all of the enum values for an extension in a single contiguous +# block. +# +# - If an extension is experimental, allocate temporary enum values in the +# range 0x6000-0x8000 during development work. When the vendor commits to +# releasing the extension, allocate permanent enum values (see below). +# There are two reasons for this policy: +# +# 1. It is desirable to keep extension enum values tightly packed and to +# make all of the enum values for an extension be contiguous. This is +# possible only if permanent enum values for a new extension are not +# allocated until the extension spec is stable and the number of new +# enum values needed by the extension has therefore stopped changing. +# +# 2. OpenGL ARB policy is that a vendor may allocate a new block of 16 +# extension enum values only if it has committed to releasing an +# extension that will use values in that block. +# +# - To allocate a new block of permanent enum values for an extension, do the +# following: +# +# 1. Start at the top of enum.spec and choose the first future_use +# range that is not allocated to another vendor and is large enough +# to contain the new block. This will almost certainly be the +# 'Any_vendor_future_use' range near the end of enum.spec. This +# process helps keep allocated enum values tightly packed into +# the start of the 0x8000-0xFFFF range. +# +# 2. Allocate a block of enum values at the start of this range. If +# the enum definitions are going into enumfuture.spec, add a comment +# to enum.spec that contains the name of the extension and the range +# of values in the new block. Use existing extensions as a guide. +# +# 3. Add the size of the block you just allocated to the start of the +# chosen future_use range. If you have allocated the entire range, +# eliminate its future_use entry. +# +# 4. Note that there are historical enum allocations above 0xFFFF, but +# no new allocations will be made there in the forseeable future. +# +############################################################################### + +Extensions define: + VERSION_1_1 = 1 + VERSION_1_2 = 1 + VERSION_1_3 = 1 + VERSION_1_4 = 1 + VERSION_1_5 = 1 + VERSION_2_0 = 1 + VERSION_2_1 = 1 + VERSION_3_0 = 1 + VERSION_3_1 = 1 + VERSION_3_2 = 1 + ARB_imaging = 1 + EXT_abgr = 1 + EXT_blend_color = 1 + EXT_blend_logic_op = 1 + EXT_blend_minmax = 1 + EXT_blend_subtract = 1 + EXT_cmyka = 1 + EXT_convolution = 1 + EXT_copy_texture = 1 + EXT_histogram = 1 + EXT_packed_pixels = 1 + EXT_point_parameters = 1 + EXT_polygon_offset = 1 + EXT_rescale_normal = 1 + EXT_shared_texture_palette = 1 + EXT_subtexture = 1 + EXT_texture = 1 + EXT_texture3D = 1 + EXT_texture_object = 1 + EXT_vertex_array = 1 + SGIS_detail_texture = 1 + SGIS_fog_function = 1 + SGIS_generate_mipmap = 1 + SGIS_multisample = 1 + SGIS_pixel_texture = 1 + SGIS_point_line_texgen = 1 + SGIS_point_parameters = 1 + SGIS_sharpen_texture = 1 + SGIS_texture4D = 1 + SGIS_texture_border_clamp = 1 + SGIS_texture_edge_clamp = 1 + SGIS_texture_filter4 = 1 + SGIS_texture_lod = 1 + SGIS_texture_select = 1 + SGIX_async = 1 + SGIX_async_histogram = 1 + SGIX_async_pixel = 1 + SGIX_blend_alpha_minmax = 1 + SGIX_calligraphic_fragment = 1 + SGIX_clipmap = 1 + SGIX_convolution_accuracy = 1 + SGIX_depth_texture = 1 + SGIX_flush_raster = 1 + SGIX_fog_offset = 1 + SGIX_fragment_lighting = 1 + SGIX_framezoom = 1 + SGIX_icc_texture = 1 + SGIX_impact_pixel_texture = 1 + SGIX_instruments = 1 + SGIX_interlace = 1 + SGIX_ir_instrument1 = 1 + SGIX_list_priority = 1 + SGIX_pixel_texture = 1 + SGIX_pixel_tiles = 1 + SGIX_polynomial_ffd = 1 + SGIX_reference_plane = 1 + SGIX_resample = 1 + SGIX_scalebias_hint = 1 + SGIX_shadow = 1 + SGIX_shadow_ambient = 1 + SGIX_sprite = 1 + SGIX_subsample = 1 + SGIX_tag_sample_buffer = 1 + SGIX_texture_add_env = 1 + SGIX_texture_coordinate_clamp = 1 + SGIX_texture_lod_bias = 1 + SGIX_texture_multi_buffer = 1 + SGIX_texture_scale_bias = 1 + SGIX_vertex_preclip = 1 + SGIX_ycrcb = 1 + SGI_color_matrix = 1 + SGI_color_table = 1 + SGI_texture_color_table = 1 + +############################################################################### + +AttribMask enum: + CURRENT_BIT = 0x00000001 + POINT_BIT = 0x00000002 + LINE_BIT = 0x00000004 + POLYGON_BIT = 0x00000008 + POLYGON_STIPPLE_BIT = 0x00000010 + PIXEL_MODE_BIT = 0x00000020 + LIGHTING_BIT = 0x00000040 + FOG_BIT = 0x00000080 + DEPTH_BUFFER_BIT = 0x00000100 + ACCUM_BUFFER_BIT = 0x00000200 + STENCIL_BUFFER_BIT = 0x00000400 + VIEWPORT_BIT = 0x00000800 + TRANSFORM_BIT = 0x00001000 + ENABLE_BIT = 0x00002000 + COLOR_BUFFER_BIT = 0x00004000 + HINT_BIT = 0x00008000 + EVAL_BIT = 0x00010000 + LIST_BIT = 0x00020000 + TEXTURE_BIT = 0x00040000 + SCISSOR_BIT = 0x00080000 + ALL_ATTRIB_BITS = 0xFFFFFFFF +#??? ALL_ATTRIB_BITS mask value changed to all-1s in OpenGL 1.3 - this affects covgl. +# use ARB_multisample MULTISAMPLE_BIT_ARB +# use EXT_multisample MULTISAMPLE_BIT_EXT +# use 3DFX_multisample MULTISAMPLE_BIT_3DFX + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + MULTISAMPLE_BIT = 0x20000000 + +ARB_multisample enum: + MULTISAMPLE_BIT_ARB = 0x20000000 + +EXT_multisample enum: + MULTISAMPLE_BIT_EXT = 0x20000000 + +3DFX_multisample enum: + MULTISAMPLE_BIT_3DFX = 0x20000000 + +############################################################################### + +ClearBufferMask enum: + use AttribMask COLOR_BUFFER_BIT + use AttribMask ACCUM_BUFFER_BIT + use AttribMask STENCIL_BUFFER_BIT + use AttribMask DEPTH_BUFFER_BIT + +############################################################################### + +ClientAttribMask enum: + CLIENT_PIXEL_STORE_BIT = 0x00000001 + CLIENT_VERTEX_ARRAY_BIT = 0x00000002 + CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF + +############################################################################### + +# There's no obvious better place to put non-attribute-group mask bits +VERSION_3_0 enum: + use ARB_map_buffer_range MAP_READ_BIT + use ARB_map_buffer_range MAP_WRITE_BIT + use ARB_map_buffer_range MAP_INVALIDATE_RANGE_BIT + use ARB_map_buffer_range MAP_INVALIDATE_BUFFER_BIT + use ARB_map_buffer_range MAP_FLUSH_EXPLICIT_BIT + use ARB_map_buffer_range MAP_UNSYNCHRONIZED_BIT + +ARB_map_buffer_range enum: + MAP_READ_BIT = 0x0001 # VERSION_3_0 / ARB_mbr + MAP_WRITE_BIT = 0x0002 # VERSION_3_0 / ARB_mbr + MAP_INVALIDATE_RANGE_BIT = 0x0004 # VERSION_3_0 / ARB_mbr + MAP_INVALIDATE_BUFFER_BIT = 0x0008 # VERSION_3_0 / ARB_mbr + MAP_FLUSH_EXPLICIT_BIT = 0x0010 # VERSION_3_0 / ARB_mbr + MAP_UNSYNCHRONIZED_BIT = 0x0020 # VERSION_3_0 / ARB_mbr + +############################################################################### + +VERSION_3_0 enum: + CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001 # VERSION_3_0 + +############################################################################### + +Boolean enum: + FALSE = 0 + TRUE = 1 + +############################################################################### + +BeginMode enum: + POINTS = 0x0000 + LINES = 0x0001 + LINE_LOOP = 0x0002 + LINE_STRIP = 0x0003 + TRIANGLES = 0x0004 + TRIANGLE_STRIP = 0x0005 + TRIANGLE_FAN = 0x0006 + QUADS = 0x0007 + QUAD_STRIP = 0x0008 + POLYGON = 0x0009 + +VERSION_3_2 enum: + LINES_ADJACENCY = 0x000A + LINE_STRIP_ADJACENCY = 0x000B + TRIANGLES_ADJACENCY = 0x000C + TRIANGLE_STRIP_ADJACENCY = 0x000D + +ARB_geometry_shader4 enum: (additional; see below) + LINES_ADJACENCY_ARB = 0x000A + LINE_STRIP_ADJACENCY_ARB = 0x000B + TRIANGLES_ADJACENCY_ARB = 0x000C + TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D + +NV_geometry_program4 enum: (additional; see below) + LINES_ADJACENCY_EXT = 0x000A + LINE_STRIP_ADJACENCY_EXT = 0x000B + TRIANGLES_ADJACENCY_EXT = 0x000C + TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D + +# BeginMode_future_use: 0x000E + +############################################################################### + +AccumOp enum: + ACCUM = 0x0100 + LOAD = 0x0101 + RETURN = 0x0102 + MULT = 0x0103 + ADD = 0x0104 + +############################################################################### + +AlphaFunction enum: + NEVER = 0x0200 + LESS = 0x0201 + EQUAL = 0x0202 + LEQUAL = 0x0203 + GREATER = 0x0204 + NOTEQUAL = 0x0205 + GEQUAL = 0x0206 + ALWAYS = 0x0207 + +############################################################################### + +BlendingFactorDest enum: + ZERO = 0 + ONE = 1 + SRC_COLOR = 0x0300 + ONE_MINUS_SRC_COLOR = 0x0301 + SRC_ALPHA = 0x0302 + ONE_MINUS_SRC_ALPHA = 0x0303 + DST_ALPHA = 0x0304 + ONE_MINUS_DST_ALPHA = 0x0305 + use EXT_blend_color CONSTANT_COLOR_EXT + use EXT_blend_color ONE_MINUS_CONSTANT_COLOR_EXT + use EXT_blend_color CONSTANT_ALPHA_EXT + use EXT_blend_color ONE_MINUS_CONSTANT_ALPHA_EXT + +############################################################################### + +BlendingFactorSrc enum: + use BlendingFactorDest ZERO + use BlendingFactorDest ONE + DST_COLOR = 0x0306 + ONE_MINUS_DST_COLOR = 0x0307 + SRC_ALPHA_SATURATE = 0x0308 + use BlendingFactorDest SRC_ALPHA + use BlendingFactorDest ONE_MINUS_SRC_ALPHA + use BlendingFactorDest DST_ALPHA + use BlendingFactorDest ONE_MINUS_DST_ALPHA + use EXT_blend_color CONSTANT_COLOR_EXT + use EXT_blend_color ONE_MINUS_CONSTANT_COLOR_EXT + use EXT_blend_color CONSTANT_ALPHA_EXT + use EXT_blend_color ONE_MINUS_CONSTANT_ALPHA_EXT + +############################################################################### + +BlendEquationModeEXT enum: + use GetPName LOGIC_OP + use EXT_blend_minmax FUNC_ADD_EXT + use EXT_blend_minmax MIN_EXT + use EXT_blend_minmax MAX_EXT + use EXT_blend_subtract FUNC_SUBTRACT_EXT + use EXT_blend_subtract FUNC_REVERSE_SUBTRACT_EXT + use SGIX_blend_alpha_minmax ALPHA_MIN_SGIX + use SGIX_blend_alpha_minmax ALPHA_MAX_SGIX + +############################################################################### + +ColorMaterialFace enum: + use DrawBufferMode FRONT + use DrawBufferMode BACK + use DrawBufferMode FRONT_AND_BACK + +############################################################################### + +ColorMaterialParameter enum: + use LightParameter AMBIENT + use LightParameter DIFFUSE + use LightParameter SPECULAR + use MaterialParameter EMISSION + use MaterialParameter AMBIENT_AND_DIFFUSE + +############################################################################### + +ColorPointerType enum: + use DataType BYTE + use DataType UNSIGNED_BYTE + use DataType SHORT + use DataType UNSIGNED_SHORT + use DataType INT + use DataType UNSIGNED_INT + use DataType FLOAT + use DataType DOUBLE + +############################################################################### + +ColorTableParameterPNameSGI enum: + use SGI_color_table COLOR_TABLE_SCALE_SGI + use SGI_color_table COLOR_TABLE_BIAS_SGI + +############################################################################### + +ColorTableTargetSGI enum: + use SGI_color_table COLOR_TABLE_SGI + use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI + use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI + use SGI_color_table PROXY_COLOR_TABLE_SGI + use SGI_color_table PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI + use SGI_color_table PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI + use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI + use SGI_texture_color_table PROXY_TEXTURE_COLOR_TABLE_SGI + +############################################################################### + +ConvolutionBorderModeEXT enum: + use EXT_convolution REDUCE_EXT + +############################################################################### + +ConvolutionParameterEXT enum: + use EXT_convolution CONVOLUTION_BORDER_MODE_EXT + use EXT_convolution CONVOLUTION_FILTER_SCALE_EXT + use EXT_convolution CONVOLUTION_FILTER_BIAS_EXT + +############################################################################### + +ConvolutionTargetEXT enum: + use EXT_convolution CONVOLUTION_1D_EXT + use EXT_convolution CONVOLUTION_2D_EXT + +############################################################################### + +CullFaceMode enum: + use DrawBufferMode FRONT + use DrawBufferMode BACK + use DrawBufferMode FRONT_AND_BACK + +############################################################################### + +DepthFunction enum: + use AlphaFunction NEVER + use AlphaFunction LESS + use AlphaFunction EQUAL + use AlphaFunction LEQUAL + use AlphaFunction GREATER + use AlphaFunction NOTEQUAL + use AlphaFunction GEQUAL + use AlphaFunction ALWAYS + +############################################################################### + +DrawBufferMode enum: + NONE = 0 + FRONT_LEFT = 0x0400 + FRONT_RIGHT = 0x0401 + BACK_LEFT = 0x0402 + BACK_RIGHT = 0x0403 + FRONT = 0x0404 + BACK = 0x0405 + LEFT = 0x0406 + RIGHT = 0x0407 + FRONT_AND_BACK = 0x0408 + AUX0 = 0x0409 + AUX1 = 0x040A + AUX2 = 0x040B + AUX3 = 0x040C + +# Aliases DrawBufferMode enum above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) +# NONE_OES = 0 + +############################################################################### + +EnableCap enum: + use GetPName FOG + use GetPName LIGHTING + use GetPName TEXTURE_1D + use GetPName TEXTURE_2D + use GetPName LINE_STIPPLE + use GetPName POLYGON_STIPPLE + use GetPName CULL_FACE + use GetPName ALPHA_TEST + use GetPName BLEND + use GetPName INDEX_LOGIC_OP + use GetPName COLOR_LOGIC_OP + use GetPName DITHER + use GetPName STENCIL_TEST + use GetPName DEPTH_TEST + use GetPName CLIP_PLANE0 + use GetPName CLIP_PLANE1 + use GetPName CLIP_PLANE2 + use GetPName CLIP_PLANE3 + use GetPName CLIP_PLANE4 + use GetPName CLIP_PLANE5 + use GetPName LIGHT0 + use GetPName LIGHT1 + use GetPName LIGHT2 + use GetPName LIGHT3 + use GetPName LIGHT4 + use GetPName LIGHT5 + use GetPName LIGHT6 + use GetPName LIGHT7 + use GetPName TEXTURE_GEN_S + use GetPName TEXTURE_GEN_T + use GetPName TEXTURE_GEN_R + use GetPName TEXTURE_GEN_Q + use GetPName MAP1_VERTEX_3 + use GetPName MAP1_VERTEX_4 + use GetPName MAP1_COLOR_4 + use GetPName MAP1_INDEX + use GetPName MAP1_NORMAL + use GetPName MAP1_TEXTURE_COORD_1 + use GetPName MAP1_TEXTURE_COORD_2 + use GetPName MAP1_TEXTURE_COORD_3 + use GetPName MAP1_TEXTURE_COORD_4 + use GetPName MAP2_VERTEX_3 + use GetPName MAP2_VERTEX_4 + use GetPName MAP2_COLOR_4 + use GetPName MAP2_INDEX + use GetPName MAP2_NORMAL + use GetPName MAP2_TEXTURE_COORD_1 + use GetPName MAP2_TEXTURE_COORD_2 + use GetPName MAP2_TEXTURE_COORD_3 + use GetPName MAP2_TEXTURE_COORD_4 + use GetPName POINT_SMOOTH + use GetPName LINE_SMOOTH + use GetPName POLYGON_SMOOTH + use GetPName SCISSOR_TEST + use GetPName COLOR_MATERIAL + use GetPName NORMALIZE + use GetPName AUTO_NORMAL + use GetPName POLYGON_OFFSET_POINT + use GetPName POLYGON_OFFSET_LINE + use GetPName POLYGON_OFFSET_FILL + use GetPName VERTEX_ARRAY + use GetPName NORMAL_ARRAY + use GetPName COLOR_ARRAY + use GetPName INDEX_ARRAY + use GetPName TEXTURE_COORD_ARRAY + use GetPName EDGE_FLAG_ARRAY + use EXT_convolution CONVOLUTION_1D_EXT + use EXT_convolution CONVOLUTION_2D_EXT + use EXT_convolution SEPARABLE_2D_EXT + use EXT_histogram HISTOGRAM_EXT + use EXT_histogram MINMAX_EXT + use EXT_rescale_normal RESCALE_NORMAL_EXT + use EXT_shared_texture_palette SHARED_TEXTURE_PALETTE_EXT + use EXT_texture3D TEXTURE_3D_EXT + use SGIS_multisample MULTISAMPLE_SGIS + use SGIS_multisample SAMPLE_ALPHA_TO_MASK_SGIS + use SGIS_multisample SAMPLE_ALPHA_TO_ONE_SGIS + use SGIS_multisample SAMPLE_MASK_SGIS + use SGIS_texture4D TEXTURE_4D_SGIS + use SGIX_async_histogram ASYNC_HISTOGRAM_SGIX + use SGIX_async_pixel ASYNC_TEX_IMAGE_SGIX + use SGIX_async_pixel ASYNC_DRAW_PIXELS_SGIX + use SGIX_async_pixel ASYNC_READ_PIXELS_SGIX + use SGIX_calligraphic_fragment CALLIGRAPHIC_FRAGMENT_SGIX + use SGIX_fog_offset FOG_OFFSET_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHTING_SGIX + use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT1_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT2_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT3_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT4_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT5_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT6_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT7_SGIX + use SGIX_framezoom FRAMEZOOM_SGIX + use SGIX_interlace INTERLACE_SGIX + use SGIX_ir_instrument1 IR_INSTRUMENT1_SGIX + use SGIX_pixel_texture PIXEL_TEX_GEN_SGIX + use SGIS_pixel_texture PIXEL_TEXTURE_SGIS + use SGIX_reference_plane REFERENCE_PLANE_SGIX + use SGIX_sprite SPRITE_SGIX + use SGI_color_table COLOR_TABLE_SGI + use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI + use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI + use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI + +############################################################################### + +ErrorCode enum: + NO_ERROR = 0 + INVALID_ENUM = 0x0500 + INVALID_VALUE = 0x0501 + INVALID_OPERATION = 0x0502 + STACK_OVERFLOW = 0x0503 + STACK_UNDERFLOW = 0x0504 + OUT_OF_MEMORY = 0x0505 + use EXT_histogram TABLE_TOO_LARGE_EXT + use EXT_texture TEXTURE_TOO_LARGE_EXT + +# Additional error codes + +VERSION_3_0 enum: +# use ARB_framebuffer_object INVALID_FRAMEBUFFER_OPERATION + +ARB_framebuffer_object enum: (note: no ARB suffixes) + INVALID_FRAMEBUFFER_OPERATION = 0x0506 # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_object enum: + INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 + +# Aliases EXT_fbo enum above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506 + +############################################################################### + +FeedbackType enum: + 2D = 0x0600 + 3D = 0x0601 + 3D_COLOR = 0x0602 + 3D_COLOR_TEXTURE = 0x0603 + 4D_COLOR_TEXTURE = 0x0604 + +############################################################################### + +FeedBackToken enum: + PASS_THROUGH_TOKEN = 0x0700 + POINT_TOKEN = 0x0701 + LINE_TOKEN = 0x0702 + POLYGON_TOKEN = 0x0703 + BITMAP_TOKEN = 0x0704 + DRAW_PIXEL_TOKEN = 0x0705 + COPY_PIXEL_TOKEN = 0x0706 + LINE_RESET_TOKEN = 0x0707 + +############################################################################### + +FfdMaskSGIX enum: + TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 + GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 + +############################################################################### + +FfdTargetSGIX enum: + use SGIX_polynomial_ffd GEOMETRY_DEFORMATION_SGIX + use SGIX_polynomial_ffd TEXTURE_DEFORMATION_SGIX + +############################################################################### + +FogMode enum: + use TextureMagFilter LINEAR + EXP = 0x0800 + EXP2 = 0x0801 + use SGIS_fog_function FOG_FUNC_SGIS + +############################################################################### + +FogParameter enum: + use GetPName FOG_COLOR + use GetPName FOG_DENSITY + use GetPName FOG_END + use GetPName FOG_INDEX + use GetPName FOG_MODE + use GetPName FOG_START + use SGIX_fog_offset FOG_OFFSET_VALUE_SGIX + +############################################################################### + +FragmentLightModelParameterSGIX enum: + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX + +############################################################################### + +FrontFaceDirection enum: + CW = 0x0900 + CCW = 0x0901 + +############################################################################### + +GetColorTableParameterPNameSGI enum: + use SGI_color_table COLOR_TABLE_SCALE_SGI + use SGI_color_table COLOR_TABLE_BIAS_SGI + use SGI_color_table COLOR_TABLE_FORMAT_SGI + use SGI_color_table COLOR_TABLE_WIDTH_SGI + use SGI_color_table COLOR_TABLE_RED_SIZE_SGI + use SGI_color_table COLOR_TABLE_GREEN_SIZE_SGI + use SGI_color_table COLOR_TABLE_BLUE_SIZE_SGI + use SGI_color_table COLOR_TABLE_ALPHA_SIZE_SGI + use SGI_color_table COLOR_TABLE_LUMINANCE_SIZE_SGI + use SGI_color_table COLOR_TABLE_INTENSITY_SIZE_SGI + +############################################################################### + +GetConvolutionParameter enum: + use EXT_convolution CONVOLUTION_BORDER_MODE_EXT + use EXT_convolution CONVOLUTION_FILTER_SCALE_EXT + use EXT_convolution CONVOLUTION_FILTER_BIAS_EXT + use EXT_convolution CONVOLUTION_FORMAT_EXT + use EXT_convolution CONVOLUTION_WIDTH_EXT + use EXT_convolution CONVOLUTION_HEIGHT_EXT + use EXT_convolution MAX_CONVOLUTION_WIDTH_EXT + use EXT_convolution MAX_CONVOLUTION_HEIGHT_EXT + +############################################################################### + +GetHistogramParameterPNameEXT enum: + use EXT_histogram HISTOGRAM_WIDTH_EXT + use EXT_histogram HISTOGRAM_FORMAT_EXT + use EXT_histogram HISTOGRAM_RED_SIZE_EXT + use EXT_histogram HISTOGRAM_GREEN_SIZE_EXT + use EXT_histogram HISTOGRAM_BLUE_SIZE_EXT + use EXT_histogram HISTOGRAM_ALPHA_SIZE_EXT + use EXT_histogram HISTOGRAM_LUMINANCE_SIZE_EXT + use EXT_histogram HISTOGRAM_SINK_EXT + +############################################################################### + +GetMapQuery enum: + COEFF = 0x0A00 + ORDER = 0x0A01 + DOMAIN = 0x0A02 + +############################################################################### + +GetMinmaxParameterPNameEXT enum: + use EXT_histogram MINMAX_FORMAT_EXT + use EXT_histogram MINMAX_SINK_EXT + +############################################################################### + +GetPixelMap enum: + PIXEL_MAP_I_TO_I = 0x0C70 + PIXEL_MAP_S_TO_S = 0x0C71 + PIXEL_MAP_I_TO_R = 0x0C72 + PIXEL_MAP_I_TO_G = 0x0C73 + PIXEL_MAP_I_TO_B = 0x0C74 + PIXEL_MAP_I_TO_A = 0x0C75 + PIXEL_MAP_R_TO_R = 0x0C76 + PIXEL_MAP_G_TO_G = 0x0C77 + PIXEL_MAP_B_TO_B = 0x0C78 + PIXEL_MAP_A_TO_A = 0x0C79 + +############################################################################### + +GetPointervPName enum: + VERTEX_ARRAY_POINTER = 0x808E + NORMAL_ARRAY_POINTER = 0x808F + COLOR_ARRAY_POINTER = 0x8090 + INDEX_ARRAY_POINTER = 0x8091 + TEXTURE_COORD_ARRAY_POINTER = 0x8092 + EDGE_FLAG_ARRAY_POINTER = 0x8093 + FEEDBACK_BUFFER_POINTER = 0x0DF0 + SELECTION_BUFFER_POINTER = 0x0DF3 + use SGIX_instruments INSTRUMENT_BUFFER_POINTER_SGIX + +############################################################################### + +# the columns after the comment symbol (#) indicate: number of params, type +# (F - float, D - double, I - integer) for the returned values +GetPName enum: + CURRENT_COLOR = 0x0B00 # 4 F + CURRENT_INDEX = 0x0B01 # 1 F + CURRENT_NORMAL = 0x0B02 # 3 F + CURRENT_TEXTURE_COORDS = 0x0B03 # 4 F + CURRENT_RASTER_COLOR = 0x0B04 # 4 F + CURRENT_RASTER_INDEX = 0x0B05 # 1 F + CURRENT_RASTER_TEXTURE_COORDS = 0x0B06 # 4 F + CURRENT_RASTER_POSITION = 0x0B07 # 4 F + CURRENT_RASTER_POSITION_VALID = 0x0B08 # 1 I + CURRENT_RASTER_DISTANCE = 0x0B09 # 1 F + + POINT_SMOOTH = 0x0B10 # 1 I + POINT_SIZE = 0x0B11 # 1 F + POINT_SIZE_RANGE = 0x0B12 # 2 F + POINT_SIZE_GRANULARITY = 0x0B13 # 1 F + + LINE_SMOOTH = 0x0B20 # 1 I + LINE_WIDTH = 0x0B21 # 1 F + LINE_WIDTH_RANGE = 0x0B22 # 2 F + LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F + LINE_STIPPLE = 0x0B24 # 1 I + LINE_STIPPLE_PATTERN = 0x0B25 # 1 I + LINE_STIPPLE_REPEAT = 0x0B26 # 1 I + use VERSION_1_2 SMOOTH_POINT_SIZE_RANGE + use VERSION_1_2 SMOOTH_POINT_SIZE_GRANULARITY + use VERSION_1_2 SMOOTH_LINE_WIDTH_RANGE + use VERSION_1_2 SMOOTH_LINE_WIDTH_GRANULARITY + use VERSION_1_2 ALIASED_POINT_SIZE_RANGE + use VERSION_1_2 ALIASED_LINE_WIDTH_RANGE + + LIST_MODE = 0x0B30 # 1 I + MAX_LIST_NESTING = 0x0B31 # 1 I + LIST_BASE = 0x0B32 # 1 I + LIST_INDEX = 0x0B33 # 1 I + + POLYGON_MODE = 0x0B40 # 2 I + POLYGON_SMOOTH = 0x0B41 # 1 I + POLYGON_STIPPLE = 0x0B42 # 1 I + EDGE_FLAG = 0x0B43 # 1 I + CULL_FACE = 0x0B44 # 1 I + CULL_FACE_MODE = 0x0B45 # 1 I + FRONT_FACE = 0x0B46 # 1 I + + LIGHTING = 0x0B50 # 1 I + LIGHT_MODEL_LOCAL_VIEWER = 0x0B51 # 1 I + LIGHT_MODEL_TWO_SIDE = 0x0B52 # 1 I + LIGHT_MODEL_AMBIENT = 0x0B53 # 4 F + SHADE_MODEL = 0x0B54 # 1 I + COLOR_MATERIAL_FACE = 0x0B55 # 1 I + COLOR_MATERIAL_PARAMETER = 0x0B56 # 1 I + COLOR_MATERIAL = 0x0B57 # 1 I + + FOG = 0x0B60 # 1 I + FOG_INDEX = 0x0B61 # 1 I + FOG_DENSITY = 0x0B62 # 1 F + FOG_START = 0x0B63 # 1 F + FOG_END = 0x0B64 # 1 F + FOG_MODE = 0x0B65 # 1 I + FOG_COLOR = 0x0B66 # 4 F + + DEPTH_RANGE = 0x0B70 # 2 F + DEPTH_TEST = 0x0B71 # 1 I + DEPTH_WRITEMASK = 0x0B72 # 1 I + DEPTH_CLEAR_VALUE = 0x0B73 # 1 F + DEPTH_FUNC = 0x0B74 # 1 I + + ACCUM_CLEAR_VALUE = 0x0B80 # 4 F + + STENCIL_TEST = 0x0B90 # 1 I + STENCIL_CLEAR_VALUE = 0x0B91 # 1 I + STENCIL_FUNC = 0x0B92 # 1 I + STENCIL_VALUE_MASK = 0x0B93 # 1 I + STENCIL_FAIL = 0x0B94 # 1 I + STENCIL_PASS_DEPTH_FAIL = 0x0B95 # 1 I + STENCIL_PASS_DEPTH_PASS = 0x0B96 # 1 I + STENCIL_REF = 0x0B97 # 1 I + STENCIL_WRITEMASK = 0x0B98 # 1 I + + MATRIX_MODE = 0x0BA0 # 1 I + NORMALIZE = 0x0BA1 # 1 I + VIEWPORT = 0x0BA2 # 4 I + MODELVIEW_STACK_DEPTH = 0x0BA3 # 1 I + PROJECTION_STACK_DEPTH = 0x0BA4 # 1 I + TEXTURE_STACK_DEPTH = 0x0BA5 # 1 I + MODELVIEW_MATRIX = 0x0BA6 # 16 F + PROJECTION_MATRIX = 0x0BA7 # 16 F + TEXTURE_MATRIX = 0x0BA8 # 16 F + + ATTRIB_STACK_DEPTH = 0x0BB0 # 1 I + CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1 # 1 I + + ALPHA_TEST = 0x0BC0 # 1 I + ALPHA_TEST_FUNC = 0x0BC1 # 1 I + ALPHA_TEST_REF = 0x0BC2 # 1 F + + DITHER = 0x0BD0 # 1 I + + BLEND_DST = 0x0BE0 # 1 I + BLEND_SRC = 0x0BE1 # 1 I + BLEND = 0x0BE2 # 1 I + + LOGIC_OP_MODE = 0x0BF0 # 1 I + INDEX_LOGIC_OP = 0x0BF1 # 1 I + LOGIC_OP = 0x0BF1 # 1 I + COLOR_LOGIC_OP = 0x0BF2 # 1 I + + AUX_BUFFERS = 0x0C00 # 1 I + DRAW_BUFFER = 0x0C01 # 1 I + READ_BUFFER = 0x0C02 # 1 I + + SCISSOR_BOX = 0x0C10 # 4 I + SCISSOR_TEST = 0x0C11 # 1 I + + INDEX_CLEAR_VALUE = 0x0C20 # 1 I + INDEX_WRITEMASK = 0x0C21 # 1 I + COLOR_CLEAR_VALUE = 0x0C22 # 4 F + COLOR_WRITEMASK = 0x0C23 # 4 I + + INDEX_MODE = 0x0C30 # 1 I + RGBA_MODE = 0x0C31 # 1 I + DOUBLEBUFFER = 0x0C32 # 1 I + STEREO = 0x0C33 # 1 I + + RENDER_MODE = 0x0C40 # 1 I + + PERSPECTIVE_CORRECTION_HINT = 0x0C50 # 1 I + POINT_SMOOTH_HINT = 0x0C51 # 1 I + LINE_SMOOTH_HINT = 0x0C52 # 1 I + POLYGON_SMOOTH_HINT = 0x0C53 # 1 I + FOG_HINT = 0x0C54 # 1 I + + TEXTURE_GEN_S = 0x0C60 # 1 I + TEXTURE_GEN_T = 0x0C61 # 1 I + TEXTURE_GEN_R = 0x0C62 # 1 I + TEXTURE_GEN_Q = 0x0C63 # 1 I + + PIXEL_MAP_I_TO_I_SIZE = 0x0CB0 # 1 I + PIXEL_MAP_S_TO_S_SIZE = 0x0CB1 # 1 I + PIXEL_MAP_I_TO_R_SIZE = 0x0CB2 # 1 I + PIXEL_MAP_I_TO_G_SIZE = 0x0CB3 # 1 I + PIXEL_MAP_I_TO_B_SIZE = 0x0CB4 # 1 I + PIXEL_MAP_I_TO_A_SIZE = 0x0CB5 # 1 I + PIXEL_MAP_R_TO_R_SIZE = 0x0CB6 # 1 I + PIXEL_MAP_G_TO_G_SIZE = 0x0CB7 # 1 I + PIXEL_MAP_B_TO_B_SIZE = 0x0CB8 # 1 I + PIXEL_MAP_A_TO_A_SIZE = 0x0CB9 # 1 I + + UNPACK_SWAP_BYTES = 0x0CF0 # 1 I + UNPACK_LSB_FIRST = 0x0CF1 # 1 I + UNPACK_ROW_LENGTH = 0x0CF2 # 1 I + UNPACK_SKIP_ROWS = 0x0CF3 # 1 I + UNPACK_SKIP_PIXELS = 0x0CF4 # 1 I + UNPACK_ALIGNMENT = 0x0CF5 # 1 I + + PACK_SWAP_BYTES = 0x0D00 # 1 I + PACK_LSB_FIRST = 0x0D01 # 1 I + PACK_ROW_LENGTH = 0x0D02 # 1 I + PACK_SKIP_ROWS = 0x0D03 # 1 I + PACK_SKIP_PIXELS = 0x0D04 # 1 I + PACK_ALIGNMENT = 0x0D05 # 1 I + + MAP_COLOR = 0x0D10 # 1 I + MAP_STENCIL = 0x0D11 # 1 I + INDEX_SHIFT = 0x0D12 # 1 I + INDEX_OFFSET = 0x0D13 # 1 I + RED_SCALE = 0x0D14 # 1 F + RED_BIAS = 0x0D15 # 1 F + ZOOM_X = 0x0D16 # 1 F + ZOOM_Y = 0x0D17 # 1 F + GREEN_SCALE = 0x0D18 # 1 F + GREEN_BIAS = 0x0D19 # 1 F + BLUE_SCALE = 0x0D1A # 1 F + BLUE_BIAS = 0x0D1B # 1 F + ALPHA_SCALE = 0x0D1C # 1 F + ALPHA_BIAS = 0x0D1D # 1 F + DEPTH_SCALE = 0x0D1E # 1 F + DEPTH_BIAS = 0x0D1F # 1 F + + MAX_EVAL_ORDER = 0x0D30 # 1 I + MAX_LIGHTS = 0x0D31 # 1 I + +# VERSION_3_0 enum: (aliases) + MAX_CLIP_DISTANCES = 0x0D32 # VERSION_3_0 # alias GL_MAX_CLIP_PLANES + + MAX_CLIP_PLANES = 0x0D32 # 1 I + MAX_TEXTURE_SIZE = 0x0D33 # 1 I + MAX_PIXEL_MAP_TABLE = 0x0D34 # 1 I + MAX_ATTRIB_STACK_DEPTH = 0x0D35 # 1 I + MAX_MODELVIEW_STACK_DEPTH = 0x0D36 # 1 I + MAX_NAME_STACK_DEPTH = 0x0D37 # 1 I + MAX_PROJECTION_STACK_DEPTH = 0x0D38 # 1 I + MAX_TEXTURE_STACK_DEPTH = 0x0D39 # 1 I + MAX_VIEWPORT_DIMS = 0x0D3A # 2 F + MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B # 1 I + + SUBPIXEL_BITS = 0x0D50 # 1 I + INDEX_BITS = 0x0D51 # 1 I + RED_BITS = 0x0D52 # 1 I + GREEN_BITS = 0x0D53 # 1 I + BLUE_BITS = 0x0D54 # 1 I + ALPHA_BITS = 0x0D55 # 1 I + DEPTH_BITS = 0x0D56 # 1 I + STENCIL_BITS = 0x0D57 # 1 I + ACCUM_RED_BITS = 0x0D58 # 1 I + ACCUM_GREEN_BITS = 0x0D59 # 1 I + ACCUM_BLUE_BITS = 0x0D5A # 1 I + ACCUM_ALPHA_BITS = 0x0D5B # 1 I + + NAME_STACK_DEPTH = 0x0D70 # 1 I + + AUTO_NORMAL = 0x0D80 # 1 I + + MAP1_COLOR_4 = 0x0D90 # 1 I + MAP1_INDEX = 0x0D91 # 1 I + MAP1_NORMAL = 0x0D92 # 1 I + MAP1_TEXTURE_COORD_1 = 0x0D93 # 1 I + MAP1_TEXTURE_COORD_2 = 0x0D94 # 1 I + MAP1_TEXTURE_COORD_3 = 0x0D95 # 1 I + MAP1_TEXTURE_COORD_4 = 0x0D96 # 1 I + MAP1_VERTEX_3 = 0x0D97 # 1 I + MAP1_VERTEX_4 = 0x0D98 # 1 I + + MAP2_COLOR_4 = 0x0DB0 # 1 I + MAP2_INDEX = 0x0DB1 # 1 I + MAP2_NORMAL = 0x0DB2 # 1 I + MAP2_TEXTURE_COORD_1 = 0x0DB3 # 1 I + MAP2_TEXTURE_COORD_2 = 0x0DB4 # 1 I + MAP2_TEXTURE_COORD_3 = 0x0DB5 # 1 I + MAP2_TEXTURE_COORD_4 = 0x0DB6 # 1 I + MAP2_VERTEX_3 = 0x0DB7 # 1 I + MAP2_VERTEX_4 = 0x0DB8 # 1 I + + MAP1_GRID_DOMAIN = 0x0DD0 # 2 F + MAP1_GRID_SEGMENTS = 0x0DD1 # 1 I + MAP2_GRID_DOMAIN = 0x0DD2 # 4 F + MAP2_GRID_SEGMENTS = 0x0DD3 # 2 I + + TEXTURE_1D = 0x0DE0 # 1 I + TEXTURE_2D = 0x0DE1 # 1 I + + FEEDBACK_BUFFER_SIZE = 0x0DF1 # 1 I + FEEDBACK_BUFFER_TYPE = 0x0DF2 # 1 I + + SELECTION_BUFFER_SIZE = 0x0DF4 # 1 I + + POLYGON_OFFSET_UNITS = 0x2A00 # 1 F + POLYGON_OFFSET_POINT = 0x2A01 # 1 I + POLYGON_OFFSET_LINE = 0x2A02 # 1 I + POLYGON_OFFSET_FILL = 0x8037 # 1 I + POLYGON_OFFSET_FACTOR = 0x8038 # 1 F + + TEXTURE_BINDING_1D = 0x8068 # 1 I + TEXTURE_BINDING_2D = 0x8069 # 1 I + TEXTURE_BINDING_3D = 0x806A # 1 I + + VERTEX_ARRAY = 0x8074 # 1 I + NORMAL_ARRAY = 0x8075 # 1 I + COLOR_ARRAY = 0x8076 # 1 I + INDEX_ARRAY = 0x8077 # 1 I + TEXTURE_COORD_ARRAY = 0x8078 # 1 I + EDGE_FLAG_ARRAY = 0x8079 # 1 I + + VERTEX_ARRAY_SIZE = 0x807A # 1 I + VERTEX_ARRAY_TYPE = 0x807B # 1 I + VERTEX_ARRAY_STRIDE = 0x807C # 1 I + + NORMAL_ARRAY_TYPE = 0x807E # 1 I + NORMAL_ARRAY_STRIDE = 0x807F # 1 I + + COLOR_ARRAY_SIZE = 0x8081 # 1 I + COLOR_ARRAY_TYPE = 0x8082 # 1 I + COLOR_ARRAY_STRIDE = 0x8083 # 1 I + + INDEX_ARRAY_TYPE = 0x8085 # 1 I + INDEX_ARRAY_STRIDE = 0x8086 # 1 I + + TEXTURE_COORD_ARRAY_SIZE = 0x8088 # 1 I + TEXTURE_COORD_ARRAY_TYPE = 0x8089 # 1 I + TEXTURE_COORD_ARRAY_STRIDE = 0x808A # 1 I + + EDGE_FLAG_ARRAY_STRIDE = 0x808C # 1 I + + use ClipPlaneName CLIP_PLANE0 + use ClipPlaneName CLIP_PLANE1 + use ClipPlaneName CLIP_PLANE2 + use ClipPlaneName CLIP_PLANE3 + use ClipPlaneName CLIP_PLANE4 + use ClipPlaneName CLIP_PLANE5 + + use LightName LIGHT0 + use LightName LIGHT1 + use LightName LIGHT2 + use LightName LIGHT3 + use LightName LIGHT4 + use LightName LIGHT5 + use LightName LIGHT6 + use LightName LIGHT7 + +# use ARB_transpose_matrix TRANSPOSE_MODELVIEW_MATRIX_ARB +# use ARB_transpose_matrix TRANSPOSE_PROJECTION_MATRIX_ARB +# use ARB_transpose_matrix TRANSPOSE_TEXTURE_MATRIX_ARB +# use ARB_transpose_matrix TRANSPOSE_COLOR_MATRIX_ARB + + use VERSION_1_2 LIGHT_MODEL_COLOR_CONTROL + + use EXT_blend_color BLEND_COLOR_EXT + + use EXT_blend_minmax BLEND_EQUATION_EXT + + use EXT_cmyka PACK_CMYK_HINT_EXT + use EXT_cmyka UNPACK_CMYK_HINT_EXT + + use EXT_convolution CONVOLUTION_1D_EXT + use EXT_convolution CONVOLUTION_2D_EXT + use EXT_convolution SEPARABLE_2D_EXT + use EXT_convolution POST_CONVOLUTION_RED_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_GREEN_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_BLUE_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_ALPHA_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_RED_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_GREEN_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_BLUE_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_ALPHA_BIAS_EXT + + use EXT_histogram HISTOGRAM_EXT + use EXT_histogram MINMAX_EXT + + use EXT_polygon_offset POLYGON_OFFSET_BIAS_EXT + + use EXT_rescale_normal RESCALE_NORMAL_EXT + + use EXT_shared_texture_palette SHARED_TEXTURE_PALETTE_EXT + + use EXT_texture_object TEXTURE_3D_BINDING_EXT + + use EXT_texture3D PACK_SKIP_IMAGES_EXT + use EXT_texture3D PACK_IMAGE_HEIGHT_EXT + use EXT_texture3D UNPACK_SKIP_IMAGES_EXT + use EXT_texture3D UNPACK_IMAGE_HEIGHT_EXT + use EXT_texture3D TEXTURE_3D_EXT + use EXT_texture3D MAX_3D_TEXTURE_SIZE_EXT + + use EXT_vertex_array VERTEX_ARRAY_COUNT_EXT + use EXT_vertex_array NORMAL_ARRAY_COUNT_EXT + use EXT_vertex_array COLOR_ARRAY_COUNT_EXT + use EXT_vertex_array INDEX_ARRAY_COUNT_EXT + use EXT_vertex_array TEXTURE_COORD_ARRAY_COUNT_EXT + use EXT_vertex_array EDGE_FLAG_ARRAY_COUNT_EXT + + use SGIS_detail_texture DETAIL_TEXTURE_2D_BINDING_SGIS + + use SGIS_fog_function FOG_FUNC_POINTS_SGIS + use SGIS_fog_function MAX_FOG_FUNC_POINTS_SGIS + + use SGIS_generate_mipmap GENERATE_MIPMAP_HINT_SGIS + + use SGIS_multisample MULTISAMPLE_SGIS + use SGIS_multisample SAMPLE_ALPHA_TO_MASK_SGIS + use SGIS_multisample SAMPLE_ALPHA_TO_ONE_SGIS + use SGIS_multisample SAMPLE_MASK_SGIS + use SGIS_multisample SAMPLE_BUFFERS_SGIS + use SGIS_multisample SAMPLES_SGIS + use SGIS_multisample SAMPLE_MASK_VALUE_SGIS + use SGIS_multisample SAMPLE_MASK_INVERT_SGIS + use SGIS_multisample SAMPLE_PATTERN_SGIS + + use SGIS_pixel_texture PIXEL_TEXTURE_SGIS + + use SGIS_point_parameters POINT_SIZE_MIN_SGIS + use SGIS_point_parameters POINT_SIZE_MAX_SGIS + use SGIS_point_parameters POINT_FADE_THRESHOLD_SIZE_SGIS + use SGIS_point_parameters DISTANCE_ATTENUATION_SGIS + + use SGIS_texture4D PACK_SKIP_VOLUMES_SGIS + use SGIS_texture4D PACK_IMAGE_DEPTH_SGIS + use SGIS_texture4D UNPACK_SKIP_VOLUMES_SGIS + use SGIS_texture4D UNPACK_IMAGE_DEPTH_SGIS + use SGIS_texture4D TEXTURE_4D_SGIS + use SGIS_texture4D MAX_4D_TEXTURE_SIZE_SGIS + use SGIS_texture4D TEXTURE_4D_BINDING_SGIS + + use SGIX_async ASYNC_MARKER_SGIX + + use SGIX_async_histogram ASYNC_HISTOGRAM_SGIX + use SGIX_async_histogram MAX_ASYNC_HISTOGRAM_SGIX + + use SGIX_async_pixel ASYNC_TEX_IMAGE_SGIX + use SGIX_async_pixel ASYNC_DRAW_PIXELS_SGIX + use SGIX_async_pixel ASYNC_READ_PIXELS_SGIX + use SGIX_async_pixel MAX_ASYNC_TEX_IMAGE_SGIX + use SGIX_async_pixel MAX_ASYNC_DRAW_PIXELS_SGIX + use SGIX_async_pixel MAX_ASYNC_READ_PIXELS_SGIX + + use SGIX_calligraphic_fragment CALLIGRAPHIC_FRAGMENT_SGIX + + use SGIX_clipmap MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX + use SGIX_clipmap MAX_CLIPMAP_DEPTH_SGIX + + use SGIX_convolution_accuracy CONVOLUTION_HINT_SGIX + + use SGIX_fog_offset FOG_OFFSET_SGIX + use SGIX_fog_offset FOG_OFFSET_VALUE_SGIX + + use SGIX_fragment_lighting FRAGMENT_LIGHTING_SGIX + use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_SGIX + use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_FACE_SGIX + use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX + use SGIX_fragment_lighting MAX_FRAGMENT_LIGHTS_SGIX + use SGIX_fragment_lighting MAX_ACTIVE_LIGHTS_SGIX + use SGIX_fragment_lighting LIGHT_ENV_MODE_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX + + use SGIX_framezoom FRAMEZOOM_SGIX + use SGIX_framezoom FRAMEZOOM_FACTOR_SGIX + use SGIX_framezoom MAX_FRAMEZOOM_FACTOR_SGIX + + use SGIX_instruments INSTRUMENT_MEASUREMENTS_SGIX + + use SGIX_interlace INTERLACE_SGIX + + use SGIX_ir_instrument1 IR_INSTRUMENT1_SGIX + + use SGIX_pixel_texture PIXEL_TEX_GEN_SGIX + use SGIX_pixel_texture PIXEL_TEX_GEN_MODE_SGIX + + use SGIX_pixel_tiles PIXEL_TILE_BEST_ALIGNMENT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_CACHE_INCREMENT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_WIDTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_HEIGHT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_WIDTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_HEIGHT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_DEPTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_CACHE_SIZE_SGIX + + use SGIX_polynomial_ffd DEFORMATIONS_MASK_SGIX + + use SGIX_reference_plane REFERENCE_PLANE_EQUATION_SGIX + use SGIX_reference_plane REFERENCE_PLANE_SGIX + + use SGIX_sprite SPRITE_SGIX + use SGIX_sprite SPRITE_MODE_SGIX + use SGIX_sprite SPRITE_AXIS_SGIX + use SGIX_sprite SPRITE_TRANSLATION_SGIX + + use SGIX_subsample PACK_SUBSAMPLE_RATE_SGIX + use SGIX_subsample UNPACK_SUBSAMPLE_RATE_SGIX + use SGIX_resample PACK_RESAMPLE_SGIX + use SGIX_resample UNPACK_RESAMPLE_SGIX + + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_RANGE_SGIX + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_RANGE_SGIX + + use SGIX_vertex_preclip VERTEX_PRECLIP_SGIX + use SGIX_vertex_preclip VERTEX_PRECLIP_HINT_SGIX + + use SGI_color_matrix COLOR_MATRIX_SGI + use SGI_color_matrix COLOR_MATRIX_STACK_DEPTH_SGI + use SGI_color_matrix MAX_COLOR_MATRIX_STACK_DEPTH_SGI + use SGI_color_matrix POST_COLOR_MATRIX_RED_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_GREEN_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_BLUE_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_RED_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_GREEN_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_BLUE_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_BIAS_SGI + + use SGI_color_table COLOR_TABLE_SGI + use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI + use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI + + use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI + +############################################################################### + +GetTextureParameter enum: + use TextureParameterName TEXTURE_MAG_FILTER + use TextureParameterName TEXTURE_MIN_FILTER + use TextureParameterName TEXTURE_WRAP_S + use TextureParameterName TEXTURE_WRAP_T + TEXTURE_WIDTH = 0x1000 + TEXTURE_HEIGHT = 0x1001 + TEXTURE_INTERNAL_FORMAT = 0x1003 + TEXTURE_COMPONENTS = 0x1003 + TEXTURE_BORDER_COLOR = 0x1004 + TEXTURE_BORDER = 0x1005 + TEXTURE_RED_SIZE = 0x805C + TEXTURE_GREEN_SIZE = 0x805D + TEXTURE_BLUE_SIZE = 0x805E + TEXTURE_ALPHA_SIZE = 0x805F + TEXTURE_LUMINANCE_SIZE = 0x8060 + TEXTURE_INTENSITY_SIZE = 0x8061 + TEXTURE_PRIORITY = 0x8066 + TEXTURE_RESIDENT = 0x8067 + use EXT_texture3D TEXTURE_DEPTH_EXT + use EXT_texture3D TEXTURE_WRAP_R_EXT + use SGIS_detail_texture DETAIL_TEXTURE_LEVEL_SGIS + use SGIS_detail_texture DETAIL_TEXTURE_MODE_SGIS + use SGIS_detail_texture DETAIL_TEXTURE_FUNC_POINTS_SGIS + use SGIS_generate_mipmap GENERATE_MIPMAP_SGIS + use SGIS_sharpen_texture SHARPEN_TEXTURE_FUNC_POINTS_SGIS + use SGIS_texture_filter4 TEXTURE_FILTER4_SIZE_SGIS + use SGIS_texture_lod TEXTURE_MIN_LOD_SGIS + use SGIS_texture_lod TEXTURE_MAX_LOD_SGIS + use SGIS_texture_lod TEXTURE_BASE_LEVEL_SGIS + use SGIS_texture_lod TEXTURE_MAX_LEVEL_SGIS + use SGIS_texture_select DUAL_TEXTURE_SELECT_SGIS + use SGIS_texture_select QUAD_TEXTURE_SELECT_SGIS + use SGIS_texture4D TEXTURE_4DSIZE_SGIS + use SGIS_texture4D TEXTURE_WRAP_Q_SGIS + use SGIX_clipmap TEXTURE_CLIPMAP_CENTER_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_FRAME_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_OFFSET_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_LOD_OFFSET_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_DEPTH_SGIX + use SGIX_shadow TEXTURE_COMPARE_SGIX + use SGIX_shadow TEXTURE_COMPARE_OPERATOR_SGIX + use SGIX_shadow TEXTURE_LEQUAL_R_SGIX + use SGIX_shadow TEXTURE_GEQUAL_R_SGIX + use SGIX_shadow_ambient SHADOW_AMBIENT_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_S_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_T_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_R_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_S_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_T_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_R_SGIX + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_SGIX + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_SGIX + +############################################################################### + +HintMode enum: + DONT_CARE = 0x1100 + FASTEST = 0x1101 + NICEST = 0x1102 + +############################################################################### + +HintTarget enum: + use GetPName PERSPECTIVE_CORRECTION_HINT + use GetPName POINT_SMOOTH_HINT + use GetPName LINE_SMOOTH_HINT + use GetPName POLYGON_SMOOTH_HINT + use GetPName FOG_HINT + use EXT_cmyka PACK_CMYK_HINT_EXT + use EXT_cmyka UNPACK_CMYK_HINT_EXT + use SGIS_generate_mipmap GENERATE_MIPMAP_HINT_SGIS + use SGIX_convolution_accuracy CONVOLUTION_HINT_SGIX + use SGIX_texture_multi_buffer TEXTURE_MULTI_BUFFER_HINT_SGIX + use SGIX_vertex_preclip VERTEX_PRECLIP_HINT_SGIX + +############################################################################### + +HistogramTargetEXT enum: + use EXT_histogram HISTOGRAM_EXT + use EXT_histogram PROXY_HISTOGRAM_EXT + +############################################################################### + +IndexPointerType enum: + use DataType SHORT + use DataType INT + use DataType FLOAT + use DataType DOUBLE + +############################################################################### + +LightEnvModeSGIX enum: + use StencilOp REPLACE + use TextureEnvMode MODULATE + use AccumOp ADD + +############################################################################### + +LightEnvParameterSGIX enum: + use SGIX_fragment_lighting LIGHT_ENV_MODE_SGIX + +############################################################################### + +LightModelColorControl enum: + use VERSION_1_2 SINGLE_COLOR + use VERSION_1_2 SEPARATE_SPECULAR_COLOR + +############################################################################### + +LightModelParameter enum: + use GetPName LIGHT_MODEL_AMBIENT + use GetPName LIGHT_MODEL_LOCAL_VIEWER + use GetPName LIGHT_MODEL_TWO_SIDE + use VERSION_1_2 LIGHT_MODEL_COLOR_CONTROL + +############################################################################### + +LightParameter enum: + AMBIENT = 0x1200 + DIFFUSE = 0x1201 + SPECULAR = 0x1202 + POSITION = 0x1203 + SPOT_DIRECTION = 0x1204 + SPOT_EXPONENT = 0x1205 + SPOT_CUTOFF = 0x1206 + CONSTANT_ATTENUATION = 0x1207 + LINEAR_ATTENUATION = 0x1208 + QUADRATIC_ATTENUATION = 0x1209 + +############################################################################### + +ListMode enum: + COMPILE = 0x1300 + COMPILE_AND_EXECUTE = 0x1301 + +############################################################################### + +DataType enum: + BYTE = 0x1400 + UNSIGNED_BYTE = 0x1401 + SHORT = 0x1402 + UNSIGNED_SHORT = 0x1403 + INT = 0x1404 + UNSIGNED_INT = 0x1405 + FLOAT = 0x1406 + 2_BYTES = 0x1407 + 3_BYTES = 0x1408 + 4_BYTES = 0x1409 + DOUBLE = 0x140A + DOUBLE_EXT = 0x140A + +# OES_byte_coordinates: (OpenGL ES only) +# use DataType BYTE + +OES_element_index_uint enum: (OpenGL ES only) +# use DataType UNSIGNED_INT + +OES_texture_float enum: (OpenGL ES only; additional; see below) +# use DataType FLOAT + +VERSION_3_0 enum: +# use ARB_half_float_vertex HALF_FLOAT + +ARB_half_float_vertex enum: (note: no ARB suffixes) + HALF_FLOAT = 0x140B # VERSION_3_0 / ARB_half_float_vertex + +ARB_half_float_pixel enum: + HALF_FLOAT_ARB = 0x140B + +NV_half_float enum: + HALF_FLOAT_NV = 0x140B + +APPLE_float_pixels enum: (additional; see below) + HALF_APPLE = 0x140B + +OES_fixed_point enum: (OpenGL ES only) + FIXED_OES = 0x140C + +# Leave a gap to preserve even/odd int/uint token values +# ARB_future_use: 0x140D + +# Future NV extension (Khronos bug 5172) + INT64_NV = 0x140E + UNSIGNED_INT64_NV = 0x140F + +############################################################################### + +ListNameType enum: + use DataType BYTE + use DataType UNSIGNED_BYTE + use DataType SHORT + use DataType UNSIGNED_SHORT + use DataType INT + use DataType UNSIGNED_INT + use DataType FLOAT + use DataType 2_BYTES + use DataType 3_BYTES + use DataType 4_BYTES + +############################################################################### + +ListParameterName enum: + use SGIX_list_priority LIST_PRIORITY_SGIX + +############################################################################### + +LogicOp enum: + CLEAR = 0x1500 + AND = 0x1501 + AND_REVERSE = 0x1502 + COPY = 0x1503 + AND_INVERTED = 0x1504 + NOOP = 0x1505 + XOR = 0x1506 + OR = 0x1507 + NOR = 0x1508 + EQUIV = 0x1509 + INVERT = 0x150A + OR_REVERSE = 0x150B + COPY_INVERTED = 0x150C + OR_INVERTED = 0x150D + NAND = 0x150E + SET = 0x150F + +############################################################################### + +MapTarget enum: + use GetPName MAP1_COLOR_4 + use GetPName MAP1_INDEX + use GetPName MAP1_NORMAL + use GetPName MAP1_TEXTURE_COORD_1 + use GetPName MAP1_TEXTURE_COORD_2 + use GetPName MAP1_TEXTURE_COORD_3 + use GetPName MAP1_TEXTURE_COORD_4 + use GetPName MAP1_VERTEX_3 + use GetPName MAP1_VERTEX_4 + use GetPName MAP2_COLOR_4 + use GetPName MAP2_INDEX + use GetPName MAP2_NORMAL + use GetPName MAP2_TEXTURE_COORD_1 + use GetPName MAP2_TEXTURE_COORD_2 + use GetPName MAP2_TEXTURE_COORD_3 + use GetPName MAP2_TEXTURE_COORD_4 + use GetPName MAP2_VERTEX_3 + use GetPName MAP2_VERTEX_4 + use SGIX_polynomial_ffd GEOMETRY_DEFORMATION_SGIX + use SGIX_polynomial_ffd TEXTURE_DEFORMATION_SGIX + +############################################################################### + +MaterialFace enum: + use DrawBufferMode FRONT + use DrawBufferMode BACK + use DrawBufferMode FRONT_AND_BACK + + +############################################################################### + +MaterialParameter enum: + EMISSION = 0x1600 + SHININESS = 0x1601 + AMBIENT_AND_DIFFUSE = 0x1602 + COLOR_INDEXES = 0x1603 + use LightParameter AMBIENT + use LightParameter DIFFUSE + use LightParameter SPECULAR + +############################################################################### + +MatrixMode enum: + MODELVIEW = 0x1700 + PROJECTION = 0x1701 + TEXTURE = 0x1702 + +############################################################################### + +MeshMode1 enum: + use PolygonMode POINT + use PolygonMode LINE + +############################################################################### + +MeshMode2 enum: + use PolygonMode POINT + use PolygonMode LINE + use PolygonMode FILL + +############################################################################### + +MinmaxTargetEXT enum: + use EXT_histogram MINMAX_EXT + +############################################################################### + +NormalPointerType enum: + use DataType BYTE + use DataType SHORT + use DataType INT + use DataType FLOAT + use DataType DOUBLE + +############################################################################### + +PixelCopyType enum: + COLOR = 0x1800 + DEPTH = 0x1801 + STENCIL = 0x1802 + +EXT_discard_framebuffer enum: (OpenGL ES only) + COLOR_EXT = 0x1800 + DEPTH_EXT = 0x1801 + STENCIL_EXT = 0x1802 + +############################################################################### + +PixelFormat enum: + COLOR_INDEX = 0x1900 + STENCIL_INDEX = 0x1901 + DEPTH_COMPONENT = 0x1902 + RED = 0x1903 + GREEN = 0x1904 + BLUE = 0x1905 + ALPHA = 0x1906 + RGB = 0x1907 + RGBA = 0x1908 + LUMINANCE = 0x1909 + LUMINANCE_ALPHA = 0x190A + use EXT_abgr ABGR_EXT + use EXT_cmyka CMYK_EXT + use EXT_cmyka CMYKA_EXT + use SGIX_icc_texture R5_G6_B5_ICC_SGIX + use SGIX_icc_texture R5_G6_B5_A8_ICC_SGIX + use SGIX_icc_texture ALPHA16_ICC_SGIX + use SGIX_icc_texture LUMINANCE16_ICC_SGIX + use SGIX_icc_texture LUMINANCE16_ALPHA8_ICC_SGIX + use SGIX_ycrcb YCRCB_422_SGIX + use SGIX_ycrcb YCRCB_444_SGIX + +OES_depth_texture enum: (OpenGL ES only) +# use DataType UNSIGNED_SHORT +# use DataType UNSIGNED_INT +# use PixelFormat DEPTH_COMPONENT + +############################################################################### + +PixelMap enum: + use GetPixelMap PIXEL_MAP_I_TO_I + use GetPixelMap PIXEL_MAP_S_TO_S + use GetPixelMap PIXEL_MAP_I_TO_R + use GetPixelMap PIXEL_MAP_I_TO_G + use GetPixelMap PIXEL_MAP_I_TO_B + use GetPixelMap PIXEL_MAP_I_TO_A + use GetPixelMap PIXEL_MAP_R_TO_R + use GetPixelMap PIXEL_MAP_G_TO_G + use GetPixelMap PIXEL_MAP_B_TO_B + use GetPixelMap PIXEL_MAP_A_TO_A + +############################################################################### + +PixelStoreParameter enum: + use GetPName UNPACK_SWAP_BYTES + use GetPName UNPACK_LSB_FIRST + use GetPName UNPACK_ROW_LENGTH + use GetPName UNPACK_SKIP_ROWS + use GetPName UNPACK_SKIP_PIXELS + use GetPName UNPACK_ALIGNMENT + use GetPName PACK_SWAP_BYTES + use GetPName PACK_LSB_FIRST + use GetPName PACK_ROW_LENGTH + use GetPName PACK_SKIP_ROWS + use GetPName PACK_SKIP_PIXELS + use GetPName PACK_ALIGNMENT + use EXT_texture3D PACK_SKIP_IMAGES_EXT + use EXT_texture3D PACK_IMAGE_HEIGHT_EXT + use EXT_texture3D UNPACK_SKIP_IMAGES_EXT + use EXT_texture3D UNPACK_IMAGE_HEIGHT_EXT + use SGIS_texture4D PACK_SKIP_VOLUMES_SGIS + use SGIS_texture4D PACK_IMAGE_DEPTH_SGIS + use SGIS_texture4D UNPACK_SKIP_VOLUMES_SGIS + use SGIS_texture4D UNPACK_IMAGE_DEPTH_SGIS + use SGIX_pixel_tiles PIXEL_TILE_WIDTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_HEIGHT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_WIDTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_HEIGHT_SGIX + use SGIX_pixel_tiles PIXEL_TILE_GRID_DEPTH_SGIX + use SGIX_pixel_tiles PIXEL_TILE_CACHE_SIZE_SGIX + use SGIX_subsample PACK_SUBSAMPLE_RATE_SGIX + use SGIX_subsample UNPACK_SUBSAMPLE_RATE_SGIX + use SGIX_resample PACK_RESAMPLE_SGIX + use SGIX_resample UNPACK_RESAMPLE_SGIX + +############################################################################### + +PixelStoreResampleMode enum: + use SGIX_resample RESAMPLE_REPLICATE_SGIX + use SGIX_resample RESAMPLE_ZERO_FILL_SGIX + use SGIX_resample RESAMPLE_DECIMATE_SGIX + +############################################################################### + +PixelStoreSubsampleRate enum: + use SGIX_subsample PIXEL_SUBSAMPLE_4444_SGIX + use SGIX_subsample PIXEL_SUBSAMPLE_2424_SGIX + use SGIX_subsample PIXEL_SUBSAMPLE_4242_SGIX + +############################################################################### + +PixelTexGenMode enum: + use DrawBufferMode NONE + use PixelFormat RGB + use PixelFormat RGBA + use PixelFormat LUMINANCE + use PixelFormat LUMINANCE_ALPHA + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_MS_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_LS_SGIX + +############################################################################### + +PixelTexGenParameterNameSGIS enum: + use SGIS_pixel_texture PIXEL_FRAGMENT_RGB_SOURCE_SGIS + use SGIS_pixel_texture PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS + +############################################################################### + +PixelTransferParameter enum: + use GetPName MAP_COLOR + use GetPName MAP_STENCIL + use GetPName INDEX_SHIFT + use GetPName INDEX_OFFSET + use GetPName RED_SCALE + use GetPName RED_BIAS + use GetPName GREEN_SCALE + use GetPName GREEN_BIAS + use GetPName BLUE_SCALE + use GetPName BLUE_BIAS + use GetPName ALPHA_SCALE + use GetPName ALPHA_BIAS + use GetPName DEPTH_SCALE + use GetPName DEPTH_BIAS + use EXT_convolution POST_CONVOLUTION_RED_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_GREEN_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_BLUE_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_ALPHA_SCALE_EXT + use EXT_convolution POST_CONVOLUTION_RED_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_GREEN_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_BLUE_BIAS_EXT + use EXT_convolution POST_CONVOLUTION_ALPHA_BIAS_EXT + use SGI_color_matrix POST_COLOR_MATRIX_RED_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_GREEN_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_BLUE_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_SCALE_SGI + use SGI_color_matrix POST_COLOR_MATRIX_RED_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_GREEN_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_BLUE_BIAS_SGI + use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_BIAS_SGI + +############################################################################### + +PixelType enum: + BITMAP = 0x1A00 + use DataType BYTE + use DataType UNSIGNED_BYTE + use DataType SHORT + use DataType UNSIGNED_SHORT + use DataType INT + use DataType UNSIGNED_INT + use DataType FLOAT + use EXT_packed_pixels UNSIGNED_BYTE_3_3_2_EXT + use EXT_packed_pixels UNSIGNED_SHORT_4_4_4_4_EXT + use EXT_packed_pixels UNSIGNED_SHORT_5_5_5_1_EXT + use EXT_packed_pixels UNSIGNED_INT_8_8_8_8_EXT + use EXT_packed_pixels UNSIGNED_INT_10_10_10_2_EXT + +############################################################################### + +PointParameterNameSGIS enum: + use SGIS_point_parameters POINT_SIZE_MIN_SGIS + use SGIS_point_parameters POINT_SIZE_MAX_SGIS + use SGIS_point_parameters POINT_FADE_THRESHOLD_SIZE_SGIS + use SGIS_point_parameters DISTANCE_ATTENUATION_SGIS + +############################################################################### + +PolygonMode enum: + POINT = 0x1B00 + LINE = 0x1B01 + FILL = 0x1B02 + +############################################################################### + +ReadBufferMode enum: + use DrawBufferMode FRONT_LEFT + use DrawBufferMode FRONT_RIGHT + use DrawBufferMode BACK_LEFT + use DrawBufferMode BACK_RIGHT + use DrawBufferMode FRONT + use DrawBufferMode BACK + use DrawBufferMode LEFT + use DrawBufferMode RIGHT + use DrawBufferMode AUX0 + use DrawBufferMode AUX1 + use DrawBufferMode AUX2 + use DrawBufferMode AUX3 + +############################################################################### + +RenderingMode enum: + RENDER = 0x1C00 + FEEDBACK = 0x1C01 + SELECT = 0x1C02 + +############################################################################### + +SamplePatternSGIS enum: + use SGIS_multisample 1PASS_SGIS + use SGIS_multisample 2PASS_0_SGIS + use SGIS_multisample 2PASS_1_SGIS + use SGIS_multisample 4PASS_0_SGIS + use SGIS_multisample 4PASS_1_SGIS + use SGIS_multisample 4PASS_2_SGIS + use SGIS_multisample 4PASS_3_SGIS + +############################################################################### + +SeparableTargetEXT enum: + use EXT_convolution SEPARABLE_2D_EXT + +############################################################################### + +ShadingModel enum: + FLAT = 0x1D00 + SMOOTH = 0x1D01 + +############################################################################### + +StencilFunction enum: + use AlphaFunction NEVER + use AlphaFunction LESS + use AlphaFunction EQUAL + use AlphaFunction LEQUAL + use AlphaFunction GREATER + use AlphaFunction NOTEQUAL + use AlphaFunction GEQUAL + use AlphaFunction ALWAYS + +############################################################################### + +StencilOp enum: + use BlendingFactorDest ZERO + KEEP = 0x1E00 + REPLACE = 0x1E01 + INCR = 0x1E02 + DECR = 0x1E03 + use LogicOp INVERT + +############################################################################### + +StringName enum: + VENDOR = 0x1F00 + RENDERER = 0x1F01 + VERSION = 0x1F02 + EXTENSIONS = 0x1F03 + +############################################################################### + +TexCoordPointerType enum: + use DataType SHORT + use DataType INT + use DataType FLOAT + use DataType DOUBLE + +############################################################################### + +TextureCoordName enum: + S = 0x2000 + T = 0x2001 + R = 0x2002 + Q = 0x2003 + +############################################################################### + +TextureEnvMode enum: + MODULATE = 0x2100 + DECAL = 0x2101 + use GetPName BLEND + use EXT_texture REPLACE_EXT + use AccumOp ADD + use SGIX_texture_add_env TEXTURE_ENV_BIAS_SGIX + +############################################################################### + +TextureEnvParameter enum: + TEXTURE_ENV_MODE = 0x2200 + TEXTURE_ENV_COLOR = 0x2201 + +############################################################################### + +TextureEnvTarget enum: + TEXTURE_ENV = 0x2300 + +############################################################################### + +TextureFilterFuncSGIS enum: + use SGIS_texture_filter4 FILTER4_SGIS + +############################################################################### + +TextureGenMode enum: + EYE_LINEAR = 0x2400 + OBJECT_LINEAR = 0x2401 + SPHERE_MAP = 0x2402 + use SGIS_point_line_texgen EYE_DISTANCE_TO_POINT_SGIS + use SGIS_point_line_texgen OBJECT_DISTANCE_TO_POINT_SGIS + use SGIS_point_line_texgen EYE_DISTANCE_TO_LINE_SGIS + use SGIS_point_line_texgen OBJECT_DISTANCE_TO_LINE_SGIS + +############################################################################### + +TextureGenParameter enum: + TEXTURE_GEN_MODE = 0x2500 + OBJECT_PLANE = 0x2501 + EYE_PLANE = 0x2502 + use SGIS_point_line_texgen EYE_POINT_SGIS + use SGIS_point_line_texgen OBJECT_POINT_SGIS + use SGIS_point_line_texgen EYE_LINE_SGIS + use SGIS_point_line_texgen OBJECT_LINE_SGIS + +# Aliases TextureGenParameter enum above +OES_texture_cube_map enum: (OpenGL ES only; additional; see below) + TEXTURE_GEN_MODE = 0x2500 + +############################################################################### + +TextureMagFilter enum: + NEAREST = 0x2600 + LINEAR = 0x2601 + use SGIS_detail_texture LINEAR_DETAIL_SGIS + use SGIS_detail_texture LINEAR_DETAIL_ALPHA_SGIS + use SGIS_detail_texture LINEAR_DETAIL_COLOR_SGIS + use SGIS_sharpen_texture LINEAR_SHARPEN_SGIS + use SGIS_sharpen_texture LINEAR_SHARPEN_ALPHA_SGIS + use SGIS_sharpen_texture LINEAR_SHARPEN_COLOR_SGIS + use SGIS_texture_filter4 FILTER4_SGIS + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_CEILING_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_ROUND_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_FLOOR_SGIX + +############################################################################### + +TextureMinFilter enum: + use TextureMagFilter NEAREST + use TextureMagFilter LINEAR + NEAREST_MIPMAP_NEAREST = 0x2700 + LINEAR_MIPMAP_NEAREST = 0x2701 + NEAREST_MIPMAP_LINEAR = 0x2702 + LINEAR_MIPMAP_LINEAR = 0x2703 + use SGIS_texture_filter4 FILTER4_SGIS + use SGIX_clipmap LINEAR_CLIPMAP_LINEAR_SGIX + use SGIX_clipmap NEAREST_CLIPMAP_NEAREST_SGIX + use SGIX_clipmap NEAREST_CLIPMAP_LINEAR_SGIX + use SGIX_clipmap LINEAR_CLIPMAP_NEAREST_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_CEILING_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_ROUND_SGIX + use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_FLOOR_SGIX + +############################################################################### + +TextureParameterName enum: + TEXTURE_MAG_FILTER = 0x2800 + TEXTURE_MIN_FILTER = 0x2801 + TEXTURE_WRAP_S = 0x2802 + TEXTURE_WRAP_T = 0x2803 + use GetTextureParameter TEXTURE_BORDER_COLOR + use GetTextureParameter TEXTURE_PRIORITY + use EXT_texture3D TEXTURE_WRAP_R_EXT + use SGIS_detail_texture DETAIL_TEXTURE_LEVEL_SGIS + use SGIS_detail_texture DETAIL_TEXTURE_MODE_SGIS + use SGIS_generate_mipmap GENERATE_MIPMAP_SGIS + use SGIS_texture_select DUAL_TEXTURE_SELECT_SGIS + use SGIS_texture_select QUAD_TEXTURE_SELECT_SGIS + use SGIS_texture4D TEXTURE_WRAP_Q_SGIS + use SGIX_clipmap TEXTURE_CLIPMAP_CENTER_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_FRAME_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_OFFSET_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_LOD_OFFSET_SGIX + use SGIX_clipmap TEXTURE_CLIPMAP_DEPTH_SGIX + use SGIX_shadow TEXTURE_COMPARE_SGIX + use SGIX_shadow TEXTURE_COMPARE_OPERATOR_SGIX + use SGIX_shadow_ambient SHADOW_AMBIENT_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_S_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_T_SGIX + use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_R_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_S_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_T_SGIX + use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_R_SGIX + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_SGIX + use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_SGIX + +############################################################################### + +TextureTarget enum: + use GetPName TEXTURE_1D + use GetPName TEXTURE_2D + PROXY_TEXTURE_1D = 0x8063 + PROXY_TEXTURE_2D = 0x8064 + use EXT_texture3D TEXTURE_3D_EXT + use EXT_texture3D PROXY_TEXTURE_3D_EXT + use SGIS_detail_texture DETAIL_TEXTURE_2D_SGIS + use SGIS_texture4D TEXTURE_4D_SGIS + use SGIS_texture4D PROXY_TEXTURE_4D_SGIS + use SGIS_texture_lod TEXTURE_MIN_LOD_SGIS + use SGIS_texture_lod TEXTURE_MAX_LOD_SGIS + use SGIS_texture_lod TEXTURE_BASE_LEVEL_SGIS + use SGIS_texture_lod TEXTURE_MAX_LEVEL_SGIS + +############################################################################### + +TextureWrapMode enum: + CLAMP = 0x2900 + REPEAT = 0x2901 + use SGIS_texture_border_clamp CLAMP_TO_BORDER_SGIS + use SGIS_texture_edge_clamp CLAMP_TO_EDGE_SGIS + +############################################################################### + +PixelInternalFormat enum: + R3_G3_B2 = 0x2A10 + ALPHA4 = 0x803B + ALPHA8 = 0x803C + ALPHA12 = 0x803D + ALPHA16 = 0x803E + LUMINANCE4 = 0x803F + LUMINANCE8 = 0x8040 + LUMINANCE12 = 0x8041 + LUMINANCE16 = 0x8042 + LUMINANCE4_ALPHA4 = 0x8043 + LUMINANCE6_ALPHA2 = 0x8044 + LUMINANCE8_ALPHA8 = 0x8045 + LUMINANCE12_ALPHA4 = 0x8046 + LUMINANCE12_ALPHA12 = 0x8047 + LUMINANCE16_ALPHA16 = 0x8048 + INTENSITY = 0x8049 + INTENSITY4 = 0x804A + INTENSITY8 = 0x804B + INTENSITY12 = 0x804C + INTENSITY16 = 0x804D + RGB4 = 0x804F + RGB5 = 0x8050 + RGB8 = 0x8051 + RGB10 = 0x8052 + RGB12 = 0x8053 + RGB16 = 0x8054 + RGBA2 = 0x8055 + RGBA4 = 0x8056 + RGB5_A1 = 0x8057 + RGBA8 = 0x8058 + RGB10_A2 = 0x8059 + RGBA12 = 0x805A + RGBA16 = 0x805B + use EXT_texture RGB2_EXT + use SGIS_texture_select DUAL_ALPHA4_SGIS + use SGIS_texture_select DUAL_ALPHA8_SGIS + use SGIS_texture_select DUAL_ALPHA12_SGIS + use SGIS_texture_select DUAL_ALPHA16_SGIS + use SGIS_texture_select DUAL_LUMINANCE4_SGIS + use SGIS_texture_select DUAL_LUMINANCE8_SGIS + use SGIS_texture_select DUAL_LUMINANCE12_SGIS + use SGIS_texture_select DUAL_LUMINANCE16_SGIS + use SGIS_texture_select DUAL_INTENSITY4_SGIS + use SGIS_texture_select DUAL_INTENSITY8_SGIS + use SGIS_texture_select DUAL_INTENSITY12_SGIS + use SGIS_texture_select DUAL_INTENSITY16_SGIS + use SGIS_texture_select DUAL_LUMINANCE_ALPHA4_SGIS + use SGIS_texture_select DUAL_LUMINANCE_ALPHA8_SGIS + use SGIS_texture_select QUAD_ALPHA4_SGIS + use SGIS_texture_select QUAD_ALPHA8_SGIS + use SGIS_texture_select QUAD_LUMINANCE4_SGIS + use SGIS_texture_select QUAD_LUMINANCE8_SGIS + use SGIS_texture_select QUAD_INTENSITY4_SGIS + use SGIS_texture_select QUAD_INTENSITY8_SGIS + use SGIX_depth_texture DEPTH_COMPONENT16_SGIX + use SGIX_depth_texture DEPTH_COMPONENT24_SGIX + use SGIX_depth_texture DEPTH_COMPONENT32_SGIX + use SGIX_icc_texture RGB_ICC_SGIX + use SGIX_icc_texture RGBA_ICC_SGIX + use SGIX_icc_texture ALPHA_ICC_SGIX + use SGIX_icc_texture LUMINANCE_ICC_SGIX + use SGIX_icc_texture INTENSITY_ICC_SGIX + use SGIX_icc_texture LUMINANCE_ALPHA_ICC_SGIX + use SGIX_icc_texture R5_G6_B5_ICC_SGIX + use SGIX_icc_texture R5_G6_B5_A8_ICC_SGIX + use SGIX_icc_texture ALPHA16_ICC_SGIX + use SGIX_icc_texture LUMINANCE16_ICC_SGIX + use SGIX_icc_texture INTENSITY16_ICC_SGIX + use SGIX_icc_texture LUMINANCE16_ALPHA8_ICC_SGIX + +# Aliases PixelInternalFormat enums above +OES_rgb8_rgba8 enum: (OpenGL ES only) + RGB8 = 0x8051 + RGBA8 = 0x8058 + +############################################################################### + +InterleavedArrayFormat enum: + V2F = 0x2A20 + V3F = 0x2A21 + C4UB_V2F = 0x2A22 + C4UB_V3F = 0x2A23 + C3F_V3F = 0x2A24 + N3F_V3F = 0x2A25 + C4F_N3F_V3F = 0x2A26 + T2F_V3F = 0x2A27 + T4F_V4F = 0x2A28 + T2F_C4UB_V3F = 0x2A29 + T2F_C3F_V3F = 0x2A2A + T2F_N3F_V3F = 0x2A2B + T2F_C4F_N3F_V3F = 0x2A2C + T4F_C4F_N3F_V4F = 0x2A2D + +############################################################################### + +VertexPointerType enum: + use DataType SHORT + use DataType INT + use DataType FLOAT + use DataType DOUBLE + +############################################################################### + +# 0x3000 through 0x3FFF are reserved for clip planes +ClipPlaneName enum: + CLIP_PLANE0 = 0x3000 # 1 I + CLIP_PLANE1 = 0x3001 # 1 I + CLIP_PLANE2 = 0x3002 # 1 I + CLIP_PLANE3 = 0x3003 # 1 I + CLIP_PLANE4 = 0x3004 # 1 I + CLIP_PLANE5 = 0x3005 # 1 I + +VERSION_3_0 enum: (aliases) + CLIP_DISTANCE0 = 0x3000 # VERSION_3_0 # alias GL_CLIP_PLANE0 + CLIP_DISTANCE1 = 0x3001 # VERSION_3_0 # alias GL_CLIP_PLANE1 + CLIP_DISTANCE2 = 0x3002 # VERSION_3_0 # alias GL_CLIP_PLANE2 + CLIP_DISTANCE3 = 0x3003 # VERSION_3_0 # alias GL_CLIP_PLANE3 + CLIP_DISTANCE4 = 0x3004 # VERSION_3_0 # alias GL_CLIP_PLANE4 + CLIP_DISTANCE5 = 0x3005 # VERSION_3_0 # alias GL_CLIP_PLANE5 + CLIP_DISTANCE6 = 0x3006 # VERSION_3_0 # alias GL_CLIP_PLANE5 + CLIP_DISTANCE7 = 0x3007 # VERSION_3_0 # alias GL_CLIP_PLANE5 + +############################################################################### + +# 0x4000-0x4FFF are reserved for light numbers +LightName enum: + LIGHT0 = 0x4000 # 1 I + LIGHT1 = 0x4001 # 1 I + LIGHT2 = 0x4002 # 1 I + LIGHT3 = 0x4003 # 1 I + LIGHT4 = 0x4004 # 1 I + LIGHT5 = 0x4005 # 1 I + LIGHT6 = 0x4006 # 1 I + LIGHT7 = 0x4007 # 1 I + use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT1_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT2_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT3_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT4_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT5_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT6_SGIX + use SGIX_fragment_lighting FRAGMENT_LIGHT7_SGIX + +############################################################################### + +EXT_abgr enum: + ABGR_EXT = 0x8000 + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + CONSTANT_COLOR = 0x8001 + ONE_MINUS_CONSTANT_COLOR = 0x8002 + CONSTANT_ALPHA = 0x8003 + ONE_MINUS_CONSTANT_ALPHA = 0x8004 + BLEND_COLOR = 0x8005 # 4 F + +EXT_blend_color enum: + CONSTANT_COLOR_EXT = 0x8001 + ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 + CONSTANT_ALPHA_EXT = 0x8003 + ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 + BLEND_COLOR_EXT = 0x8005 # 4 F + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) +EXT_blend_minmax enum: + FUNC_ADD = 0x8006 + FUNC_ADD_EXT = 0x8006 + MIN = 0x8007 + MIN_EXT = 0x8007 + MAX = 0x8008 + MAX_EXT = 0x8008 + BLEND_EQUATION = 0x8009 # 1 I + BLEND_EQUATION_EXT = 0x8009 # 1 I + +VERSION_2_0 enum: (Promoted for OpenGL 2.0) + BLEND_EQUATION_RGB = 0x8009 # VERSION_2_0 # alias GL_BLEND_EQUATION + +EXT_blend_equation_separate enum: (separate; see below) + BLEND_EQUATION_RGB_EXT = 0x8009 # alias GL_BLEND_EQUATION + +# Aliases EXT_blend_equation_separate enum above +OES_blend_equation_separate enum: (OpenGL ES only; additional; see below) + BLEND_EQUATION_RGB_OES = 0x8009 # 1 I + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) +EXT_blend_subtract enum: + FUNC_SUBTRACT = 0x800A + FUNC_SUBTRACT_EXT = 0x800A + FUNC_REVERSE_SUBTRACT = 0x800B + FUNC_REVERSE_SUBTRACT_EXT = 0x800B + +# Aliases EXT_blend_minmax and EXT_blend_subtract enums above +OES_blend_subtract enum: (OpenGL ES only) + FUNC_ADD_OES = 0x8006 + BLEND_EQUATION_OES = 0x8009 # 1 I + FUNC_SUBTRACT_OES = 0x800A + FUNC_REVERSE_SUBTRACT_OES = 0x800B + +############################################################################### + +EXT_cmyka enum: + CMYK_EXT = 0x800C + CMYKA_EXT = 0x800D + PACK_CMYK_HINT_EXT = 0x800E # 1 I + UNPACK_CMYK_HINT_EXT = 0x800F # 1 I + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + CONVOLUTION_1D = 0x8010 # 1 I + CONVOLUTION_2D = 0x8011 # 1 I + SEPARABLE_2D = 0x8012 # 1 I + CONVOLUTION_BORDER_MODE = 0x8013 + CONVOLUTION_FILTER_SCALE = 0x8014 + CONVOLUTION_FILTER_BIAS = 0x8015 + REDUCE = 0x8016 + CONVOLUTION_FORMAT = 0x8017 + CONVOLUTION_WIDTH = 0x8018 + CONVOLUTION_HEIGHT = 0x8019 + MAX_CONVOLUTION_WIDTH = 0x801A + MAX_CONVOLUTION_HEIGHT = 0x801B + POST_CONVOLUTION_RED_SCALE = 0x801C # 1 F + POST_CONVOLUTION_GREEN_SCALE = 0x801D # 1 F + POST_CONVOLUTION_BLUE_SCALE = 0x801E # 1 F + POST_CONVOLUTION_ALPHA_SCALE = 0x801F # 1 F + POST_CONVOLUTION_RED_BIAS = 0x8020 # 1 F + POST_CONVOLUTION_GREEN_BIAS = 0x8021 # 1 F + POST_CONVOLUTION_BLUE_BIAS = 0x8022 # 1 F + POST_CONVOLUTION_ALPHA_BIAS = 0x8023 # 1 F + +EXT_convolution enum: + CONVOLUTION_1D_EXT = 0x8010 # 1 I + CONVOLUTION_2D_EXT = 0x8011 # 1 I + SEPARABLE_2D_EXT = 0x8012 # 1 I + CONVOLUTION_BORDER_MODE_EXT = 0x8013 + CONVOLUTION_FILTER_SCALE_EXT = 0x8014 + CONVOLUTION_FILTER_BIAS_EXT = 0x8015 + REDUCE_EXT = 0x8016 + CONVOLUTION_FORMAT_EXT = 0x8017 + CONVOLUTION_WIDTH_EXT = 0x8018 + CONVOLUTION_HEIGHT_EXT = 0x8019 + MAX_CONVOLUTION_WIDTH_EXT = 0x801A + MAX_CONVOLUTION_HEIGHT_EXT = 0x801B + POST_CONVOLUTION_RED_SCALE_EXT = 0x801C # 1 F + POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D # 1 F + POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E # 1 F + POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F # 1 F + POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 # 1 F + POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 # 1 F + POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 # 1 F + POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 # 1 F + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + HISTOGRAM = 0x8024 # 1 I + PROXY_HISTOGRAM = 0x8025 + HISTOGRAM_WIDTH = 0x8026 + HISTOGRAM_FORMAT = 0x8027 + HISTOGRAM_RED_SIZE = 0x8028 + HISTOGRAM_GREEN_SIZE = 0x8029 + HISTOGRAM_BLUE_SIZE = 0x802A + HISTOGRAM_ALPHA_SIZE = 0x802B + HISTOGRAM_SINK = 0x802D + MINMAX = 0x802E # 1 I + MINMAX_FORMAT = 0x802F + MINMAX_SINK = 0x8030 + TABLE_TOO_LARGE = 0x8031 + +EXT_histogram enum: + HISTOGRAM_EXT = 0x8024 # 1 I + PROXY_HISTOGRAM_EXT = 0x8025 + HISTOGRAM_WIDTH_EXT = 0x8026 + HISTOGRAM_FORMAT_EXT = 0x8027 + HISTOGRAM_RED_SIZE_EXT = 0x8028 + HISTOGRAM_GREEN_SIZE_EXT = 0x8029 + HISTOGRAM_BLUE_SIZE_EXT = 0x802A + HISTOGRAM_ALPHA_SIZE_EXT = 0x802B + HISTOGRAM_LUMINANCE_SIZE = 0x802C + HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C + HISTOGRAM_SINK_EXT = 0x802D + MINMAX_EXT = 0x802E # 1 I + MINMAX_FORMAT_EXT = 0x802F + MINMAX_SINK_EXT = 0x8030 + TABLE_TOO_LARGE_EXT = 0x8031 + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + UNSIGNED_BYTE_3_3_2 = 0x8032 + UNSIGNED_SHORT_4_4_4_4 = 0x8033 + UNSIGNED_SHORT_5_5_5_1 = 0x8034 + UNSIGNED_INT_8_8_8_8 = 0x8035 + UNSIGNED_INT_10_10_10_2 = 0x8036 + UNSIGNED_BYTE_2_3_3_REV = 0x8362 + UNSIGNED_SHORT_5_6_5 = 0x8363 + UNSIGNED_SHORT_5_6_5_REV = 0x8364 + UNSIGNED_SHORT_4_4_4_4_REV = 0x8365 + UNSIGNED_SHORT_1_5_5_5_REV = 0x8366 + UNSIGNED_INT_8_8_8_8_REV = 0x8367 + UNSIGNED_INT_2_10_10_10_REV = 0x8368 + +EXT_packed_pixels enum: + UNSIGNED_BYTE_3_3_2_EXT = 0x8032 + UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 + UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 + UNSIGNED_INT_8_8_8_8_EXT = 0x8035 + UNSIGNED_INT_10_10_10_2_EXT = 0x8036 + UNSIGNED_BYTE_2_3_3_REV_EXT = 0x8362 + UNSIGNED_SHORT_5_6_5_EXT = 0x8363 + UNSIGNED_SHORT_5_6_5_REV_EXT = 0x8364 + UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365 + UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366 + UNSIGNED_INT_8_8_8_8_REV_EXT = 0x8367 + UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368 + +EXT_texture_type_2_10_10_10_REV enum: (OpenGL ES only) +# use EXT_packed_pixels UNSIGNED_INT_2_10_10_10_REV_EXT + +############################################################################### + +EXT_polygon_offset enum: + POLYGON_OFFSET_EXT = 0x8037 + POLYGON_OFFSET_FACTOR_EXT = 0x8038 + POLYGON_OFFSET_BIAS_EXT = 0x8039 # 1 F + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + RESCALE_NORMAL = 0x803A # 1 I + +EXT_rescale_normal enum: + RESCALE_NORMAL_EXT = 0x803A # 1 I + +############################################################################### + +EXT_texture enum: + ALPHA4_EXT = 0x803B + ALPHA8_EXT = 0x803C + ALPHA12_EXT = 0x803D + ALPHA16_EXT = 0x803E + LUMINANCE4_EXT = 0x803F + LUMINANCE8_EXT = 0x8040 + LUMINANCE12_EXT = 0x8041 + LUMINANCE16_EXT = 0x8042 + LUMINANCE4_ALPHA4_EXT = 0x8043 + LUMINANCE6_ALPHA2_EXT = 0x8044 + LUMINANCE8_ALPHA8_EXT = 0x8045 + LUMINANCE12_ALPHA4_EXT = 0x8046 + LUMINANCE12_ALPHA12_EXT = 0x8047 + LUMINANCE16_ALPHA16_EXT = 0x8048 + INTENSITY_EXT = 0x8049 + INTENSITY4_EXT = 0x804A + INTENSITY8_EXT = 0x804B + INTENSITY12_EXT = 0x804C + INTENSITY16_EXT = 0x804D + RGB2_EXT = 0x804E + RGB4_EXT = 0x804F + RGB5_EXT = 0x8050 + RGB8_EXT = 0x8051 + RGB10_EXT = 0x8052 + RGB12_EXT = 0x8053 + RGB16_EXT = 0x8054 + RGBA2_EXT = 0x8055 + RGBA4_EXT = 0x8056 + RGB5_A1_EXT = 0x8057 + RGBA8_EXT = 0x8058 + RGB10_A2_EXT = 0x8059 + RGBA12_EXT = 0x805A + RGBA16_EXT = 0x805B + TEXTURE_RED_SIZE_EXT = 0x805C + TEXTURE_GREEN_SIZE_EXT = 0x805D + TEXTURE_BLUE_SIZE_EXT = 0x805E + TEXTURE_ALPHA_SIZE_EXT = 0x805F + TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 + TEXTURE_INTENSITY_SIZE_EXT = 0x8061 + REPLACE_EXT = 0x8062 + PROXY_TEXTURE_1D_EXT = 0x8063 + PROXY_TEXTURE_2D_EXT = 0x8064 + TEXTURE_TOO_LARGE_EXT = 0x8065 + +# Aliases EXT_texture enums above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + RGBA4_OES = 0x8056 + RGB5_A1_OES = 0x8057 + +############################################################################### + +EXT_texture_object enum: + TEXTURE_PRIORITY_EXT = 0x8066 + TEXTURE_RESIDENT_EXT = 0x8067 + TEXTURE_1D_BINDING_EXT = 0x8068 + TEXTURE_2D_BINDING_EXT = 0x8069 + TEXTURE_3D_BINDING_EXT = 0x806A # 1 I + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + PACK_SKIP_IMAGES = 0x806B # 1 I + PACK_IMAGE_HEIGHT = 0x806C # 1 F + UNPACK_SKIP_IMAGES = 0x806D # 1 I + UNPACK_IMAGE_HEIGHT = 0x806E # 1 F + TEXTURE_3D = 0x806F # 1 I + PROXY_TEXTURE_3D = 0x8070 + TEXTURE_DEPTH = 0x8071 + TEXTURE_WRAP_R = 0x8072 + MAX_3D_TEXTURE_SIZE = 0x8073 # 1 I + +EXT_texture3D enum: + PACK_SKIP_IMAGES_EXT = 0x806B # 1 I + PACK_IMAGE_HEIGHT_EXT = 0x806C # 1 F + UNPACK_SKIP_IMAGES_EXT = 0x806D # 1 I + UNPACK_IMAGE_HEIGHT_EXT = 0x806E # 1 F + TEXTURE_3D_EXT = 0x806F # 1 I + PROXY_TEXTURE_3D_EXT = 0x8070 + TEXTURE_DEPTH_EXT = 0x8071 + TEXTURE_WRAP_R_EXT = 0x8072 + MAX_3D_TEXTURE_SIZE_EXT = 0x8073 # 1 I + +# Aliases EXT_texture_object, EXT_texture3D enums above +OES_texture3D enum: (OpenGL ES only) + TEXTURE_3D_BINDING_OES = 0x806A # 1 I + TEXTURE_3D_OES = 0x806F # 1 I + TEXTURE_WRAP_R_OES = 0x8072 + MAX_3D_TEXTURE_SIZE_OES = 0x8073 # 1 I + +############################################################################### + +EXT_vertex_array enum: + VERTEX_ARRAY_EXT = 0x8074 + NORMAL_ARRAY_EXT = 0x8075 + COLOR_ARRAY_EXT = 0x8076 + INDEX_ARRAY_EXT = 0x8077 + TEXTURE_COORD_ARRAY_EXT = 0x8078 + EDGE_FLAG_ARRAY_EXT = 0x8079 + VERTEX_ARRAY_SIZE_EXT = 0x807A + VERTEX_ARRAY_TYPE_EXT = 0x807B + VERTEX_ARRAY_STRIDE_EXT = 0x807C + VERTEX_ARRAY_COUNT_EXT = 0x807D # 1 I + NORMAL_ARRAY_TYPE_EXT = 0x807E + NORMAL_ARRAY_STRIDE_EXT = 0x807F + NORMAL_ARRAY_COUNT_EXT = 0x8080 # 1 I + COLOR_ARRAY_SIZE_EXT = 0x8081 + COLOR_ARRAY_TYPE_EXT = 0x8082 + COLOR_ARRAY_STRIDE_EXT = 0x8083 + COLOR_ARRAY_COUNT_EXT = 0x8084 # 1 I + INDEX_ARRAY_TYPE_EXT = 0x8085 + INDEX_ARRAY_STRIDE_EXT = 0x8086 + INDEX_ARRAY_COUNT_EXT = 0x8087 # 1 I + TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 + TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 + TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A + TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B # 1 I + EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C + EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D # 1 I + VERTEX_ARRAY_POINTER_EXT = 0x808E + NORMAL_ARRAY_POINTER_EXT = 0x808F + COLOR_ARRAY_POINTER_EXT = 0x8090 + INDEX_ARRAY_POINTER_EXT = 0x8091 + TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 + EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 + +############################################################################### + +SGIX_interlace enum: + INTERLACE_SGIX = 0x8094 # 1 I + +############################################################################### + +SGIS_detail_texture enum: + DETAIL_TEXTURE_2D_SGIS = 0x8095 + DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 # 1 I + LINEAR_DETAIL_SGIS = 0x8097 + LINEAR_DETAIL_ALPHA_SGIS = 0x8098 + LINEAR_DETAIL_COLOR_SGIS = 0x8099 + DETAIL_TEXTURE_LEVEL_SGIS = 0x809A + DETAIL_TEXTURE_MODE_SGIS = 0x809B + DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C + +############################################################################### + +# Reuses some SGIS_multisample values +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + MULTISAMPLE = 0x809D + SAMPLE_ALPHA_TO_COVERAGE = 0x809E + SAMPLE_ALPHA_TO_ONE = 0x809F + SAMPLE_COVERAGE = 0x80A0 + SAMPLE_BUFFERS = 0x80A8 # 1 I + SAMPLES = 0x80A9 # 1 I + SAMPLE_COVERAGE_VALUE = 0x80AA # 1 F + SAMPLE_COVERAGE_INVERT = 0x80AB # 1 I + +ARB_multisample enum: + MULTISAMPLE_ARB = 0x809D + SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E + SAMPLE_ALPHA_TO_ONE_ARB = 0x809F + SAMPLE_COVERAGE_ARB = 0x80A0 + SAMPLE_BUFFERS_ARB = 0x80A8 # 1 I + SAMPLES_ARB = 0x80A9 # 1 I + SAMPLE_COVERAGE_VALUE_ARB = 0x80AA # 1 F + SAMPLE_COVERAGE_INVERT_ARB = 0x80AB # 1 I + +SGIS_multisample enum: + MULTISAMPLE_SGIS = 0x809D # 1 I + SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E # 1 I + SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F # 1 I + SAMPLE_MASK_SGIS = 0x80A0 # 1 I + 1PASS_SGIS = 0x80A1 + 2PASS_0_SGIS = 0x80A2 + 2PASS_1_SGIS = 0x80A3 + 4PASS_0_SGIS = 0x80A4 + 4PASS_1_SGIS = 0x80A5 + 4PASS_2_SGIS = 0x80A6 + 4PASS_3_SGIS = 0x80A7 + SAMPLE_BUFFERS_SGIS = 0x80A8 # 1 I + SAMPLES_SGIS = 0x80A9 # 1 I + SAMPLE_MASK_VALUE_SGIS = 0x80AA # 1 F + SAMPLE_MASK_INVERT_SGIS = 0x80AB # 1 I + SAMPLE_PATTERN_SGIS = 0x80AC # 1 I + +# Reuses SGIS_multisample values. +EXT_multisample enum: + MULTISAMPLE_EXT = 0x809D + SAMPLE_ALPHA_TO_MASK_EXT = 0x809E + SAMPLE_ALPHA_TO_ONE_EXT = 0x809F + SAMPLE_MASK_EXT = 0x80A0 + 1PASS_EXT = 0x80A1 + 2PASS_0_EXT = 0x80A2 + 2PASS_1_EXT = 0x80A3 + 4PASS_0_EXT = 0x80A4 + 4PASS_1_EXT = 0x80A5 + 4PASS_2_EXT = 0x80A6 + 4PASS_3_EXT = 0x80A7 + SAMPLE_BUFFERS_EXT = 0x80A8 # 1 I + SAMPLES_EXT = 0x80A9 # 1 I + SAMPLE_MASK_VALUE_EXT = 0x80AA # 1 F + SAMPLE_MASK_INVERT_EXT = 0x80AB # 1 I + SAMPLE_PATTERN_EXT = 0x80AC # 1 I + MULTISAMPLE_BIT_EXT = 0x20000000 + +############################################################################### + +SGIS_sharpen_texture enum: + LINEAR_SHARPEN_SGIS = 0x80AD + LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE + LINEAR_SHARPEN_COLOR_SGIS = 0x80AF + SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + COLOR_MATRIX = 0x80B1 # 16 F + COLOR_MATRIX_STACK_DEPTH = 0x80B2 # 1 I + MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 # 1 I + POST_COLOR_MATRIX_RED_SCALE = 0x80B4 # 1 F + POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 # 1 F + POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 # 1 F + POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 # 1 F + POST_COLOR_MATRIX_RED_BIAS = 0x80B8 # 1 F + POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 # 1 F + POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA # 1 F + POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB # 1 F + +SGI_color_matrix enum: + COLOR_MATRIX_SGI = 0x80B1 # 16 F + COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 # 1 I + MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 # 1 I + POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 # 1 F + POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 # 1 F + POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 # 1 F + POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 # 1 F + POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 # 1 F + POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 # 1 F + POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA # 1 F + POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB # 1 F + +############################################################################### + +SGI_texture_color_table enum: + TEXTURE_COLOR_TABLE_SGI = 0x80BC # 1 I + PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD + +############################################################################### + +SGIX_texture_add_env enum: + TEXTURE_ENV_BIAS_SGIX = 0x80BE + +############################################################################### + +SGIX_shadow_ambient enum: + SHADOW_AMBIENT_SGIX = 0x80BF + +############################################################################### + +# Intergraph/Intense3D/3Dlabs: 0x80C0-0x80CF + +# 3Dlabs_future_use: 0x80C0-0x80C7 + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + BLEND_DST_RGB = 0x80C8 + BLEND_SRC_RGB = 0x80C9 + BLEND_DST_ALPHA = 0x80CA + BLEND_SRC_ALPHA = 0x80CB + +EXT_blend_func_separate enum: + BLEND_DST_RGB_EXT = 0x80C8 + BLEND_SRC_RGB_EXT = 0x80C9 + BLEND_DST_ALPHA_EXT = 0x80CA + BLEND_SRC_ALPHA_EXT = 0x80CB + +# Aliases EXT_blend_func_separate enums above +OES_blend_func_separate enum: (OpenGL ES only) + BLEND_DST_RGB_OES = 0x80C8 + BLEND_SRC_RGB_OES = 0x80C9 + BLEND_DST_ALPHA_OES = 0x80CA + BLEND_SRC_ALPHA_OES = 0x80CB + +EXT_422_pixels enum: + 422_EXT = 0x80CC + 422_REV_EXT = 0x80CD + 422_AVERAGE_EXT = 0x80CE + 422_REV_AVERAGE_EXT = 0x80CF + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + COLOR_TABLE = 0x80D0 # 1 I + POST_CONVOLUTION_COLOR_TABLE = 0x80D1 # 1 I + POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 # 1 I + PROXY_COLOR_TABLE = 0x80D3 + PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 + PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 + COLOR_TABLE_SCALE = 0x80D6 + COLOR_TABLE_BIAS = 0x80D7 + COLOR_TABLE_FORMAT = 0x80D8 + COLOR_TABLE_WIDTH = 0x80D9 + COLOR_TABLE_RED_SIZE = 0x80DA + COLOR_TABLE_GREEN_SIZE = 0x80DB + COLOR_TABLE_BLUE_SIZE = 0x80DC + COLOR_TABLE_ALPHA_SIZE = 0x80DD + COLOR_TABLE_LUMINANCE_SIZE = 0x80DE + COLOR_TABLE_INTENSITY_SIZE = 0x80DF + +SGI_color_table enum: + COLOR_TABLE_SGI = 0x80D0 # 1 I + POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 # 1 I + POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 # 1 I + PROXY_COLOR_TABLE_SGI = 0x80D3 + PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 + PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 + COLOR_TABLE_SCALE_SGI = 0x80D6 + COLOR_TABLE_BIAS_SGI = 0x80D7 + COLOR_TABLE_FORMAT_SGI = 0x80D8 + COLOR_TABLE_WIDTH_SGI = 0x80D9 + COLOR_TABLE_RED_SIZE_SGI = 0x80DA + COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB + COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC + COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD + COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE + COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + BGR = 0x80E0 + BGRA = 0x80E1 + +ARB_vertex_array_bgra enum: +# use VERSION_1_2 BGRA + +EXT_bgra enum: + BGR_EXT = 0x80E0 + BGRA_EXT = 0x80E1 + +############################################################################### + +# Microsoft: 0x80E2-0x80E7 + +############################################################################### + +VERSION_1_2 enum: + MAX_ELEMENTS_VERTICES = 0x80E8 + MAX_ELEMENTS_INDICES = 0x80E9 + +############################################################################### + +# Microsoft: 0x80EA-0x810F + +############################################################################### + +SGIS_texture_select enum: + DUAL_ALPHA4_SGIS = 0x8110 + DUAL_ALPHA8_SGIS = 0x8111 + DUAL_ALPHA12_SGIS = 0x8112 + DUAL_ALPHA16_SGIS = 0x8113 + DUAL_LUMINANCE4_SGIS = 0x8114 + DUAL_LUMINANCE8_SGIS = 0x8115 + DUAL_LUMINANCE12_SGIS = 0x8116 + DUAL_LUMINANCE16_SGIS = 0x8117 + DUAL_INTENSITY4_SGIS = 0x8118 + DUAL_INTENSITY8_SGIS = 0x8119 + DUAL_INTENSITY12_SGIS = 0x811A + DUAL_INTENSITY16_SGIS = 0x811B + DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C + DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D + QUAD_ALPHA4_SGIS = 0x811E + QUAD_ALPHA8_SGIS = 0x811F + QUAD_LUMINANCE4_SGIS = 0x8120 + QUAD_LUMINANCE8_SGIS = 0x8121 + QUAD_INTENSITY4_SGIS = 0x8122 + QUAD_INTENSITY8_SGIS = 0x8123 + DUAL_TEXTURE_SELECT_SGIS = 0x8124 + QUAD_TEXTURE_SELECT_SGIS = 0x8125 + +############################################################################### + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + POINT_SIZE_MIN = 0x8126 # 1 F + POINT_SIZE_MAX = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE = 0x8128 # 1 F + POINT_DISTANCE_ATTENUATION = 0x8129 # 3 F + +ARB_point_parameters enum: + POINT_SIZE_MIN_ARB = 0x8126 # 1 F + POINT_SIZE_MAX_ARB = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 # 1 F + POINT_DISTANCE_ATTENUATION_ARB = 0x8129 # 3 F + +EXT_point_parameters enum: + POINT_SIZE_MIN_EXT = 0x8126 # 1 F + POINT_SIZE_MAX_EXT = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 # 1 F + DISTANCE_ATTENUATION_EXT = 0x8129 # 3 F + +SGIS_point_parameters enum: + POINT_SIZE_MIN_SGIS = 0x8126 # 1 F + POINT_SIZE_MAX_SGIS = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 # 1 F + DISTANCE_ATTENUATION_SGIS = 0x8129 # 3 F + +############################################################################### + +SGIS_fog_function enum: + FOG_FUNC_SGIS = 0x812A + FOG_FUNC_POINTS_SGIS = 0x812B # 1 I + MAX_FOG_FUNC_POINTS_SGIS = 0x812C # 1 I + +############################################################################### + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + CLAMP_TO_BORDER = 0x812D + +ARB_texture_border_clamp enum: + CLAMP_TO_BORDER_ARB = 0x812D + +SGIS_texture_border_clamp enum: + CLAMP_TO_BORDER_SGIS = 0x812D + +############################################################################### + +SGIX_texture_multi_buffer enum: + TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + CLAMP_TO_EDGE = 0x812F + +SGIS_texture_edge_clamp enum: + CLAMP_TO_EDGE_SGIS = 0x812F + +############################################################################### + +SGIS_texture4D enum: + PACK_SKIP_VOLUMES_SGIS = 0x8130 # 1 I + PACK_IMAGE_DEPTH_SGIS = 0x8131 # 1 I + UNPACK_SKIP_VOLUMES_SGIS = 0x8132 # 1 I + UNPACK_IMAGE_DEPTH_SGIS = 0x8133 # 1 I + TEXTURE_4D_SGIS = 0x8134 # 1 I + PROXY_TEXTURE_4D_SGIS = 0x8135 + TEXTURE_4DSIZE_SGIS = 0x8136 + TEXTURE_WRAP_Q_SGIS = 0x8137 + MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 # 1 I + TEXTURE_4D_BINDING_SGIS = 0x814F # 1 I + +############################################################################### + +SGIX_pixel_texture enum: + PIXEL_TEX_GEN_SGIX = 0x8139 # 1 I + PIXEL_TEX_GEN_MODE_SGIX = 0x832B # 1 I + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + TEXTURE_MIN_LOD = 0x813A + TEXTURE_MAX_LOD = 0x813B + TEXTURE_BASE_LEVEL = 0x813C + TEXTURE_MAX_LEVEL = 0x813D + +SGIS_texture_lod enum: + TEXTURE_MIN_LOD_SGIS = 0x813A + TEXTURE_MAX_LOD_SGIS = 0x813B + TEXTURE_BASE_LEVEL_SGIS = 0x813C + TEXTURE_MAX_LEVEL_SGIS = 0x813D + +############################################################################### + +SGIX_pixel_tiles enum: + PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E # 1 I + PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F # 1 I + PIXEL_TILE_WIDTH_SGIX = 0x8140 # 1 I + PIXEL_TILE_HEIGHT_SGIX = 0x8141 # 1 I + PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 # 1 I + PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 # 1 I + PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 # 1 I + PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 # 1 I + +############################################################################### + +SGIS_texture_filter4 enum: + FILTER4_SGIS = 0x8146 + TEXTURE_FILTER4_SIZE_SGIS = 0x8147 + +############################################################################### + +SGIX_sprite enum: + SPRITE_SGIX = 0x8148 # 1 I + SPRITE_MODE_SGIX = 0x8149 # 1 I + SPRITE_AXIS_SGIX = 0x814A # 3 F + SPRITE_TRANSLATION_SGIX = 0x814B # 3 F + SPRITE_AXIAL_SGIX = 0x814C + SPRITE_OBJECT_ALIGNED_SGIX = 0x814D + SPRITE_EYE_ALIGNED_SGIX = 0x814E + +############################################################################### + +# SGIS_texture4D (additional; see above): 0x814F + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + CONSTANT_BORDER = 0x8151 +# WRAP_BORDER = 0x8152 # Not actually used + REPLICATE_BORDER = 0x8153 + CONVOLUTION_BORDER_COLOR = 0x8154 + +HP_convolution_border_modes enum: + IGNORE_BORDER_HP = 0x8150 # Not promoted + CONSTANT_BORDER_HP = 0x8151 + REPLICATE_BORDER_HP = 0x8153 + CONVOLUTION_BORDER_COLOR_HP = 0x8154 + +############################################################################### + +# HP: 0x8155-0x816F + +############################################################################### + +SGIX_clipmap enum: + LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 + TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 + TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 + TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 + TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 + TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 + TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 + MAX_CLIPMAP_DEPTH_SGIX = 0x8177 # 1 I + MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 # 1 I + NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D + NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E + LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F + +############################################################################### + +SGIX_texture_scale_bias enum: + POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 + POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A + POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B # 2 F + POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C # 2 F + +############################################################################### + +SGIX_reference_plane enum: + REFERENCE_PLANE_SGIX = 0x817D # 1 I + REFERENCE_PLANE_EQUATION_SGIX = 0x817E # 4 F + +############################################################################### + +SGIX_ir_instrument1 enum: + IR_INSTRUMENT1_SGIX = 0x817F # 1 I + +############################################################################### + +SGIX_instruments enum: + INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 + INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 # 1 I + +############################################################################### + +SGIX_list_priority enum: + LIST_PRIORITY_SGIX = 0x8182 + +############################################################################### + +SGIX_calligraphic_fragment enum: + CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 # 1 I + +############################################################################### + +SGIX_impact_pixel_texture enum: + PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184 + PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185 + PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186 + PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187 + PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188 + PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189 + PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A + +############################################################################### + +SGIX_framezoom enum: + FRAMEZOOM_SGIX = 0x818B # 1 I + FRAMEZOOM_FACTOR_SGIX = 0x818C # 1 I + MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D # 1 I + +############################################################################### + +SGIX_texture_lod_bias enum: + TEXTURE_LOD_BIAS_S_SGIX = 0x818E + TEXTURE_LOD_BIAS_T_SGIX = 0x818F + TEXTURE_LOD_BIAS_R_SGIX = 0x8190 + +############################################################################### + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + GENERATE_MIPMAP = 0x8191 + GENERATE_MIPMAP_HINT = 0x8192 # 1 I + +SGIS_generate_mipmap enum: + GENERATE_MIPMAP_SGIS = 0x8191 + GENERATE_MIPMAP_HINT_SGIS = 0x8192 # 1 I + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_spotlight_cutoff: 0x8193 +# SPOT_CUTOFF_DELTA_SGIX = 0x8193 + +############################################################################### + +SGIX_polynomial_ffd enum: + GEOMETRY_DEFORMATION_SGIX = 0x8194 + TEXTURE_DEFORMATION_SGIX = 0x8195 + DEFORMATIONS_MASK_SGIX = 0x8196 # 1 I + MAX_DEFORMATION_ORDER_SGIX = 0x8197 + +############################################################################### + +SGIX_fog_offset enum: + FOG_OFFSET_SGIX = 0x8198 # 1 I + FOG_OFFSET_VALUE_SGIX = 0x8199 # 4 F + +############################################################################### + +SGIX_shadow enum: + TEXTURE_COMPARE_SGIX = 0x819A + TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B + TEXTURE_LEQUAL_R_SGIX = 0x819C + TEXTURE_GEQUAL_R_SGIX = 0x819D + +############################################################################### + +# SGI private extension, not in enumext.spec +# SGIX_igloo_interface: 0x819E-0x81A4 +# IGLOO_FULLSCREEN_SGIX = 0x819E +# IGLOO_VIEWPORT_OFFSET_SGIX = 0x819F +# IGLOO_SWAPTMESH_SGIX = 0x81A0 +# IGLOO_COLORNORMAL_SGIX = 0x81A1 +# IGLOO_IRISGL_MODE_SGIX = 0x81A2 +# IGLOO_LMC_COLOR_SGIX = 0x81A3 +# IGLOO_TMESHMODE_SGIX = 0x81A4 + +############################################################################### + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + DEPTH_COMPONENT16 = 0x81A5 + DEPTH_COMPONENT24 = 0x81A6 + DEPTH_COMPONENT32 = 0x81A7 + +ARB_depth_texture enum: + DEPTH_COMPONENT16_ARB = 0x81A5 + DEPTH_COMPONENT24_ARB = 0x81A6 + DEPTH_COMPONENT32_ARB = 0x81A7 + +SGIX_depth_texture enum: + DEPTH_COMPONENT16_SGIX = 0x81A5 + DEPTH_COMPONENT24_SGIX = 0x81A6 + DEPTH_COMPONENT32_SGIX = 0x81A7 + +# Aliases ARB_depth_texture enum above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + DEPTH_COMPONENT16_OES = 0x81A5 + +# Aliases ARB_depth_texture enum above +OES_depth24 enum: (OpenGL ES only) + DEPTH_COMPONENT24_OES = 0x81A6 + +# Aliases ARB_depth_texture enum above +OES_depth32 enum: (OpenGL ES only) + DEPTH_COMPONENT32_OES = 0x81A7 + +############################################################################### + +EXT_compiled_vertex_array enum: + ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 + ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 + +############################################################################### + +EXT_cull_vertex enum: + CULL_VERTEX_EXT = 0x81AA + CULL_VERTEX_EYE_POSITION_EXT = 0x81AB + CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC + +############################################################################### + +# Promoted from SGI? +EXT_index_array_formats enum: + IUI_V2F_EXT = 0x81AD + IUI_V3F_EXT = 0x81AE + IUI_N3F_V2F_EXT = 0x81AF + IUI_N3F_V3F_EXT = 0x81B0 + T2F_IUI_V2F_EXT = 0x81B1 + T2F_IUI_V3F_EXT = 0x81B2 + T2F_IUI_N3F_V2F_EXT = 0x81B3 + T2F_IUI_N3F_V3F_EXT = 0x81B4 + +############################################################################### + +# Promoted from SGI? +EXT_index_func enum: + INDEX_TEST_EXT = 0x81B5 + INDEX_TEST_FUNC_EXT = 0x81B6 + INDEX_TEST_REF_EXT = 0x81B7 + +############################################################################### + +# Promoted from SGI? +EXT_index_material enum: + INDEX_MATERIAL_EXT = 0x81B8 + INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 + INDEX_MATERIAL_FACE_EXT = 0x81BA + +############################################################################### + +SGIX_ycrcb enum: + YCRCB_422_SGIX = 0x81BB + YCRCB_444_SGIX = 0x81BC + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGI_complex_type: 0x81BD-0x81C3 +# COMPLEX_UNSIGNED_BYTE_SGI = 0x81BD +# COMPLEX_BYTE_SGI = 0x81BE +# COMPLEX_UNSIGNED_SHORT_SGI = 0x81BF +# COMPLEX_SHORT_SGI = 0x81C0 +# COMPLEX_UNSIGNED_INT_SGI = 0x81C1 +# COMPLEX_INT_SGI = 0x81C2 +# COMPLEX_FLOAT_SGI = 0x81C3 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGI_fft: 0x81C4-0x81CA +# POST_TRANSFORM_RED_SCALE_SGI = ???? # 1 F +# POST_TRANSFORM_GREEN_SCALE_SGI = ???? # 1 F +# POST_TRANSFORM_BLUE_SCALE_SGI = ???? # 1 F +# POST_TRANSFORM_ALPHA_SCALE_SGI = ???? # 1 F +# POST_TRANSFORM_RED_BIAS_SGI = ???? # 1 F +# POST_TRANSFORM_GREEN_BIAS_SGI = ???? # 1 F +# POST_TRANSFORM_BLUE_BIAS_SGI = ???? # 1 F +# POST_TRANSFORM_ALPHA_BIAS_SGI = ???? # 1 F +# PIXEL_TRANSFORM_OPERATOR_SGI = 0x81C4 # 1 I +# CONVOLUTION_SGI = 0x81C5 +# FFT_1D_SGI = 0x81C6 +# PIXEL_TRANSFORM_SGI = 0x81C7 +# MAX_FFT_WIDTH_SGI = 0x81C8 +# SORT_SGI = 0x81C9 +# TRANSPOSE_SGI = 0x81CA + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_nurbs_eval: 0x81CB-0x81CF +# MAP1_VERTEX_3_NURBS_SGIX = 0x81CB # 1 I +# MAP1_VERTEX_4_NURBS_SGIX = 0x81CC # 1 I +# MAP1_INDEX_NURBS_SGIX = 0x81CD # 1 I +# MAP1_COLOR_4_NURBS_SGIX = 0x81CE # 1 I +# MAP1_NORMAL_NURBS_SGIX = 0x81CF # 1 I +# MAP1_TEXTURE_COORD_1_NURBS_SGIX = 0x81E0 # 1 I +# MAP1_TEXTURE_COORD_2_NURBS_SGIX = 0x81E1 # 1 I +# MAP1_TEXTURE_COORD_3_NURBS_SGIX = 0x81E2 # 1 I +# MAP1_TEXTURE_COORD_4_NURBS_SGIX = 0x81E3 # 1 I +# MAP2_VERTEX_3_NURBS_SGIX = 0x81E4 # 1 I +# MAP2_VERTEX_4_NURBS_SGIX = 0x81E5 # 1 I +# MAP2_INDEX_NURBS_SGIX = 0x81E6 # 1 I +# MAP2_COLOR_4_NURBS_SGIX = 0x81E7 # 1 I +# MAP2_NORMAL_NURBS_SGIX = 0x81E8 # 1 I +# MAP2_TEXTURE_COORD_1_NURBS_SGIX = 0x81E9 # 1 I +# MAP2_TEXTURE_COORD_2_NURBS_SGIX = 0x81EA # 1 I +# MAP2_TEXTURE_COORD_3_NURBS_SGIX = 0x81EB # 1 I +# MAP2_TEXTURE_COORD_4_NURBS_SGIX = 0x81EC # 1 I +# NURBS_KNOT_COUNT_SGIX = 0x81ED +# NURBS_KNOT_VECTOR_SGIX = 0x81EE + +############################################################################### + +# Sun: 0x81D0-0x81DF + +# No extension spec, not in enumext.spec +# SUNX_surface_hint enum: +# SURFACE_SIZE_HINT_SUNX = 0x81D2 +# LARGE_SUNX = 0x81D3 + +SUNX_general_triangle_list enum: + RESTART_SUN = 0x0001 + REPLACE_MIDDLE_SUN = 0x0002 + REPLACE_OLDEST_SUN = 0x0003 + WRAP_BORDER_SUN = 0x81D4 + TRIANGLE_LIST_SUN = 0x81D7 + REPLACEMENT_CODE_SUN = 0x81D8 + +SUNX_constant_data enum: + UNPACK_CONSTANT_DATA_SUNX = 0x81D5 + TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 + +SUN_global_alpha enum: + GLOBAL_ALPHA_SUN = 0x81D9 + GLOBAL_ALPHA_FACTOR_SUN = 0x81DA + +############################################################################### + +# SGIX_nurbs_eval (additional; see above): 0x81E0-0x81EE + +############################################################################### + +SGIS_texture_color_mask enum: + TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF + +############################################################################### + +SGIS_point_line_texgen enum: + EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 + OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 + EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 + OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 + EYE_POINT_SGIS = 0x81F4 + OBJECT_POINT_SGIS = 0x81F5 + EYE_LINE_SGIS = 0x81F6 + OBJECT_LINE_SGIS = 0x81F7 + +############################################################################### + +VERSION_1_2 enum: (Promoted for OpenGL 1.2) + LIGHT_MODEL_COLOR_CONTROL = 0x81F8 # 1 I + SINGLE_COLOR = 0x81F9 + SEPARATE_SPECULAR_COLOR = 0x81FA + +EXT_separate_specular_color enum: + LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 + SINGLE_COLOR_EXT = 0x81F9 + SEPARATE_SPECULAR_COLOR_EXT = 0x81FA + +############################################################################### + +EXT_shared_texture_palette enum: + SHARED_TEXTURE_PALETTE_EXT = 0x81FB # 1 I + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fog_scale: 0x81FC-0x81FD +# FOG_SCALE_SGIX = 0x81FC # 1 I +# FOG_SCALE_VALUE_SGIX = 0x81FD # 1 F + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fog_blend: 0x81FE-0x81FF +# FOG_BLEND_ALPHA_SGIX = 0x81FE # 1 I +# FOG_BLEND_COLOR_SGIX = 0x81FF # 1 I + +############################################################################### + +# ATI: 0x8200-0x820F (released by Microsoft 2002/9/16) +ATI_text_fragment_shader enum: + TEXT_FRAGMENT_SHADER_ATI = 0x8200 + +############################################################################### + +# OpenGL ARB: 0x8210-0x823F + +VERSION_3_0 enum: + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_RED_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_GREEN_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_BLUE_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE + use ARB_framebuffer_object FRAMEBUFFER_DEFAULT + use ARB_framebuffer_object FRAMEBUFFER_UNDEFINED + use ARB_framebuffer_object DEPTH_STENCIL_ATTACHMENT + +ARB_framebuffer_object enum: (note: no ARB suffixes) + FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_DEFAULT = 0x8218 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_UNDEFINED = 0x8219 # VERSION_3_0 / ARB_fbo + DEPTH_STENCIL_ATTACHMENT = 0x821A # VERSION_3_0 / ARB_fbo + +VERSION_3_0 enum: + MAJOR_VERSION = 0x821B # VERSION_3_0 + MINOR_VERSION = 0x821C # VERSION_3_0 + NUM_EXTENSIONS = 0x821D # VERSION_3_0 + CONTEXT_FLAGS = 0x821E # VERSION_3_0 + +# ARB_future_use: 0x821F-0x8221 + +VERSION_3_0 enum: + use ARB_framebuffer_object INDEX + +ARB_framebuffer_object enum: (note: no ARB suffixes) + INDEX = 0x8222 # VERSION_3_0 / ARB_fbo + +VERSION_3_0 enum: + DEPTH_BUFFER = 0x8223 # VERSION_3_0 + STENCIL_BUFFER = 0x8224 # VERSION_3_0 + COMPRESSED_RED = 0x8225 # VERSION_3_0 + COMPRESSED_RG = 0x8226 # VERSION_3_0 + +VERSION_3_0 enum: + use ARB_texture_rg RG + use ARB_texture_rg RG_INTEGER + use ARB_texture_rg R8 + use ARB_texture_rg R16 + use ARB_texture_rg RG8 + use ARB_texture_rg RG16 + use ARB_texture_rg R16F + use ARB_texture_rg R32F + use ARB_texture_rg RG16F + use ARB_texture_rg RG32F + use ARB_texture_rg R8I + use ARB_texture_rg R8UI + use ARB_texture_rg R16I + use ARB_texture_rg R16UI + use ARB_texture_rg R32I + use ARB_texture_rg R32UI + use ARB_texture_rg RG8I + use ARB_texture_rg RG8UI + use ARB_texture_rg RG16I + use ARB_texture_rg RG16UI + use ARB_texture_rg RG32I + use ARB_texture_rg RG32UI + +ARB_texture_rg enum: (note: no ARB suffixes) + RG = 0x8227 # VERSION_3_0 / ARB_trg + RG_INTEGER = 0x8228 # VERSION_3_0 / ARB_trg + R8 = 0x8229 # VERSION_3_0 / ARB_trg + R16 = 0x822A # VERSION_3_0 / ARB_trg + RG8 = 0x822B # VERSION_3_0 / ARB_trg + RG16 = 0x822C # VERSION_3_0 / ARB_trg + R16F = 0x822D # VERSION_3_0 / ARB_trg + R32F = 0x822E # VERSION_3_0 / ARB_trg + RG16F = 0x822F # VERSION_3_0 / ARB_trg + RG32F = 0x8230 # VERSION_3_0 / ARB_trg + R8I = 0x8231 # VERSION_3_0 / ARB_trg + R8UI = 0x8232 # VERSION_3_0 / ARB_trg + R16I = 0x8233 # VERSION_3_0 / ARB_trg + R16UI = 0x8234 # VERSION_3_0 / ARB_trg + R32I = 0x8235 # VERSION_3_0 / ARB_trg + R32UI = 0x8236 # VERSION_3_0 / ARB_trg + RG8I = 0x8237 # VERSION_3_0 / ARB_trg + RG8UI = 0x8238 # VERSION_3_0 / ARB_trg + RG16I = 0x8239 # VERSION_3_0 / ARB_trg + RG16UI = 0x823A # VERSION_3_0 / ARB_trg + RG32I = 0x823B # VERSION_3_0 / ARB_trg + RG32UI = 0x823C # VERSION_3_0 / ARB_trg + +# ARB_future_use: 0x823D-0x823F + +############################################################################### + +# @@@ Any_vendor_future_use: 0x8240-0x82AF (released by Microsoft 2002/9/16) + +############################################################################### + +# ADD: 0x82B0-0x830F + +############################################################################### + +SGIX_depth_pass_instrument enum: 0x8310-0x8312 + DEPTH_PASS_INSTRUMENT_SGIX = 0x8310 + DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311 + DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312 + +############################################################################### + +SGIX_fragments_instrument enum: 0x8313-0x8315 + FRAGMENTS_INSTRUMENT_SGIX = 0x8313 # 1 I + FRAGMENTS_INSTRUMENT_COUNTERS_SGIX = 0x8314 # 1 I + FRAGMENTS_INSTRUMENT_MAX_SGIX = 0x8315 # 1 I + +############################################################################### + +SGIX_convolution_accuracy enum: + CONVOLUTION_HINT_SGIX = 0x8316 # 1 I + +############################################################################### + +# SGIX_color_matrix_accuracy: 0x8317 + +############################################################################### + +# 0x8318-0x8319 +SGIX_ycrcba enum: + YCRCB_SGIX = 0x8318 + YCRCBA_SGIX = 0x8319 + +############################################################################### + +# 0x831A-0x831F +SGIX_slim enum: + UNPACK_COMPRESSED_SIZE_SGIX = 0x831A + PACK_MAX_COMPRESSED_SIZE_SGIX = 0x831B + PACK_COMPRESSED_SIZE_SGIX = 0x831C + SLIM8U_SGIX = 0x831D + SLIM10U_SGIX = 0x831E + SLIM12S_SGIX = 0x831F + +############################################################################### + +SGIX_blend_alpha_minmax enum: + ALPHA_MIN_SGIX = 0x8320 + ALPHA_MAX_SGIX = 0x8321 + +############################################################################### + +SGIX_scalebias_hint enum: + SCALEBIAS_HINT_SGIX = 0x8322 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fog_layers: 0x8323-0x8328 +# FOG_TYPE_SGIX = 0x8323 # 1 I +# UNIFORM_SGIX = 0x8324 +# LAYERED_SGIX = 0x8325 +# FOG_GROUND_PLANE_SGIX = 0x8326 # 4 F +# FOG_LAYERS_POINTS_SGIX = 0x8327 # 1 I +# MAX_FOG_LAYERS_POINTS_SGIX = 0x8328 # 1 I + +############################################################################### + +SGIX_async enum: + ASYNC_MARKER_SGIX = 0x8329 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_texture_phase: 0x832A +# PHASE_SGIX = 0x832A + +############################################################################### + +# SGIX_pixel_texture (additional; see above): 0x832B + +############################################################################### + +SGIX_async_histogram enum: + ASYNC_HISTOGRAM_SGIX = 0x832C + MAX_ASYNC_HISTOGRAM_SGIX = 0x832D + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_texture_mipmap_anisotropic: 0x832E-0x832F +# TEXTURE_MIPMAP_ANISOTROPY_SGIX = 0x832E +# MAX_MIPMAP_ANISOTROPY_SGIX = 0x832F # 1 I + +############################################################################### + +EXT_pixel_transform enum: + PIXEL_TRANSFORM_2D_EXT = 0x8330 + PIXEL_MAG_FILTER_EXT = 0x8331 + PIXEL_MIN_FILTER_EXT = 0x8332 + PIXEL_CUBIC_WEIGHT_EXT = 0x8333 + CUBIC_EXT = 0x8334 + AVERAGE_EXT = 0x8335 + PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 + MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 + PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 + +# SUN_future_use: 0x8339-0x833F + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_cube_map: 0x8340-0x8348 +# ENV_MAP_SGIX = 0x8340 +# CUBE_MAP_SGIX = 0x8341 +# CUBE_MAP_ZP_SGIX = 0x8342 +# CUBE_MAP_ZN_SGIX = 0x8343 +# CUBE_MAP_XN_SGIX = 0x8344 +# CUBE_MAP_XP_SGIX = 0x8345 +# CUBE_MAP_YN_SGIX = 0x8346 +# CUBE_MAP_YP_SGIX = 0x8347 +# CUBE_MAP_BINDING_SGIX = 0x8348 # 1 I + +############################################################################### + +# Unfortunately, there was a collision promoting to EXT from SGIX. +# Use fog_coord's value of 0x8452 instead of the previously +# assigned FRAGMENT_DEPTH_EXT -> 0x834B. +# EXT_light_texture: 0x8349-0x8352 +EXT_light_texture enum: 0x8349-0x8352 + FRAGMENT_MATERIAL_EXT = 0x8349 + FRAGMENT_NORMAL_EXT = 0x834A + FRAGMENT_COLOR_EXT = 0x834C + ATTENUATION_EXT = 0x834D + SHADOW_ATTENUATION_EXT = 0x834E + TEXTURE_APPLICATION_MODE_EXT = 0x834F # 1 I + TEXTURE_LIGHT_EXT = 0x8350 # 1 I + TEXTURE_MATERIAL_FACE_EXT = 0x8351 # 1 I + TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 # 1 I + use EXT_fog_coord FRAGMENT_DEPTH_EXT + +############################################################################### + +SGIS_pixel_texture enum: + PIXEL_TEXTURE_SGIS = 0x8353 # 1 I + PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 # 1 I + PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 # 1 I + PIXEL_GROUP_COLOR_SGIS = 0x8356 # 1 I + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_pixel_texture_bits: 0x8357-0x8359 +# COLOR_TO_TEXTURE_COORD_SGIX = 0x8357 +# COLOR_BIT_PATTERN_SGIX = 0x8358 +# COLOR_VALUE_SGIX = 0x8359 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_pixel_texture_lod: 0x835A +# PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX = 0x835A + +############################################################################### + +SGIX_line_quality_hint enum: + LINE_QUALITY_HINT_SGIX = 0x835B + +############################################################################### + +SGIX_async_pixel enum: + ASYNC_TEX_IMAGE_SGIX = 0x835C + ASYNC_DRAW_PIXELS_SGIX = 0x835D + ASYNC_READ_PIXELS_SGIX = 0x835E + MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F + MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 + MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 + +############################################################################### + +# EXT_packed_pixels (additional; see above): 0x8362-0x8368 + +############################################################################### + +SGIX_texture_coordinate_clamp enum: + TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 + TEXTURE_MAX_CLAMP_T_SGIX = 0x836A + TEXTURE_MAX_CLAMP_R_SGIX = 0x836B + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fog_texture: 0x836C-0x836E +# FRAGMENT_FOG_SGIX = 0x836C +# TEXTURE_FOG_SGIX = 0x836D # 1 I +# FOG_PATCHY_FACTOR_SGIX = 0x836E + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fog_factor_to_alpha: 0x836F + FOG_FACTOR_TO_ALPHA_SGIX = 0x836F + +############################################################################### + +# HP: 0x8370-0x837F +# NOTE: IBM is using values in this range, because of a bobble +# when Pat Brown left at the same time as I assigned them the +# next range and their registry became inconsistent. Unknown +# whether HP has any conflicts as they have never reported using +# any values in this range. + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + MIRRORED_REPEAT = 0x8370 + +ARB_texture_mirrored_repeat enum: + MIRRORED_REPEAT_ARB = 0x8370 + +IBM_texture_mirrored_repeat enum: + MIRRORED_REPEAT_IBM = 0x8370 + +# Aliases ARB_texture_mirrored_repeat enum above +OES_texture_mirrored_repeat enum: (OpenGL ES only) + MIRRORED_REPEAT_OES = 0x8370 + +############################################################################### + +# IBM: 0x8380-0x839F + +############################################################################### + +# S3: 0x83A0-0x83BF + +S3_s3tc enum: + RGB_S3TC = 0x83A0 + RGB4_S3TC = 0x83A1 + RGBA_S3TC = 0x83A2 + RGBA4_S3TC = 0x83A3 + +# S3_future_use: 0x83A4-0x83BF + +############################################################################### + +# Obsolete extension, never to be put in enumext.spec +# SGIS_multitexture: 0x83C0-0x83E5 +# SELECTED_TEXTURE_SGIS = 0x83C0 # 1 I +# SELECTED_TEXTURE_COORD_SET_SGIS = 0x83C1 # 1 I +# SELECTED_TEXTURE_TRANSFORM_SGIS = 0x83C2 # 1 I +# MAX_TEXTURES_SGIS = 0x83C3 # 1 I +# MAX_TEXTURE_COORD_SETS_SGIS = 0x83C4 # 1 I +# TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS = 0x83C5 # 1 I +# TEXTURE_ENV_COORD_SET_SGIS = 0x83C6 +# TEXTURE0_SGIS = 0x83C7 +# TEXTURE1_SGIS = 0x83C8 +# TEXTURE2_SGIS = 0x83C9 +# TEXTURE3_SGIS = 0x83CA +# +# SGIS_multitexture_future_use: 0x83CB-0x83E5 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_bali_g_instruments: 0x83E6-0x83E9 +# BALI_NUM_TRIS_CULLED_INSTRUMENT_SGIX = 0x83E6 # 1 I +# BALI_NUM_PRIMS_CLIPPED_INSTRUMENT_SGIX = 0x83E7 # 1 I +# BALI_NUM_PRIMS_REJECT_INSTRUMENT_SGIX = 0x83E8 # 1 I +# BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT_SGIX = 0x83E9 # 1 I + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_bali_r_instruments: 0x83EA-0x83EC +# BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX = 0x83EA # 1 I +# BALI_DEPTH_PASS_INSTRUMENT_SGIX = 0x83EB # 1 I +# BALI_R_CHIP_COUNT_SGIX = 0x83EC # 1 I + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_occlusion_instrument: 0x83ED +# OCCLUSION_INSTRUMENT_SGIX = 0x83ED # 1 I + +############################################################################### + +SGIX_vertex_preclip enum: + VERTEX_PRECLIP_SGIX = 0x83EE + VERTEX_PRECLIP_HINT_SGIX = 0x83EF + +############################################################################### + +# INTEL: 0x83F0-0x83FF +# Note that this block was reclaimed from NTP, who never shipped it, +# and reassigned to Intel. + +EXT_texture_compression_s3tc enum: + COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0 + COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1 + COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 + COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 + +INTEL_parallel_arrays enum: + PARALLEL_ARRAYS_INTEL = 0x83F4 + VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 + NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 + COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 + TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 + +# INTEL_future_use: 0x83F9-0x83FF + +############################################################################### + +SGIX_fragment_lighting enum: + FRAGMENT_LIGHTING_SGIX = 0x8400 # 1 I + FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 # 1 I + FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 # 1 I + FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 # 1 I + MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 # 1 I + MAX_ACTIVE_LIGHTS_SGIX = 0x8405 # 1 I + CURRENT_RASTER_NORMAL_SGIX = 0x8406 # 1 I + LIGHT_ENV_MODE_SGIX = 0x8407 # 1 I + FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 # 1 I + FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 # 1 I + FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A # 4 F + FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B # 1 I + FRAGMENT_LIGHT0_SGIX = 0x840C # 1 I + FRAGMENT_LIGHT1_SGIX = 0x840D + FRAGMENT_LIGHT2_SGIX = 0x840E + FRAGMENT_LIGHT3_SGIX = 0x840F + FRAGMENT_LIGHT4_SGIX = 0x8410 + FRAGMENT_LIGHT5_SGIX = 0x8411 + FRAGMENT_LIGHT6_SGIX = 0x8412 + FRAGMENT_LIGHT7_SGIX = 0x8413 + +# SGIX_fragment_lighting_future_use: 0x8414-0x842B + +############################################################################### + +SGIX_resample enum: + PACK_RESAMPLE_SGIX = 0x842C + UNPACK_RESAMPLE_SGIX = 0x842D + RESAMPLE_REPLICATE_SGIX = 0x842E + RESAMPLE_ZERO_FILL_SGIX = 0x842F + RESAMPLE_DECIMATE_SGIX = 0x8430 + +# SGIX_resample_future_use: 0x8431-0x8435 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_fragment_lighting_space: 0x8436-0x8449 +# EYE_SPACE_SGIX = 0x8436 +# TANGENT_SPACE_SGIX = 0x8437 +# OBJECT_SPACE_SGIX = 0x8438 +# TANGENT_ARRAY_SGIX = 0x8439 +# BINORMAL_ARRAY_SGIX = 0x843A +# CURRENT_TANGENT_SGIX = 0x843B # 3 F +# CURRENT_BINORMAL_SGIX = 0x843C # 3 F +# FRAGMENT_LIGHT_SPACE_SGIX = 0x843D # 1 I +# TANGENT_ARRAY_TYPE_SGIX = 0x843E +# TANGENT_ARRAY_STRIDE_SGIX = 0x843F +# TANGENT_ARRAY_COUNT_SGIX = 0x8440 +# BINORMAL_ARRAY_TYPE_SGIX = 0x8441 +# BINORMAL_ARRAY_STRIDE_SGIX = 0x8442 +# BINORMAL_ARRAY_COUNT_SGIX = 0x8443 +# TANGENT_ARRAY_POINTER_SGIX = 0x8444 +# BINORMAL_ARRAY_POINTER_SGIX = 0x8445 +# MAP1_TANGENT_SGIX = 0x8446 +# MAP2_TANGENT_SGIX = 0x8447 +# MAP1_BINORMAL_SGIX = 0x8448 +# MAP2_BINORMAL_SGIX = 0x8449 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_bali_timer_instruments: 0x844A-0x844C +# BALI_GEOM_TIMER_INSTRUMENT_SGIX = 0x844A # 1 I +# BALI_RASTER_TIMER_INSTRUMENT_SGIX = 0x844B # 1 I +# BALI_INSTRUMENT_TIME_UNIT_SGIX = 0x844C # 1 I + +############################################################################### + +# SGIX_clipmap (additional; see above): 0x844D-0x844F + +############################################################################### + +# SGI (actually brokered for Id Software): 0x8450-0x845F + +VERSION_1_5 enum: (Consistent naming scheme for OpenGL 1.5) + FOG_COORD_SRC = 0x8450 # alias GL_FOG_COORDINATE_SOURCE + FOG_COORD = 0x8451 # alias GL_FOG_COORDINATE + CURRENT_FOG_COORD = 0x8453 # alias GL_CURRENT_FOG_COORDINATE + FOG_COORD_ARRAY_TYPE = 0x8454 # alias GL_FOG_COORDINATE_ARRAY_TYPE + FOG_COORD_ARRAY_STRIDE = 0x8455 # alias GL_FOG_COORDINATE_ARRAY_STRIDE + FOG_COORD_ARRAY_POINTER = 0x8456 # alias GL_FOG_COORDINATE_ARRAY_POINTER + FOG_COORD_ARRAY = 0x8457 # alias GL_FOG_COORDINATE_ARRAY + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + FOG_COORDINATE_SOURCE = 0x8450 # 1 I + FOG_COORDINATE = 0x8451 + FRAGMENT_DEPTH = 0x8452 + CURRENT_FOG_COORDINATE = 0x8453 # 1 F + FOG_COORDINATE_ARRAY_TYPE = 0x8454 # 1 I + FOG_COORDINATE_ARRAY_STRIDE = 0x8455 # 1 I + FOG_COORDINATE_ARRAY_POINTER = 0x8456 + FOG_COORDINATE_ARRAY = 0x8457 # 1 I + +EXT_fog_coord enum: + FOG_COORDINATE_SOURCE_EXT = 0x8450 # 1 I + FOG_COORDINATE_EXT = 0x8451 + FRAGMENT_DEPTH_EXT = 0x8452 + CURRENT_FOG_COORDINATE_EXT = 0x8453 # 1 F + FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 # 1 I + FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 # 1 I + FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 + FOG_COORDINATE_ARRAY_EXT = 0x8457 # 1 I + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + COLOR_SUM = 0x8458 # 1 I + CURRENT_SECONDARY_COLOR = 0x8459 # 3 F + SECONDARY_COLOR_ARRAY_SIZE = 0x845A # 1 I + SECONDARY_COLOR_ARRAY_TYPE = 0x845B # 1 I + SECONDARY_COLOR_ARRAY_STRIDE = 0x845C # 1 I + SECONDARY_COLOR_ARRAY_POINTER = 0x845D + SECONDARY_COLOR_ARRAY = 0x845E # 1 I + +EXT_secondary_color enum: + COLOR_SUM_EXT = 0x8458 # 1 I + CURRENT_SECONDARY_COLOR_EXT = 0x8459 # 3 F + SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A # 1 I + SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B # 1 I + SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C # 1 I + SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D + SECONDARY_COLOR_ARRAY_EXT = 0x845E # 1 I + +ARB_vertex_program enum: + COLOR_SUM_ARB = 0x8458 # 1 I # ARB_vertex_program + +VERSION_2_1 enum: + CURRENT_RASTER_SECONDARY_COLOR = 0x845F + +############################################################################### + +# Incomplete extension, not in enumext.spec +SGIX_icc_texture enum: +# RGB_ICC_SGIX = 0x8460 +# RGBA_ICC_SGIX = 0x8461 +# ALPHA_ICC_SGIX = 0x8462 +# LUMINANCE_ICC_SGIX = 0x8463 +# INTENSITY_ICC_SGIX = 0x8464 +# LUMINANCE_ALPHA_ICC_SGIX = 0x8465 +# R5_G6_B5_ICC_SGIX = 0x8466 +# R5_G6_B5_A8_ICC_SGIX = 0x8467 +# ALPHA16_ICC_SGIX = 0x8468 +# LUMINANCE16_ICC_SGIX = 0x8469 +# INTENSITY16_ICC_SGIX = 0x846A +# LUMINANCE16_ALPHA8_ICC_SGIX = 0x846B + +############################################################################### + +# SGI_future_use: 0x846C + +############################################################################### + +# SMOOTH_* enums are new names for pre-1.2 enums. +VERSION_1_2 enum: + SMOOTH_POINT_SIZE_RANGE = 0x0B12 # 2 F + SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13 # 1 F + SMOOTH_LINE_WIDTH_RANGE = 0x0B22 # 2 F + SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F + ALIASED_POINT_SIZE_RANGE = 0x846D # 2 F + ALIASED_LINE_WIDTH_RANGE = 0x846E # 2 F + +############################################################################### + +# SGI_future_use: 0x846F + +############################################################################### + +# ATI Technologies (vendor multitexture, spec not yet released): 0x8470-0x848F + +############################################################################### + +# REND (Rendition): 0x8490-0x849F + +REND_screen_coordinates enum: + SCREEN_COORDINATES_REND = 0x8490 + INVERTED_SCREEN_W_REND = 0x8491 + +############################################################################### + +# ATI Technologies (vendor multitexture, spec not yet released): 0x84A0-84BF + +############################################################################### + +# OpenGL ARB: 0x84C0-0x84EF + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + TEXTURE0 = 0x84C0 + TEXTURE1 = 0x84C1 + TEXTURE2 = 0x84C2 + TEXTURE3 = 0x84C3 + TEXTURE4 = 0x84C4 + TEXTURE5 = 0x84C5 + TEXTURE6 = 0x84C6 + TEXTURE7 = 0x84C7 + TEXTURE8 = 0x84C8 + TEXTURE9 = 0x84C9 + TEXTURE10 = 0x84CA + TEXTURE11 = 0x84CB + TEXTURE12 = 0x84CC + TEXTURE13 = 0x84CD + TEXTURE14 = 0x84CE + TEXTURE15 = 0x84CF + TEXTURE16 = 0x84D0 + TEXTURE17 = 0x84D1 + TEXTURE18 = 0x84D2 + TEXTURE19 = 0x84D3 + TEXTURE20 = 0x84D4 + TEXTURE21 = 0x84D5 + TEXTURE22 = 0x84D6 + TEXTURE23 = 0x84D7 + TEXTURE24 = 0x84D8 + TEXTURE25 = 0x84D9 + TEXTURE26 = 0x84DA + TEXTURE27 = 0x84DB + TEXTURE28 = 0x84DC + TEXTURE29 = 0x84DD + TEXTURE30 = 0x84DE + TEXTURE31 = 0x84DF + ACTIVE_TEXTURE = 0x84E0 # 1 I + CLIENT_ACTIVE_TEXTURE = 0x84E1 # 1 I + MAX_TEXTURE_UNITS = 0x84E2 # 1 I + +ARB_multitexture enum: + TEXTURE0_ARB = 0x84C0 + TEXTURE1_ARB = 0x84C1 + TEXTURE2_ARB = 0x84C2 + TEXTURE3_ARB = 0x84C3 + TEXTURE4_ARB = 0x84C4 + TEXTURE5_ARB = 0x84C5 + TEXTURE6_ARB = 0x84C6 + TEXTURE7_ARB = 0x84C7 + TEXTURE8_ARB = 0x84C8 + TEXTURE9_ARB = 0x84C9 + TEXTURE10_ARB = 0x84CA + TEXTURE11_ARB = 0x84CB + TEXTURE12_ARB = 0x84CC + TEXTURE13_ARB = 0x84CD + TEXTURE14_ARB = 0x84CE + TEXTURE15_ARB = 0x84CF + TEXTURE16_ARB = 0x84D0 + TEXTURE17_ARB = 0x84D1 + TEXTURE18_ARB = 0x84D2 + TEXTURE19_ARB = 0x84D3 + TEXTURE20_ARB = 0x84D4 + TEXTURE21_ARB = 0x84D5 + TEXTURE22_ARB = 0x84D6 + TEXTURE23_ARB = 0x84D7 + TEXTURE24_ARB = 0x84D8 + TEXTURE25_ARB = 0x84D9 + TEXTURE26_ARB = 0x84DA + TEXTURE27_ARB = 0x84DB + TEXTURE28_ARB = 0x84DC + TEXTURE29_ARB = 0x84DD + TEXTURE30_ARB = 0x84DE + TEXTURE31_ARB = 0x84DF + ACTIVE_TEXTURE_ARB = 0x84E0 # 1 I + CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 # 1 I + MAX_TEXTURE_UNITS_ARB = 0x84E2 # 1 I + +# These are really core ES 1.1 enums, but haven't included +# ES core enums in enum.spec yet +OES_texture_env_crossbar enum: (OpenGL ES only) + use VERSION_1_3 TEXTURE0 + use VERSION_1_3 TEXTURE1 + use VERSION_1_3 TEXTURE2 + use VERSION_1_3 TEXTURE3 + use VERSION_1_3 TEXTURE4 + use VERSION_1_3 TEXTURE5 + use VERSION_1_3 TEXTURE6 + use VERSION_1_3 TEXTURE7 + use VERSION_1_3 TEXTURE8 + use VERSION_1_3 TEXTURE9 + use VERSION_1_3 TEXTURE10 + use VERSION_1_3 TEXTURE11 + use VERSION_1_3 TEXTURE12 + use VERSION_1_3 TEXTURE13 + use VERSION_1_3 TEXTURE14 + use VERSION_1_3 TEXTURE15 + use VERSION_1_3 TEXTURE16 + use VERSION_1_3 TEXTURE17 + use VERSION_1_3 TEXTURE18 + use VERSION_1_3 TEXTURE19 + use VERSION_1_3 TEXTURE20 + use VERSION_1_3 TEXTURE21 + use VERSION_1_3 TEXTURE22 + use VERSION_1_3 TEXTURE23 + use VERSION_1_3 TEXTURE24 + use VERSION_1_3 TEXTURE25 + use VERSION_1_3 TEXTURE26 + use VERSION_1_3 TEXTURE27 + use VERSION_1_3 TEXTURE28 + use VERSION_1_3 TEXTURE29 + use VERSION_1_3 TEXTURE30 + use VERSION_1_3 TEXTURE31 + +############################################################################### + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + TRANSPOSE_MODELVIEW_MATRIX = 0x84E3 # 16 F + TRANSPOSE_PROJECTION_MATRIX = 0x84E4 # 16 F + TRANSPOSE_TEXTURE_MATRIX = 0x84E5 # 16 F + TRANSPOSE_COLOR_MATRIX = 0x84E6 # 16 F + +ARB_transpose_matrix enum: + TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 # 16 F + TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 # 16 F + TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 # 16 F + TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 # 16 F + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + SUBTRACT = 0x84E7 + +ARB_texture_env_combine enum: + SUBTRACT_ARB = 0x84E7 + +VERSION_3_0 enum: + use ARB_framebuffer_object MAX_RENDERBUFFER_SIZE + +ARB_framebuffer_object enum: (note: no ARB suffixes) + MAX_RENDERBUFFER_SIZE = 0x84E8 # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_object enum: (additional; see below): + MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 + +# Aliases EXT_framebuffer_object enum above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + MAX_RENDERBUFFER_SIZE_OES = 0x84E8 + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + COMPRESSED_ALPHA = 0x84E9 + COMPRESSED_LUMINANCE = 0x84EA + COMPRESSED_LUMINANCE_ALPHA = 0x84EB + COMPRESSED_INTENSITY = 0x84EC + COMPRESSED_RGB = 0x84ED + COMPRESSED_RGBA = 0x84EE + TEXTURE_COMPRESSION_HINT = 0x84EF + TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0 + TEXTURE_COMPRESSED = 0x86A1 + NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 + COMPRESSED_TEXTURE_FORMATS = 0x86A3 + +ARB_texture_compression enum: + COMPRESSED_ALPHA_ARB = 0x84E9 + COMPRESSED_LUMINANCE_ARB = 0x84EA + COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB + COMPRESSED_INTENSITY_ARB = 0x84EC + COMPRESSED_RGB_ARB = 0x84ED + COMPRESSED_RGBA_ARB = 0x84EE + TEXTURE_COMPRESSION_HINT_ARB = 0x84EF + TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 + TEXTURE_COMPRESSED_ARB = 0x86A1 + NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 + COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 + +############################################################################### + +# NVIDIA: 0x84F0-0x855F + +# NV_future_use: 0x84F0-0x84F1 + +NV_fence enum: + ALL_COMPLETED_NV = 0x84F2 + FENCE_STATUS_NV = 0x84F3 + FENCE_CONDITION_NV = 0x84F4 + +VERSION_3_1 enum: + TEXTURE_RECTANGLE = 0x84F5 + TEXTURE_BINDING_RECTANGLE = 0x84F6 + PROXY_TEXTURE_RECTANGLE = 0x84F7 + MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8 + +ARB_texture_rectangle enum: + TEXTURE_RECTANGLE_ARB = 0x84F5 + TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 + PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 + MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 + +NV_texture_rectangle enum: + TEXTURE_RECTANGLE_NV = 0x84F5 + TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 + PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 + MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 + +VERSION_3_0 enum: + use ARB_framebuffer_object DEPTH_STENCIL + use ARB_framebuffer_object UNSIGNED_INT_24_8 + +ARB_framebuffer_object enum: (note: no ARB suffixes) + DEPTH_STENCIL = 0x84F9 # VERSION_3_0 / ARB_fbo + UNSIGNED_INT_24_8 = 0x84FA # VERSION_3_0 / ARB_fbo + +EXT_packed_depth_stencil enum: + DEPTH_STENCIL_EXT = 0x84F9 + UNSIGNED_INT_24_8_EXT = 0x84FA + +NV_packed_depth_stencil enum: + DEPTH_STENCIL_NV = 0x84F9 + UNSIGNED_INT_24_8_NV = 0x84FA + +# Aliases EXT_packed_depth_stencil enums above +OES_packed_depth_stencil enum: (OpenGL ES only) + DEPTH_STENCIL_OES = 0x84F9 + UNSIGNED_INT_24_8_OES = 0x84FA + +# NV_future_use: 0x84FB-0x84FC + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + MAX_TEXTURE_LOD_BIAS = 0x84FD + +EXT_texture_lod_bias enum: + MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD + +EXT_texture_filter_anisotropic enum: + TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE + MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + TEXTURE_FILTER_CONTROL = 0x8500 + TEXTURE_LOD_BIAS = 0x8501 + +EXT_texture_lod_bias enum: + TEXTURE_FILTER_CONTROL_EXT = 0x8500 + TEXTURE_LOD_BIAS_EXT = 0x8501 + +EXT_vertex_weighting enum: + MODELVIEW1_STACK_DEPTH_EXT = 0x8502 + +# NV_texture_env_combine4 (additional; see below): 0x8503 + +NV_light_max_exponent enum: + MAX_SHININESS_NV = 0x8504 + MAX_SPOT_EXPONENT_NV = 0x8505 + +EXT_vertex_weighting enum: + MODELVIEW_MATRIX1_EXT = 0x8506 + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + INCR_WRAP = 0x8507 + DECR_WRAP = 0x8508 + +EXT_stencil_wrap enum: + INCR_WRAP_EXT = 0x8507 + DECR_WRAP_EXT = 0x8508 + +# Aliases EXT_stencil_wrap enums above +OES_stencil_wrap enum: (OpenGL ES only) + INCR_WRAP_OES = 0x8507 + DECR_WRAP_OES = 0x8508 + +EXT_vertex_weighting enum: + VERTEX_WEIGHTING_EXT = 0x8509 + MODELVIEW1_EXT = 0x850A + CURRENT_VERTEX_WEIGHT_EXT = 0x850B + VERTEX_WEIGHT_ARRAY_EXT = 0x850C + VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D + VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E + VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F + VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + NORMAL_MAP = 0x8511 + REFLECTION_MAP = 0x8512 + TEXTURE_CUBE_MAP = 0x8513 + TEXTURE_BINDING_CUBE_MAP = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A + PROXY_TEXTURE_CUBE_MAP = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C + +EXT_texture_cube_map enum: + NORMAL_MAP_EXT = 0x8511 + REFLECTION_MAP_EXT = 0x8512 + TEXTURE_CUBE_MAP_EXT = 0x8513 + TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A + PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C + +NV_texgen_reflection enum: + NORMAL_MAP = 0x8511 + REFLECTION_MAP = 0x8512 + +ARB_texture_cube_map enum: + NORMAL_MAP_ARB = 0x8511 + REFLECTION_MAP_ARB = 0x8512 + TEXTURE_CUBE_MAP_ARB = 0x8513 + TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A + PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C + +# Aliases ARB_texture_cube_map enums above +OES_texture_cube_map enum: (OpenGL ES only; additional; see below) + NORMAL_MAP_OES = 0x8511 + REFLECTION_MAP_OES = 0x8512 + TEXTURE_CUBE_MAP_OES = 0x8513 + TEXTURE_BINDING_CUBE_MAP_OES = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A + MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C + +NV_vertex_array_range enum: + VERTEX_ARRAY_RANGE_NV = 0x851D + VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E + VERTEX_ARRAY_RANGE_VALID_NV = 0x851F + MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 + VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 + +# @@@ How does this interact with NV_vertex_array_range? +APPLE_vertex_array_range enum: + VERTEX_ARRAY_RANGE_APPLE = 0x851D + VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E + VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F + VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 + STORAGE_CACHED_APPLE = 0x85BE + STORAGE_SHARED_APPLE = 0x85BF + +NV_register_combiners enum: + REGISTER_COMBINERS_NV = 0x8522 + VARIABLE_A_NV = 0x8523 + VARIABLE_B_NV = 0x8524 + VARIABLE_C_NV = 0x8525 + VARIABLE_D_NV = 0x8526 + VARIABLE_E_NV = 0x8527 + VARIABLE_F_NV = 0x8528 + VARIABLE_G_NV = 0x8529 + CONSTANT_COLOR0_NV = 0x852A + CONSTANT_COLOR1_NV = 0x852B + PRIMARY_COLOR_NV = 0x852C + SECONDARY_COLOR_NV = 0x852D + SPARE0_NV = 0x852E + SPARE1_NV = 0x852F + DISCARD_NV = 0x8530 + E_TIMES_F_NV = 0x8531 + SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 + +# NV_vertex_array_range2: + VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 + +# NV_multisample_filter_hint: + MULTISAMPLE_FILTER_HINT_NV = 0x8534 + +NV_register_combiners2 enum: + PER_STAGE_CONSTANTS_NV = 0x8535 + +NV_register_combiners enum: (additional; see above): + UNSIGNED_IDENTITY_NV = 0x8536 + UNSIGNED_INVERT_NV = 0x8537 + EXPAND_NORMAL_NV = 0x8538 + EXPAND_NEGATE_NV = 0x8539 + HALF_BIAS_NORMAL_NV = 0x853A + HALF_BIAS_NEGATE_NV = 0x853B + SIGNED_IDENTITY_NV = 0x853C + UNSIGNED_NEGATE_NV = 0x853D + SCALE_BY_TWO_NV = 0x853E + SCALE_BY_FOUR_NV = 0x853F + SCALE_BY_ONE_HALF_NV = 0x8540 + BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 + COMBINER_INPUT_NV = 0x8542 + COMBINER_MAPPING_NV = 0x8543 + COMBINER_COMPONENT_USAGE_NV = 0x8544 + COMBINER_AB_DOT_PRODUCT_NV = 0x8545 + COMBINER_CD_DOT_PRODUCT_NV = 0x8546 + COMBINER_MUX_SUM_NV = 0x8547 + COMBINER_SCALE_NV = 0x8548 + COMBINER_BIAS_NV = 0x8549 + COMBINER_AB_OUTPUT_NV = 0x854A + COMBINER_CD_OUTPUT_NV = 0x854B + COMBINER_SUM_OUTPUT_NV = 0x854C + MAX_GENERAL_COMBINERS_NV = 0x854D + NUM_GENERAL_COMBINERS_NV = 0x854E + COLOR_SUM_CLAMP_NV = 0x854F + COMBINER0_NV = 0x8550 + COMBINER1_NV = 0x8551 + COMBINER2_NV = 0x8552 + COMBINER3_NV = 0x8553 + COMBINER4_NV = 0x8554 + COMBINER5_NV = 0x8555 + COMBINER6_NV = 0x8556 + COMBINER7_NV = 0x8557 + + +NV_primitive_restart enum: + PRIMITIVE_RESTART_NV = 0x8558 + PRIMITIVE_RESTART_INDEX_NV = 0x8559 + +NV_fog_distance enum: + FOG_GEN_MODE_NV = 0x855A + EYE_RADIAL_NV = 0x855B + EYE_PLANE_ABSOLUTE_NV = 0x855C + +NV_texgen_emboss enum: + EMBOSS_LIGHT_NV = 0x855D + EMBOSS_CONSTANT_NV = 0x855E + EMBOSS_MAP_NV = 0x855F + +############################################################################### + +# Intergraph/Intense3D/3Dlabs: 0x8560-0x856F + +INGR_color_clamp enum: + RED_MIN_CLAMP_INGR = 0x8560 + GREEN_MIN_CLAMP_INGR = 0x8561 + BLUE_MIN_CLAMP_INGR = 0x8562 + ALPHA_MIN_CLAMP_INGR = 0x8563 + RED_MAX_CLAMP_INGR = 0x8564 + GREEN_MAX_CLAMP_INGR = 0x8565 + BLUE_MAX_CLAMP_INGR = 0x8566 + ALPHA_MAX_CLAMP_INGR = 0x8567 + +INGR_interlace_read enum: + INTERLACE_READ_INGR = 0x8568 + +# 3Dlabs_future_use: 0x8569-0x856F + +############################################################################### + +# ATI/NVIDIA: 0x8570-0x859F + +VERSION_1_5 enum: (Consistent naming scheme for OpenGL 1.5) + SRC0_RGB = 0x8580 # alias GL_SOURCE0_RGB + SRC1_RGB = 0x8581 # alias GL_SOURCE1_RGB + SRC2_RGB = 0x8582 # alias GL_SOURCE2_RGB + SRC0_ALPHA = 0x8588 # alias GL_SOURCE0_ALPHA + SRC1_ALPHA = 0x8589 # alias GL_SOURCE1_ALPHA + SRC2_ALPHA = 0x858A # alias GL_SOURCE2_ALPHA + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + COMBINE = 0x8570 + COMBINE_RGB = 0x8571 + COMBINE_ALPHA = 0x8572 + RGB_SCALE = 0x8573 + ADD_SIGNED = 0x8574 + INTERPOLATE = 0x8575 + CONSTANT = 0x8576 + PRIMARY_COLOR = 0x8577 + PREVIOUS = 0x8578 + SOURCE0_RGB = 0x8580 + SOURCE1_RGB = 0x8581 + SOURCE2_RGB = 0x8582 + SOURCE0_ALPHA = 0x8588 + SOURCE1_ALPHA = 0x8589 + SOURCE2_ALPHA = 0x858A + OPERAND0_RGB = 0x8590 + OPERAND1_RGB = 0x8591 + OPERAND2_RGB = 0x8592 + OPERAND0_ALPHA = 0x8598 + OPERAND1_ALPHA = 0x8599 + OPERAND2_ALPHA = 0x859A + +EXT_texture_env_combine enum: + COMBINE_EXT = 0x8570 + COMBINE_RGB_EXT = 0x8571 + COMBINE_ALPHA_EXT = 0x8572 + RGB_SCALE_EXT = 0x8573 + ADD_SIGNED_EXT = 0x8574 + INTERPOLATE_EXT = 0x8575 + CONSTANT_EXT = 0x8576 + PRIMARY_COLOR_EXT = 0x8577 + PREVIOUS_EXT = 0x8578 + SOURCE0_RGB_EXT = 0x8580 + SOURCE1_RGB_EXT = 0x8581 + SOURCE2_RGB_EXT = 0x8582 + SOURCE0_ALPHA_EXT = 0x8588 + SOURCE1_ALPHA_EXT = 0x8589 + SOURCE2_ALPHA_EXT = 0x858A + OPERAND0_RGB_EXT = 0x8590 + OPERAND1_RGB_EXT = 0x8591 + OPERAND2_RGB_EXT = 0x8592 + OPERAND0_ALPHA_EXT = 0x8598 + OPERAND1_ALPHA_EXT = 0x8599 + OPERAND2_ALPHA_EXT = 0x859A + +NV_texture_env_combine4 enum: + COMBINE4_NV = 0x8503 + SOURCE3_RGB_NV = 0x8583 + SOURCE3_ALPHA_NV = 0x858B + OPERAND3_RGB_NV = 0x8593 + OPERAND3_ALPHA_NV = 0x859B + +# "Future use" => "additional combiner input/output enums" only +# ATI/NVIDIA_future_use: 0x8584-0x8587 +# ATI/NVIDIA_future_use: 0x858C-0x858F +# ATI/NVIDIA_future_use: 0x8594-0x8597 +# ATI/NVIDIA_future_use: 0x859C-0x859F + +############################################################################### + +SGIX_subsample enum: + PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 + UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 + PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 + PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 + PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIS_color_range: 0x85A5-0x85AD +# EXTENDED_RANGE_SGIS = 0x85A5 +# MIN_RED_SGIS = 0x85A6 +# MAX_RED_SGIS = 0x85A7 +# MIN_GREEN_SGIS = 0x85A8 +# MAX_GREEN_SGIS = 0x85A9 +# MIN_BLUE_SGIS = 0x85AA +# MAX_BLUE_SGIS = 0x85AB +# MIN_ALPHA_SGIS = 0x85AC +# MAX_ALPHA_SGIS = 0x85AD + +############################################################################### + +EXT_texture_perturb_normal enum: + PERTURB_EXT = 0x85AE + TEXTURE_NORMAL_EXT = 0x85AF + +############################################################################### + +# Apple: 0x85B0-0x85BF + +APPLE_specular_vector enum: + LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 + +APPLE_transform_hint enum: + TRANSFORM_HINT_APPLE = 0x85B1 + +APPLE_client_storage enum: + UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 + +# May also be part of APPLE_fence +APPLE_object_purgeable enum: (additional; see below) + BUFFER_OBJECT_APPLE = 0x85B3 + +# APPLE_future_use: 0x85B4 + +## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name +# STORAGE_CLIENT_APPLE = 0x85B4 + +VERSION_3_0 enum: + use ARB_vertex_array_object VERTEX_ARRAY_BINDING + +ARB_vertex_array_object enum: (note: no ARB suffixes) + VERTEX_ARRAY_BINDING = 0x85B5 # VERSION_3_0 / ARB_vao + +APPLE_vertex_array_object enum: + VERTEX_ARRAY_BINDING_APPLE = 0x85B5 + +# APPLE_future_use: 0x85B6 +## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name +# TEXTURE_MINIMIZE_STORAGE_APPLE = 0x85B6 + +APPLE_texture_range enum: (additional; see below) + TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 + TEXTURE_RANGE_POINTER_APPLE = 0x85B8 + +APPLE_ycbcr_422 enum: + YCBCR_422_APPLE = 0x85B9 + UNSIGNED_SHORT_8_8_APPLE = 0x85BA + UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB + +MESA_ycbcr_texture enum: (additional; see below) + UNSIGNED_SHORT_8_8_MESA = 0x85BA + UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB + +APPLE_texture_range enum: + TEXTURE_STORAGE_HINT_APPLE = 0x85BC + STORAGE_PRIVATE_APPLE = 0x85BD + +APPLE_vertex_array_range enum: (additional; see above): + STORAGE_CACHED_APPLE = 0x85BE + STORAGE_SHARED_APPLE = 0x85BF + +APPLE_texture_range enum: + use APPLE_vertex_array_range STORAGE_CACHED_APPLE + use APPLE_vertex_array_range STORAGE_SHARED_APPLE + +############################################################################### + +# Sun: 0x85C0-0x85CF + +SUNX_general_triangle_list enum: (additional; see above) + REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 + REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 + REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 + REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 + R1UI_V3F_SUN = 0x85C4 + R1UI_C4UB_V3F_SUN = 0x85C5 + R1UI_C3F_V3F_SUN = 0x85C6 + R1UI_N3F_V3F_SUN = 0x85C7 + R1UI_C4F_N3F_V3F_SUN = 0x85C8 + R1UI_T2F_V3F_SUN = 0x85C9 + R1UI_T2F_N3F_V3F_SUN = 0x85CA + R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB + +SUN_slice_accum enum: + SLICE_ACCUM_SUN = 0x85CC + +# SUN_future_use: 0x85CD-0x85CF + +############################################################################### + +# Unknown extension name, not in enumext.spec +# 3Dlabs/Autodesk: 0x85D0-0x85DF +# FACET_NORMAL_AUTODESK = 0x85D0 +# FACET_NORMAL_ARRAY_AUTODESK = 0x85D1 + +############################################################################### + +# Incomplete extension, not in enumext.spec +# SGIX_texture_range: 0x85E0-0x85FB +# RGB_SIGNED_SGIX = 0x85E0 +# RGBA_SIGNED_SGIX = 0x85E1 +# ALPHA_SIGNED_SGIX = 0x85E2 +# LUMINANCE_SIGNED_SGIX = 0x85E3 +# INTENSITY_SIGNED_SGIX = 0x85E4 +# LUMINANCE_ALPHA_SIGNED_SGIX = 0x85E5 +# RGB16_SIGNED_SGIX = 0x85E6 +# RGBA16_SIGNED_SGIX = 0x85E7 +# ALPHA16_SIGNED_SGIX = 0x85E8 +# LUMINANCE16_SIGNED_SGIX = 0x85E9 +# INTENSITY16_SIGNED_SGIX = 0x85EA +# LUMINANCE16_ALPHA16_SIGNED_SGIX = 0x85EB +# RGB_EXTENDED_RANGE_SGIX = 0x85EC +# RGBA_EXTENDED_RANGE_SGIX = 0x85ED +# ALPHA_EXTENDED_RANGE_SGIX = 0x85EE +# LUMINANCE_EXTENDED_RANGE_SGIX = 0x85EF +# INTENSITY_EXTENDED_RANGE_SGIX = 0x85F0 +# LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX = 0x85F1 +# RGB16_EXTENDED_RANGE_SGIX = 0x85F2 +# RGBA16_EXTENDED_RANGE_SGIX = 0x85F3 +# ALPHA16_EXTENDED_RANGE_SGIX = 0x85F4 +# LUMINANCE16_EXTENDED_RANGE_SGIX = 0x85F5 +# INTENSITY16_EXTENDED_RANGE_SGIX = 0x85F6 +# LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX = 0x85F7 +# MIN_LUMINANCE_SGIS = 0x85F8 +# MAX_LUMINANCE_SGIS = 0x85F9 +# MIN_INTENSITY_SGIS = 0x85FA +# MAX_INTENSITY_SGIS = 0x85FB + +############################################################################### + +# SGI_future_use: 0x85FC-0x85FF + +############################################################################### + +# Sun: 0x8600-0x861F + +# SUN_future_use: 0x8600-0x8613 + +SUN_mesh_array enum: 0x8614-0x8615 + QUAD_MESH_SUN = 0x8614 + TRIANGLE_MESH_SUN = 0x8615 + +# SUN_future_use: 0x8614-0x861F + +############################################################################### + +# NVIDIA: 0x8620-0x867F + +NV_vertex_program enum: + VERTEX_PROGRAM_NV = 0x8620 + VERTEX_STATE_PROGRAM_NV = 0x8621 + ATTRIB_ARRAY_SIZE_NV = 0x8623 + ATTRIB_ARRAY_STRIDE_NV = 0x8624 + ATTRIB_ARRAY_TYPE_NV = 0x8625 + CURRENT_ATTRIB_NV = 0x8626 + PROGRAM_LENGTH_NV = 0x8627 + PROGRAM_STRING_NV = 0x8628 + MODELVIEW_PROJECTION_NV = 0x8629 + IDENTITY_NV = 0x862A + INVERSE_NV = 0x862B + TRANSPOSE_NV = 0x862C + INVERSE_TRANSPOSE_NV = 0x862D + MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E + MAX_TRACK_MATRICES_NV = 0x862F + MATRIX0_NV = 0x8630 + MATRIX1_NV = 0x8631 + MATRIX2_NV = 0x8632 + MATRIX3_NV = 0x8633 + MATRIX4_NV = 0x8634 + MATRIX5_NV = 0x8635 + MATRIX6_NV = 0x8636 + MATRIX7_NV = 0x8637 +################## +# +# Reserved: +# +# MATRIX8_NV = 0x8638 +# MATRIX9_NV = 0x8639 +# MATRIX10_NV = 0x863A +# MATRIX11_NV = 0x863B +# MATRIX12_NV = 0x863C +# MATRIX13_NV = 0x863D +# MATRIX14_NV = 0x863E +# MATRIX15_NV = 0x863F +# +################### + CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 + CURRENT_MATRIX_NV = 0x8641 + VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 + VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 + PROGRAM_PARAMETER_NV = 0x8644 + ATTRIB_ARRAY_POINTER_NV = 0x8645 + PROGRAM_TARGET_NV = 0x8646 + PROGRAM_RESIDENT_NV = 0x8647 + TRACK_MATRIX_NV = 0x8648 + TRACK_MATRIX_TRANSFORM_NV = 0x8649 + VERTEX_PROGRAM_BINDING_NV = 0x864A + PROGRAM_ERROR_POSITION_NV = 0x864B + VERTEX_ATTRIB_ARRAY0_NV = 0x8650 + VERTEX_ATTRIB_ARRAY1_NV = 0x8651 + VERTEX_ATTRIB_ARRAY2_NV = 0x8652 + VERTEX_ATTRIB_ARRAY3_NV = 0x8653 + VERTEX_ATTRIB_ARRAY4_NV = 0x8654 + VERTEX_ATTRIB_ARRAY5_NV = 0x8655 + VERTEX_ATTRIB_ARRAY6_NV = 0x8656 + VERTEX_ATTRIB_ARRAY7_NV = 0x8657 + VERTEX_ATTRIB_ARRAY8_NV = 0x8658 + VERTEX_ATTRIB_ARRAY9_NV = 0x8659 + VERTEX_ATTRIB_ARRAY10_NV = 0x865A + VERTEX_ATTRIB_ARRAY11_NV = 0x865B + VERTEX_ATTRIB_ARRAY12_NV = 0x865C + VERTEX_ATTRIB_ARRAY13_NV = 0x865D + VERTEX_ATTRIB_ARRAY14_NV = 0x865E + VERTEX_ATTRIB_ARRAY15_NV = 0x865F + MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 + MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 + MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 + MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 + MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 + MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 + MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 + MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 + MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 + MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 + MAP1_VERTEX_ATTRIB10_4_NV = 0x866A + MAP1_VERTEX_ATTRIB11_4_NV = 0x866B + MAP1_VERTEX_ATTRIB12_4_NV = 0x866C + MAP1_VERTEX_ATTRIB13_4_NV = 0x866D + MAP1_VERTEX_ATTRIB14_4_NV = 0x866E + MAP1_VERTEX_ATTRIB15_4_NV = 0x866F + MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 + MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 + MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 + MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 + MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 + MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 + MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 + MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 + MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 + MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 + MAP2_VERTEX_ATTRIB10_4_NV = 0x867A + MAP2_VERTEX_ATTRIB11_4_NV = 0x867B + MAP2_VERTEX_ATTRIB12_4_NV = 0x867C + MAP2_VERTEX_ATTRIB13_4_NV = 0x867D + MAP2_VERTEX_ATTRIB14_4_NV = 0x867E + MAP2_VERTEX_ATTRIB15_4_NV = 0x867F + +# NV_texture_shader (additional; see below): 0x864C-0x864E + +VERSION_3_2 enum: + PROGRAM_POINT_SIZE = 0x8642 + +ARB_geometry_shader4 enum: (additional; see below) + PROGRAM_POINT_SIZE_ARB = 0x8642 + +NV_geometry_program4 enum: (additional; see below) + PROGRAM_POINT_SIZE_EXT = 0x8642 + +VERSION_3_2 enum: + use ARB_depth_clamp DEPTH_CLAMP + +ARB_depth_clamp enum: + DEPTH_CLAMP = 0x864F + +NV_depth_clamp enum: + DEPTH_CLAMP_NV = 0x864F + +VERSION_2_0 enum: (Promoted from ARB_vertex_shader; only some values) + VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 # VERSION_2_0 + VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 # VERSION_2_0 + VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 # VERSION_2_0 + VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 # VERSION_2_0 + CURRENT_VERTEX_ATTRIB = 0x8626 # VERSION_2_0 + VERTEX_PROGRAM_POINT_SIZE = 0x8642 # VERSION_2_0 + VERTEX_PROGRAM_TWO_SIDE = 0x8643 # VERSION_2_0 + VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 # VERSION_2_0 + +ARB_vertex_program enum: (additional; see above; reuses NV_vertex_program values) +ARB_fragment_program enum: (additional; only some values; see below) +# (Unfortunately, PROGRAM_BINDING_ARB does accidentally reuse 0x8677) + VERTEX_PROGRAM_ARB = 0x8620 + VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622 + VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623 + VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624 + VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625 + CURRENT_VERTEX_ATTRIB_ARB = 0x8626 + PROGRAM_LENGTH_ARB = 0x8627 # ARB_fragment_program + PROGRAM_STRING_ARB = 0x8628 # ARB_fragment_program + MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # ARB_fragment_program + MAX_PROGRAM_MATRICES_ARB = 0x862F # ARB_fragment_program + CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # ARB_fragment_program + CURRENT_MATRIX_ARB = 0x8641 # ARB_fragment_program + VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642 + VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643 + VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645 + PROGRAM_ERROR_POSITION_ARB = 0x864B # ARB_fragment_program + PROGRAM_BINDING_ARB = 0x8677 # ARB_fragment_program + +############################################################################### + +# Pixelfusion: 0x8680-0x869F + +############################################################################### + +# OpenGL ARB: 0x86A0-0x86AF + +# ARB_texture_compression/1.3 (additional; see above): 0x86A0-0x86A3 + +ARB_vertex_blend enum: + MAX_VERTEX_UNITS_ARB = 0x86A4 + ACTIVE_VERTEX_UNITS_ARB = 0x86A5 + WEIGHT_SUM_UNITY_ARB = 0x86A6 + VERTEX_BLEND_ARB = 0x86A7 + CURRENT_WEIGHT_ARB = 0x86A8 + WEIGHT_ARRAY_TYPE_ARB = 0x86A9 + WEIGHT_ARRAY_STRIDE_ARB = 0x86AA + WEIGHT_ARRAY_SIZE_ARB = 0x86AB + WEIGHT_ARRAY_POINTER_ARB = 0x86AC + WEIGHT_ARRAY_ARB = 0x86AD +# Note: MODELVIEW0/1 are defined in other extensions, but not as ARB) + MODELVIEW0_ARB = 0x1700 + MODELVIEW1_ARB = 0x850A + MODELVIEW2_ARB = 0x8722 + MODELVIEW3_ARB = 0x8723 + MODELVIEW4_ARB = 0x8724 + MODELVIEW5_ARB = 0x8725 + MODELVIEW6_ARB = 0x8726 + MODELVIEW7_ARB = 0x8727 + MODELVIEW8_ARB = 0x8728 + MODELVIEW9_ARB = 0x8729 + MODELVIEW10_ARB = 0x872A + MODELVIEW11_ARB = 0x872B + MODELVIEW12_ARB = 0x872C + MODELVIEW13_ARB = 0x872D + MODELVIEW14_ARB = 0x872E + MODELVIEW15_ARB = 0x872F + MODELVIEW16_ARB = 0x8730 + MODELVIEW17_ARB = 0x8731 + MODELVIEW18_ARB = 0x8732 + MODELVIEW19_ARB = 0x8733 + MODELVIEW20_ARB = 0x8734 + MODELVIEW21_ARB = 0x8735 + MODELVIEW22_ARB = 0x8736 + MODELVIEW23_ARB = 0x8737 + MODELVIEW24_ARB = 0x8738 + MODELVIEW25_ARB = 0x8739 + MODELVIEW26_ARB = 0x873A + MODELVIEW27_ARB = 0x873B + MODELVIEW28_ARB = 0x873C + MODELVIEW29_ARB = 0x873D + MODELVIEW30_ARB = 0x873E + MODELVIEW31_ARB = 0x873F + +# Aliases ARB_vertex_blend enums above +OES_matrix_palette enum: (OpenGL ES only; additional; see below) + MAX_VERTEX_UNITS_OES = 0x86A4 + WEIGHT_ARRAY_OES = 0x86AD + WEIGHT_ARRAY_TYPE_OES = 0x86A9 + WEIGHT_ARRAY_STRIDE_OES = 0x86AA + WEIGHT_ARRAY_SIZE_OES = 0x86AB + WEIGHT_ARRAY_POINTER_OES = 0x86AC + +VERSION_1_3 enum: (Promoted for OpenGL 1.3) + DOT3_RGB = 0x86AE + DOT3_RGBA = 0x86AF + +ARB_texture_env_dot3 enum: + DOT3_RGB_ARB = 0x86AE + DOT3_RGBA_ARB = 0x86AF + +IMG_texture_env_enhanced_fixed_function enum: (OpenGL ES only; additional; see below) + DOT3_RGBA_IMG = 0x86AF + +############################################################################### + +# 3Dfx: 0x86B0-0x86BF + +3DFX_texture_compression_FXT1 enum: + COMPRESSED_RGB_FXT1_3DFX = 0x86B0 + COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 + +3DFX_multisample enum: + MULTISAMPLE_3DFX = 0x86B2 + SAMPLE_BUFFERS_3DFX = 0x86B3 + SAMPLES_3DFX = 0x86B4 + MULTISAMPLE_BIT_3DFX = 0x20000000 + +# 3DFX_future_use: 0x86B5-0x86BF + +############################################################################### + +# NVIDIA: 0x86C0-0x871F + +NV_evaluators enum: + EVAL_2D_NV = 0x86C0 + EVAL_TRIANGULAR_2D_NV = 0x86C1 + MAP_TESSELLATION_NV = 0x86C2 + MAP_ATTRIB_U_ORDER_NV = 0x86C3 + MAP_ATTRIB_V_ORDER_NV = 0x86C4 + EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 + EVAL_VERTEX_ATRRIB0_NV = 0x86C6 + EVAL_VERTEX_ATRRIB1_NV = 0x86C7 + EVAL_VERTEX_ATRRIB2_NV = 0x86C8 + EVAL_VERTEX_ATRRIB3_NV = 0x86C9 + EVAL_VERTEX_ATRRIB4_NV = 0x86CA + EVAL_VERTEX_ATRRIB5_NV = 0x86CB + EVAL_VERTEX_ATRRIB6_NV = 0x86CC + EVAL_VERTEX_ATRRIB7_NV = 0x86CD + EVAL_VERTEX_ATRRIB8_NV = 0x86CE + EVAL_VERTEX_ATRRIB9_NV = 0x86CF + EVAL_VERTEX_ATRRIB10_NV = 0x86D0 + EVAL_VERTEX_ATRRIB11_NV = 0x86D1 + EVAL_VERTEX_ATRRIB12_NV = 0x86D2 + EVAL_VERTEX_ATRRIB13_NV = 0x86D3 + EVAL_VERTEX_ATRRIB14_NV = 0x86D4 + EVAL_VERTEX_ATRRIB15_NV = 0x86D5 + MAX_MAP_TESSELLATION_NV = 0x86D6 + MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 + +# NV_future_use: 0x86D8 + +NV_texture_shader enum: + OFFSET_TEXTURE_RECTANGLE_NV = 0x864C + OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D + DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E + RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 + UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA + UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB + DSDT_MAG_INTENSITY_NV = 0x86DC + SHADER_CONSISTENT_NV = 0x86DD + TEXTURE_SHADER_NV = 0x86DE + SHADER_OPERATION_NV = 0x86DF + CULL_MODES_NV = 0x86E0 + OFFSET_TEXTURE_MATRIX_NV = 0x86E1 + OFFSET_TEXTURE_SCALE_NV = 0x86E2 + OFFSET_TEXTURE_BIAS_NV = 0x86E3 + OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV + OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV + OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV + PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 + CONST_EYE_NV = 0x86E5 + PASS_THROUGH_NV = 0x86E6 + CULL_FRAGMENT_NV = 0x86E7 + OFFSET_TEXTURE_2D_NV = 0x86E8 + DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 + DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA + DOT_PRODUCT_NV = 0x86EC + DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED + DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE + DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 + DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 + DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 + DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 + HILO_NV = 0x86F4 + DSDT_NV = 0x86F5 + DSDT_MAG_NV = 0x86F6 + DSDT_MAG_VIB_NV = 0x86F7 + HILO16_NV = 0x86F8 + SIGNED_HILO_NV = 0x86F9 + SIGNED_HILO16_NV = 0x86FA + SIGNED_RGBA_NV = 0x86FB + SIGNED_RGBA8_NV = 0x86FC + SIGNED_RGB_NV = 0x86FE + SIGNED_RGB8_NV = 0x86FF + SIGNED_LUMINANCE_NV = 0x8701 + SIGNED_LUMINANCE8_NV = 0x8702 + SIGNED_LUMINANCE_ALPHA_NV = 0x8703 + SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 + SIGNED_ALPHA_NV = 0x8705 + SIGNED_ALPHA8_NV = 0x8706 + SIGNED_INTENSITY_NV = 0x8707 + SIGNED_INTENSITY8_NV = 0x8708 + DSDT8_NV = 0x8709 + DSDT8_MAG8_NV = 0x870A + DSDT8_MAG8_INTENSITY8_NV = 0x870B + SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C + SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D + HI_SCALE_NV = 0x870E + LO_SCALE_NV = 0x870F + DS_SCALE_NV = 0x8710 + DT_SCALE_NV = 0x8711 + MAGNITUDE_SCALE_NV = 0x8712 + VIBRANCE_SCALE_NV = 0x8713 + HI_BIAS_NV = 0x8714 + LO_BIAS_NV = 0x8715 + DS_BIAS_NV = 0x8716 + DT_BIAS_NV = 0x8717 + MAGNITUDE_BIAS_NV = 0x8718 + VIBRANCE_BIAS_NV = 0x8719 + TEXTURE_BORDER_VALUES_NV = 0x871A + TEXTURE_HI_SIZE_NV = 0x871B + TEXTURE_LO_SIZE_NV = 0x871C + TEXTURE_DS_SIZE_NV = 0x871D + TEXTURE_DT_SIZE_NV = 0x871E + TEXTURE_MAG_SIZE_NV = 0x871F + +NV_texture_shader2 enum: + DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF + +# NV_future_use: 0x86EB +# NV_future_use: 0x86FD +# NV_future_use: 0x8700 + +############################################################################### + +# OpenGL ARB: 0x8720-0x873F + +# ARB_vertex_blend (additional; see above): 0x8720-0x873F + +############################################################################### + +# ATI: 0x8740-0x874F + +EXT_texture_env_dot3 enum: + DOT3_RGB_EXT = 0x8740 + DOT3_RGBA_EXT = 0x8741 + +# There's a collision between AMD_program_binary_Z400 and EXT_texture_env_dot3! +AMD_program_binary_Z400 enum: (OpenGL ES only) + Z400_BINARY_AMD = 0x8740 + +# There's a collision between OES_get_program_binary and EXT_texture_env_dot3! +OES_get_program_binary enum: (OpenGL ES only; additional; see below) + PROGRAM_BINARY_LENGTH_OES = 0x8741 + +ATI_texture_mirror_once enum: + MIRROR_CLAMP_ATI = 0x8742 + MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 + +EXT_texture_mirror_clamp enum: + MIRROR_CLAMP_EXT = 0x8742 + MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 + +ATI_texture_env_combine3 enum: + MODULATE_ADD_ATI = 0x8744 + MODULATE_SIGNED_ADD_ATI = 0x8745 + MODULATE_SUBTRACT_ATI = 0x8746 + +# ATI_future_use: 0x8747-0x874F + +############################################################################### + +# MESA: 0x8750-0x875F + +MESA_packed_depth_stencil enum: + DEPTH_STENCIL_MESA = 0x8750 + UNSIGNED_INT_24_8_MESA = 0x8751 + UNSIGNED_INT_8_24_REV_MESA = 0x8752 + UNSIGNED_SHORT_15_1_MESA = 0x8753 + UNSIGNED_SHORT_1_15_REV_MESA = 0x8754 + +MESA_trace enum: + TRACE_ALL_BITS_MESA = 0xFFFF + TRACE_OPERATIONS_BIT_MESA = 0x0001 + TRACE_PRIMITIVES_BIT_MESA = 0x0002 + TRACE_ARRAYS_BIT_MESA = 0x0004 + TRACE_TEXTURES_BIT_MESA = 0x0008 + TRACE_PIXELS_BIT_MESA = 0x0010 + TRACE_ERRORS_BIT_MESA = 0x0020 + TRACE_MASK_MESA = 0x8755 + TRACE_NAME_MESA = 0x8756 + +MESA_ycbcr_texture enum: + YCBCR_MESA = 0x8757 + +MESA_pack_invert enum: + PACK_INVERT_MESA = 0x8758 + +MESAX_texture_stack enum: + TEXTURE_1D_STACK_MESAX = 0x8759 + TEXTURE_2D_STACK_MESAX = 0x875A + PROXY_TEXTURE_1D_STACK_MESAX = 0x875B + PROXY_TEXTURE_2D_STACK_MESAX = 0x875C + TEXTURE_1D_STACK_BINDING_MESAX = 0x875D + TEXTURE_2D_STACK_BINDING_MESAX = 0x875E + +MESA_shader_debug enum: + DEBUG_OBJECT_MESA = 0x8759 + DEBUG_PRINT_MESA = 0x875A + DEBUG_ASSERT_MESA = 0x875B + +# MESA_future_use: 0x875F + +############################################################################### + +# ATI: 0x8760-0x883F + +ATI_vertex_array_object enum: + STATIC_ATI = 0x8760 + DYNAMIC_ATI = 0x8761 + PRESERVE_ATI = 0x8762 + DISCARD_ATI = 0x8763 + OBJECT_BUFFER_SIZE_ATI = 0x8764 + OBJECT_BUFFER_USAGE_ATI = 0x8765 + ARRAY_OBJECT_BUFFER_ATI = 0x8766 + ARRAY_OBJECT_OFFSET_ATI = 0x8767 + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + BUFFER_SIZE = 0x8764 + BUFFER_USAGE = 0x8765 + +ARB_vertex_buffer_object enum: (additional; aliases some ATI enums; see below) + BUFFER_SIZE_ARB = 0x8764 + BUFFER_USAGE_ARB = 0x8765 + +ATI_element_array enum: + ELEMENT_ARRAY_ATI = 0x8768 + ELEMENT_ARRAY_TYPE_ATI = 0x8769 + ELEMENT_ARRAY_POINTER_ATI = 0x876A + +# @@@ (extends ATI_element_array, I think???) +APPLE_element_array enum: + ELEMENT_ARRAY_APPLE = 0x8768 + ELEMENT_ARRAY_TYPE_APPLE = 0x8769 + ELEMENT_ARRAY_POINTER_APPLE = 0x876A + +ATI_vertex_streams enum: + MAX_VERTEX_STREAMS_ATI = 0x876B + VERTEX_STREAM0_ATI = 0x876C + VERTEX_STREAM1_ATI = 0x876D + VERTEX_STREAM2_ATI = 0x876E + VERTEX_STREAM3_ATI = 0x876F + VERTEX_STREAM4_ATI = 0x8770 + VERTEX_STREAM5_ATI = 0x8771 + VERTEX_STREAM6_ATI = 0x8772 + VERTEX_STREAM7_ATI = 0x8773 + VERTEX_SOURCE_ATI = 0x8774 + +ATI_envmap_bumpmap enum: + BUMP_ROT_MATRIX_ATI = 0x8775 + BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 + BUMP_NUM_TEX_UNITS_ATI = 0x8777 + BUMP_TEX_UNITS_ATI = 0x8778 + DUDV_ATI = 0x8779 + DU8DV8_ATI = 0x877A + BUMP_ENVMAP_ATI = 0x877B + BUMP_TARGET_ATI = 0x877C + +# ATI_future_use: 0x877D-0x877F + +EXT_vertex_shader enum: + VERTEX_SHADER_EXT = 0x8780 + VERTEX_SHADER_BINDING_EXT = 0x8781 + OP_INDEX_EXT = 0x8782 + OP_NEGATE_EXT = 0x8783 + OP_DOT3_EXT = 0x8784 + OP_DOT4_EXT = 0x8785 + OP_MUL_EXT = 0x8786 + OP_ADD_EXT = 0x8787 + OP_MADD_EXT = 0x8788 + OP_FRAC_EXT = 0x8789 + OP_MAX_EXT = 0x878A + OP_MIN_EXT = 0x878B + OP_SET_GE_EXT = 0x878C + OP_SET_LT_EXT = 0x878D + OP_CLAMP_EXT = 0x878E + OP_FLOOR_EXT = 0x878F + OP_ROUND_EXT = 0x8790 + OP_EXP_BASE_2_EXT = 0x8791 + OP_LOG_BASE_2_EXT = 0x8792 + OP_POWER_EXT = 0x8793 + OP_RECIP_EXT = 0x8794 + OP_RECIP_SQRT_EXT = 0x8795 + OP_SUB_EXT = 0x8796 + OP_CROSS_PRODUCT_EXT = 0x8797 + OP_MULTIPLY_MATRIX_EXT = 0x8798 + OP_MOV_EXT = 0x8799 + OUTPUT_VERTEX_EXT = 0x879A + OUTPUT_COLOR0_EXT = 0x879B + OUTPUT_COLOR1_EXT = 0x879C + OUTPUT_TEXTURE_COORD0_EXT = 0x879D + OUTPUT_TEXTURE_COORD1_EXT = 0x879E + OUTPUT_TEXTURE_COORD2_EXT = 0x879F + OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 + OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 + OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 + OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 + OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 + OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 + OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 + OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 + OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 + OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 + OUTPUT_TEXTURE_COORD13_EXT = 0x87AA + OUTPUT_TEXTURE_COORD14_EXT = 0x87AB + OUTPUT_TEXTURE_COORD15_EXT = 0x87AC + OUTPUT_TEXTURE_COORD16_EXT = 0x87AD + OUTPUT_TEXTURE_COORD17_EXT = 0x87AE + OUTPUT_TEXTURE_COORD18_EXT = 0x87AF + OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 + OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 + OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 + OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 + OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 + OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 + OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 + OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 + OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 + OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 + OUTPUT_TEXTURE_COORD29_EXT = 0x87BA + OUTPUT_TEXTURE_COORD30_EXT = 0x87BB + OUTPUT_TEXTURE_COORD31_EXT = 0x87BC + OUTPUT_FOG_EXT = 0x87BD + SCALAR_EXT = 0x87BE + VECTOR_EXT = 0x87BF + MATRIX_EXT = 0x87C0 + VARIANT_EXT = 0x87C1 + INVARIANT_EXT = 0x87C2 + LOCAL_CONSTANT_EXT = 0x87C3 + LOCAL_EXT = 0x87C4 + MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 + MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 + MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 + MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 + MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 + MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA + MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB + MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC + MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD + MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE + VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF + VERTEX_SHADER_VARIANTS_EXT = 0x87D0 + VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 + VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 + VERTEX_SHADER_LOCALS_EXT = 0x87D3 + VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 + X_EXT = 0x87D5 + Y_EXT = 0x87D6 + Z_EXT = 0x87D7 + W_EXT = 0x87D8 + NEGATIVE_X_EXT = 0x87D9 + NEGATIVE_Y_EXT = 0x87DA + NEGATIVE_Z_EXT = 0x87DB + NEGATIVE_W_EXT = 0x87DC + ZERO_EXT = 0x87DD + ONE_EXT = 0x87DE + NEGATIVE_ONE_EXT = 0x87DF + NORMALIZED_RANGE_EXT = 0x87E0 + FULL_RANGE_EXT = 0x87E1 + CURRENT_VERTEX_EXT = 0x87E2 + MVP_MATRIX_EXT = 0x87E3 + VARIANT_VALUE_EXT = 0x87E4 + VARIANT_DATATYPE_EXT = 0x87E5 + VARIANT_ARRAY_STRIDE_EXT = 0x87E6 + VARIANT_ARRAY_TYPE_EXT = 0x87E7 + VARIANT_ARRAY_EXT = 0x87E8 + VARIANT_ARRAY_POINTER_EXT = 0x87E9 + INVARIANT_VALUE_EXT = 0x87EA + INVARIANT_DATATYPE_EXT = 0x87EB + LOCAL_CONSTANT_VALUE_EXT = 0x87EC + LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED + +AMD_compressed_ATC_texture enum: (OpenGL ES only) (additional; see below) + ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE + +ATI_pn_triangles enum: + PN_TRIANGLES_ATI = 0x87F0 + MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 + PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 + PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 + PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 + PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 + PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 + PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 + PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 + +AMD_compressed_3DC_texture enum: (OpenGL ES only) + 3DC_X_AMD = 0x87F9 + 3DC_XY_AMD = 0x87FA + +ATI_meminfo enum: + VBO_FREE_MEMORY_ATI = 0x87FB + TEXTURE_FREE_MEMORY_ATI = 0x87FC + RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD + +OES_get_program_binary enum: (OpenGL ES only; + NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE + PROGRAM_BINARY_FORMATS_OES = 0x87FF + +VERSION_2_0 enum: (Promoted for OpenGL 2.0) + STENCIL_BACK_FUNC = 0x8800 # VERSION_2_0 + STENCIL_BACK_FAIL = 0x8801 # VERSION_2_0 + STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 # VERSION_2_0 + STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 # VERSION_2_0 + STENCIL_BACK_FAIL_ATI = 0x8801 + +ATI_separate_stencil enum: + STENCIL_BACK_FUNC_ATI = 0x8800 + STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 + STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 + +ARB_fragment_program enum: + FRAGMENT_PROGRAM_ARB = 0x8804 + PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 + PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 + PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 + PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 + PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 + PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A + MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B + MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C + MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D + MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E + MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F + MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 + +# ATI_future_use: 0x8811-0x8813 + +VERSION_3_0 enum: + RGBA32F = 0x8814 # VERSION_3_0 + RGB32F = 0x8815 # VERSION_3_0 + RGBA16F = 0x881A # VERSION_3_0 + RGB16F = 0x881B # VERSION_3_0 + +ARB_texture_float enum: + RGBA32F_ARB = 0x8814 + RGB32F_ARB = 0x8815 + ALPHA32F_ARB = 0x8816 + INTENSITY32F_ARB = 0x8817 + LUMINANCE32F_ARB = 0x8818 + LUMINANCE_ALPHA32F_ARB = 0x8819 + RGBA16F_ARB = 0x881A + RGB16F_ARB = 0x881B + ALPHA16F_ARB = 0x881C + INTENSITY16F_ARB = 0x881D + LUMINANCE16F_ARB = 0x881E + LUMINANCE_ALPHA16F_ARB = 0x881F + +ATI_texture_float enum: + RGBA_FLOAT32_ATI = 0x8814 + RGB_FLOAT32_ATI = 0x8815 + ALPHA_FLOAT32_ATI = 0x8816 + INTENSITY_FLOAT32_ATI = 0x8817 + LUMINANCE_FLOAT32_ATI = 0x8818 + LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 + RGBA_FLOAT16_ATI = 0x881A + RGB_FLOAT16_ATI = 0x881B + ALPHA_FLOAT16_ATI = 0x881C + INTENSITY_FLOAT16_ATI = 0x881D + LUMINANCE_FLOAT16_ATI = 0x881E + LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F + +APPLE_float_pixels enum: (additional; see below) + RGBA_FLOAT32_APPLE = 0x8814 + RGB_FLOAT32_APPLE = 0x8815 + ALPHA_FLOAT32_APPLE = 0x8816 + INTENSITY_FLOAT32_APPLE = 0x8817 + LUMINANCE_FLOAT32_APPLE = 0x8818 + LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 + RGBA_FLOAT16_APPLE = 0x881A + RGB_FLOAT16_APPLE = 0x881B + ALPHA_FLOAT16_APPLE = 0x881C + INTENSITY_FLOAT16_APPLE = 0x881D + LUMINANCE_FLOAT16_APPLE = 0x881E + LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F + +ARB_color_buffer_float enum: + RGBA_FLOAT_MODE_ARB = 0x8820 # Equivalent to TYPE_RGBA_FLOAT_ATI + +ATI_pixel_format_float enum: (really WGL_ATI_pixel_format_float) + TYPE_RGBA_FLOAT_ATI = 0x8820 + +# ATI_future_use: 0x8821-0x8822 + +QCOM_writeonly_rendering enum: (OpenGL ES only) + WRITEONLY_RENDERING_QCOM = 0x8823 + +VERSION_2_0 enum: (Promoted for OpenGL 2.0) + MAX_DRAW_BUFFERS = 0x8824 # VERSION_2_0 + DRAW_BUFFER0 = 0x8825 # VERSION_2_0 + DRAW_BUFFER1 = 0x8826 # VERSION_2_0 + DRAW_BUFFER2 = 0x8827 # VERSION_2_0 + DRAW_BUFFER3 = 0x8828 # VERSION_2_0 + DRAW_BUFFER4 = 0x8829 # VERSION_2_0 + DRAW_BUFFER5 = 0x882A # VERSION_2_0 + DRAW_BUFFER6 = 0x882B # VERSION_2_0 + DRAW_BUFFER7 = 0x882C # VERSION_2_0 + DRAW_BUFFER8 = 0x882D # VERSION_2_0 + DRAW_BUFFER9 = 0x882E # VERSION_2_0 + DRAW_BUFFER10 = 0x882F # VERSION_2_0 + DRAW_BUFFER11 = 0x8830 # VERSION_2_0 + DRAW_BUFFER12 = 0x8831 # VERSION_2_0 + DRAW_BUFFER13 = 0x8832 # VERSION_2_0 + DRAW_BUFFER14 = 0x8833 # VERSION_2_0 + DRAW_BUFFER15 = 0x8834 # VERSION_2_0 + +ARB_draw_buffers enum: + MAX_DRAW_BUFFERS_ARB = 0x8824 + DRAW_BUFFER0_ARB = 0x8825 + DRAW_BUFFER1_ARB = 0x8826 + DRAW_BUFFER2_ARB = 0x8827 + DRAW_BUFFER3_ARB = 0x8828 + DRAW_BUFFER4_ARB = 0x8829 + DRAW_BUFFER5_ARB = 0x882A + DRAW_BUFFER6_ARB = 0x882B + DRAW_BUFFER7_ARB = 0x882C + DRAW_BUFFER8_ARB = 0x882D + DRAW_BUFFER9_ARB = 0x882E + DRAW_BUFFER10_ARB = 0x882F + DRAW_BUFFER11_ARB = 0x8830 + DRAW_BUFFER12_ARB = 0x8831 + DRAW_BUFFER13_ARB = 0x8832 + DRAW_BUFFER14_ARB = 0x8833 + DRAW_BUFFER15_ARB = 0x8834 + +ATI_draw_buffers enum: + MAX_DRAW_BUFFERS_ATI = 0x8824 + DRAW_BUFFER0_ATI = 0x8825 + DRAW_BUFFER1_ATI = 0x8826 + DRAW_BUFFER2_ATI = 0x8827 + DRAW_BUFFER3_ATI = 0x8828 + DRAW_BUFFER4_ATI = 0x8829 + DRAW_BUFFER5_ATI = 0x882A + DRAW_BUFFER6_ATI = 0x882B + DRAW_BUFFER7_ATI = 0x882C + DRAW_BUFFER8_ATI = 0x882D + DRAW_BUFFER9_ATI = 0x882E + DRAW_BUFFER10_ATI = 0x882F + DRAW_BUFFER11_ATI = 0x8830 + DRAW_BUFFER12_ATI = 0x8831 + DRAW_BUFFER13_ATI = 0x8832 + DRAW_BUFFER14_ATI = 0x8833 + DRAW_BUFFER15_ATI = 0x8834 + +ATI_pixel_format_float enum: (really WGL_ATI_pixel_format_float) (additional; see above) + COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 + +# ATI_future_use: 0x8836-0x883F + +VERSION_2_0 enum: (Promoted for OpenGL 2.0) + BLEND_EQUATION_ALPHA = 0x883D # VERSION_2_0 + +EXT_blend_equation_separate enum: + BLEND_EQUATION_ALPHA_EXT = 0x883D + +# Aliases EXT_blend_equation_separate enum above +OES_blend_equation_separate enum: (OpenGL ES only) + BLEND_EQUATION_ALPHA_OES = 0x883D + +############################################################################### + +# OpenGL ARB: 0x8840-0x884F + +ARB_matrix_palette enum: + MATRIX_PALETTE_ARB = 0x8840 + MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 + MAX_PALETTE_MATRICES_ARB = 0x8842 + CURRENT_PALETTE_MATRIX_ARB = 0x8843 + MATRIX_INDEX_ARRAY_ARB = 0x8844 + CURRENT_MATRIX_INDEX_ARB = 0x8845 + MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 + MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 + MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 + MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 + +# Aliases ARB_matrix_palette enums above +OES_matrix_palette enum: (OpenGL ES only; additional; see below) + MATRIX_PALETTE_OES = 0x8840 + MAX_PALETTE_MATRICES_OES = 0x8842 + CURRENT_PALETTE_MATRIX_OES = 0x8843 + MATRIX_INDEX_ARRAY_OES = 0x8844 + MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846 + MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847 + MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848 + MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849 + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + TEXTURE_DEPTH_SIZE = 0x884A + DEPTH_TEXTURE_MODE = 0x884B + +ARB_depth_texture enum: + TEXTURE_DEPTH_SIZE_ARB = 0x884A + DEPTH_TEXTURE_MODE_ARB = 0x884B + +VERSION_3_0 enum: (aliases) + COMPARE_REF_TO_TEXTURE = 0x884E # VERSION_3_0 # alias GL_COMPARE_R_TO_TEXTURE_ARB + +VERSION_1_4 enum: (Promoted for OpenGL 1.4) + TEXTURE_COMPARE_MODE = 0x884C + TEXTURE_COMPARE_FUNC = 0x884D + COMPARE_R_TO_TEXTURE = 0x884E + +ARB_shadow enum: + TEXTURE_COMPARE_MODE_ARB = 0x884C + TEXTURE_COMPARE_FUNC_ARB = 0x884D + COMPARE_R_TO_TEXTURE_ARB = 0x884E + +EXT_texture_array enum: (additional; see below) + COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E + +VERSION_3_2 enum: + use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS + +ARB_seamless_cube_map enum: + TEXTURE_CUBE_MAP_SEAMLESS = 0x884F + +############################################################################### + +# NVIDIA: 0x8850-0x891F + +NV_texture_shader3 enum: + OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 + OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 + OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 + OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 + OFFSET_HILO_TEXTURE_2D_NV = 0x8854 + OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 + OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 + OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 + DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 + DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 + DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A + DOT_PRODUCT_PASS_THROUGH_NV = 0x885B + DOT_PRODUCT_TEXTURE_1D_NV = 0x885C + DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D + HILO8_NV = 0x885E + SIGNED_HILO8_NV = 0x885F + FORCE_BLUE_TO_ONE_NV = 0x8860 + +VERSION_2_0 enum: (Promoted for OpenGL 2.0) + POINT_SPRITE = 0x8861 # VERSION_2_0 + COORD_REPLACE = 0x8862 # VERSION_2_0 + +ARB_point_sprite enum: + POINT_SPRITE_ARB = 0x8861 + COORD_REPLACE_ARB = 0x8862 + +NV_point_sprite enum: + POINT_SPRITE_NV = 0x8861 + COORD_REPLACE_NV = 0x8862 + +# Aliases ARB_point_sprite enums above +OES_point_sprite enum: (OpenGL ES only) + POINT_SPRITE_ARB = 0x8861 + COORD_REPLACE_ARB = 0x8862 + +NV_point_sprite enum: + POINT_SPRITE_R_MODE_NV = 0x8863 + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + QUERY_COUNTER_BITS = 0x8864 + CURRENT_QUERY = 0x8865 + QUERY_RESULT = 0x8866 + QUERY_RESULT_AVAILABLE = 0x8867 + +ARB_occlusion_query enum: + QUERY_COUNTER_BITS_ARB = 0x8864 + CURRENT_QUERY_ARB = 0x8865 + QUERY_RESULT_ARB = 0x8866 + QUERY_RESULT_AVAILABLE_ARB = 0x8867 + +NV_occlusion_query enum: + PIXEL_COUNTER_BITS_NV = 0x8864 + CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 + PIXEL_COUNT_NV = 0x8866 + PIXEL_COUNT_AVAILABLE_NV = 0x8867 + +NV_fragment_program enum: + MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 + +VERSION_2_0 enum: (Promoted from ARB_vertex_shader) + MAX_VERTEX_ATTRIBS = 0x8869 # VERSION_2_0 + VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A # VERSION_2_0 + +ARB_vertex_program enum: (additional; see above) + MAX_VERTEX_ATTRIBS_ARB = 0x8869 + VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A + +# NV_future_use: 0x886B-0x886D + +NV_copy_depth_to_color enum: + DEPTH_STENCIL_TO_RGBA_NV = 0x886E + DEPTH_STENCIL_TO_BGRA_NV = 0x886F + +NV_fragment_program enum: (additional; see above) + FRAGMENT_PROGRAM_NV = 0x8870 + MAX_TEXTURE_COORDS_NV = 0x8871 + MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 + FRAGMENT_PROGRAM_BINDING_NV = 0x8873 + PROGRAM_ERROR_STRING_NV = 0x8874 + +VERSION_2_0 enum: (Promoted from ARB_fragment_shader; only some values) + MAX_TEXTURE_COORDS = 0x8871 # VERSION_2_0 + MAX_TEXTURE_IMAGE_UNITS = 0x8872 # VERSION_2_0 + +ARB_vertex_program enum: (additional; see above) +ARB_fragment_program enum: (additional; see above) + MAX_TEXTURE_COORDS_ARB = 0x8871 # ARB_fragment_program + MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872 # ARB_fragment_program + PROGRAM_ERROR_STRING_ARB = 0x8874 # ARB_vertex_program / ARB_fragment_program + PROGRAM_FORMAT_ASCII_ARB = 0x8875 # ARB_vertex_program / ARB_fragment_program + PROGRAM_FORMAT_ARB = 0x8876 # ARB_vertex_program / ARB_fragment_program + +# 0x8877 *should have been* assigned to PROGRAM_BINDING_ARB. Oops. + +NV_pixel_data_range enum: + WRITE_PIXEL_DATA_RANGE_NV = 0x8878 + READ_PIXEL_DATA_RANGE_NV = 0x8879 + WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A + READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B + WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C + READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D + +# NV_future_use: 0x887E-0x887F + +NV_float_buffer enum: + FLOAT_R_NV = 0x8880 + FLOAT_RG_NV = 0x8881 + FLOAT_RGB_NV = 0x8882 + FLOAT_RGBA_NV = 0x8883 + FLOAT_R16_NV = 0x8884 + FLOAT_R32_NV = 0x8885 + FLOAT_RG16_NV = 0x8886 + FLOAT_RG32_NV = 0x8887 + FLOAT_RGB16_NV = 0x8888 + FLOAT_RGB32_NV = 0x8889 + FLOAT_RGBA16_NV = 0x888A + FLOAT_RGBA32_NV = 0x888B + TEXTURE_FLOAT_COMPONENTS_NV = 0x888C + FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D + FLOAT_RGBA_MODE_NV = 0x888E + +NV_texture_expand_normal enum: + TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F + +EXT_depth_bounds_test enum: + DEPTH_BOUNDS_TEST_EXT = 0x8890 + DEPTH_BOUNDS_EXT = 0x8891 + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + ARRAY_BUFFER = 0x8892 + ELEMENT_ARRAY_BUFFER = 0x8893 + ARRAY_BUFFER_BINDING = 0x8894 + ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 + VERTEX_ARRAY_BUFFER_BINDING = 0x8896 + NORMAL_ARRAY_BUFFER_BINDING = 0x8897 + COLOR_ARRAY_BUFFER_BINDING = 0x8898 + INDEX_ARRAY_BUFFER_BINDING = 0x8899 + TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A + EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B + SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C + FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D # alias GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING + FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D + WEIGHT_ARRAY_BUFFER_BINDING = 0x889E + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F + +ARB_vertex_buffer_object enum: + ARRAY_BUFFER_ARB = 0x8892 + ELEMENT_ARRAY_BUFFER_ARB = 0x8893 + ARRAY_BUFFER_BINDING_ARB = 0x8894 + ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 + VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 + NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 + COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 + INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 + TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A + EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B + SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C + FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D + WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F + +# Aliases ARB_vertex_buffer_object enum above +OES_matrix_palette enum: (OpenGL ES only; additional; see below) + WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E + +ARB_vertex_program enum: (additional; see above) +ARB_fragment_program enum: (additional; see above) + PROGRAM_INSTRUCTIONS_ARB = 0x88A0 + MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 + PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 + MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 + PROGRAM_TEMPORARIES_ARB = 0x88A4 + MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 + PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 + MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 + PROGRAM_PARAMETERS_ARB = 0x88A8 + MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 + PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA + MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB + PROGRAM_ATTRIBS_ARB = 0x88AC + MAX_PROGRAM_ATTRIBS_ARB = 0x88AD + PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE + MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF + PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 + MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 + PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 + MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 + MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 + MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 + PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 + TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + READ_ONLY = 0x88B8 + WRITE_ONLY = 0x88B9 + READ_WRITE = 0x88BA + BUFFER_ACCESS = 0x88BB + BUFFER_MAPPED = 0x88BC + BUFFER_MAP_POINTER = 0x88BD + +ARB_vertex_buffer_object enum: (additional; see above) + READ_ONLY_ARB = 0x88B8 + WRITE_ONLY_ARB = 0x88B9 + READ_WRITE_ARB = 0x88BA + BUFFER_ACCESS_ARB = 0x88BB + BUFFER_MAPPED_ARB = 0x88BC + BUFFER_MAP_POINTER_ARB = 0x88BD + +# Aliases ARB_vertex_buffer_object enums above +OES_mapbuffer enum: (OpenGL ES only) + WRITE_ONLY_OES = 0x88B9 + BUFFER_ACCESS_OES = 0x88BB + BUFFER_MAPPED_OES = 0x88BC + BUFFER_MAP_POINTER_OES = 0x88BD + +# NV_future_use: 0x88BE + +EXT_timer_query enum: + TIME_ELAPSED_EXT = 0x88BF + +ARB_vertex_program enum: (additional; see above) +ARB_fragment_program enum: (additional; see above) + MATRIX0_ARB = 0x88C0 + MATRIX1_ARB = 0x88C1 + MATRIX2_ARB = 0x88C2 + MATRIX3_ARB = 0x88C3 + MATRIX4_ARB = 0x88C4 + MATRIX5_ARB = 0x88C5 + MATRIX6_ARB = 0x88C6 + MATRIX7_ARB = 0x88C7 + MATRIX8_ARB = 0x88C8 + MATRIX9_ARB = 0x88C9 + MATRIX10_ARB = 0x88CA + MATRIX11_ARB = 0x88CB + MATRIX12_ARB = 0x88CC + MATRIX13_ARB = 0x88CD + MATRIX14_ARB = 0x88CE + MATRIX15_ARB = 0x88CF + MATRIX16_ARB = 0x88D0 + MATRIX17_ARB = 0x88D1 + MATRIX18_ARB = 0x88D2 + MATRIX19_ARB = 0x88D3 + MATRIX20_ARB = 0x88D4 + MATRIX21_ARB = 0x88D5 + MATRIX22_ARB = 0x88D6 + MATRIX23_ARB = 0x88D7 + MATRIX24_ARB = 0x88D8 + MATRIX25_ARB = 0x88D9 + MATRIX26_ARB = 0x88DA + MATRIX27_ARB = 0x88DB + MATRIX28_ARB = 0x88DC + MATRIX29_ARB = 0x88DD + MATRIX30_ARB = 0x88DE + MATRIX31_ARB = 0x88DF + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + STREAM_DRAW = 0x88E0 + STREAM_READ = 0x88E1 + STREAM_COPY = 0x88E2 + STATIC_DRAW = 0x88E4 + STATIC_READ = 0x88E5 + STATIC_COPY = 0x88E6 + DYNAMIC_DRAW = 0x88E8 + DYNAMIC_READ = 0x88E9 + DYNAMIC_COPY = 0x88EA + +ARB_vertex_buffer_object enum: (additional; see above) + STREAM_DRAW_ARB = 0x88E0 + STREAM_READ_ARB = 0x88E1 + STREAM_COPY_ARB = 0x88E2 + STATIC_DRAW_ARB = 0x88E4 + STATIC_READ_ARB = 0x88E5 + STATIC_COPY_ARB = 0x88E6 + DYNAMIC_DRAW_ARB = 0x88E8 + DYNAMIC_READ_ARB = 0x88E9 + DYNAMIC_COPY_ARB = 0x88EA + +VERSION_2_1 enum: + PIXEL_PACK_BUFFER = 0x88EB # VERSION_2_1 + PIXEL_UNPACK_BUFFER = 0x88EC # VERSION_2_1 + PIXEL_PACK_BUFFER_BINDING = 0x88ED # VERSION_2_1 + PIXEL_UNPACK_BUFFER_BINDING = 0x88EF # VERSION_2_1 + +ARB_pixel_buffer_object enum: + PIXEL_PACK_BUFFER_ARB = 0x88EB # ARB_pixel_buffer_object + PIXEL_UNPACK_BUFFER_ARB = 0x88EC # ARB_pixel_buffer_object + PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED # ARB_pixel_buffer_object + PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF # ARB_pixel_buffer_object + +EXT_pixel_buffer_object enum: + PIXEL_PACK_BUFFER_EXT = 0x88EB # EXT_pixel_buffer_object + PIXEL_UNPACK_BUFFER_EXT = 0x88EC # EXT_pixel_buffer_object + PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED # EXT_pixel_buffer_object + PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF # EXT_pixel_buffer_object + +# ARB_future_use: 0x88E3, 0x88E7, 0x88EE +# (for extending ARB_vertex_buffer_object): + +VERSION_3_0 enum: + use ARB_framebuffer_object DEPTH24_STENCIL8 + use ARB_framebuffer_object TEXTURE_STENCIL_SIZE + +ARB_framebuffer_object enum: (note: no ARB suffixes) + DEPTH24_STENCIL8 = 0x88F0 # VERSION_3_0 / ARB_fbo + TEXTURE_STENCIL_SIZE = 0x88F1 # VERSION_3_0 / ARB_fbo + +EXT_packed_depth_stencil enum: (additional; see above) + DEPTH24_STENCIL8_EXT = 0x88F0 + TEXTURE_STENCIL_SIZE_EXT = 0x88F1 + +# Aliases EXT_packed_depth_stencil enum above +OES_packed_depth_stencil enum: (OpenGL ES only; additional; see above) + DEPTH24_STENCIL8_OES = 0x88F0 + +EXT_stencil_clear_tag enum: + STENCIL_TAG_BITS_EXT = 0x88F2 + STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 + +NV_vertex_program2_option enum: (duplicated in NV_fragment_prgoram2 below) + MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 + MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 + +NV_fragment_program2 enum: + MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 + MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 + MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 + MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 + MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 + +# NV_future_use: 0x88F9-0x88FC + +VERSION_3_0 enum: + VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD # VERSION_3_0 + +NV_vertex_program4 enum: + VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD + +ARB_instanced_arrays enum: + VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE + +VERSION_3_0 enum: + MAX_ARRAY_TEXTURE_LAYERS = 0x88FF # VERSION_3_0 + +EXT_texture_array enum: (additional; see below) + MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF + +VERSION_3_0 enum: + MIN_PROGRAM_TEXEL_OFFSET = 0x8904 # VERSION_3_0 + MAX_PROGRAM_TEXEL_OFFSET = 0x8905 # VERSION_3_0 + +NV_gpu_program4 enum: + MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 + MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 + PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 + PROGRAM_RESULT_COMPONENTS_NV = 0x8907 + MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 + MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 + +EXT_stencil_two_side enum: + STENCIL_TEST_TWO_SIDE_EXT = 0x8910 + ACTIVE_STENCIL_FACE_EXT = 0x8911 + +EXT_texture_mirror_clamp enum: (additional; see above): + MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 + +# NV_future_use: 0x8913 + +VERSION_1_5 enum: (Promoted for OpenGL 1.5) + SAMPLES_PASSED = 0x8914 + +ARB_occlusion_query enum: (additional; see above) + SAMPLES_PASSED_ARB = 0x8914 + +# NV_future_use: 0x8915 + +VERSION_3_2 enum: + GEOMETRY_VERTICES_OUT = 0x8916 + GEOMETRY_INPUT_TYPE = 0x8917 + GEOMETRY_OUTPUT_TYPE = 0x8918 + +# NV_future_use: 0x8919 + +VERSION_3_0 enum: + CLAMP_VERTEX_COLOR = 0x891A # VERSION_3_0 + CLAMP_FRAGMENT_COLOR = 0x891B # VERSION_3_0 + CLAMP_READ_COLOR = 0x891C # VERSION_3_0 + FIXED_ONLY = 0x891D # VERSION_3_0 + +ARB_color_buffer_float enum: (additional; see above) + CLAMP_VERTEX_COLOR_ARB = 0x891A + CLAMP_FRAGMENT_COLOR_ARB = 0x891B + CLAMP_READ_COLOR_ARB = 0x891C + FIXED_ONLY_ARB = 0x891D + +# NV_future_use: 0x891E-0x891F + +############################################################################### + +# ATI: 0x8920-0x897F + +ATI_fragment_shader enum: + FRAGMENT_SHADER_ATI = 0x8920 + REG_0_ATI = 0x8921 + REG_1_ATI = 0x8922 + REG_2_ATI = 0x8923 + REG_3_ATI = 0x8924 + REG_4_ATI = 0x8925 + REG_5_ATI = 0x8926 + REG_6_ATI = 0x8927 + REG_7_ATI = 0x8928 + REG_8_ATI = 0x8929 + REG_9_ATI = 0x892A + REG_10_ATI = 0x892B + REG_11_ATI = 0x892C + REG_12_ATI = 0x892D + REG_13_ATI = 0x892E + REG_14_ATI = 0x892F + REG_15_ATI = 0x8930 + REG_16_ATI = 0x8931 + REG_17_ATI = 0x8932 + REG_18_ATI = 0x8933 + REG_19_ATI = 0x8934 + REG_20_ATI = 0x8935 + REG_21_ATI = 0x8936 + REG_22_ATI = 0x8937 + REG_23_ATI = 0x8938 + REG_24_ATI = 0x8939 + REG_25_ATI = 0x893A + REG_26_ATI = 0x893B + REG_27_ATI = 0x893C + REG_28_ATI = 0x893D + REG_29_ATI = 0x893E + REG_30_ATI = 0x893F + REG_31_ATI = 0x8940 + CON_0_ATI = 0x8941 + CON_1_ATI = 0x8942 + CON_2_ATI = 0x8943 + CON_3_ATI = 0x8944 + CON_4_ATI = 0x8945 + CON_5_ATI = 0x8946 + CON_6_ATI = 0x8947 + CON_7_ATI = 0x8948 + CON_8_ATI = 0x8949 + CON_9_ATI = 0x894A + CON_10_ATI = 0x894B + CON_11_ATI = 0x894C + CON_12_ATI = 0x894D + CON_13_ATI = 0x894E + CON_14_ATI = 0x894F + CON_15_ATI = 0x8950 + CON_16_ATI = 0x8951 + CON_17_ATI = 0x8952 + CON_18_ATI = 0x8953 + CON_19_ATI = 0x8954 + CON_20_ATI = 0x8955 + CON_21_ATI = 0x8956 + CON_22_ATI = 0x8957 + CON_23_ATI = 0x8958 + CON_24_ATI = 0x8959 + CON_25_ATI = 0x895A + CON_26_ATI = 0x895B + CON_27_ATI = 0x895C + CON_28_ATI = 0x895D + CON_29_ATI = 0x895E + CON_30_ATI = 0x895F + CON_31_ATI = 0x8960 + MOV_ATI = 0x8961 + ADD_ATI = 0x8963 + MUL_ATI = 0x8964 + SUB_ATI = 0x8965 + DOT3_ATI = 0x8966 + DOT4_ATI = 0x8967 + MAD_ATI = 0x8968 + LERP_ATI = 0x8969 + CND_ATI = 0x896A + CND0_ATI = 0x896B + DOT2_ADD_ATI = 0x896C + SECONDARY_INTERPOLATOR_ATI = 0x896D + NUM_FRAGMENT_REGISTERS_ATI = 0x896E + NUM_FRAGMENT_CONSTANTS_ATI = 0x896F + NUM_PASSES_ATI = 0x8970 + NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 + NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 + NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 + NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 + COLOR_ALPHA_PAIRING_ATI = 0x8975 + SWIZZLE_STR_ATI = 0x8976 + SWIZZLE_STQ_ATI = 0x8977 + SWIZZLE_STR_DR_ATI = 0x8978 + SWIZZLE_STQ_DQ_ATI = 0x8979 + SWIZZLE_STRQ_ATI = 0x897A + SWIZZLE_STRQ_DQ_ATI = 0x897B +# ??? Not clear where to put new types of mask bits yet + RED_BIT_ATI = 0x00000001 + GREEN_BIT_ATI = 0x00000002 + BLUE_BIT_ATI = 0x00000004 + 2X_BIT_ATI = 0x00000001 + 4X_BIT_ATI = 0x00000002 + 8X_BIT_ATI = 0x00000004 + HALF_BIT_ATI = 0x00000008 + QUARTER_BIT_ATI = 0x00000010 + EIGHTH_BIT_ATI = 0x00000020 + SATURATE_BIT_ATI = 0x00000040 + 2X_BIT_ATI = 0x00000001 + COMP_BIT_ATI = 0x00000002 + NEGATE_BIT_ATI = 0x00000004 + BIAS_BIT_ATI = 0x00000008 + +# ATI_future_use: 0x897C-0x897F + +############################################################################### + +# Khronos OpenML WG / OpenGL ES WG: 0x8980-0x898F + +OML_interlace enum: + INTERLACE_OML = 0x8980 + INTERLACE_READ_OML = 0x8981 + +OML_subsample enum: + FORMAT_SUBSAMPLE_24_24_OML = 0x8982 + FORMAT_SUBSAMPLE_244_244_OML = 0x8983 + +OML_resample enum: + PACK_RESAMPLE_OML = 0x8984 + UNPACK_RESAMPLE_OML = 0x8985 + RESAMPLE_REPLICATE_OML = 0x8986 + RESAMPLE_ZERO_FILL_OML = 0x8987 + RESAMPLE_AVERAGE_OML = 0x8988 + RESAMPLE_DECIMATE_OML = 0x8989 + +OES_point_size_array enum: (OpenGL ES only) + POINT_SIZE_ARRAY_TYPE_OES = 0x898A + POINT_SIZE_ARRAY_STRIDE_OES = 0x898B + POINT_SIZE_ARRAY_POINTER_OES = 0x898C + +OES_matrix_get enum: (OpenGL ES only) + MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D + PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E + TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F + +############################################################################### + +# 3dlabs: 0x8990-0x899F + +############################################################################### + +# Matrox: 0x89A0-0x89FF + +############################################################################### + +# Apple: 0x8A00-0x8A7F + +APPLE_vertex_program_evaluators enum: + VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 + VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 + VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 + VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 + VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 + VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 + VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 + VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 + VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 + VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 + +APPLE_fence enum: + DRAW_PIXELS_APPLE = 0x8A0A + FENCE_APPLE = 0x8A0B + +## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name + ELEMENT_ARRAY_APPLE = 0x8A0C + ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D + ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E + +APPLE_float_pixels enum: + COLOR_FLOAT_APPLE = 0x8A0F + +# APPLE_future_use: 0x8A10 +## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name +# MIN_PBUFFER_VIEWPORT_DIMS_APPLE = 0x8A10 +# ELEMENT_BUFFER_BINDING_APPLE = 0x8A11 +# Apple says the extension that defined ELEMENT_BUFFER_BINDING_APPLE +# never shipped and there's no actual collision with UNIFORM_BUFFER + +VERSION_3_1 enum: + use ARB_uniform_buffer_object UNIFORM_BUFFER + +ARB_uniform_buffer_object enum: (additional; see below) + UNIFORM_BUFFER = 0x8A11 + +APPLE_flush_buffer_range enum: + BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 + BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 + +APPLE_aux_depth_stencil enum: + AUX_DEPTH_STENCIL_APPLE = 0x8A14 + +APPLE_row_bytes enum: + PACK_ROW_BYTES_APPLE = 0x8A15 + UNPACK_ROW_BYTES_APPLE = 0x8A16 + +# APPLE_future_use: 0x8A17-0x8A18 + +APPLE_object_purgeable enum: + RELEASED_APPLE = 0x8A19 + VOLATILE_APPLE = 0x8A1A + RETAINED_APPLE = 0x8A1B + UNDEFINED_APPLE = 0x8A1C + PURGEABLE_APPLE = 0x8A1D + +# APPLE_future_use: 0x8A1E + +APPLE_rgb_422 enum: + RGB_422_APPLE = 0x8A1F + use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_APPLE + use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_REV_APPLE + +# APPLE_future_use: 0x8A20--0x8A27 + +VERSION_3_1 enum: + use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING + use ARB_uniform_buffer_object UNIFORM_BUFFER_START + use ARB_uniform_buffer_object UNIFORM_BUFFER_SIZE + use ARB_uniform_buffer_object MAX_VERTEX_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_GEOMETRY_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_FRAGMENT_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_COMBINED_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_UNIFORM_BUFFER_BINDINGS + use ARB_uniform_buffer_object MAX_UNIFORM_BLOCK_SIZE + use ARB_uniform_buffer_object MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS + use ARB_uniform_buffer_object MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS + use ARB_uniform_buffer_object MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS + use ARB_uniform_buffer_object UNIFORM_BUFFER_OFFSET_ALIGNMENT + use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH + use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCKS + use ARB_uniform_buffer_object UNIFORM_TYPE + use ARB_uniform_buffer_object UNIFORM_SIZE + use ARB_uniform_buffer_object UNIFORM_NAME_LENGTH + use ARB_uniform_buffer_object UNIFORM_BLOCK_INDEX + use ARB_uniform_buffer_object UNIFORM_OFFSET + use ARB_uniform_buffer_object UNIFORM_ARRAY_STRIDE + use ARB_uniform_buffer_object UNIFORM_MATRIX_STRIDE + use ARB_uniform_buffer_object UNIFORM_IS_ROW_MAJOR + use ARB_uniform_buffer_object UNIFORM_BLOCK_BINDING + use ARB_uniform_buffer_object UNIFORM_BLOCK_DATA_SIZE + use ARB_uniform_buffer_object UNIFORM_BLOCK_NAME_LENGTH + use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORMS + use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES + use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER + use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER + use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER + use ARB_uniform_buffer_object INVALID_INDEX + +ARB_uniform_buffer_object enum: + UNIFORM_BUFFER_BINDING = 0x8A28 + UNIFORM_BUFFER_START = 0x8A29 + UNIFORM_BUFFER_SIZE = 0x8A2A + MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B + MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C + MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D + MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E + MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F + MAX_UNIFORM_BLOCK_SIZE = 0x8A30 + MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 + MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 + MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 + UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 + ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 + ACTIVE_UNIFORM_BLOCKS = 0x8A36 + UNIFORM_TYPE = 0x8A37 + UNIFORM_SIZE = 0x8A38 + UNIFORM_NAME_LENGTH = 0x8A39 + UNIFORM_BLOCK_INDEX = 0x8A3A + UNIFORM_OFFSET = 0x8A3B + UNIFORM_ARRAY_STRIDE = 0x8A3C + UNIFORM_MATRIX_STRIDE = 0x8A3D + UNIFORM_IS_ROW_MAJOR = 0x8A3E + UNIFORM_BLOCK_BINDING = 0x8A3F + UNIFORM_BLOCK_DATA_SIZE = 0x8A40 + UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 + UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 + UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 + UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 + UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 + UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 + INVALID_INDEX = 0xFFFFFFFFu + +# APPLE_future_use: 0x8A47-0x8A7F + +############################################################################### + +# Matrox: 0x8A80-0x8AEF + +############################################################################### + +# Chromium (Brian Paul): 0x8AF0-0x8B2F + +############################################################################### + +# ARB HLSL shader extensions: 0x8B30-0x8B8F + + +VERSION_3_1 enum: (Promoted from ARB_shader_objects + ARB_texture_rectangle) + SAMPLER_2D_RECT = 0x8B63 # ARB_shader_objects + ARB_texture_rectangle + SAMPLER_2D_RECT_SHADOW = 0x8B64 # ARB_shader_objects + ARB_texture_rectangle + +#@@ separate extensions +VERSION_2_0 enum: (Promoted for OpenGL 2.0; only some values; renaming in many cases) +ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader enum: +NV_vertex_program3 enum: (reuses 0x8B4C) +##Shader types + room for expansion + FRAGMENT_SHADER = 0x8B30 # VERSION_2_0 + FRAGMENT_SHADER_ARB = 0x8B30 # ARB_fragment_shader + VERTEX_SHADER = 0x8B31 # VERSION_2_0 + VERTEX_SHADER_ARB = 0x8B31 # ARB_vertex_shader +# ARB_future_use: 0x8B32-0x8B3F (for shader types) +##Container types + room for expansion + PROGRAM_OBJECT_ARB = 0x8B40 # ARB_shader_objects +# ARB_future_use: 0x8B41-0x8B47 (for container types) +##Misc. shader enums + SHADER_OBJECT_ARB = 0x8B48 # ARB_shader_objects + MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49 # VERSION_2_0 + MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 # ARB_fragment_shader + MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A # VERSION_2_0 + MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A # ARB_vertex_shader + MAX_VARYING_FLOATS = 0x8B4B # VERSION_2_0 + MAX_VARYING_FLOATS_ARB = 0x8B4B # ARB_vertex_shader + MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C # VERSION_2_0 + MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C # ARB_vertex_shader, NV_vertex_program3 + MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D # VERSION_2_0 + MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D # ARB_vertex_shader + OBJECT_TYPE_ARB = 0x8B4E # ARB_shader_objects + SHADER_TYPE = 0x8B4F # VERSION_2_0 (renamed) + OBJECT_SUBTYPE_ARB = 0x8B4F # ARB_shader_objects +##Attribute types + room for expansion. + FLOAT_VEC2 = 0x8B50 # VERSION_2_0 + FLOAT_VEC2_ARB = 0x8B50 # ARB_shader_objects + FLOAT_VEC3 = 0x8B51 # VERSION_2_0 + FLOAT_VEC3_ARB = 0x8B51 # ARB_shader_objects + FLOAT_VEC4 = 0x8B52 # VERSION_2_0 + FLOAT_VEC4_ARB = 0x8B52 # ARB_shader_objects + INT_VEC2 = 0x8B53 # VERSION_2_0 + INT_VEC2_ARB = 0x8B53 # ARB_shader_objects + INT_VEC3 = 0x8B54 # VERSION_2_0 + INT_VEC3_ARB = 0x8B54 # ARB_shader_objects + INT_VEC4 = 0x8B55 # VERSION_2_0 + INT_VEC4_ARB = 0x8B55 # ARB_shader_objects + BOOL = 0x8B56 # VERSION_2_0 + BOOL_ARB = 0x8B56 # ARB_shader_objects + BOOL_VEC2 = 0x8B57 # VERSION_2_0 + BOOL_VEC2_ARB = 0x8B57 # ARB_shader_objects + BOOL_VEC3 = 0x8B58 # VERSION_2_0 + BOOL_VEC3_ARB = 0x8B58 # ARB_shader_objects + BOOL_VEC4 = 0x8B59 # VERSION_2_0 + BOOL_VEC4_ARB = 0x8B59 # ARB_shader_objects + FLOAT_MAT2 = 0x8B5A # VERSION_2_0 + FLOAT_MAT2_ARB = 0x8B5A # ARB_shader_objects + FLOAT_MAT3 = 0x8B5B # VERSION_2_0 + FLOAT_MAT3_ARB = 0x8B5B # ARB_shader_objects + FLOAT_MAT4 = 0x8B5C # VERSION_2_0 + FLOAT_MAT4_ARB = 0x8B5C # ARB_shader_objects + SAMPLER_1D = 0x8B5D # VERSION_2_0 + SAMPLER_1D_ARB = 0x8B5D # ARB_shader_objects + SAMPLER_2D = 0x8B5E # VERSION_2_0 + SAMPLER_2D_ARB = 0x8B5E # ARB_shader_objects + SAMPLER_3D = 0x8B5F # VERSION_2_0 + SAMPLER_3D_ARB = 0x8B5F # ARB_shader_objects + SAMPLER_CUBE = 0x8B60 # VERSION_2_0 + SAMPLER_CUBE_ARB = 0x8B60 # ARB_shader_objects + SAMPLER_1D_SHADOW = 0x8B61 # VERSION_2_0 + SAMPLER_1D_SHADOW_ARB = 0x8B61 # ARB_shader_objects + SAMPLER_2D_SHADOW = 0x8B62 # VERSION_2_0 + SAMPLER_2D_SHADOW_ARB = 0x8B62 # ARB_shader_objects + SAMPLER_2D_RECT_ARB = 0x8B63 # ARB_shader_objects + SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 # ARB_shader_objects + FLOAT_MAT2x3 = 0x8B65 # VERSION_2_1 + FLOAT_MAT2x4 = 0x8B66 # VERSION_2_1 + FLOAT_MAT3x2 = 0x8B67 # VERSION_2_1 + FLOAT_MAT3x4 = 0x8B68 # VERSION_2_1 + FLOAT_MAT4x2 = 0x8B69 # VERSION_2_1 + FLOAT_MAT4x3 = 0x8B6A # VERSION_2_1 +# ARB_future_use: 0x8B6B-0x8B7F (for attribute types) + DELETE_STATUS = 0x8B80 # VERSION_2_0 (renamed) + OBJECT_DELETE_STATUS_ARB = 0x8B80 # ARB_shader_objects + COMPILE_STATUS = 0x8B81 # VERSION_2_0 (renamed) + OBJECT_COMPILE_STATUS_ARB = 0x8B81 # ARB_shader_objects + LINK_STATUS = 0x8B82 # VERSION_2_0 (renamed) + OBJECT_LINK_STATUS_ARB = 0x8B82 # ARB_shader_objects + VALIDATE_STATUS = 0x8B83 # VERSION_2_0 (renamed) + OBJECT_VALIDATE_STATUS_ARB = 0x8B83 # ARB_shader_objects + INFO_LOG_LENGTH = 0x8B84 # VERSION_2_0 (renamed) + OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 # ARB_shader_objects + ATTACHED_SHADERS = 0x8B85 # VERSION_2_0 (renamed) + OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 # ARB_shader_objects + ACTIVE_UNIFORMS = 0x8B86 # VERSION_2_0 (renamed) + OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 # ARB_shader_objects + ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 # VERSION_2_0 (renamed) + OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 # ARB_shader_objects + SHADER_SOURCE_LENGTH = 0x8B88 # VERSION_2_0 (renamed) + OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 # ARB_shader_objects + ACTIVE_ATTRIBUTES = 0x8B89 # VERSION_2_0 (renamed) + OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 # ARB_vertex_shader + ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A # VERSION_2_0 (renamed) + OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A # ARB_vertex_shader + FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B # VERSION_2_0 + FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B # ARB_fragment_shader + SHADING_LANGUAGE_VERSION = 0x8B8C # VERSION_2_0 + SHADING_LANGUAGE_VERSION_ARB = 0x8B8C # ARB_shading_language_100 + +# Aliases ARB_shader_objects enum above +OES_texture3D enum: (OpenGL ES only; additional; see above) + SAMPLER_3D_OES = 0x8B5F # ARB_shader_objects + +# Aliases ARB_fragment_shader enum above +OES_standard_derivatives enum: (OpenGL ES only) + FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B + +VERSION_3_0 enum: + MAX_VARYING_COMPONENTS = 0x8B4B # VERSION_3_0 # alias GL_MAX_VARYING_FLOATS + +ARB_geometry_shader4 enum: (additional; see below; note: no ARB suffixes) + use VERSION_3_0 MAX_VARYING_COMPONENTS + +EXT_geometry_shader4 enum: (additional; see below) + MAX_VARYING_COMPONENTS_EXT = 0x8B4B + +VERSION_2_0 enum: + CURRENT_PROGRAM = 0x8B8D + +# Aliases CURRENT_PROGRAM +EXT_separate_shader_objects enum: + ACTIVE_PROGRAM_EXT = 0x8B8D + +# ARB_future_use: 0x8B8E-0x8B8F + +############################################################################### + +# Khronos OpenGL ES WG: 0x8B90-0x8B9F + +OES_compressed_paletted_texture enum: (OpenGL ES only) + PALETTE4_RGB8_OES = 0x8B90 + PALETTE4_RGBA8_OES = 0x8B91 + PALETTE4_R5_G6_B5_OES = 0x8B92 + PALETTE4_RGBA4_OES = 0x8B93 + PALETTE4_RGB5_A1_OES = 0x8B94 + PALETTE8_RGB8_OES = 0x8B95 + PALETTE8_RGBA8_OES = 0x8B96 + PALETTE8_R5_G6_B5_OES = 0x8B97 + PALETTE8_RGBA4_OES = 0x8B98 + PALETTE8_RGB5_A1_OES = 0x8B99 + +OES_read_format enum: (OpenGL ES, also implemented in Mesa) + IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A + IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B + +OES_point_size_array enum: (OpenGL ES only; additional; see above) + POINT_SIZE_ARRAY_OES = 0x8B9C + +OES_draw_texture enum: (OpenGL ES only) + TEXTURE_CROP_RECT_OES = 0x8B9D + +OES_matrix_palette enum: (OpenGL ES only) + MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E + +OES_point_size_array enum: (OpenGL ES only; additional; see above) + POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F + +############################################################################### + +# Seaweed: 0x8BA0-0x8BAF + +############################################################################### + +# Mesa: 0x8BB0-0x8BBF +# Probably one of the two 0x8BB4 enums should be 0x8BB5, but the +# extension spec is not complete in any event. +MESA_program_debug enum: + FRAGMENT_PROGRAM_POSITION_MESA = 0x8BB0 + FRAGMENT_PROGRAM_CALLBACK_MESA = 0x8BB1 + FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB2 + FRAGMENT_PROGRAM_CALLBACK_DATA_MESA = 0x8BB3 + VERTEX_PROGRAM_CALLBACK_MESA = 0x8BB4 + VERTEX_PROGRAM_POSITION_MESA = 0x8BB4 + VERTEX_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB6 + VERTEX_PROGRAM_CALLBACK_DATA_MESA = 0x8BB7 + +############################################################################### + +# ATI: 0x8BC0-0x8BFF + +AMD_performance_monitor enum: + COUNTER_TYPE_AMD = 0x8BC0 + COUNTER_RANGE_AMD = 0x8BC1 + UNSIGNED_INT64_AMD = 0x8BC2 + PERCENTAGE_AMD = 0x8BC3 + PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 + PERFMON_RESULT_SIZE_AMD = 0x8BC5 + PERFMON_RESULT_AMD = 0x8BC6 + +# ATI_future_use: 0x8BC7-0x8BD1 + +QCOM_extended_get enum: (OpenGL ES only) + TEXTURE_WIDTH_QCOM = 0x8BD2 + TEXTURE_HEIGHT_QCOM = 0x8BD3 + TEXTURE_DEPTH_QCOM = 0x8BD4 + TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5 + TEXTURE_FORMAT_QCOM = 0x8BD6 + TEXTURE_TYPE_QCOM = 0x8BD7 + TEXTURE_IMAGE_VALID_QCOM = 0x8BD8 + TEXTURE_NUM_LEVELS_QCOM = 0x8BD9 + TEXTURE_TARGET_QCOM = 0x8BDA + TEXTURE_OBJECT_VALID_QCOM = 0x8BDB + STATE_RESTORE = 0x8BDC + +# ATI_future_use: 0x8BDD-0x8BFF + +############################################################################### + +# Imagination Tech.: 0x8C00-0x8C0F + +IMG_texture_compression_pvrtc enum: (OpenGL ES only) + COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00 + COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01 + COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02 + COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 + +IMG_texture_env_enhanced_fixed_function enum: (OpenGL ES only) + MODULATE_COLOR_IMG = 0x8C04 + RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05 + TEXTURE_ALPHA_MODULATE_IMG = 0x8C06 + FACTOR_ALPHA_MODULATE_IMG = 0x8C07 + FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08 + ADD_BLEND_IMG = 0x8C09 + +IMG_shader_binary: (OpenGL ES only) + SGX_BINARY_IMG = 0x8C0A + +# IMG_future_use: 0x8C0B-0x8C0F + +############################################################################### + +# NVIDIA: 0x8C10-0x8C8F (Pat Brown) + +VERSION_3_0 enum: + use ARB_framebuffer_object TEXTURE_RED_TYPE + use ARB_framebuffer_object TEXTURE_GREEN_TYPE + use ARB_framebuffer_object TEXTURE_BLUE_TYPE + use ARB_framebuffer_object TEXTURE_ALPHA_TYPE + use ARB_framebuffer_object TEXTURE_LUMINANCE_TYPE + use ARB_framebuffer_object TEXTURE_INTENSITY_TYPE + use ARB_framebuffer_object TEXTURE_DEPTH_TYPE + use ARB_framebuffer_object UNSIGNED_NORMALIZED + +ARB_framebuffer_object enum: (note: no ARB suffixes) + TEXTURE_RED_TYPE = 0x8C10 # VERSION_3_0 / ARB_fbo + TEXTURE_GREEN_TYPE = 0x8C11 # VERSION_3_0 / ARB_fbo + TEXTURE_BLUE_TYPE = 0x8C12 # VERSION_3_0 / ARB_fbo + TEXTURE_ALPHA_TYPE = 0x8C13 # VERSION_3_0 / ARB_fbo + TEXTURE_LUMINANCE_TYPE = 0x8C14 # VERSION_3_0 / ARB_fbo + TEXTURE_INTENSITY_TYPE = 0x8C15 # VERSION_3_0 / ARB_fbo + TEXTURE_DEPTH_TYPE = 0x8C16 # VERSION_3_0 / ARB_fbo + UNSIGNED_NORMALIZED = 0x8C17 # VERSION_3_0 / ARB_fbo + +ARB_texture_float enum: (additional; see above) + TEXTURE_RED_TYPE_ARB = 0x8C10 + TEXTURE_GREEN_TYPE_ARB = 0x8C11 + TEXTURE_BLUE_TYPE_ARB = 0x8C12 + TEXTURE_ALPHA_TYPE_ARB = 0x8C13 + TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 + TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 + TEXTURE_DEPTH_TYPE_ARB = 0x8C16 + UNSIGNED_NORMALIZED_ARB = 0x8C17 + +VERSION_3_0 enum: + TEXTURE_1D_ARRAY = 0x8C18 # VERSION_3_0 + PROXY_TEXTURE_1D_ARRAY = 0x8C19 # VERSION_3_0 + TEXTURE_2D_ARRAY = 0x8C1A # VERSION_3_0 + PROXY_TEXTURE_2D_ARRAY = 0x8C1B # VERSION_3_0 + TEXTURE_BINDING_1D_ARRAY = 0x8C1C # VERSION_3_0 + TEXTURE_BINDING_2D_ARRAY = 0x8C1D # VERSION_3_0 + +EXT_texture_array enum: + TEXTURE_1D_ARRAY_EXT = 0x8C18 + PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 + TEXTURE_2D_ARRAY_EXT = 0x8C1A + PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B + TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C + TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D + +# NV_future_use: 0x8C1E-0x8C25 + +VERSION_3_2 enum: + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 + +ARB_geometry_shader4 enum: (additional; see below) + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 + +NV_geometry_program4 enum: + GEOMETRY_PROGRAM_NV = 0x8C26 + MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 + MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29 + +VERSION_3_1 enum: + TEXTURE_BUFFER = 0x8C2A + MAX_TEXTURE_BUFFER_SIZE = 0x8C2B + TEXTURE_BINDING_BUFFER = 0x8C2C + TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D + TEXTURE_BUFFER_FORMAT = 0x8C2E + +ARB_texture_buffer_object enum: + TEXTURE_BUFFER_ARB = 0x8C2A + MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B + TEXTURE_BINDING_BUFFER_ARB = 0x8C2C + TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D + TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E + +EXT_texture_buffer_object enum: + TEXTURE_BUFFER_EXT = 0x8C2A + MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B + TEXTURE_BINDING_BUFFER_EXT = 0x8C2C + TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D + TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E + +# NV_future_use: 0x8C2F-0x8C35 + +ARB_sample_shading enum: + SAMPLE_SHADING_ARB = 0x8C36 + MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37 + +# NV_future_use: 0x8C38-0x8C39 + +VERSION_3_0 enum: + R11F_G11F_B10F = 0x8C3A # VERSION_3_0 + UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B # VERSION_3_0 + +EXT_packed_float enum: + R11F_G11F_B10F_EXT = 0x8C3A + UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B + RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C + +VERSION_3_0 enum: + RGB9_E5 = 0x8C3D # VERSION_3_0 + UNSIGNED_INT_5_9_9_9_REV = 0x8C3E # VERSION_3_0 + TEXTURE_SHARED_SIZE = 0x8C3F # VERSION_3_0 + +EXT_texture_shared_exponent enum: + RGB9_E5_EXT = 0x8C3D + UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E + TEXTURE_SHARED_SIZE_EXT = 0x8C3F + +VERSION_2_1 enum: (Generic formats promoted for OpenGL 2.1) + SRGB = 0x8C40 # VERSION_2_1 + SRGB8 = 0x8C41 # VERSION_2_1 + SRGB_ALPHA = 0x8C42 # VERSION_2_1 + SRGB8_ALPHA8 = 0x8C43 # VERSION_2_1 + SLUMINANCE_ALPHA = 0x8C44 # VERSION_2_1 + SLUMINANCE8_ALPHA8 = 0x8C45 # VERSION_2_1 + SLUMINANCE = 0x8C46 # VERSION_2_1 + SLUMINANCE8 = 0x8C47 # VERSION_2_1 + COMPRESSED_SRGB = 0x8C48 # VERSION_2_1 + COMPRESSED_SRGB_ALPHA = 0x8C49 # VERSION_2_1 + COMPRESSED_SLUMINANCE = 0x8C4A # VERSION_2_1 + COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B # VERSION_2_1 + +EXT_texture_sRGB enum: + SRGB_EXT = 0x8C40 # EXT_texture_sRGB + SRGB8_EXT = 0x8C41 # EXT_texture_sRGB + SRGB_ALPHA_EXT = 0x8C42 # EXT_texture_sRGB + SRGB8_ALPHA8_EXT = 0x8C43 # EXT_texture_sRGB + SLUMINANCE_ALPHA_EXT = 0x8C44 # EXT_texture_sRGB + SLUMINANCE8_ALPHA8_EXT = 0x8C45 # EXT_texture_sRGB + SLUMINANCE_EXT = 0x8C46 # EXT_texture_sRGB + SLUMINANCE8_EXT = 0x8C47 # EXT_texture_sRGB + COMPRESSED_SRGB_EXT = 0x8C48 # EXT_texture_sRGB + COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 # EXT_texture_sRGB + COMPRESSED_SLUMINANCE_EXT = 0x8C4A # EXT_texture_sRGB + COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B # EXT_texture_sRGB + COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C + COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D + COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E + COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F + +# NV_future_use: 0x8C50-0x8C6F + +EXT_texture_compression_latc enum: + COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 + COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 + COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 + COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 + +# NV_future_use: 0x8C74-0x8C75 + +#@@ separate extensions +VERSION_3_0 enum: +EXT_transform_feedback enum: +NV_transform_feedback enum: + TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76 # VERSION_3_0 + TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 + BACK_PRIMARY_COLOR_NV = 0x8C77 + BACK_SECONDARY_COLOR_NV = 0x8C78 + TEXTURE_COORD_NV = 0x8C79 + CLIP_DISTANCE_NV = 0x8C7A + VERTEX_ID_NV = 0x8C7B + PRIMITIVE_ID_NV = 0x8C7C + GENERIC_ATTRIB_NV = 0x8C7D + TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E + TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F # VERSION_3_0 + TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F + TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80 # VERSION_3_0 + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 + ACTIVE_VARYINGS_NV = 0x8C81 + ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 + TRANSFORM_FEEDBACK_VARYINGS = 0x8C83 # VERSION_3_0 + TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 + TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 + TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84 # VERSION_3_0 + TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 + TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 + TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85 # VERSION_3_0 + TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 + TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 + TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 + PRIMITIVES_GENERATED = 0x8C87 # VERSION_3_0 + PRIMITIVES_GENERATED_EXT = 0x8C87 + PRIMITIVES_GENERATED_NV = 0x8C87 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88 # VERSION_3_0 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 + RASTERIZER_DISCARD = 0x8C89 # VERSION_3_0 + RASTERIZER_DISCARD_EXT = 0x8C89 + RASTERIZER_DISCARD_NV = 0x8C89 + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A # VERSION_3_0 + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B # VERSION_3_0 + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B + INTERLEAVED_ATTRIBS = 0x8C8C # VERSION_3_0 + INTERLEAVED_ATTRIBS_EXT = 0x8C8C + INTERLEAVED_ATTRIBS_NV = 0x8C8C + SEPARATE_ATTRIBS = 0x8C8D # VERSION_3_0 + SEPARATE_ATTRIBS_EXT = 0x8C8D + SEPARATE_ATTRIBS_NV = 0x8C8D + TRANSFORM_FEEDBACK_BUFFER = 0x8C8E # VERSION_3_0 + TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E + TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E + TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F # VERSION_3_0 + TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F + TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F + +############################################################################### + +# ATI: 0x8C90-0x8C9F (Affie Munshi, OpenGL ES extensions) + +# AMD_future_use: 0x8C90-0x8C91 + +AMD_compressed_ATC_texture enum: (OpenGL ES only) + ATC_RGB_AMD = 0x8C92 + ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93 + +# AMD_future_use: 0x8C94-0x8C9F + +############################################################################### + +# OpenGL ARB: 0x8CA0-0x8CAF + +VERSION_2_0 enum: + POINT_SPRITE_COORD_ORIGIN = 0x8CA0 + LOWER_LEFT = 0x8CA1 + UPPER_LEFT = 0x8CA2 + STENCIL_BACK_REF = 0x8CA3 + STENCIL_BACK_VALUE_MASK = 0x8CA4 + STENCIL_BACK_WRITEMASK = 0x8CA5 + +VERSION_3_0 enum: + use ARB_framebuffer_object FRAMEBUFFER_BINDING + use ARB_framebuffer_object DRAW_FRAMEBUFFER_BINDING + use ARB_framebuffer_object RENDERBUFFER_BINDING + +ARB_framebuffer_object enum: (note: no ARB suffixes) + FRAMEBUFFER_BINDING = 0x8CA6 # VERSION_3_0 / ARB_fbo + DRAW_FRAMEBUFFER_BINDING = 0x8CA6 # VERSION_3_0 / ARB_fbo # alias GL_FRAMEBUFFER_BINDING + RENDERBUFFER_BINDING = 0x8CA7 # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_object enum: (additional; see below) + FRAMEBUFFER_BINDING_EXT = 0x8CA6 + RENDERBUFFER_BINDING_EXT = 0x8CA7 + +EXT_framebuffer_blit enum: (additional; see below) + DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 # EXT_framebuffer_blit # alias GL_FRAMEBUFFER_BINDING_EXT + +# Aliases EXT_framebuffer_object enums above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + FRAMEBUFFER_BINDING_OES = 0x8CA6 + RENDERBUFFER_BINDING_OES = 0x8CA7 + +VERSION_3_0 enum: + use ARB_framebuffer_object READ_FRAMEBUFFER + use ARB_framebuffer_object DRAW_FRAMEBUFFER + use ARB_framebuffer_object READ_FRAMEBUFFER_BINDING + +ARB_framebuffer_object enum: (note: no ARB suffixes) + READ_FRAMEBUFFER = 0x8CA8 # VERSION_3_0 / ARB_fbo + DRAW_FRAMEBUFFER = 0x8CA9 # VERSION_3_0 / ARB_fbo + READ_FRAMEBUFFER_BINDING = 0x8CAA # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_blit enum: + READ_FRAMEBUFFER_EXT = 0x8CA8 + DRAW_FRAMEBUFFER_EXT = 0x8CA9 + DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 # alias GL_FRAMEBUFFER_BINDING_EXT + READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA + +VERSION_3_0 enum: + use ARB_framebuffer_object RENDERBUFFER_SAMPLES + +ARB_framebuffer_object enum: (note: no ARB suffixes) + RENDERBUFFER_SAMPLES = 0x8CAB # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_multisample enum: + RENDERBUFFER_SAMPLES_EXT = 0x8CAB + +NV_framebuffer_multisample_coverage enum: (additional; see below) + RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB + +# All enums except external format are incompatible with NV_depth_buffer_float +VERSION_3_0 enum: +ARB_depth_buffer_float enum: (note: no ARB suffixes) + DEPTH_COMPONENT32F = 0x8CAC + DEPTH32F_STENCIL8 = 0x8CAD + +# ARB_future_use: 0x8CAF + +############################################################################### + +# 3Dlabs: 0x8CB0-0x8CCF (Barthold Lichtenbelt, 2004/12/1) + +############################################################################### + +# OpenGL ARB: 0x8CD0-0x8D5F (Framebuffer object specification + headroom) + +#@@ separate extensions +VERSION_3_0 enum: +ARB_geometry_shader4 enum: (additional; see below; note: no ARB suffixes) +ARB_framebuffer_object enum: (note: no ARB suffixes) +EXT_framebuffer_object enum: (additional; see above) + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 + FRAMEBUFFER_COMPLETE = 0x8CD5 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 + FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 +## Removed 2005/09/26 in revision #117 of the extension: +## FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = 0x8CD8 + FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 + FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB + FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC + FRAMEBUFFER_UNSUPPORTED = 0x8CDD # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD +## Removed 2005/05/31 in revision #113 of the extension: +## FRAMEBUFFER_STATUS_ERROR_EXT = 0x8CDE + MAX_COLOR_ATTACHMENTS = 0x8CDF # VERSION_3_0 / ARB_fbo + MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF + COLOR_ATTACHMENT0 = 0x8CE0 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT0_EXT = 0x8CE0 + COLOR_ATTACHMENT1 = 0x8CE1 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT1_EXT = 0x8CE1 + COLOR_ATTACHMENT2 = 0x8CE2 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT2_EXT = 0x8CE2 + COLOR_ATTACHMENT3 = 0x8CE3 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT3_EXT = 0x8CE3 + COLOR_ATTACHMENT4 = 0x8CE4 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT4_EXT = 0x8CE4 + COLOR_ATTACHMENT5 = 0x8CE5 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT5_EXT = 0x8CE5 + COLOR_ATTACHMENT6 = 0x8CE6 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT6_EXT = 0x8CE6 + COLOR_ATTACHMENT7 = 0x8CE7 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT7_EXT = 0x8CE7 + COLOR_ATTACHMENT8 = 0x8CE8 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT8_EXT = 0x8CE8 + COLOR_ATTACHMENT9 = 0x8CE9 # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT9_EXT = 0x8CE9 + COLOR_ATTACHMENT10 = 0x8CEA # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT10_EXT = 0x8CEA + COLOR_ATTACHMENT11 = 0x8CEB # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT11_EXT = 0x8CEB + COLOR_ATTACHMENT12 = 0x8CEC # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT12_EXT = 0x8CEC + COLOR_ATTACHMENT13 = 0x8CED # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT13_EXT = 0x8CED + COLOR_ATTACHMENT14 = 0x8CEE # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT14_EXT = 0x8CEE + COLOR_ATTACHMENT15 = 0x8CEF # VERSION_3_0 / ARB_fbo + COLOR_ATTACHMENT15_EXT = 0x8CEF +# 0x8CF0-0x8CFF reserved for color attachments 16-31, if needed + DEPTH_ATTACHMENT = 0x8D00 # VERSION_3_0 / ARB_fbo + DEPTH_ATTACHMENT_EXT = 0x8D00 +# 0x8D01-0x8D1F reserved for depth attachments 1-31, if needed + STENCIL_ATTACHMENT = 0x8D20 # VERSION_3_0 / ARB_fbo + STENCIL_ATTACHMENT_EXT = 0x8D20 +# 0x8D21-0x8D3F reserved for stencil attachments 1-31, if needed + FRAMEBUFFER = 0x8D40 # VERSION_3_0 / ARB_fbo + FRAMEBUFFER_EXT = 0x8D40 + RENDERBUFFER = 0x8D41 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_EXT = 0x8D41 + RENDERBUFFER_WIDTH = 0x8D42 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_WIDTH_EXT = 0x8D42 + RENDERBUFFER_HEIGHT = 0x8D43 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_HEIGHT_EXT = 0x8D43 + RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 +# 0x8D45 unused (reserved for STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead) + STENCIL_INDEX1 = 0x8D46 # VERSION_3_0 / ARB_fbo + STENCIL_INDEX1_EXT = 0x8D46 + STENCIL_INDEX4 = 0x8D47 # VERSION_3_0 / ARB_fbo + STENCIL_INDEX4_EXT = 0x8D47 + STENCIL_INDEX8 = 0x8D48 # VERSION_3_0 / ARB_fbo + STENCIL_INDEX8_EXT = 0x8D48 + STENCIL_INDEX16 = 0x8D49 # VERSION_3_0 / ARB_fbo + STENCIL_INDEX16_EXT = 0x8D49 +# 0x8D4A-0x8D4D reserved for additional stencil formats +# Added 2005/05/31 in revision #113 of the extension: + RENDERBUFFER_RED_SIZE = 0x8D50 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_RED_SIZE_EXT = 0x8D50 + RENDERBUFFER_GREEN_SIZE = 0x8D51 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 + RENDERBUFFER_BLUE_SIZE = 0x8D52 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 + RENDERBUFFER_ALPHA_SIZE = 0x8D53 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 + RENDERBUFFER_DEPTH_SIZE = 0x8D54 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 + RENDERBUFFER_STENCIL_SIZE = 0x8D55 # VERSION_3_0 / ARB_fbo + RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 + +# Aliases EXT_framebuffer_object enum above +# @@@??? does this appear in OES_texture3D, or OES_framebuffer_object? +# extension spec & gl2ext.h disagree! +OES_texture3D enum: (OpenGL ES only; additional; see above) + FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 + +# Aliases EXT_framebuffer_object enums above +OES_framebuffer_object enum: (OpenGL ES only; additional; see below) + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0 + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2 + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3 + FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 + FRAMEBUFFER_COMPLETE_OES = 0x8CD5 + FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6 + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7 + FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9 + FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB + FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC + FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD + COLOR_ATTACHMENT0_OES = 0x8CE0 + DEPTH_ATTACHMENT_OES = 0x8D00 + STENCIL_ATTACHMENT_OES = 0x8D20 + FRAMEBUFFER_OES = 0x8D40 + RENDERBUFFER_OES = 0x8D41 + RENDERBUFFER_WIDTH_OES = 0x8D42 + RENDERBUFFER_HEIGHT_OES = 0x8D43 + RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44 + STENCIL_INDEX1_OES = 0x8D46 + STENCIL_INDEX4_OES = 0x8D47 + STENCIL_INDEX8_OES = 0x8D48 + RENDERBUFFER_RED_SIZE_OES = 0x8D50 + RENDERBUFFER_GREEN_SIZE_OES = 0x8D51 + RENDERBUFFER_BLUE_SIZE_OES = 0x8D52 + RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53 + RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54 + RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55 + +OES_stencil1 enum: (OpenGL ES only; additional; see below) + use OES_framebuffer_object STENCIL_INDEX1_OES + +OES_stencil4 enum: (OpenGL ES only; additional; see below) + use OES_framebuffer_object STENCIL_INDEX4_OES + +OES_stencil8 enum: (OpenGL ES only; additional; see below) + use OES_framebuffer_object STENCIL_INDEX8_OES + +VERSION_3_0 enum: +ARB_framebuffer_object enum: (note: no ARB suffixes) +# Added 2006/10/10 in revision #6b of the extension. + FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56 # VERSION_3_0 / ARB_fbo + MAX_SAMPLES = 0x8D57 # VERSION_3_0 / ARB_fbo + +EXT_framebuffer_multisample enum: (additional; see above) + FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56 + MAX_SAMPLES_EXT = 0x8D57 + +# 0x8D58-0x8D5F reserved for additional FBO enums + +NV_geometry_program4 enum: (additional; see above) + FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4 + +############################################################################### + +# Khronos OpenGL ES WG: 0x8D60-0x8D6F + +OES_texture_cube_map enum: (OpenGL ES only) + TEXTURE_GEN_STR_OES = 0x8D60 + +OES_texture_float enum: (OpenGL ES only) + HALF_FLOAT_OES = 0x8D61 + +OES_vertex_half_float enum: (OpenGL ES only) + use OES_texture_float HALF_FLOAT_OES + +OES_framebuffer_object enum: (OpenGL ES only) + RGB565_OES = 0x8D62 + +# Khronos_future_use: 0x8D63 + +OES_compressed_ETC1_RGB8_texture enum: (OpenGL ES only) + ETC1_RGB8_OES = 0x8D64 + +OES_EGL_image_external enum: (OpenGL ES only) (bug 4621) + TEXTURE_EXTERNAL_OES = 0x8D65 + SAMPLER_EXTERNAL_OES = 0x8D66 + TEXTURE_BINDING_EXTERNAL_OES = 0x8D67 + REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68 + +# Khronos_future_use: 0x8D69-0x8D6F + +############################################################################### + +# NVIDIA: 0x8D70-0x8DEF +# Reserved per email from Pat Brown 2005/10/13 + +#@@ separate extensions +VERSION_3_0 enum: +EXT_texture_integer enum: + RGBA32UI = 0x8D70 # VERSION_3_0 + RGBA32UI_EXT = 0x8D70 + RGB32UI = 0x8D71 # VERSION_3_0 + RGB32UI_EXT = 0x8D71 + ALPHA32UI_EXT = 0x8D72 + INTENSITY32UI_EXT = 0x8D73 + LUMINANCE32UI_EXT = 0x8D74 + LUMINANCE_ALPHA32UI_EXT = 0x8D75 + RGBA16UI = 0x8D76 # VERSION_3_0 + RGBA16UI_EXT = 0x8D76 + RGB16UI = 0x8D77 # VERSION_3_0 + RGB16UI_EXT = 0x8D77 + ALPHA16UI_EXT = 0x8D78 + INTENSITY16UI_EXT = 0x8D79 + LUMINANCE16UI_EXT = 0x8D7A + LUMINANCE_ALPHA16UI_EXT = 0x8D7B + RGBA8UI = 0x8D7C # VERSION_3_0 + RGBA8UI_EXT = 0x8D7C + RGB8UI = 0x8D7D # VERSION_3_0 + RGB8UI_EXT = 0x8D7D + ALPHA8UI_EXT = 0x8D7E + INTENSITY8UI_EXT = 0x8D7F + LUMINANCE8UI_EXT = 0x8D80 + LUMINANCE_ALPHA8UI_EXT = 0x8D81 + RGBA32I = 0x8D82 # VERSION_3_0 + RGBA32I_EXT = 0x8D82 + RGB32I = 0x8D83 # VERSION_3_0 + RGB32I_EXT = 0x8D83 + ALPHA32I_EXT = 0x8D84 + INTENSITY32I_EXT = 0x8D85 + LUMINANCE32I_EXT = 0x8D86 + LUMINANCE_ALPHA32I_EXT = 0x8D87 + RGBA16I = 0x8D88 # VERSION_3_0 + RGBA16I_EXT = 0x8D88 + RGB16I = 0x8D89 # VERSION_3_0 + RGB16I_EXT = 0x8D89 + ALPHA16I_EXT = 0x8D8A + INTENSITY16I_EXT = 0x8D8B + LUMINANCE16I_EXT = 0x8D8C + LUMINANCE_ALPHA16I_EXT = 0x8D8D + RGBA8I = 0x8D8E # VERSION_3_0 + RGBA8I_EXT = 0x8D8E + RGB8I = 0x8D8F # VERSION_3_0 + RGB8I_EXT = 0x8D8F + ALPHA8I_EXT = 0x8D90 + INTENSITY8I_EXT = 0x8D91 + LUMINANCE8I_EXT = 0x8D92 + LUMINANCE_ALPHA8I_EXT = 0x8D93 + RED_INTEGER = 0x8D94 # VERSION_3_0 + RED_INTEGER_EXT = 0x8D94 + GREEN_INTEGER = 0x8D95 # VERSION_3_0 + GREEN_INTEGER_EXT = 0x8D95 + BLUE_INTEGER = 0x8D96 # VERSION_3_0 + BLUE_INTEGER_EXT = 0x8D96 + ALPHA_INTEGER = 0x8D97 # VERSION_3_0 + ALPHA_INTEGER_EXT = 0x8D97 + RGB_INTEGER = 0x8D98 # VERSION_3_0 + RGB_INTEGER_EXT = 0x8D98 + RGBA_INTEGER = 0x8D99 # VERSION_3_0 + RGBA_INTEGER_EXT = 0x8D99 + BGR_INTEGER = 0x8D9A # VERSION_3_0 + BGR_INTEGER_EXT = 0x8D9A + BGRA_INTEGER = 0x8D9B # VERSION_3_0 + BGRA_INTEGER_EXT = 0x8D9B + LUMINANCE_INTEGER_EXT = 0x8D9C + LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D + RGBA_INTEGER_MODE_EXT = 0x8D9E + +# NV_future_use: 0x8D9F + +NV_parameter_buffer_object enum: + MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 + MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 + VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 + GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 + FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 + +NV_gpu_program4 enum: (additional; see above) + MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 + MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 + +VERSION_3_2 enum: + FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 + +ARB_geometry_shader4 enum: (additional; see below) + FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 + FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 + +NV_geometry_program4 enum: (additional; see above) + FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8 + FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9 + +# NV_future_use: 0x8DAA + +VERSION_3_0 enum: +ARB_depth_buffer_float enum: (additional; see above; some values different from NV; note: no ARB suffixes) + FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD + +NV_depth_buffer_float enum: + DEPTH_COMPONENT32F_NV = 0x8DAB + DEPTH32F_STENCIL8_NV = 0x8DAC + FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD + DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF + +# NV_future_use: 0x8DAE +# NV_future_use: 0x8DB0-0x8DB8 + +VERSION_3_0 enum: +ARB_framebuffer_sRGB enum: (note: no ARB suffixes) + FRAMEBUFFER_SRGB = 0x8DB9 # VERSION_3_0 / ARB_sRGB + +EXT_framebuffer_sRGB enum: + FRAMEBUFFER_SRGB_EXT = 0x8DB9 + FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA + +VERSION_3_0 enum: +ARB_texture_compression_rgtc enum: (note: no ARB suffixes) + COMPRESSED_RED_RGTC1 = 0x8DBB # VERSION_3_0 / ARB_tcrgtc + COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC # VERSION_3_0 / ARB_tcrgtc + COMPRESSED_RG_RGTC2 = 0x8DBD # VERSION_3_0 / ARB_tcrgtc + COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE # VERSION_3_0 / ARB_tcrgtc + +EXT_texture_compression_rgtc enum: + COMPRESSED_RED_RGTC1_EXT = 0x8DBB + COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC + COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD + COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE + +# NV_future_use: 0x8DBF + +VERSION_3_0 enum: + SAMPLER_1D_ARRAY = 0x8DC0 # VERSION_3_0 + SAMPLER_2D_ARRAY = 0x8DC1 # VERSION_3_0 + SAMPLER_1D_ARRAY_SHADOW = 0x8DC3 # VERSION_3_0 + SAMPLER_2D_ARRAY_SHADOW = 0x8DC4 # VERSION_3_0 + SAMPLER_CUBE_SHADOW = 0x8DC5 # VERSION_3_0 + UNSIGNED_INT_VEC2 = 0x8DC6 # VERSION_3_0 + UNSIGNED_INT_VEC3 = 0x8DC7 # VERSION_3_0 + UNSIGNED_INT_VEC4 = 0x8DC8 # VERSION_3_0 + INT_SAMPLER_1D = 0x8DC9 # VERSION_3_0 + INT_SAMPLER_2D = 0x8DCA # VERSION_3_0 + INT_SAMPLER_3D = 0x8DCB # VERSION_3_0 + INT_SAMPLER_CUBE = 0x8DCC # VERSION_3_0 + INT_SAMPLER_1D_ARRAY = 0x8DCE # VERSION_3_0 + INT_SAMPLER_2D_ARRAY = 0x8DCF # VERSION_3_0 + UNSIGNED_INT_SAMPLER_1D = 0x8DD1 # VERSION_3_0 + UNSIGNED_INT_SAMPLER_2D = 0x8DD2 # VERSION_3_0 + UNSIGNED_INT_SAMPLER_3D = 0x8DD3 # VERSION_3_0 + UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4 # VERSION_3_0 + UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6 # VERSION_3_0 + UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7 # VERSION_3_0 + +VERSION_3_1 enum: (Promoted from EXT_gpu_shader4 + ARB_texture_rectangle / ARB_uniform_buffer_object) + SAMPLER_BUFFER = 0x8DC2 # EXT_gpu_shader4 + ARB_texture_buffer_object + INT_SAMPLER_2D_RECT = 0x8DCD # EXT_gpu_shader4 + ARB_texture_rectangle + INT_SAMPLER_BUFFER = 0x8DD0 # EXT_gpu_shader4 + ARB_texture_buffer_object + UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5 # EXT_gpu_shader4 + ARB_texture_rectangle + UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8 # EXT_gpu_shader4 + ARB_texture_buffer_object + +EXT_gpu_shader4 enum: + SAMPLER_1D_ARRAY_EXT = 0x8DC0 + SAMPLER_2D_ARRAY_EXT = 0x8DC1 + SAMPLER_BUFFER_EXT = 0x8DC2 + SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 + SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 + SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 + UNSIGNED_INT_VEC2_EXT = 0x8DC6 + UNSIGNED_INT_VEC3_EXT = 0x8DC7 + UNSIGNED_INT_VEC4_EXT = 0x8DC8 + INT_SAMPLER_1D_EXT = 0x8DC9 + INT_SAMPLER_2D_EXT = 0x8DCA + INT_SAMPLER_3D_EXT = 0x8DCB + INT_SAMPLER_CUBE_EXT = 0x8DCC + INT_SAMPLER_2D_RECT_EXT = 0x8DCD + INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE + INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF + INT_SAMPLER_BUFFER_EXT = 0x8DD0 + UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 + UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 + UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 + UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 + UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 + UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 + UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 + UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8 + +VERSION_3_2 enum: + GEOMETRY_SHADER = 0x8DD9 + +ARB_geometry_shader4 enum: + GEOMETRY_SHADER_ARB = 0x8DD9 + +EXT_geometry_shader4 enum: + GEOMETRY_SHADER_EXT = 0x8DD9 + +ARB_geometry_shader4 enum: (additional; see above) + GEOMETRY_VERTICES_OUT_ARB = 0x8DDA + GEOMETRY_INPUT_TYPE_ARB = 0x8DDB + GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC + +NV_geometry_program4 enum: (additional; see above) + GEOMETRY_VERTICES_OUT_EXT = 0x8DDA + GEOMETRY_INPUT_TYPE_EXT = 0x8DDB + GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC + +ARB_geometry_shader4 enum: (additional; see above) + MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD + MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE + MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 + +VERSION_3_2 enum: + MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 + +EXT_geometry_shader4 enum: (additional; see above) + MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD + MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE + MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1 + +EXT_bindable_uniform enum: + MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 + MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 + MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 + +# NV_future_use: 0x8DE5-0x8DEC + +EXT_bindable_uniform enum: (additional; see above) + MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED + UNIFORM_BUFFER_EXT = 0x8DEE + UNIFORM_BUFFER_BINDING_EXT = 0x8DEF + +############################################################################### + +# Khronos OpenGL ES WG: 0x8DF0-0x8E0F + +# Khronos_future_use: 0x8DF0-0x8DF5 + +OES_vertex_type_10_10_10_2 enum: (OpenGL ES only) + UNSIGNED_INT_10_10_10_2_OES = 0x8DF6 + INT_10_10_10_2_OES = 0x8DF7 + +# Khronos_future_use: 0x8DF8-0x8E0F + +############################################################################### + +# NVIDIA: 0x8E10-0x8E8F +# Reserved per email from Michael Gold 2006/8/7 + +NV_framebuffer_multisample_coverage enum: + RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 + MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 + MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 + +VERSION_3_0 enum: + QUERY_WAIT = 0x8E13 # VERSION_3_0 + QUERY_NO_WAIT = 0x8E14 # VERSION_3_0 + QUERY_BY_REGION_WAIT = 0x8E15 # VERSION_3_0 + QUERY_BY_REGION_NO_WAIT = 0x8E16 # VERSION_3_0 + +GL_NV_conditional_render enum: + QUERY_WAIT_NV = 0x8E13 + QUERY_NO_WAIT_NV = 0x8E14 + QUERY_BY_REGION_WAIT_NV = 0x8E15 + QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 + +# NV_future_use: 0x8E17-0x8E21 + +NV_transform_feedback2 enum: + TRANSFORM_FEEDBACK_NV = 0x8E22 + TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 + TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 + TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 + +NV_present_video enum: + FRAME_NV = 0x8E26 + FIELDS_NV = 0x8E27 + CURRENT_TIME_NV = 0x8E28 + NUM_FILL_STREAMS_NV = 0x8E29 + PRESENT_TIME_NV = 0x8E2A + PRESENT_DURATION_NV = 0x8E2B + +# NV_future_use: 0x8E2C + +EXT_direct_state_access enum: + PROGRAM_MATRIX_EXT = 0x8E2D + TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E + PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F + +# NV_future_use: 0x8E30-0x8E41 + +EXT_texture_swizzle enum: + TEXTURE_SWIZZLE_R_EXT = 0x8E42 + TEXTURE_SWIZZLE_G_EXT = 0x8E43 + TEXTURE_SWIZZLE_B_EXT = 0x8E44 + TEXTURE_SWIZZLE_A_EXT = 0x8E45 + TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 + +# NV_future_use: 0x8E47-0x8E4B + +VERSION_3_2 enum: + use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION + use ARB_provoking_vertex FIRST_VERTEX_CONVENTION + use ARB_provoking_vertex LAST_VERTEX_CONVENTION + use ARB_provoking_vertex PROVOKING_VERTEX + +ARB_provoking_vertex enum: + QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C + FIRST_VERTEX_CONVENTION = 0x8E4D + LAST_VERTEX_CONVENTION = 0x8E4E + PROVOKING_VERTEX = 0x8E4F + +EXT_provoking_vertex enum: + QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C + FIRST_VERTEX_CONVENTION_EXT = 0x8E4D + LAST_VERTEX_CONVENTION_EXT = 0x8E4E + PROVOKING_VERTEX_EXT = 0x8E4F + +VERSION_3_2 enum: + use ARB_texture_multisample SAMPLE_POSITION + use ARB_texture_multisample SAMPLE_MASK + use ARB_texture_multisample SAMPLE_MASK_VALUE + use ARB_texture_multisample MAX_SAMPLE_MASK_WORDS + +ARB_texture_multisample enum: + SAMPLE_POSITION = 0x8E50 + SAMPLE_MASK = 0x8E51 + SAMPLE_MASK_VALUE = 0x8E52 + MAX_SAMPLE_MASK_WORDS = 0x8E59 + +NV_explicit_multisample enum: + SAMPLE_POSITION_NV = 0x8E50 + SAMPLE_MASK_NV = 0x8E51 + SAMPLE_MASK_VALUE_NV = 0x8E52 + TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 + TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 + TEXTURE_RENDERBUFFER_NV = 0x8E55 + SAMPLER_RENDERBUFFER_NV = 0x8E56 + INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 + UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 + MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 + +# NV_future_use: 0x8E5A-0x8E5D + +ARB_texture_gather enum: + MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E + MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F + +# NV_future_use: 0x8E60-0x8E8F + +############################################################################### + +# QNX: 0x8E90-0x8E9F +# For GL_QNX_texture_tiling, GL_QNX_complex_polygon, GL_QNX_stippled_lines +# (Khronos bug 696) + +# QNX_future_use: 0x8E90-0x8E9F + +############################################################################### + +# Imagination Tech.: 0x8EA0-0x8EAF + +############################################################################### + +# Khronos OpenGL ES WG: 0x8EB0-0x8EBF +# Assigned for Affie Munshi on 2007/07/20 + +############################################################################### + +# Vincent: 0x8EC0-0x8ECF + +############################################################################### + +# NVIDIA: 0x8ED0-0x8F4F +# Assigned for Pat Brown (Khronos bug 3191) + +# NV_future_use: 0x8ED0-0x8F1C + +NV_shader_buffer_load enum: + BUFFER_GPU_ADDRESS_NV = 0x8F1D + +NV_vertex_buffer_unified_memory enum: + VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E + ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F + VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 + VERTEX_ARRAY_ADDRESS_NV = 0x8F21 + NORMAL_ARRAY_ADDRESS_NV = 0x8F22 + COLOR_ARRAY_ADDRESS_NV = 0x8F23 + INDEX_ARRAY_ADDRESS_NV = 0x8F24 + TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 + EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 + SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 + FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 + ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 + VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A + VERTEX_ARRAY_LENGTH_NV = 0x8F2B + NORMAL_ARRAY_LENGTH_NV = 0x8F2C + COLOR_ARRAY_LENGTH_NV = 0x8F2D + INDEX_ARRAY_LENGTH_NV = 0x8F2E + TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F + EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 + SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 + FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 + ELEMENT_ARRAY_LENGTH_NV = 0x8F33 + +NV_shader_buffer_load enum: (additional; see above) + GPU_ADDRESS_NV = 0x8F34 + MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 + +ARB_copy_buffer enum: + COPY_READ_BUFFER = 0x8F36 + COPY_WRITE_BUFFER = 0x8F37 + +VERSION_3_1 enum: + use ARB_copy_buffer COPY_READ_BUFFER + use ARB_copy_buffer COPY_WRITE_BUFFER + +# NVIDIA_future_use: 0x8F38-0x8F4F + +############################################################################### + +# 3Dlabs: 0x8F50-0x8F5F +# Assigned for Jon Kennedy (Khronos public bug 75) + +############################################################################### + +# ARM: 0x8F60-0x8F6F +# Assigned for Remi Pedersen (Khronos bug 3745) + +############################################################################### + +# HI Corp: 0x8F70-0x8F7F +# Assigned for Mark Callow (Khronos bug 4055) + +############################################################################### + +# Zebra Imaging: 0x8F80-0x8F8F +# Assigned for Mike Weiblen (Khronos public bug 91) + +############################################################################### + +# OpenGL ARB: 0x8F90-0x8F9F (SNORM textures, 3.1 primitive restart server state) + +VERSION_3_1 enum: + RED_SNORM = 0x8F90 # VERSION_3_1 + RG_SNORM = 0x8F91 # VERSION_3_1 + RGB_SNORM = 0x8F92 # VERSION_3_1 + RGBA_SNORM = 0x8F93 # VERSION_3_1 + R8_SNORM = 0x8F94 # VERSION_3_1 + RG8_SNORM = 0x8F95 # VERSION_3_1 + RGB8_SNORM = 0x8F96 # VERSION_3_1 + RGBA8_SNORM = 0x8F97 # VERSION_3_1 + R16_SNORM = 0x8F98 # VERSION_3_1 + RG16_SNORM = 0x8F99 # VERSION_3_1 + RGB16_SNORM = 0x8F9A # VERSION_3_1 + RGBA16_SNORM = 0x8F9B # VERSION_3_1 + SIGNED_NORMALIZED = 0x8F9C # VERSION_3_1 + PRIMITIVE_RESTART = 0x8F9D # Different from NV_primitive_restart value + PRIMITIVE_RESTART_INDEX = 0x8F9E # Different from NV_primitive_restart value + +ARB_texture_gather enum: (additional; see above) + MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F + +############################################################################### + +# Qualcomm: 0x8FA0-0x8FBF +# Assigned for Maurice Ribble (Khronos bug 4512) + +QCOM_driver_control enum: (OpenGL ES only) + PERFMON_GLOBAL_MODE_QCOM = 0x8FA0 + +# QCOM_future_use: 0x8FA1-0x8FBF + +############################################################################### + +# Vivante: 0x8FC0-0x8FDF +# Assigned for Frido Garritsen (Khronos bug 4526) + +############################################################################### + +# NVIDIA: 0x8FE0-0x8FFF +# Assigned for Pat Brown (Khronos bug 4935) + +# NV_future_use: 0x8FE0-0x8FFF + +############################################################################### + +# AMD: 0x9000-0x901F +# Assigned for Bill Licea-Kane + +AMD_vertex_shader_tesselator enum: + SAMPLER_BUFFER_AMD = 0x9001 + INT_SAMPLER_BUFFER_AMD = 0x9002 + UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 + TESSELLATION_MODE_AMD = 0x9004 + TESSELLATION_FACTOR_AMD = 0x9005 + DISCRETE_AMD = 0x9006 + CONTINUOUS_AMD = 0x9007 + +ARB_texture_cube_map_array enum: + TEXTURE_CUBE_MAP_ARRAY = 0x9009 + TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A + PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B + SAMPLER_CUBE_MAP_ARRAY = 0x900C + SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D + INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E + UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F + +# AMD_future_use: 0x9008-0x900F + +EXT_texture_snorm enum: + ALPHA_SNORM = 0x9010 + LUMINANCE_SNORM = 0x9011 + LUMINANCE_ALPHA_SNORM = 0x9012 + INTENSITY_SNORM = 0x9013 + ALPHA8_SNORM = 0x9014 + LUMINANCE8_SNORM = 0x9015 + LUMINANCE8_ALPHA8_SNORM = 0x9016 + INTENSITY8_SNORM = 0x9017 + ALPHA16_SNORM = 0x9018 + LUMINANCE16_SNORM = 0x9019 + LUMINANCE16_ALPHA16_SNORM = 0x901A + INTENSITY16_SNORM = 0x901B + +# AMD_future_use: 0x901C-0x901F + +############################################################################### + +# NVIDIA: 0x9020-0x90FF +# Assigned for Pat Brown (Khronos bug 4935) + +NV_video_capture enum: + VIDEO_BUFFER_NV = 0x9020 + VIDEO_BUFFER_BINDING_NV = 0x9021 + FIELD_UPPER_NV = 0x9022 + FIELD_LOWER_NV = 0x9023 + NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 + NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 + VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 + LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 + VIDEO_BUFFER_PITCH_NV = 0x9028 + VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 + VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A + VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B + VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C + VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D + PARTIAL_SUCCESS_NV = 0x902E + SUCCESS_NV = 0x902F + FAILURE_NV = 0x9030 + YCBYCR8_422_NV = 0x9031 + YCBAYCR8A_4224_NV = 0x9032 + Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 + Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 + Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 + Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 + Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 + VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 + VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 + VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A + VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B + VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C + +# NV_future_use: 0x903D-0x90FF + +############################################################################### + +# OpenGL ARB: 0x9100-0x912F + +VERSION_3_2 enum: + use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE + use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE + use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE + use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample TEXTURE_SAMPLES + use ARB_texture_multisample TEXTURE_FIXED_SAMPLE_LOCATIONS + use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample MAX_COLOR_TEXTURE_SAMPLES + use ARB_texture_multisample MAX_DEPTH_TEXTURE_SAMPLES + use ARB_texture_multisample MAX_INTEGER_SAMPLES + +ARB_texture_multisample enum: + TEXTURE_2D_MULTISAMPLE = 0x9100 + PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101 + TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102 + PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103 + TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104 + TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105 + TEXTURE_SAMPLES = 0x9106 + TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107 + SAMPLER_2D_MULTISAMPLE = 0x9108 + INT_SAMPLER_2D_MULTISAMPLE = 0x9109 + UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A + SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B + INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C + UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D + MAX_COLOR_TEXTURE_SAMPLES = 0x910E + MAX_DEPTH_TEXTURE_SAMPLES = 0x910F + MAX_INTEGER_SAMPLES = 0x9110 + +VERSION_3_2 enum: + use ARB_sync MAX_SERVER_WAIT_TIMEOUT + use ARB_sync OBJECT_TYPE + use ARB_sync SYNC_CONDITION + use ARB_sync SYNC_STATUS + use ARB_sync SYNC_FLAGS + use ARB_sync SYNC_FENCE + use ARB_sync SYNC_GPU_COMMANDS_COMPLETE + use ARB_sync UNSIGNALED + use ARB_sync SIGNALED + use ARB_sync ALREADY_SIGNALED + use ARB_sync TIMEOUT_EXPIRED + use ARB_sync CONDITION_SATISFIED + use ARB_sync WAIT_FAILED + use ARB_sync TIMEOUT_IGNORED + use ARB_sync SYNC_FLUSH_COMMANDS_BIT + use ARB_sync TIMEOUT_IGNORED + +ARB_sync enum: + MAX_SERVER_WAIT_TIMEOUT = 0x9111 + OBJECT_TYPE = 0x9112 + SYNC_CONDITION = 0x9113 + SYNC_STATUS = 0x9114 + SYNC_FLAGS = 0x9115 + SYNC_FENCE = 0x9116 + SYNC_GPU_COMMANDS_COMPLETE = 0x9117 + UNSIGNALED = 0x9118 + SIGNALED = 0x9119 + ALREADY_SIGNALED = 0x911A + TIMEOUT_EXPIRED = 0x911B + CONDITION_SATISFIED = 0x911C + WAIT_FAILED = 0x911D + SYNC_FLUSH_COMMANDS_BIT = 0x00000001 + TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFull + +VERSION_3_0 enum: + BUFFER_ACCESS_FLAGS = 0x911F + BUFFER_MAP_LENGTH = 0x9120 + BUFFER_MAP_OFFSET = 0x9121 + +VERSION_3_2 enum: + MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122 + MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 + MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 + MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125 + +VERSION_3_2 enum: + CONTEXT_CORE_PROFILE_BIT = 0x00000001 + CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 + CONTEXT_PROFILE_MASK = 0x9126 + +# ARB_future_use: 0x9127-0x912F + +############################################################################### + +# Imagination Tech.: 0x9130-0x913F (bug 882) + +IMG_program_binary: (OpenGL ES only) + SGX_PROGRAM_BINARY_IMG = 0x9130 + +# IMG_future_use: 0x9131-0x913F + +############################################################################### +### Please remember that new enumerant allocations must be obtained by request +### to the Khronos API registrar (see comments at the top of this file) +### File requests in the Khronos Bugzilla, OpenGL project, Registry component. +############################################################################### + +# Any_vendor_future_use: 0x9140-0xFFFF +# +# This range must be the last range in the file. To generate a new +# range, allocate multiples of 16 from the beginning of the +# Any_vendor_future_use range and update enum.spec + +# (NOTE: first fill the gap from 0x8FE0-0x8FFF before proceeding here) + +############################################################################### + +# ARB: 100000-100999 (GLU enumerants only) +# ARB: 101000-101999 (Conformance tests only) + +############################################################################### + +# IBM: 103000-103999 +# CULL_VERTEX_IBM = 103050 +# VERTEX_ARRAY_LIST_IBM = 103070 +# NORMAL_ARRAY_LIST_IBM = 103071 +# COLOR_ARRAY_LIST_IBM = 103072 +# INDEX_ARRAY_LIST_IBM = 103073 +# TEXTURE_COORD_ARRAY_LIST_IBM = 103074 +# EDGE_FLAG_ARRAY_LIST_IBM = 103075 +# FOG_COORDINATE_ARRAY_LIST_IBM = 103076 +# SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 +# VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 +# NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 +# COLOR_ARRAY_LIST_STRIDE_IBM = 103082 +# INDEX_ARRAY_LIST_STRIDE_IBM = 103083 +# TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 +# EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 +# FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 +# SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 + +############################################################################### + +# NEC: 104000-104999 +# Compaq: 105000-105999 (Compaq was acquired by HP) +# KPC: 106000-106999 (Kubota is out of business) +# PGI: 107000-107999 (Portable was acquired by Template Graphics) +# E&S: 108000-108999 + +############################################################################### diff --git a/src/glx/apple/specs/enumext.spec b/src/glx/apple/specs/enumext.spec new file mode 100644 index 0000000000..a89a154ab6 --- /dev/null +++ b/src/glx/apple/specs/enumext.spec @@ -0,0 +1,6195 @@ +# List of GL enumerants for glext.h header +# +# This is derived from the master GL enumerant registry (enum.spec). +# +# Unlike enum.spec, enumext.spec is +# (1) Grouped by GL core version or extension number +# (2) While it includes all extension and core enumerants, the +# generator scripts for glext.h leave out VERSION_1_1 +# tokens since it's assumed all today support at least +# OpenGL 1.1 +# (3) Has no 'Extensions' section, since enums are always +# conditionally protected against multiple definition +# by glextenum.pl. +# (4) Is processed by glextenum.pl, which has evolved +# from enum.pl - should merge back into one script. + +# glext.h version number - this should be automatically updated, +# when changing either enum or template spec files. + +############################################################################### +# +# OpenGL 1.0/1.1 enums (there is no VERSION_1_0 token) +# +############################################################################### + +VERSION_1_1 enum: +passthru: /* AttribMask */ + DEPTH_BUFFER_BIT = 0x00000100 # AttribMask + STENCIL_BUFFER_BIT = 0x00000400 # AttribMask + COLOR_BUFFER_BIT = 0x00004000 # AttribMask +passthru: /* Boolean */ + FALSE = 0 # Boolean + TRUE = 1 # Boolean +passthru: /* BeginMode */ + POINTS = 0x0000 # BeginMode + LINES = 0x0001 # BeginMode + LINE_LOOP = 0x0002 # BeginMode + LINE_STRIP = 0x0003 # BeginMode + TRIANGLES = 0x0004 # BeginMode + TRIANGLE_STRIP = 0x0005 # BeginMode + TRIANGLE_FAN = 0x0006 # BeginMode +passthru: /* AlphaFunction */ + NEVER = 0x0200 # AlphaFunction + LESS = 0x0201 # AlphaFunction + EQUAL = 0x0202 # AlphaFunction + LEQUAL = 0x0203 # AlphaFunction + GREATER = 0x0204 # AlphaFunction + NOTEQUAL = 0x0205 # AlphaFunction + GEQUAL = 0x0206 # AlphaFunction + ALWAYS = 0x0207 # AlphaFunction +passthru: /* BlendingFactorDest */ + ZERO = 0 # BlendingFactorDest + ONE = 1 # BlendingFactorDest + SRC_COLOR = 0x0300 # BlendingFactorDest + ONE_MINUS_SRC_COLOR = 0x0301 # BlendingFactorDest + SRC_ALPHA = 0x0302 # BlendingFactorDest + ONE_MINUS_SRC_ALPHA = 0x0303 # BlendingFactorDest + DST_ALPHA = 0x0304 # BlendingFactorDest + ONE_MINUS_DST_ALPHA = 0x0305 # BlendingFactorDest +passthru: /* BlendingFactorSrc */ + DST_COLOR = 0x0306 # BlendingFactorSrc + ONE_MINUS_DST_COLOR = 0x0307 # BlendingFactorSrc + SRC_ALPHA_SATURATE = 0x0308 # BlendingFactorSrc +passthru: /* DrawBufferMode */ + NONE = 0 # DrawBufferMode + FRONT_LEFT = 0x0400 # DrawBufferMode + FRONT_RIGHT = 0x0401 # DrawBufferMode + BACK_LEFT = 0x0402 # DrawBufferMode + BACK_RIGHT = 0x0403 # DrawBufferMode + FRONT = 0x0404 # DrawBufferMode + BACK = 0x0405 # DrawBufferMode + LEFT = 0x0406 # DrawBufferMode + RIGHT = 0x0407 # DrawBufferMode + FRONT_AND_BACK = 0x0408 # DrawBufferMode +passthru: /* ErrorCode */ + NO_ERROR = 0 # ErrorCode + INVALID_ENUM = 0x0500 # ErrorCode + INVALID_VALUE = 0x0501 # ErrorCode + INVALID_OPERATION = 0x0502 # ErrorCode + OUT_OF_MEMORY = 0x0505 # ErrorCode +passthru: /* FrontFaceDirection */ + CW = 0x0900 # FrontFaceDirection + CCW = 0x0901 # FrontFaceDirection +passthru: /* GetPName */ + POINT_SIZE = 0x0B11 # 1 F # GetPName + POINT_SIZE_RANGE = 0x0B12 # 2 F # GetPName + POINT_SIZE_GRANULARITY = 0x0B13 # 1 F # GetPName + LINE_SMOOTH = 0x0B20 # 1 I # GetPName + LINE_WIDTH = 0x0B21 # 1 F # GetPName + LINE_WIDTH_RANGE = 0x0B22 # 2 F # GetPName + LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F # GetPName + POLYGON_SMOOTH = 0x0B41 # 1 I # GetPName + CULL_FACE = 0x0B44 # 1 I # GetPName + CULL_FACE_MODE = 0x0B45 # 1 I # GetPName + FRONT_FACE = 0x0B46 # 1 I # GetPName + DEPTH_RANGE = 0x0B70 # 2 F # GetPName + DEPTH_TEST = 0x0B71 # 1 I # GetPName + DEPTH_WRITEMASK = 0x0B72 # 1 I # GetPName + DEPTH_CLEAR_VALUE = 0x0B73 # 1 F # GetPName + DEPTH_FUNC = 0x0B74 # 1 I # GetPName + STENCIL_TEST = 0x0B90 # 1 I # GetPName + STENCIL_CLEAR_VALUE = 0x0B91 # 1 I # GetPName + STENCIL_FUNC = 0x0B92 # 1 I # GetPName + STENCIL_VALUE_MASK = 0x0B93 # 1 I # GetPName + STENCIL_FAIL = 0x0B94 # 1 I # GetPName + STENCIL_PASS_DEPTH_FAIL = 0x0B95 # 1 I # GetPName + STENCIL_PASS_DEPTH_PASS = 0x0B96 # 1 I # GetPName + STENCIL_REF = 0x0B97 # 1 I # GetPName + STENCIL_WRITEMASK = 0x0B98 # 1 I # GetPName + VIEWPORT = 0x0BA2 # 4 I # GetPName + DITHER = 0x0BD0 # 1 I # GetPName + BLEND_DST = 0x0BE0 # 1 I # GetPName + BLEND_SRC = 0x0BE1 # 1 I # GetPName + BLEND = 0x0BE2 # 1 I # GetPName + LOGIC_OP_MODE = 0x0BF0 # 1 I # GetPName + COLOR_LOGIC_OP = 0x0BF2 # 1 I # GetPName + DRAW_BUFFER = 0x0C01 # 1 I # GetPName + READ_BUFFER = 0x0C02 # 1 I # GetPName + SCISSOR_BOX = 0x0C10 # 4 I # GetPName + SCISSOR_TEST = 0x0C11 # 1 I # GetPName + COLOR_CLEAR_VALUE = 0x0C22 # 4 F # GetPName + COLOR_WRITEMASK = 0x0C23 # 4 I # GetPName + DOUBLEBUFFER = 0x0C32 # 1 I # GetPName + STEREO = 0x0C33 # 1 I # GetPName + LINE_SMOOTH_HINT = 0x0C52 # 1 I # GetPName + POLYGON_SMOOTH_HINT = 0x0C53 # 1 I # GetPName + UNPACK_SWAP_BYTES = 0x0CF0 # 1 I # GetPName + UNPACK_LSB_FIRST = 0x0CF1 # 1 I # GetPName + UNPACK_ROW_LENGTH = 0x0CF2 # 1 I # GetPName + UNPACK_SKIP_ROWS = 0x0CF3 # 1 I # GetPName + UNPACK_SKIP_PIXELS = 0x0CF4 # 1 I # GetPName + UNPACK_ALIGNMENT = 0x0CF5 # 1 I # GetPName + PACK_SWAP_BYTES = 0x0D00 # 1 I # GetPName + PACK_LSB_FIRST = 0x0D01 # 1 I # GetPName + PACK_ROW_LENGTH = 0x0D02 # 1 I # GetPName + PACK_SKIP_ROWS = 0x0D03 # 1 I # GetPName + PACK_SKIP_PIXELS = 0x0D04 # 1 I # GetPName + PACK_ALIGNMENT = 0x0D05 # 1 I # GetPName + MAX_TEXTURE_SIZE = 0x0D33 # 1 I # GetPName + MAX_VIEWPORT_DIMS = 0x0D3A # 2 F # GetPName + SUBPIXEL_BITS = 0x0D50 # 1 I # GetPName + TEXTURE_1D = 0x0DE0 # 1 I # GetPName + TEXTURE_2D = 0x0DE1 # 1 I # GetPName + POLYGON_OFFSET_UNITS = 0x2A00 # 1 F # GetPName + POLYGON_OFFSET_POINT = 0x2A01 # 1 I # GetPName + POLYGON_OFFSET_LINE = 0x2A02 # 1 I # GetPName + POLYGON_OFFSET_FILL = 0x8037 # 1 I # GetPName + POLYGON_OFFSET_FACTOR = 0x8038 # 1 F # GetPName + TEXTURE_BINDING_1D = 0x8068 # 1 I # GetPName + TEXTURE_BINDING_2D = 0x8069 # 1 I # GetPName +passthru: /* GetTextureParameter */ + TEXTURE_WIDTH = 0x1000 # GetTextureParameter + TEXTURE_HEIGHT = 0x1001 # GetTextureParameter + TEXTURE_INTERNAL_FORMAT = 0x1003 # GetTextureParameter + TEXTURE_BORDER_COLOR = 0x1004 # GetTextureParameter + TEXTURE_RED_SIZE = 0x805C # GetTextureParameter + TEXTURE_GREEN_SIZE = 0x805D # GetTextureParameter + TEXTURE_BLUE_SIZE = 0x805E # GetTextureParameter + TEXTURE_ALPHA_SIZE = 0x805F # GetTextureParameter +passthru: /* HintMode */ + DONT_CARE = 0x1100 # HintMode + FASTEST = 0x1101 # HintMode + NICEST = 0x1102 # HintMode +passthru: /* DataType */ + BYTE = 0x1400 # DataType + UNSIGNED_BYTE = 0x1401 # DataType + SHORT = 0x1402 # DataType + UNSIGNED_SHORT = 0x1403 # DataType + INT = 0x1404 # DataType + UNSIGNED_INT = 0x1405 # DataType + FLOAT = 0x1406 # DataType + DOUBLE = 0x140A # DataType +passthru: /* LogicOp */ + CLEAR = 0x1500 # LogicOp + AND = 0x1501 # LogicOp + AND_REVERSE = 0x1502 # LogicOp + COPY = 0x1503 # LogicOp + AND_INVERTED = 0x1504 # LogicOp + NOOP = 0x1505 # LogicOp + XOR = 0x1506 # LogicOp + OR = 0x1507 # LogicOp + NOR = 0x1508 # LogicOp + EQUIV = 0x1509 # LogicOp + INVERT = 0x150A # LogicOp + OR_REVERSE = 0x150B # LogicOp + COPY_INVERTED = 0x150C # LogicOp + OR_INVERTED = 0x150D # LogicOp + NAND = 0x150E # LogicOp + SET = 0x150F # LogicOp +passthru: /* MatrixMode (for gl3.h, FBO attachment type) */ + TEXTURE = 0x1702 # MatrixMode +passthru: /* PixelCopyType */ + COLOR = 0x1800 # PixelCopyType + DEPTH = 0x1801 # PixelCopyType + STENCIL = 0x1802 # PixelCopyType +passthru: /* PixelFormat */ + STENCIL_INDEX = 0x1901 # PixelFormat + DEPTH_COMPONENT = 0x1902 # PixelFormat + RED = 0x1903 # PixelFormat + GREEN = 0x1904 # PixelFormat + BLUE = 0x1905 # PixelFormat + ALPHA = 0x1906 # PixelFormat + RGB = 0x1907 # PixelFormat + RGBA = 0x1908 # PixelFormat +passthru: /* PolygonMode */ + POINT = 0x1B00 # PolygonMode + LINE = 0x1B01 # PolygonMode + FILL = 0x1B02 # PolygonMode +passthru: /* StencilOp */ + KEEP = 0x1E00 # StencilOp + REPLACE = 0x1E01 # StencilOp + INCR = 0x1E02 # StencilOp + DECR = 0x1E03 # StencilOp +passthru: /* StringName */ + VENDOR = 0x1F00 # StringName + RENDERER = 0x1F01 # StringName + VERSION = 0x1F02 # StringName + EXTENSIONS = 0x1F03 # StringName +passthru: /* TextureMagFilter */ + NEAREST = 0x2600 # TextureMagFilter + LINEAR = 0x2601 # TextureMagFilter +passthru: /* TextureMinFilter */ + NEAREST_MIPMAP_NEAREST = 0x2700 # TextureMinFilter + LINEAR_MIPMAP_NEAREST = 0x2701 # TextureMinFilter + NEAREST_MIPMAP_LINEAR = 0x2702 # TextureMinFilter + LINEAR_MIPMAP_LINEAR = 0x2703 # TextureMinFilter +passthru: /* TextureParameterName */ + TEXTURE_MAG_FILTER = 0x2800 # TextureParameterName + TEXTURE_MIN_FILTER = 0x2801 # TextureParameterName + TEXTURE_WRAP_S = 0x2802 # TextureParameterName + TEXTURE_WRAP_T = 0x2803 # TextureParameterName +passthru: /* TextureTarget */ + PROXY_TEXTURE_1D = 0x8063 # TextureTarget + PROXY_TEXTURE_2D = 0x8064 # TextureTarget +passthru: /* TextureWrapMode */ + REPEAT = 0x2901 # TextureWrapMode +passthru: /* PixelInternalFormat */ + R3_G3_B2 = 0x2A10 # PixelInternalFormat + RGB4 = 0x804F # PixelInternalFormat + RGB5 = 0x8050 # PixelInternalFormat + RGB8 = 0x8051 # PixelInternalFormat + RGB10 = 0x8052 # PixelInternalFormat + RGB12 = 0x8053 # PixelInternalFormat + RGB16 = 0x8054 # PixelInternalFormat + RGBA2 = 0x8055 # PixelInternalFormat + RGBA4 = 0x8056 # PixelInternalFormat + RGB5_A1 = 0x8057 # PixelInternalFormat + RGBA8 = 0x8058 # PixelInternalFormat + RGB10_A2 = 0x8059 # PixelInternalFormat + RGBA12 = 0x805A # PixelInternalFormat + RGBA16 = 0x805B # PixelInternalFormat + +VERSION_1_1_DEPRECATED enum: +passthru: /* AttribMask */ + CURRENT_BIT = 0x00000001 # AttribMask + POINT_BIT = 0x00000002 # AttribMask + LINE_BIT = 0x00000004 # AttribMask + POLYGON_BIT = 0x00000008 # AttribMask + POLYGON_STIPPLE_BIT = 0x00000010 # AttribMask + PIXEL_MODE_BIT = 0x00000020 # AttribMask + LIGHTING_BIT = 0x00000040 # AttribMask + FOG_BIT = 0x00000080 # AttribMask + ACCUM_BUFFER_BIT = 0x00000200 # AttribMask + VIEWPORT_BIT = 0x00000800 # AttribMask + TRANSFORM_BIT = 0x00001000 # AttribMask + ENABLE_BIT = 0x00002000 # AttribMask + HINT_BIT = 0x00008000 # AttribMask + EVAL_BIT = 0x00010000 # AttribMask + LIST_BIT = 0x00020000 # AttribMask + TEXTURE_BIT = 0x00040000 # AttribMask + SCISSOR_BIT = 0x00080000 # AttribMask + ALL_ATTRIB_BITS = 0xFFFFFFFF # AttribMask +passthru: /* ClientAttribMask */ + CLIENT_PIXEL_STORE_BIT = 0x00000001 # ClientAttribMask + CLIENT_VERTEX_ARRAY_BIT = 0x00000002 # ClientAttribMask + CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF # ClientAttribMask +passthru: /* BeginMode */ + QUADS = 0x0007 # BeginMode + QUAD_STRIP = 0x0008 # BeginMode + POLYGON = 0x0009 # BeginMode +passthru: /* AccumOp */ + ACCUM = 0x0100 # AccumOp + LOAD = 0x0101 # AccumOp + RETURN = 0x0102 # AccumOp + MULT = 0x0103 # AccumOp + ADD = 0x0104 # AccumOp +passthru: /* DrawBufferMode */ + AUX0 = 0x0409 # DrawBufferMode + AUX1 = 0x040A # DrawBufferMode + AUX2 = 0x040B # DrawBufferMode + AUX3 = 0x040C # DrawBufferMode +passthru: /* ErrorCode */ + STACK_OVERFLOW = 0x0503 # ErrorCode + STACK_UNDERFLOW = 0x0504 # ErrorCode +passthru: /* FeedbackType */ + 2D = 0x0600 # FeedbackType + 3D = 0x0601 # FeedbackType + 3D_COLOR = 0x0602 # FeedbackType + 3D_COLOR_TEXTURE = 0x0603 # FeedbackType + 4D_COLOR_TEXTURE = 0x0604 # FeedbackType +passthru: /* FeedBackToken */ + PASS_THROUGH_TOKEN = 0x0700 # FeedBackToken + POINT_TOKEN = 0x0701 # FeedBackToken + LINE_TOKEN = 0x0702 # FeedBackToken + POLYGON_TOKEN = 0x0703 # FeedBackToken + BITMAP_TOKEN = 0x0704 # FeedBackToken + DRAW_PIXEL_TOKEN = 0x0705 # FeedBackToken + COPY_PIXEL_TOKEN = 0x0706 # FeedBackToken + LINE_RESET_TOKEN = 0x0707 # FeedBackToken +passthru: /* FogMode */ + EXP = 0x0800 # FogMode + EXP2 = 0x0801 # FogMode +passthru: /* GetMapQuery */ + COEFF = 0x0A00 # GetMapQuery + ORDER = 0x0A01 # GetMapQuery + DOMAIN = 0x0A02 # GetMapQuery +passthru: /* GetPixelMap */ + PIXEL_MAP_I_TO_I = 0x0C70 # GetPixelMap + PIXEL_MAP_S_TO_S = 0x0C71 # GetPixelMap + PIXEL_MAP_I_TO_R = 0x0C72 # GetPixelMap + PIXEL_MAP_I_TO_G = 0x0C73 # GetPixelMap + PIXEL_MAP_I_TO_B = 0x0C74 # GetPixelMap + PIXEL_MAP_I_TO_A = 0x0C75 # GetPixelMap + PIXEL_MAP_R_TO_R = 0x0C76 # GetPixelMap + PIXEL_MAP_G_TO_G = 0x0C77 # GetPixelMap + PIXEL_MAP_B_TO_B = 0x0C78 # GetPixelMap + PIXEL_MAP_A_TO_A = 0x0C79 # GetPixelMap +passthru: /* GetPointervPName */ + VERTEX_ARRAY_POINTER = 0x808E # GetPointervPName + NORMAL_ARRAY_POINTER = 0x808F # GetPointervPName + COLOR_ARRAY_POINTER = 0x8090 # GetPointervPName + INDEX_ARRAY_POINTER = 0x8091 # GetPointervPName + TEXTURE_COORD_ARRAY_POINTER = 0x8092 # GetPointervPName + EDGE_FLAG_ARRAY_POINTER = 0x8093 # GetPointervPName + FEEDBACK_BUFFER_POINTER = 0x0DF0 # GetPointervPName + SELECTION_BUFFER_POINTER = 0x0DF3 # GetPointervPName +passthru: /* GetPName */ + CURRENT_COLOR = 0x0B00 # 4 F # GetPName + CURRENT_INDEX = 0x0B01 # 1 F # GetPName + CURRENT_NORMAL = 0x0B02 # 3 F # GetPName + CURRENT_TEXTURE_COORDS = 0x0B03 # 4 F # GetPName + CURRENT_RASTER_COLOR = 0x0B04 # 4 F # GetPName + CURRENT_RASTER_INDEX = 0x0B05 # 1 F # GetPName + CURRENT_RASTER_TEXTURE_COORDS = 0x0B06 # 4 F # GetPName + CURRENT_RASTER_POSITION = 0x0B07 # 4 F # GetPName + CURRENT_RASTER_POSITION_VALID = 0x0B08 # 1 I # GetPName + CURRENT_RASTER_DISTANCE = 0x0B09 # 1 F # GetPName + POINT_SMOOTH = 0x0B10 # 1 I # GetPName + LINE_STIPPLE = 0x0B24 # 1 I # GetPName + LINE_STIPPLE_PATTERN = 0x0B25 # 1 I # GetPName + LINE_STIPPLE_REPEAT = 0x0B26 # 1 I # GetPName + LIST_MODE = 0x0B30 # 1 I # GetPName + MAX_LIST_NESTING = 0x0B31 # 1 I # GetPName + LIST_BASE = 0x0B32 # 1 I # GetPName + LIST_INDEX = 0x0B33 # 1 I # GetPName + POLYGON_MODE = 0x0B40 # 2 I # GetPName + POLYGON_STIPPLE = 0x0B42 # 1 I # GetPName + EDGE_FLAG = 0x0B43 # 1 I # GetPName + LIGHTING = 0x0B50 # 1 I # GetPName + LIGHT_MODEL_LOCAL_VIEWER = 0x0B51 # 1 I # GetPName + LIGHT_MODEL_TWO_SIDE = 0x0B52 # 1 I # GetPName + LIGHT_MODEL_AMBIENT = 0x0B53 # 4 F # GetPName + SHADE_MODEL = 0x0B54 # 1 I # GetPName + COLOR_MATERIAL_FACE = 0x0B55 # 1 I # GetPName + COLOR_MATERIAL_PARAMETER = 0x0B56 # 1 I # GetPName + COLOR_MATERIAL = 0x0B57 # 1 I # GetPName + FOG = 0x0B60 # 1 I # GetPName + FOG_INDEX = 0x0B61 # 1 I # GetPName + FOG_DENSITY = 0x0B62 # 1 F # GetPName + FOG_START = 0x0B63 # 1 F # GetPName + FOG_END = 0x0B64 # 1 F # GetPName + FOG_MODE = 0x0B65 # 1 I # GetPName + FOG_COLOR = 0x0B66 # 4 F # GetPName + ACCUM_CLEAR_VALUE = 0x0B80 # 4 F # GetPName + MATRIX_MODE = 0x0BA0 # 1 I # GetPName + NORMALIZE = 0x0BA1 # 1 I # GetPName + MODELVIEW_STACK_DEPTH = 0x0BA3 # 1 I # GetPName + PROJECTION_STACK_DEPTH = 0x0BA4 # 1 I # GetPName + TEXTURE_STACK_DEPTH = 0x0BA5 # 1 I # GetPName + MODELVIEW_MATRIX = 0x0BA6 # 16 F # GetPName + PROJECTION_MATRIX = 0x0BA7 # 16 F # GetPName + TEXTURE_MATRIX = 0x0BA8 # 16 F # GetPName + ATTRIB_STACK_DEPTH = 0x0BB0 # 1 I # GetPName + CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1 # 1 I # GetPName + ALPHA_TEST = 0x0BC0 # 1 I # GetPName + ALPHA_TEST_FUNC = 0x0BC1 # 1 I # GetPName + ALPHA_TEST_REF = 0x0BC2 # 1 F # GetPName + INDEX_LOGIC_OP = 0x0BF1 # 1 I # GetPName + LOGIC_OP = 0x0BF1 # 1 I # GetPName + AUX_BUFFERS = 0x0C00 # 1 I # GetPName + INDEX_CLEAR_VALUE = 0x0C20 # 1 I # GetPName + INDEX_WRITEMASK = 0x0C21 # 1 I # GetPName + INDEX_MODE = 0x0C30 # 1 I # GetPName + RGBA_MODE = 0x0C31 # 1 I # GetPName + RENDER_MODE = 0x0C40 # 1 I # GetPName + PERSPECTIVE_CORRECTION_HINT = 0x0C50 # 1 I # GetPName + POINT_SMOOTH_HINT = 0x0C51 # 1 I # GetPName + FOG_HINT = 0x0C54 # 1 I # GetPName + TEXTURE_GEN_S = 0x0C60 # 1 I # GetPName + TEXTURE_GEN_T = 0x0C61 # 1 I # GetPName + TEXTURE_GEN_R = 0x0C62 # 1 I # GetPName + TEXTURE_GEN_Q = 0x0C63 # 1 I # GetPName + PIXEL_MAP_I_TO_I_SIZE = 0x0CB0 # 1 I # GetPName + PIXEL_MAP_S_TO_S_SIZE = 0x0CB1 # 1 I # GetPName + PIXEL_MAP_I_TO_R_SIZE = 0x0CB2 # 1 I # GetPName + PIXEL_MAP_I_TO_G_SIZE = 0x0CB3 # 1 I # GetPName + PIXEL_MAP_I_TO_B_SIZE = 0x0CB4 # 1 I # GetPName + PIXEL_MAP_I_TO_A_SIZE = 0x0CB5 # 1 I # GetPName + PIXEL_MAP_R_TO_R_SIZE = 0x0CB6 # 1 I # GetPName + PIXEL_MAP_G_TO_G_SIZE = 0x0CB7 # 1 I # GetPName + PIXEL_MAP_B_TO_B_SIZE = 0x0CB8 # 1 I # GetPName + PIXEL_MAP_A_TO_A_SIZE = 0x0CB9 # 1 I # GetPName + MAP_COLOR = 0x0D10 # 1 I # GetPName + MAP_STENCIL = 0x0D11 # 1 I # GetPName + INDEX_SHIFT = 0x0D12 # 1 I # GetPName + INDEX_OFFSET = 0x0D13 # 1 I # GetPName + RED_SCALE = 0x0D14 # 1 F # GetPName + RED_BIAS = 0x0D15 # 1 F # GetPName + ZOOM_X = 0x0D16 # 1 F # GetPName + ZOOM_Y = 0x0D17 # 1 F # GetPName + GREEN_SCALE = 0x0D18 # 1 F # GetPName + GREEN_BIAS = 0x0D19 # 1 F # GetPName + BLUE_SCALE = 0x0D1A # 1 F # GetPName + BLUE_BIAS = 0x0D1B # 1 F # GetPName + ALPHA_SCALE = 0x0D1C # 1 F # GetPName + ALPHA_BIAS = 0x0D1D # 1 F # GetPName + DEPTH_SCALE = 0x0D1E # 1 F # GetPName + DEPTH_BIAS = 0x0D1F # 1 F # GetPName + MAX_EVAL_ORDER = 0x0D30 # 1 I # GetPName + MAX_LIGHTS = 0x0D31 # 1 I # GetPName + MAX_CLIP_PLANES = 0x0D32 # 1 I # GetPName + MAX_PIXEL_MAP_TABLE = 0x0D34 # 1 I # GetPName + MAX_ATTRIB_STACK_DEPTH = 0x0D35 # 1 I # GetPName + MAX_MODELVIEW_STACK_DEPTH = 0x0D36 # 1 I # GetPName + MAX_NAME_STACK_DEPTH = 0x0D37 # 1 I # GetPName + MAX_PROJECTION_STACK_DEPTH = 0x0D38 # 1 I # GetPName + MAX_TEXTURE_STACK_DEPTH = 0x0D39 # 1 I # GetPName + MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B # 1 I # GetPName + INDEX_BITS = 0x0D51 # 1 I # GetPName + RED_BITS = 0x0D52 # 1 I # GetPName + GREEN_BITS = 0x0D53 # 1 I # GetPName + BLUE_BITS = 0x0D54 # 1 I # GetPName + ALPHA_BITS = 0x0D55 # 1 I # GetPName + DEPTH_BITS = 0x0D56 # 1 I # GetPName + STENCIL_BITS = 0x0D57 # 1 I # GetPName + ACCUM_RED_BITS = 0x0D58 # 1 I # GetPName + ACCUM_GREEN_BITS = 0x0D59 # 1 I # GetPName + ACCUM_BLUE_BITS = 0x0D5A # 1 I # GetPName + ACCUM_ALPHA_BITS = 0x0D5B # 1 I # GetPName + NAME_STACK_DEPTH = 0x0D70 # 1 I # GetPName + AUTO_NORMAL = 0x0D80 # 1 I # GetPName + MAP1_COLOR_4 = 0x0D90 # 1 I # GetPName + MAP1_INDEX = 0x0D91 # 1 I # GetPName + MAP1_NORMAL = 0x0D92 # 1 I # GetPName + MAP1_TEXTURE_COORD_1 = 0x0D93 # 1 I # GetPName + MAP1_TEXTURE_COORD_2 = 0x0D94 # 1 I # GetPName + MAP1_TEXTURE_COORD_3 = 0x0D95 # 1 I # GetPName + MAP1_TEXTURE_COORD_4 = 0x0D96 # 1 I # GetPName + MAP1_VERTEX_3 = 0x0D97 # 1 I # GetPName + MAP1_VERTEX_4 = 0x0D98 # 1 I # GetPName + MAP2_COLOR_4 = 0x0DB0 # 1 I # GetPName + MAP2_INDEX = 0x0DB1 # 1 I # GetPName + MAP2_NORMAL = 0x0DB2 # 1 I # GetPName + MAP2_TEXTURE_COORD_1 = 0x0DB3 # 1 I # GetPName + MAP2_TEXTURE_COORD_2 = 0x0DB4 # 1 I # GetPName + MAP2_TEXTURE_COORD_3 = 0x0DB5 # 1 I # GetPName + MAP2_TEXTURE_COORD_4 = 0x0DB6 # 1 I # GetPName + MAP2_VERTEX_3 = 0x0DB7 # 1 I # GetPName + MAP2_VERTEX_4 = 0x0DB8 # 1 I # GetPName + MAP1_GRID_DOMAIN = 0x0DD0 # 2 F # GetPName + MAP1_GRID_SEGMENTS = 0x0DD1 # 1 I # GetPName + MAP2_GRID_DOMAIN = 0x0DD2 # 4 F # GetPName + MAP2_GRID_SEGMENTS = 0x0DD3 # 2 I # GetPName + FEEDBACK_BUFFER_SIZE = 0x0DF1 # 1 I # GetPName + FEEDBACK_BUFFER_TYPE = 0x0DF2 # 1 I # GetPName + SELECTION_BUFFER_SIZE = 0x0DF4 # 1 I # GetPName + VERTEX_ARRAY = 0x8074 # 1 I # GetPName + NORMAL_ARRAY = 0x8075 # 1 I # GetPName + COLOR_ARRAY = 0x8076 # 1 I # GetPName + INDEX_ARRAY = 0x8077 # 1 I # GetPName + TEXTURE_COORD_ARRAY = 0x8078 # 1 I # GetPName + EDGE_FLAG_ARRAY = 0x8079 # 1 I # GetPName + VERTEX_ARRAY_SIZE = 0x807A # 1 I # GetPName + VERTEX_ARRAY_TYPE = 0x807B # 1 I # GetPName + VERTEX_ARRAY_STRIDE = 0x807C # 1 I # GetPName + NORMAL_ARRAY_TYPE = 0x807E # 1 I # GetPName + NORMAL_ARRAY_STRIDE = 0x807F # 1 I # GetPName + COLOR_ARRAY_SIZE = 0x8081 # 1 I # GetPName + COLOR_ARRAY_TYPE = 0x8082 # 1 I # GetPName + COLOR_ARRAY_STRIDE = 0x8083 # 1 I # GetPName + INDEX_ARRAY_TYPE = 0x8085 # 1 I # GetPName + INDEX_ARRAY_STRIDE = 0x8086 # 1 I # GetPName + TEXTURE_COORD_ARRAY_SIZE = 0x8088 # 1 I # GetPName + TEXTURE_COORD_ARRAY_TYPE = 0x8089 # 1 I # GetPName + TEXTURE_COORD_ARRAY_STRIDE = 0x808A # 1 I # GetPName + EDGE_FLAG_ARRAY_STRIDE = 0x808C # 1 I # GetPName +passthru: /* GetTextureParameter */ + TEXTURE_COMPONENTS = 0x1003 # GetTextureParameter + TEXTURE_BORDER = 0x1005 # GetTextureParameter + TEXTURE_LUMINANCE_SIZE = 0x8060 # GetTextureParameter + TEXTURE_INTENSITY_SIZE = 0x8061 # GetTextureParameter + TEXTURE_PRIORITY = 0x8066 # GetTextureParameter + TEXTURE_RESIDENT = 0x8067 # GetTextureParameter +passthru: /* LightParameter */ + AMBIENT = 0x1200 # LightParameter + DIFFUSE = 0x1201 # LightParameter + SPECULAR = 0x1202 # LightParameter + POSITION = 0x1203 # LightParameter + SPOT_DIRECTION = 0x1204 # LightParameter + SPOT_EXPONENT = 0x1205 # LightParameter + SPOT_CUTOFF = 0x1206 # LightParameter + CONSTANT_ATTENUATION = 0x1207 # LightParameter + LINEAR_ATTENUATION = 0x1208 # LightParameter + QUADRATIC_ATTENUATION = 0x1209 # LightParameter +passthru: /* ListMode */ + COMPILE = 0x1300 # ListMode + COMPILE_AND_EXECUTE = 0x1301 # ListMode +passthru: /* DataType */ + 2_BYTES = 0x1407 # DataType + 3_BYTES = 0x1408 # DataType + 4_BYTES = 0x1409 # DataType +passthru: /* MaterialParameter */ + EMISSION = 0x1600 # MaterialParameter + SHININESS = 0x1601 # MaterialParameter + AMBIENT_AND_DIFFUSE = 0x1602 # MaterialParameter + COLOR_INDEXES = 0x1603 # MaterialParameter +passthru: /* MatrixMode */ + MODELVIEW = 0x1700 # MatrixMode + PROJECTION = 0x1701 # MatrixMode +passthru: /* PixelFormat */ + COLOR_INDEX = 0x1900 # PixelFormat + LUMINANCE = 0x1909 # PixelFormat + LUMINANCE_ALPHA = 0x190A # PixelFormat +passthru: /* PixelType */ + BITMAP = 0x1A00 # PixelType +passthru: /* RenderingMode */ + RENDER = 0x1C00 # RenderingMode + FEEDBACK = 0x1C01 # RenderingMode + SELECT = 0x1C02 # RenderingMode +passthru: /* ShadingModel */ + FLAT = 0x1D00 # ShadingModel + SMOOTH = 0x1D01 # ShadingModel +passthru: /* TextureCoordName */ + S = 0x2000 # TextureCoordName + T = 0x2001 # TextureCoordName + R = 0x2002 # TextureCoordName + Q = 0x2003 # TextureCoordName +passthru: /* TextureEnvMode */ + MODULATE = 0x2100 # TextureEnvMode + DECAL = 0x2101 # TextureEnvMode +passthru: /* TextureEnvParameter */ + TEXTURE_ENV_MODE = 0x2200 # TextureEnvParameter + TEXTURE_ENV_COLOR = 0x2201 # TextureEnvParameter +passthru: /* TextureEnvTarget */ + TEXTURE_ENV = 0x2300 # TextureEnvTarget +passthru: /* TextureGenMode */ + EYE_LINEAR = 0x2400 # TextureGenMode + OBJECT_LINEAR = 0x2401 # TextureGenMode + SPHERE_MAP = 0x2402 # TextureGenMode +passthru: /* TextureGenParameter */ + TEXTURE_GEN_MODE = 0x2500 # TextureGenParameter + OBJECT_PLANE = 0x2501 # TextureGenParameter + EYE_PLANE = 0x2502 # TextureGenParameter +passthru: /* TextureWrapMode */ + CLAMP = 0x2900 # TextureWrapMode +passthru: /* PixelInternalFormat */ + ALPHA4 = 0x803B # PixelInternalFormat + ALPHA8 = 0x803C # PixelInternalFormat + ALPHA12 = 0x803D # PixelInternalFormat + ALPHA16 = 0x803E # PixelInternalFormat + LUMINANCE4 = 0x803F # PixelInternalFormat + LUMINANCE8 = 0x8040 # PixelInternalFormat + LUMINANCE12 = 0x8041 # PixelInternalFormat + LUMINANCE16 = 0x8042 # PixelInternalFormat + LUMINANCE4_ALPHA4 = 0x8043 # PixelInternalFormat + LUMINANCE6_ALPHA2 = 0x8044 # PixelInternalFormat + LUMINANCE8_ALPHA8 = 0x8045 # PixelInternalFormat + LUMINANCE12_ALPHA4 = 0x8046 # PixelInternalFormat + LUMINANCE12_ALPHA12 = 0x8047 # PixelInternalFormat + LUMINANCE16_ALPHA16 = 0x8048 # PixelInternalFormat + INTENSITY = 0x8049 # PixelInternalFormat + INTENSITY4 = 0x804A # PixelInternalFormat + INTENSITY8 = 0x804B # PixelInternalFormat + INTENSITY12 = 0x804C # PixelInternalFormat + INTENSITY16 = 0x804D # PixelInternalFormat +passthru: /* InterleavedArrayFormat */ + V2F = 0x2A20 # InterleavedArrayFormat + V3F = 0x2A21 # InterleavedArrayFormat + C4UB_V2F = 0x2A22 # InterleavedArrayFormat + C4UB_V3F = 0x2A23 # InterleavedArrayFormat + C3F_V3F = 0x2A24 # InterleavedArrayFormat + N3F_V3F = 0x2A25 # InterleavedArrayFormat + C4F_N3F_V3F = 0x2A26 # InterleavedArrayFormat + T2F_V3F = 0x2A27 # InterleavedArrayFormat + T4F_V4F = 0x2A28 # InterleavedArrayFormat + T2F_C4UB_V3F = 0x2A29 # InterleavedArrayFormat + T2F_C3F_V3F = 0x2A2A # InterleavedArrayFormat + T2F_N3F_V3F = 0x2A2B # InterleavedArrayFormat + T2F_C4F_N3F_V3F = 0x2A2C # InterleavedArrayFormat + T4F_C4F_N3F_V4F = 0x2A2D # InterleavedArrayFormat +passthru: /* ClipPlaneName */ + CLIP_PLANE0 = 0x3000 # 1 I # ClipPlaneName + CLIP_PLANE1 = 0x3001 # 1 I # ClipPlaneName + CLIP_PLANE2 = 0x3002 # 1 I # ClipPlaneName + CLIP_PLANE3 = 0x3003 # 1 I # ClipPlaneName + CLIP_PLANE4 = 0x3004 # 1 I # ClipPlaneName + CLIP_PLANE5 = 0x3005 # 1 I # ClipPlaneName +passthru: /* LightName */ + LIGHT0 = 0x4000 # 1 I # LightName + LIGHT1 = 0x4001 # 1 I # LightName + LIGHT2 = 0x4002 # 1 I # LightName + LIGHT3 = 0x4003 # 1 I # LightName + LIGHT4 = 0x4004 # 1 I # LightName + LIGHT5 = 0x4005 # 1 I # LightName + LIGHT6 = 0x4006 # 1 I # LightName + LIGHT7 = 0x4007 # 1 I # LightName + + +############################################################################### +# +# OpenGL 1.2 enums +# +############################################################################### + +VERSION_1_2 enum: + UNSIGNED_BYTE_3_3_2 = 0x8032 # Equivalent to EXT_packed_pixels + UNSIGNED_SHORT_4_4_4_4 = 0x8033 + UNSIGNED_SHORT_5_5_5_1 = 0x8034 + UNSIGNED_INT_8_8_8_8 = 0x8035 + UNSIGNED_INT_10_10_10_2 = 0x8036 + TEXTURE_BINDING_3D = 0x806A # 1 I + PACK_SKIP_IMAGES = 0x806B # 1 I + PACK_IMAGE_HEIGHT = 0x806C # 1 F + UNPACK_SKIP_IMAGES = 0x806D # 1 I + UNPACK_IMAGE_HEIGHT = 0x806E # 1 F + TEXTURE_3D = 0x806F # 1 I + PROXY_TEXTURE_3D = 0x8070 + TEXTURE_DEPTH = 0x8071 + TEXTURE_WRAP_R = 0x8072 + MAX_3D_TEXTURE_SIZE = 0x8073 # 1 I + UNSIGNED_BYTE_2_3_3_REV = 0x8362 # New for OpenGL 1.2 + UNSIGNED_SHORT_5_6_5 = 0x8363 + UNSIGNED_SHORT_5_6_5_REV = 0x8364 + UNSIGNED_SHORT_4_4_4_4_REV = 0x8365 + UNSIGNED_SHORT_1_5_5_5_REV = 0x8366 + UNSIGNED_INT_8_8_8_8_REV = 0x8367 + UNSIGNED_INT_2_10_10_10_REV = 0x8368 + BGR = 0x80E0 + BGRA = 0x80E1 + MAX_ELEMENTS_VERTICES = 0x80E8 + MAX_ELEMENTS_INDICES = 0x80E9 + CLAMP_TO_EDGE = 0x812F # Equivalent to SGIS_texture_edge_clamp + TEXTURE_MIN_LOD = 0x813A # Equivalent to SGIS_texture_lod + TEXTURE_MAX_LOD = 0x813B + TEXTURE_BASE_LEVEL = 0x813C + TEXTURE_MAX_LEVEL = 0x813D + SMOOTH_POINT_SIZE_RANGE = 0x0B12 # 2 F + SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13 # 1 F + SMOOTH_LINE_WIDTH_RANGE = 0x0B22 # 2 F + SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F + ALIASED_LINE_WIDTH_RANGE = 0x846E # 2 F + +VERSION_1_2_DEPRECATED enum: + RESCALE_NORMAL = 0x803A # 1 I # Equivalent to EXT_rescale_normal + LIGHT_MODEL_COLOR_CONTROL = 0x81F8 # 1 I + SINGLE_COLOR = 0x81F9 + SEPARATE_SPECULAR_COLOR = 0x81FA + ALIASED_POINT_SIZE_RANGE = 0x846D # 2 F + +ARB_imaging enum: + CONSTANT_COLOR = 0x8001 # Equivalent to EXT_blend_color + ONE_MINUS_CONSTANT_COLOR = 0x8002 + CONSTANT_ALPHA = 0x8003 + ONE_MINUS_CONSTANT_ALPHA = 0x8004 + BLEND_COLOR = 0x8005 # 4 F + FUNC_ADD = 0x8006 # Equivalent to EXT_blend_minmax + MIN = 0x8007 + MAX = 0x8008 + BLEND_EQUATION = 0x8009 # 1 I + FUNC_SUBTRACT = 0x800A # Equivalent to EXT_blend_subtract + FUNC_REVERSE_SUBTRACT = 0x800B + +ARB_imaging_DEPRECATED enum: + CONVOLUTION_1D = 0x8010 # 1 I # Equivalent to EXT_convolution + CONVOLUTION_2D = 0x8011 # 1 I + SEPARABLE_2D = 0x8012 # 1 I + CONVOLUTION_BORDER_MODE = 0x8013 + CONVOLUTION_FILTER_SCALE = 0x8014 + CONVOLUTION_FILTER_BIAS = 0x8015 + REDUCE = 0x8016 + CONVOLUTION_FORMAT = 0x8017 + CONVOLUTION_WIDTH = 0x8018 + CONVOLUTION_HEIGHT = 0x8019 + MAX_CONVOLUTION_WIDTH = 0x801A + MAX_CONVOLUTION_HEIGHT = 0x801B + POST_CONVOLUTION_RED_SCALE = 0x801C # 1 F + POST_CONVOLUTION_GREEN_SCALE = 0x801D # 1 F + POST_CONVOLUTION_BLUE_SCALE = 0x801E # 1 F + POST_CONVOLUTION_ALPHA_SCALE = 0x801F # 1 F + POST_CONVOLUTION_RED_BIAS = 0x8020 # 1 F + POST_CONVOLUTION_GREEN_BIAS = 0x8021 # 1 F + POST_CONVOLUTION_BLUE_BIAS = 0x8022 # 1 F + POST_CONVOLUTION_ALPHA_BIAS = 0x8023 # 1 F + HISTOGRAM = 0x8024 # 1 I # Equivalent to EXT_histogram + PROXY_HISTOGRAM = 0x8025 + HISTOGRAM_WIDTH = 0x8026 + HISTOGRAM_FORMAT = 0x8027 + HISTOGRAM_RED_SIZE = 0x8028 + HISTOGRAM_GREEN_SIZE = 0x8029 + HISTOGRAM_BLUE_SIZE = 0x802A + HISTOGRAM_ALPHA_SIZE = 0x802B + HISTOGRAM_LUMINANCE_SIZE = 0x802C + HISTOGRAM_SINK = 0x802D + MINMAX = 0x802E # 1 I + MINMAX_FORMAT = 0x802F + MINMAX_SINK = 0x8030 + TABLE_TOO_LARGE = 0x8031 + COLOR_MATRIX = 0x80B1 # 16 F # Equivalent to SGI_color_matrix + COLOR_MATRIX_STACK_DEPTH = 0x80B2 # 1 I + MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 # 1 I + POST_COLOR_MATRIX_RED_SCALE = 0x80B4 # 1 F + POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 # 1 F + POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 # 1 F + POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 # 1 F + POST_COLOR_MATRIX_RED_BIAS = 0x80B8 # 1 F + POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 # 1 F + POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA # 1 F + POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB # 1 F + COLOR_TABLE = 0x80D0 # 1 I # Equivalent to SGI_color_table + POST_CONVOLUTION_COLOR_TABLE = 0x80D1 # 1 I + POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 # 1 I + PROXY_COLOR_TABLE = 0x80D3 + PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 + PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 + COLOR_TABLE_SCALE = 0x80D6 + COLOR_TABLE_BIAS = 0x80D7 + COLOR_TABLE_FORMAT = 0x80D8 + COLOR_TABLE_WIDTH = 0x80D9 + COLOR_TABLE_RED_SIZE = 0x80DA + COLOR_TABLE_GREEN_SIZE = 0x80DB + COLOR_TABLE_BLUE_SIZE = 0x80DC + COLOR_TABLE_ALPHA_SIZE = 0x80DD + COLOR_TABLE_LUMINANCE_SIZE = 0x80DE + COLOR_TABLE_INTENSITY_SIZE = 0x80DF + CONSTANT_BORDER = 0x8151 + REPLICATE_BORDER = 0x8153 + CONVOLUTION_BORDER_COLOR = 0x8154 + + +############################################################################### +# +# OpenGL 1.3 enums +# +############################################################################### + +VERSION_1_3 enum: + TEXTURE0 = 0x84C0 # Promoted from ARB_multitexture + TEXTURE1 = 0x84C1 + TEXTURE2 = 0x84C2 + TEXTURE3 = 0x84C3 + TEXTURE4 = 0x84C4 + TEXTURE5 = 0x84C5 + TEXTURE6 = 0x84C6 + TEXTURE7 = 0x84C7 + TEXTURE8 = 0x84C8 + TEXTURE9 = 0x84C9 + TEXTURE10 = 0x84CA + TEXTURE11 = 0x84CB + TEXTURE12 = 0x84CC + TEXTURE13 = 0x84CD + TEXTURE14 = 0x84CE + TEXTURE15 = 0x84CF + TEXTURE16 = 0x84D0 + TEXTURE17 = 0x84D1 + TEXTURE18 = 0x84D2 + TEXTURE19 = 0x84D3 + TEXTURE20 = 0x84D4 + TEXTURE21 = 0x84D5 + TEXTURE22 = 0x84D6 + TEXTURE23 = 0x84D7 + TEXTURE24 = 0x84D8 + TEXTURE25 = 0x84D9 + TEXTURE26 = 0x84DA + TEXTURE27 = 0x84DB + TEXTURE28 = 0x84DC + TEXTURE29 = 0x84DD + TEXTURE30 = 0x84DE + TEXTURE31 = 0x84DF + ACTIVE_TEXTURE = 0x84E0 # 1 I + MULTISAMPLE = 0x809D # Promoted from ARB_multisample + SAMPLE_ALPHA_TO_COVERAGE = 0x809E + SAMPLE_ALPHA_TO_ONE = 0x809F + SAMPLE_COVERAGE = 0x80A0 + SAMPLE_BUFFERS = 0x80A8 + SAMPLES = 0x80A9 + SAMPLE_COVERAGE_VALUE = 0x80AA + SAMPLE_COVERAGE_INVERT = 0x80AB + TEXTURE_CUBE_MAP = 0x8513 + TEXTURE_BINDING_CUBE_MAP = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A + PROXY_TEXTURE_CUBE_MAP = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C + COMPRESSED_RGB = 0x84ED + COMPRESSED_RGBA = 0x84EE + TEXTURE_COMPRESSION_HINT = 0x84EF + TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0 + TEXTURE_COMPRESSED = 0x86A1 + NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 + COMPRESSED_TEXTURE_FORMATS = 0x86A3 + CLAMP_TO_BORDER = 0x812D # Promoted from ARB_texture_border_clamp + +VERSION_1_3_DEPRECATED enum: + CLIENT_ACTIVE_TEXTURE = 0x84E1 # 1 I + MAX_TEXTURE_UNITS = 0x84E2 # 1 I + TRANSPOSE_MODELVIEW_MATRIX = 0x84E3 # 16 F # Promoted from ARB_transpose_matrix + TRANSPOSE_PROJECTION_MATRIX = 0x84E4 # 16 F + TRANSPOSE_TEXTURE_MATRIX = 0x84E5 # 16 F + TRANSPOSE_COLOR_MATRIX = 0x84E6 # 16 F + MULTISAMPLE_BIT = 0x20000000 + NORMAL_MAP = 0x8511 # Promoted from ARB_texture_cube_map + REFLECTION_MAP = 0x8512 + COMPRESSED_ALPHA = 0x84E9 # Promoted from ARB_texture_compression + COMPRESSED_LUMINANCE = 0x84EA + COMPRESSED_LUMINANCE_ALPHA = 0x84EB + COMPRESSED_INTENSITY = 0x84EC + COMBINE = 0x8570 # Promoted from ARB_texture_env_combine + COMBINE_RGB = 0x8571 + COMBINE_ALPHA = 0x8572 + SOURCE0_RGB = 0x8580 + SOURCE1_RGB = 0x8581 + SOURCE2_RGB = 0x8582 + SOURCE0_ALPHA = 0x8588 + SOURCE1_ALPHA = 0x8589 + SOURCE2_ALPHA = 0x858A + OPERAND0_RGB = 0x8590 + OPERAND1_RGB = 0x8591 + OPERAND2_RGB = 0x8592 + OPERAND0_ALPHA = 0x8598 + OPERAND1_ALPHA = 0x8599 + OPERAND2_ALPHA = 0x859A + RGB_SCALE = 0x8573 + ADD_SIGNED = 0x8574 + INTERPOLATE = 0x8575 + SUBTRACT = 0x84E7 + CONSTANT = 0x8576 + PRIMARY_COLOR = 0x8577 + PREVIOUS = 0x8578 + DOT3_RGB = 0x86AE # Promoted from ARB_texture_env_dot3 + DOT3_RGBA = 0x86AF + + +############################################################################### +# +# OpenGL 1.4 enums +# +############################################################################### + +VERSION_1_4 enum: + BLEND_DST_RGB = 0x80C8 + BLEND_SRC_RGB = 0x80C9 + BLEND_DST_ALPHA = 0x80CA + BLEND_SRC_ALPHA = 0x80CB + POINT_FADE_THRESHOLD_SIZE = 0x8128 # 1 F + DEPTH_COMPONENT16 = 0x81A5 + DEPTH_COMPONENT24 = 0x81A6 + DEPTH_COMPONENT32 = 0x81A7 + MIRRORED_REPEAT = 0x8370 + MAX_TEXTURE_LOD_BIAS = 0x84FD + TEXTURE_LOD_BIAS = 0x8501 + INCR_WRAP = 0x8507 + DECR_WRAP = 0x8508 + TEXTURE_DEPTH_SIZE = 0x884A + TEXTURE_COMPARE_MODE = 0x884C + TEXTURE_COMPARE_FUNC = 0x884D + +VERSION_1_4_DEPRECATED enum: + POINT_SIZE_MIN = 0x8126 # 1 F + POINT_SIZE_MAX = 0x8127 # 1 F + POINT_DISTANCE_ATTENUATION = 0x8129 # 3 F + GENERATE_MIPMAP = 0x8191 + GENERATE_MIPMAP_HINT = 0x8192 # 1 I + FOG_COORDINATE_SOURCE = 0x8450 # 1 I + FOG_COORDINATE = 0x8451 + FRAGMENT_DEPTH = 0x8452 + CURRENT_FOG_COORDINATE = 0x8453 # 1 F + FOG_COORDINATE_ARRAY_TYPE = 0x8454 # 1 I + FOG_COORDINATE_ARRAY_STRIDE = 0x8455 # 1 I + FOG_COORDINATE_ARRAY_POINTER = 0x8456 + FOG_COORDINATE_ARRAY = 0x8457 # 1 I + COLOR_SUM = 0x8458 # 1 I + CURRENT_SECONDARY_COLOR = 0x8459 # 3 F + SECONDARY_COLOR_ARRAY_SIZE = 0x845A # 1 I + SECONDARY_COLOR_ARRAY_TYPE = 0x845B # 1 I + SECONDARY_COLOR_ARRAY_STRIDE = 0x845C # 1 I + SECONDARY_COLOR_ARRAY_POINTER = 0x845D + SECONDARY_COLOR_ARRAY = 0x845E # 1 I + TEXTURE_FILTER_CONTROL = 0x8500 + DEPTH_TEXTURE_MODE = 0x884B + COMPARE_R_TO_TEXTURE = 0x884E + + +############################################################################### +# +# OpenGL 1.5 enums +# +############################################################################### + +VERSION_1_5 enum: + BUFFER_SIZE = 0x8764 # ARB_vertex_buffer_object + BUFFER_USAGE = 0x8765 # ARB_vertex_buffer_object + QUERY_COUNTER_BITS = 0x8864 # ARB_occlusion_query + CURRENT_QUERY = 0x8865 # ARB_occlusion_query + QUERY_RESULT = 0x8866 # ARB_occlusion_query + QUERY_RESULT_AVAILABLE = 0x8867 # ARB_occlusion_query + ARRAY_BUFFER = 0x8892 # ARB_vertex_buffer_object + ELEMENT_ARRAY_BUFFER = 0x8893 # ARB_vertex_buffer_object + ARRAY_BUFFER_BINDING = 0x8894 # ARB_vertex_buffer_object + ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 # ARB_vertex_buffer_object + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F # ARB_vertex_buffer_object + READ_ONLY = 0x88B8 # ARB_vertex_buffer_object + WRITE_ONLY = 0x88B9 # ARB_vertex_buffer_object + READ_WRITE = 0x88BA # ARB_vertex_buffer_object + BUFFER_ACCESS = 0x88BB # ARB_vertex_buffer_object + BUFFER_MAPPED = 0x88BC # ARB_vertex_buffer_object + BUFFER_MAP_POINTER = 0x88BD # ARB_vertex_buffer_object + STREAM_DRAW = 0x88E0 # ARB_vertex_buffer_object + STREAM_READ = 0x88E1 # ARB_vertex_buffer_object + STREAM_COPY = 0x88E2 # ARB_vertex_buffer_object + STATIC_DRAW = 0x88E4 # ARB_vertex_buffer_object + STATIC_READ = 0x88E5 # ARB_vertex_buffer_object + STATIC_COPY = 0x88E6 # ARB_vertex_buffer_object + DYNAMIC_DRAW = 0x88E8 # ARB_vertex_buffer_object + DYNAMIC_READ = 0x88E9 # ARB_vertex_buffer_object + DYNAMIC_COPY = 0x88EA # ARB_vertex_buffer_object + SAMPLES_PASSED = 0x8914 # ARB_occlusion_query + +VERSION_1_5_DEPRECATED enum: + VERTEX_ARRAY_BUFFER_BINDING = 0x8896 # ARB_vertex_buffer_object + NORMAL_ARRAY_BUFFER_BINDING = 0x8897 # ARB_vertex_buffer_object + COLOR_ARRAY_BUFFER_BINDING = 0x8898 # ARB_vertex_buffer_object + INDEX_ARRAY_BUFFER_BINDING = 0x8899 # ARB_vertex_buffer_object + TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A # ARB_vertex_buffer_object + EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B # ARB_vertex_buffer_object + SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C # ARB_vertex_buffer_object + FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D # ARB_vertex_buffer_object + WEIGHT_ARRAY_BUFFER_BINDING = 0x889E # ARB_vertex_buffer_object + FOG_COORD_SRC = 0x8450 # alias GL_FOG_COORDINATE_SOURCE + FOG_COORD = 0x8451 # alias GL_FOG_COORDINATE + CURRENT_FOG_COORD = 0x8453 # alias GL_CURRENT_FOG_COORDINATE + FOG_COORD_ARRAY_TYPE = 0x8454 # alias GL_FOG_COORDINATE_ARRAY_TYPE + FOG_COORD_ARRAY_STRIDE = 0x8455 # alias GL_FOG_COORDINATE_ARRAY_STRIDE + FOG_COORD_ARRAY_POINTER = 0x8456 # alias GL_FOG_COORDINATE_ARRAY_POINTER + FOG_COORD_ARRAY = 0x8457 # alias GL_FOG_COORDINATE_ARRAY + FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D # alias GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +# New naming scheme + SRC0_RGB = 0x8580 # alias GL_SOURCE0_RGB + SRC1_RGB = 0x8581 # alias GL_SOURCE1_RGB + SRC2_RGB = 0x8582 # alias GL_SOURCE2_RGB + SRC0_ALPHA = 0x8588 # alias GL_SOURCE0_ALPHA + SRC1_ALPHA = 0x8589 # alias GL_SOURCE1_ALPHA + SRC2_ALPHA = 0x858A # alias GL_SOURCE2_ALPHA + +############################################################################### +# +# OpenGL 2.0 enums +# +############################################################################### + +VERSION_2_0 enum: + BLEND_EQUATION_RGB = 0x8009 # EXT_blend_equation_separate # alias GL_BLEND_EQUATION + VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 # ARB_vertex_shader + VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 # ARB_vertex_shader + VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 # ARB_vertex_shader + VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 # ARB_vertex_shader + CURRENT_VERTEX_ATTRIB = 0x8626 # ARB_vertex_shader + VERTEX_PROGRAM_POINT_SIZE = 0x8642 # ARB_vertex_shader + VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 # ARB_vertex_shader + STENCIL_BACK_FUNC = 0x8800 # ARB_stencil_two_side + STENCIL_BACK_FAIL = 0x8801 # ARB_stencil_two_side + STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 # ARB_stencil_two_side + STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 # ARB_stencil_two_side + MAX_DRAW_BUFFERS = 0x8824 # ARB_draw_buffers + DRAW_BUFFER0 = 0x8825 # ARB_draw_buffers + DRAW_BUFFER1 = 0x8826 # ARB_draw_buffers + DRAW_BUFFER2 = 0x8827 # ARB_draw_buffers + DRAW_BUFFER3 = 0x8828 # ARB_draw_buffers + DRAW_BUFFER4 = 0x8829 # ARB_draw_buffers + DRAW_BUFFER5 = 0x882A # ARB_draw_buffers + DRAW_BUFFER6 = 0x882B # ARB_draw_buffers + DRAW_BUFFER7 = 0x882C # ARB_draw_buffers + DRAW_BUFFER8 = 0x882D # ARB_draw_buffers + DRAW_BUFFER9 = 0x882E # ARB_draw_buffers + DRAW_BUFFER10 = 0x882F # ARB_draw_buffers + DRAW_BUFFER11 = 0x8830 # ARB_draw_buffers + DRAW_BUFFER12 = 0x8831 # ARB_draw_buffers + DRAW_BUFFER13 = 0x8832 # ARB_draw_buffers + DRAW_BUFFER14 = 0x8833 # ARB_draw_buffers + DRAW_BUFFER15 = 0x8834 # ARB_draw_buffers + BLEND_EQUATION_ALPHA = 0x883D # EXT_blend_equation_separate + MAX_VERTEX_ATTRIBS = 0x8869 # ARB_vertex_shader + VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A # ARB_vertex_shader + MAX_TEXTURE_IMAGE_UNITS = 0x8872 # ARB_vertex_shader, ARB_fragment_shader + FRAGMENT_SHADER = 0x8B30 # ARB_fragment_shader + VERTEX_SHADER = 0x8B31 # ARB_vertex_shader + MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49 # ARB_fragment_shader + MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A # ARB_vertex_shader + MAX_VARYING_FLOATS = 0x8B4B # ARB_vertex_shader + MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C # ARB_vertex_shader + MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D # ARB_vertex_shader + SHADER_TYPE = 0x8B4F # ARB_shader_objects + FLOAT_VEC2 = 0x8B50 # ARB_shader_objects + FLOAT_VEC3 = 0x8B51 # ARB_shader_objects + FLOAT_VEC4 = 0x8B52 # ARB_shader_objects + INT_VEC2 = 0x8B53 # ARB_shader_objects + INT_VEC3 = 0x8B54 # ARB_shader_objects + INT_VEC4 = 0x8B55 # ARB_shader_objects + BOOL = 0x8B56 # ARB_shader_objects + BOOL_VEC2 = 0x8B57 # ARB_shader_objects + BOOL_VEC3 = 0x8B58 # ARB_shader_objects + BOOL_VEC4 = 0x8B59 # ARB_shader_objects + FLOAT_MAT2 = 0x8B5A # ARB_shader_objects + FLOAT_MAT3 = 0x8B5B # ARB_shader_objects + FLOAT_MAT4 = 0x8B5C # ARB_shader_objects + SAMPLER_1D = 0x8B5D # ARB_shader_objects + SAMPLER_2D = 0x8B5E # ARB_shader_objects + SAMPLER_3D = 0x8B5F # ARB_shader_objects + SAMPLER_CUBE = 0x8B60 # ARB_shader_objects + SAMPLER_1D_SHADOW = 0x8B61 # ARB_shader_objects + SAMPLER_2D_SHADOW = 0x8B62 # ARB_shader_objects + DELETE_STATUS = 0x8B80 # ARB_shader_objects + COMPILE_STATUS = 0x8B81 # ARB_shader_objects + LINK_STATUS = 0x8B82 # ARB_shader_objects + VALIDATE_STATUS = 0x8B83 # ARB_shader_objects + INFO_LOG_LENGTH = 0x8B84 # ARB_shader_objects + ATTACHED_SHADERS = 0x8B85 # ARB_shader_objects + ACTIVE_UNIFORMS = 0x8B86 # ARB_shader_objects + ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 # ARB_shader_objects + SHADER_SOURCE_LENGTH = 0x8B88 # ARB_shader_objects + ACTIVE_ATTRIBUTES = 0x8B89 # ARB_vertex_shader + ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A # ARB_vertex_shader + FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B # ARB_fragment_shader + SHADING_LANGUAGE_VERSION = 0x8B8C # ARB_shading_language_100 + CURRENT_PROGRAM = 0x8B8D # ARB_shader_objects (added for 2.0) + POINT_SPRITE_COORD_ORIGIN = 0x8CA0 # ARB_point_sprite (added for 2.0) + LOWER_LEFT = 0x8CA1 # ARB_point_sprite (added for 2.0) + UPPER_LEFT = 0x8CA2 # ARB_point_sprite (added for 2.0) + STENCIL_BACK_REF = 0x8CA3 # ARB_stencil_two_side + STENCIL_BACK_VALUE_MASK = 0x8CA4 # ARB_stencil_two_side + STENCIL_BACK_WRITEMASK = 0x8CA5 # ARB_stencil_two_side + +VERSION_2_0_DEPRECATED enum: + VERTEX_PROGRAM_TWO_SIDE = 0x8643 # ARB_vertex_shader + POINT_SPRITE = 0x8861 # ARB_point_sprite + COORD_REPLACE = 0x8862 # ARB_point_sprite + MAX_TEXTURE_COORDS = 0x8871 # ARB_vertex_shader, ARB_fragment_shader + + +############################################################################### +# +# OpenGL 2.1 enums +# +############################################################################### + +VERSION_2_1 enum: + PIXEL_PACK_BUFFER = 0x88EB # ARB_pixel_buffer_object + PIXEL_UNPACK_BUFFER = 0x88EC # ARB_pixel_buffer_object + PIXEL_PACK_BUFFER_BINDING = 0x88ED # ARB_pixel_buffer_object + PIXEL_UNPACK_BUFFER_BINDING = 0x88EF # ARB_pixel_buffer_object + FLOAT_MAT2x3 = 0x8B65 # New for 2.1 + FLOAT_MAT2x4 = 0x8B66 # New for 2.1 + FLOAT_MAT3x2 = 0x8B67 # New for 2.1 + FLOAT_MAT3x4 = 0x8B68 # New for 2.1 + FLOAT_MAT4x2 = 0x8B69 # New for 2.1 + FLOAT_MAT4x3 = 0x8B6A # New for 2.1 + SRGB = 0x8C40 # EXT_texture_sRGB + SRGB8 = 0x8C41 # EXT_texture_sRGB + SRGB_ALPHA = 0x8C42 # EXT_texture_sRGB + SRGB8_ALPHA8 = 0x8C43 # EXT_texture_sRGB + COMPRESSED_SRGB = 0x8C48 # EXT_texture_sRGB + COMPRESSED_SRGB_ALPHA = 0x8C49 # EXT_texture_sRGB + +VERSION_2_1_DEPRECATED enum: + CURRENT_RASTER_SECONDARY_COLOR = 0x845F # New for 2.1 + SLUMINANCE_ALPHA = 0x8C44 # EXT_texture_sRGB + SLUMINANCE8_ALPHA8 = 0x8C45 # EXT_texture_sRGB + SLUMINANCE = 0x8C46 # EXT_texture_sRGB + SLUMINANCE8 = 0x8C47 # EXT_texture_sRGB + COMPRESSED_SLUMINANCE = 0x8C4A # EXT_texture_sRGB + COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B # EXT_texture_sRGB + + +############################################################################### +# +# OpenGL 3.0 enums +# +############################################################################### + +VERSION_3_0 enum: + COMPARE_REF_TO_TEXTURE = 0x884E # alias GL_COMPARE_R_TO_TEXTURE_ARB + CLIP_DISTANCE0 = 0x3000 # alias GL_CLIP_PLANE0 + CLIP_DISTANCE1 = 0x3001 # alias GL_CLIP_PLANE1 + CLIP_DISTANCE2 = 0x3002 # alias GL_CLIP_PLANE2 + CLIP_DISTANCE3 = 0x3003 # alias GL_CLIP_PLANE3 + CLIP_DISTANCE4 = 0x3004 # alias GL_CLIP_PLANE4 + CLIP_DISTANCE5 = 0x3005 # alias GL_CLIP_PLANE5 + CLIP_DISTANCE6 = 0x3006 + CLIP_DISTANCE7 = 0x3007 + MAX_CLIP_DISTANCES = 0x0D32 # alias GL_MAX_CLIP_PLANES + MAJOR_VERSION = 0x821B + MINOR_VERSION = 0x821C + NUM_EXTENSIONS = 0x821D + CONTEXT_FLAGS = 0x821E + DEPTH_BUFFER = 0x8223 + STENCIL_BUFFER = 0x8224 + COMPRESSED_RED = 0x8225 + COMPRESSED_RG = 0x8226 + CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001 + RGBA32F = 0x8814 + RGB32F = 0x8815 + RGBA16F = 0x881A + RGB16F = 0x881B + VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD + MAX_ARRAY_TEXTURE_LAYERS = 0x88FF + MIN_PROGRAM_TEXEL_OFFSET = 0x8904 + MAX_PROGRAM_TEXEL_OFFSET = 0x8905 + CLAMP_READ_COLOR = 0x891C + FIXED_ONLY = 0x891D + MAX_VARYING_COMPONENTS = 0x8B4B # alias GL_MAX_VARYING_FLOATS + TEXTURE_1D_ARRAY = 0x8C18 + PROXY_TEXTURE_1D_ARRAY = 0x8C19 + TEXTURE_2D_ARRAY = 0x8C1A + PROXY_TEXTURE_2D_ARRAY = 0x8C1B + TEXTURE_BINDING_1D_ARRAY = 0x8C1C + TEXTURE_BINDING_2D_ARRAY = 0x8C1D + R11F_G11F_B10F = 0x8C3A + UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B + RGB9_E5 = 0x8C3D + UNSIGNED_INT_5_9_9_9_REV = 0x8C3E + TEXTURE_SHARED_SIZE = 0x8C3F + TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76 + TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80 + TRANSFORM_FEEDBACK_VARYINGS = 0x8C83 + TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84 + TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85 + PRIMITIVES_GENERATED = 0x8C87 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88 + RASTERIZER_DISCARD = 0x8C89 + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B + INTERLEAVED_ATTRIBS = 0x8C8C + SEPARATE_ATTRIBS = 0x8C8D + TRANSFORM_FEEDBACK_BUFFER = 0x8C8E + TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F + RGBA32UI = 0x8D70 + RGB32UI = 0x8D71 + RGBA16UI = 0x8D76 + RGB16UI = 0x8D77 + RGBA8UI = 0x8D7C + RGB8UI = 0x8D7D + RGBA32I = 0x8D82 + RGB32I = 0x8D83 + RGBA16I = 0x8D88 + RGB16I = 0x8D89 + RGBA8I = 0x8D8E + RGB8I = 0x8D8F + RED_INTEGER = 0x8D94 + GREEN_INTEGER = 0x8D95 + BLUE_INTEGER = 0x8D96 + RGB_INTEGER = 0x8D98 + RGBA_INTEGER = 0x8D99 + BGR_INTEGER = 0x8D9A + BGRA_INTEGER = 0x8D9B + SAMPLER_1D_ARRAY = 0x8DC0 + SAMPLER_2D_ARRAY = 0x8DC1 + SAMPLER_1D_ARRAY_SHADOW = 0x8DC3 + SAMPLER_2D_ARRAY_SHADOW = 0x8DC4 + SAMPLER_CUBE_SHADOW = 0x8DC5 + UNSIGNED_INT_VEC2 = 0x8DC6 + UNSIGNED_INT_VEC3 = 0x8DC7 + UNSIGNED_INT_VEC4 = 0x8DC8 + INT_SAMPLER_1D = 0x8DC9 + INT_SAMPLER_2D = 0x8DCA + INT_SAMPLER_3D = 0x8DCB + INT_SAMPLER_CUBE = 0x8DCC + INT_SAMPLER_1D_ARRAY = 0x8DCE + INT_SAMPLER_2D_ARRAY = 0x8DCF + UNSIGNED_INT_SAMPLER_1D = 0x8DD1 + UNSIGNED_INT_SAMPLER_2D = 0x8DD2 + UNSIGNED_INT_SAMPLER_3D = 0x8DD3 + UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4 + UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6 + UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7 + QUERY_WAIT = 0x8E13 + QUERY_NO_WAIT = 0x8E14 + QUERY_BY_REGION_WAIT = 0x8E15 + QUERY_BY_REGION_NO_WAIT = 0x8E16 + BUFFER_ACCESS_FLAGS = 0x911F + BUFFER_MAP_LENGTH = 0x9120 + BUFFER_MAP_OFFSET = 0x9121 +passthru: /* Reuse tokens from ARB_depth_buffer_float */ + use ARB_depth_buffer_float DEPTH_COMPONENT32F + use ARB_depth_buffer_float DEPTH32F_STENCIL8 + use ARB_depth_buffer_float FLOAT_32_UNSIGNED_INT_24_8_REV +passthru: /* Reuse tokens from ARB_framebuffer_object */ + use ARB_framebuffer_object INVALID_FRAMEBUFFER_OPERATION + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_RED_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_GREEN_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_BLUE_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE + use ARB_framebuffer_object FRAMEBUFFER_DEFAULT + use ARB_framebuffer_object FRAMEBUFFER_UNDEFINED + use ARB_framebuffer_object DEPTH_STENCIL_ATTACHMENT + use ARB_framebuffer_object INDEX + use ARB_framebuffer_object MAX_RENDERBUFFER_SIZE + use ARB_framebuffer_object DEPTH_STENCIL + use ARB_framebuffer_object UNSIGNED_INT_24_8 + use ARB_framebuffer_object DEPTH24_STENCIL8 + use ARB_framebuffer_object TEXTURE_STENCIL_SIZE + use ARB_framebuffer_object TEXTURE_RED_TYPE + use ARB_framebuffer_object TEXTURE_GREEN_TYPE + use ARB_framebuffer_object TEXTURE_BLUE_TYPE + use ARB_framebuffer_object TEXTURE_ALPHA_TYPE + use ARB_framebuffer_object TEXTURE_DEPTH_TYPE + use ARB_framebuffer_object UNSIGNED_NORMALIZED + use ARB_framebuffer_object FRAMEBUFFER_BINDING + use ARB_framebuffer_object DRAW_FRAMEBUFFER_BINDING + use ARB_framebuffer_object RENDERBUFFER_BINDING + use ARB_framebuffer_object READ_FRAMEBUFFER + use ARB_framebuffer_object DRAW_FRAMEBUFFER + use ARB_framebuffer_object READ_FRAMEBUFFER_BINDING + use ARB_framebuffer_object RENDERBUFFER_SAMPLES + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_OBJECT_NAME + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER + use ARB_framebuffer_object FRAMEBUFFER_COMPLETE + use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_ATTACHMENT + use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT + use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER + use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_READ_BUFFER + use ARB_framebuffer_object FRAMEBUFFER_UNSUPPORTED + use ARB_framebuffer_object MAX_COLOR_ATTACHMENTS + use ARB_framebuffer_object COLOR_ATTACHMENT0 + use ARB_framebuffer_object COLOR_ATTACHMENT1 + use ARB_framebuffer_object COLOR_ATTACHMENT2 + use ARB_framebuffer_object COLOR_ATTACHMENT3 + use ARB_framebuffer_object COLOR_ATTACHMENT4 + use ARB_framebuffer_object COLOR_ATTACHMENT5 + use ARB_framebuffer_object COLOR_ATTACHMENT6 + use ARB_framebuffer_object COLOR_ATTACHMENT7 + use ARB_framebuffer_object COLOR_ATTACHMENT8 + use ARB_framebuffer_object COLOR_ATTACHMENT9 + use ARB_framebuffer_object COLOR_ATTACHMENT10 + use ARB_framebuffer_object COLOR_ATTACHMENT11 + use ARB_framebuffer_object COLOR_ATTACHMENT12 + use ARB_framebuffer_object COLOR_ATTACHMENT13 + use ARB_framebuffer_object COLOR_ATTACHMENT14 + use ARB_framebuffer_object COLOR_ATTACHMENT15 + use ARB_framebuffer_object DEPTH_ATTACHMENT + use ARB_framebuffer_object STENCIL_ATTACHMENT + use ARB_framebuffer_object FRAMEBUFFER + use ARB_framebuffer_object RENDERBUFFER + use ARB_framebuffer_object RENDERBUFFER_WIDTH + use ARB_framebuffer_object RENDERBUFFER_HEIGHT + use ARB_framebuffer_object RENDERBUFFER_INTERNAL_FORMAT + use ARB_framebuffer_object STENCIL_INDEX1 + use ARB_framebuffer_object STENCIL_INDEX4 + use ARB_framebuffer_object STENCIL_INDEX8 + use ARB_framebuffer_object STENCIL_INDEX16 + use ARB_framebuffer_object RENDERBUFFER_RED_SIZE + use ARB_framebuffer_object RENDERBUFFER_GREEN_SIZE + use ARB_framebuffer_object RENDERBUFFER_BLUE_SIZE + use ARB_framebuffer_object RENDERBUFFER_ALPHA_SIZE + use ARB_framebuffer_object RENDERBUFFER_DEPTH_SIZE + use ARB_framebuffer_object RENDERBUFFER_STENCIL_SIZE + use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_MULTISAMPLE + use ARB_framebuffer_object MAX_SAMPLES +passthru: /* Reuse tokens from ARB_framebuffer_sRGB */ + use ARB_framebuffer_sRGB FRAMEBUFFER_SRGB +passthru: /* Reuse tokens from ARB_half_float_vertex */ + use ARB_half_float_vertex HALF_FLOAT +passthru: /* Reuse tokens from ARB_map_buffer_range */ + use ARB_map_buffer_range MAP_READ_BIT + use ARB_map_buffer_range MAP_WRITE_BIT + use ARB_map_buffer_range MAP_INVALIDATE_RANGE_BIT + use ARB_map_buffer_range MAP_INVALIDATE_BUFFER_BIT + use ARB_map_buffer_range MAP_FLUSH_EXPLICIT_BIT + use ARB_map_buffer_range MAP_UNSYNCHRONIZED_BIT +passthru: /* Reuse tokens from ARB_texture_compression_rgtc */ + use ARB_texture_compression_rgtc COMPRESSED_RED_RGTC1 + use ARB_texture_compression_rgtc COMPRESSED_SIGNED_RED_RGTC1 + use ARB_texture_compression_rgtc COMPRESSED_RG_RGTC2 + use ARB_texture_compression_rgtc COMPRESSED_SIGNED_RG_RGTC2 +passthru: /* Reuse tokens from ARB_texture_rg */ + use ARB_texture_rg RG + use ARB_texture_rg RG_INTEGER + use ARB_texture_rg R8 + use ARB_texture_rg R16 + use ARB_texture_rg RG8 + use ARB_texture_rg RG16 + use ARB_texture_rg R16F + use ARB_texture_rg R32F + use ARB_texture_rg RG16F + use ARB_texture_rg RG32F + use ARB_texture_rg R8I + use ARB_texture_rg R8UI + use ARB_texture_rg R16I + use ARB_texture_rg R16UI + use ARB_texture_rg R32I + use ARB_texture_rg R32UI + use ARB_texture_rg RG8I + use ARB_texture_rg RG8UI + use ARB_texture_rg RG16I + use ARB_texture_rg RG16UI + use ARB_texture_rg RG32I + use ARB_texture_rg RG32UI +passthru: /* Reuse tokens from ARB_vertex_array_object */ + use ARB_vertex_array_object VERTEX_ARRAY_BINDING + +VERSION_3_0_DEPRECATED enum: + CLAMP_VERTEX_COLOR = 0x891A + CLAMP_FRAGMENT_COLOR = 0x891B + ALPHA_INTEGER = 0x8D97 +passthru: /* Reuse tokens from ARB_framebuffer_object */ + use ARB_framebuffer_object TEXTURE_LUMINANCE_TYPE + use ARB_framebuffer_object TEXTURE_INTENSITY_TYPE + + +############################################################################### +# +# OpenGL 3.1 enums +# +############################################################################### + +VERSION_3_1 enum: + SAMPLER_2D_RECT = 0x8B63 # ARB_shader_objects + ARB_texture_rectangle + SAMPLER_2D_RECT_SHADOW = 0x8B64 # ARB_shader_objects + ARB_texture_rectangle + SAMPLER_BUFFER = 0x8DC2 # EXT_gpu_shader4 + ARB_texture_buffer_object + INT_SAMPLER_2D_RECT = 0x8DCD # EXT_gpu_shader4 + ARB_texture_rectangle + INT_SAMPLER_BUFFER = 0x8DD0 # EXT_gpu_shader4 + ARB_texture_buffer_object + UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5 # EXT_gpu_shader4 + ARB_texture_rectangle + UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8 # EXT_gpu_shader4 + ARB_texture_buffer_object + TEXTURE_BUFFER = 0x8C2A # ARB_texture_buffer_object + MAX_TEXTURE_BUFFER_SIZE = 0x8C2B # ARB_texture_buffer_object + TEXTURE_BINDING_BUFFER = 0x8C2C # ARB_texture_buffer_object + TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D # ARB_texture_buffer_object + TEXTURE_BUFFER_FORMAT = 0x8C2E # ARB_texture_buffer_object + TEXTURE_RECTANGLE = 0x84F5 # ARB_texture_rectangle + TEXTURE_BINDING_RECTANGLE = 0x84F6 # ARB_texture_rectangle + PROXY_TEXTURE_RECTANGLE = 0x84F7 # ARB_texture_rectangle + MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8 # ARB_texture_rectangle + RED_SNORM = 0x8F90 # 3.1 + RG_SNORM = 0x8F91 # 3.1 + RGB_SNORM = 0x8F92 # 3.1 + RGBA_SNORM = 0x8F93 # 3.1 + R8_SNORM = 0x8F94 # 3.1 + RG8_SNORM = 0x8F95 # 3.1 + RGB8_SNORM = 0x8F96 # 3.1 + RGBA8_SNORM = 0x8F97 # 3.1 + R16_SNORM = 0x8F98 # 3.1 + RG16_SNORM = 0x8F99 # 3.1 + RGB16_SNORM = 0x8F9A # 3.1 + RGBA16_SNORM = 0x8F9B # 3.1 + SIGNED_NORMALIZED = 0x8F9C # 3.1 + PRIMITIVE_RESTART = 0x8F9D # 3.1 (different from NV_primitive_restart) + PRIMITIVE_RESTART_INDEX = 0x8F9E # 3.1 (different from NV_primitive_restart) +passthru: /* Reuse tokens from ARB_copy_buffer */ + use ARB_copy_buffer COPY_READ_BUFFER + use ARB_copy_buffer COPY_WRITE_BUFFER +passthru: /* Would reuse tokens from ARB_draw_instanced, but it has none */ +passthru: /* Reuse tokens from ARB_uniform_buffer_object */ + use ARB_uniform_buffer_object UNIFORM_BUFFER + use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING + use ARB_uniform_buffer_object UNIFORM_BUFFER_START + use ARB_uniform_buffer_object UNIFORM_BUFFER_SIZE + use ARB_uniform_buffer_object MAX_VERTEX_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_FRAGMENT_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_COMBINED_UNIFORM_BLOCKS + use ARB_uniform_buffer_object MAX_UNIFORM_BUFFER_BINDINGS + use ARB_uniform_buffer_object MAX_UNIFORM_BLOCK_SIZE + use ARB_uniform_buffer_object MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS + use ARB_uniform_buffer_object MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS + use ARB_uniform_buffer_object UNIFORM_BUFFER_OFFSET_ALIGNMENT + use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH + use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCKS + use ARB_uniform_buffer_object UNIFORM_TYPE + use ARB_uniform_buffer_object UNIFORM_SIZE + use ARB_uniform_buffer_object UNIFORM_NAME_LENGTH + use ARB_uniform_buffer_object UNIFORM_BLOCK_INDEX + use ARB_uniform_buffer_object UNIFORM_OFFSET + use ARB_uniform_buffer_object UNIFORM_ARRAY_STRIDE + use ARB_uniform_buffer_object UNIFORM_MATRIX_STRIDE + use ARB_uniform_buffer_object UNIFORM_IS_ROW_MAJOR + use ARB_uniform_buffer_object UNIFORM_BLOCK_BINDING + use ARB_uniform_buffer_object UNIFORM_BLOCK_DATA_SIZE + use ARB_uniform_buffer_object UNIFORM_BLOCK_NAME_LENGTH + use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORMS + use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES + use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER + use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER + use ARB_uniform_buffer_object INVALID_INDEX + + +############################################################################### +# +# OpenGL 3.2 enums +# +############################################################################### + +VERSION_3_2 enum: + CONTEXT_CORE_PROFILE_BIT = 0x00000001 + CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 + LINES_ADJACENCY = 0x000A + LINE_STRIP_ADJACENCY = 0x000B + TRIANGLES_ADJACENCY = 0x000C + TRIANGLE_STRIP_ADJACENCY = 0x000D + PROGRAM_POINT_SIZE = 0x8642 + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 + FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 + GEOMETRY_SHADER = 0x8DD9 + GEOMETRY_VERTICES_OUT = 0x8916 + GEOMETRY_INPUT_TYPE = 0x8917 + GEOMETRY_OUTPUT_TYPE = 0x8918 + MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 + MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122 + MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 + MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 + MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125 + CONTEXT_PROFILE_MASK = 0x9126 + use VERSION_3_0 MAX_VARYING_COMPONENTS + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER +passthru: /* Reuse tokens from ARB_depth_clamp */ + use ARB_depth_clamp DEPTH_CLAMP +passthru: /* Would reuse tokens from ARB_draw_elements_base_vertex, but it has none */ +passthru: /* Would reuse tokens from ARB_fragment_coord_conventions, but it has none */ +passthru: /* Reuse tokens from ARB_provoking_vertex */ + use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION + use ARB_provoking_vertex FIRST_VERTEX_CONVENTION + use ARB_provoking_vertex LAST_VERTEX_CONVENTION + use ARB_provoking_vertex PROVOKING_VERTEX +passthru: /* Reuse tokens from ARB_seamless_cube_map */ + use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS +passthru: /* Reuse tokens from ARB_sync */ + use ARB_sync MAX_SERVER_WAIT_TIMEOUT + use ARB_sync OBJECT_TYPE + use ARB_sync SYNC_CONDITION + use ARB_sync SYNC_STATUS + use ARB_sync SYNC_FLAGS + use ARB_sync SYNC_FENCE + use ARB_sync SYNC_GPU_COMMANDS_COMPLETE + use ARB_sync UNSIGNALED + use ARB_sync SIGNALED + use ARB_sync ALREADY_SIGNALED + use ARB_sync TIMEOUT_EXPIRED + use ARB_sync CONDITION_SATISFIED + use ARB_sync WAIT_FAILED + use ARB_sync TIMEOUT_IGNORED + use ARB_sync SYNC_FLUSH_COMMANDS_BIT + use ARB_sync TIMEOUT_IGNORED +passthru: /* Reuse tokens from ARB_texture_multisample */ + use ARB_texture_multisample SAMPLE_POSITION + use ARB_texture_multisample SAMPLE_MASK + use ARB_texture_multisample SAMPLE_MASK_VALUE + use ARB_texture_multisample MAX_SAMPLE_MASK_WORDS + use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE + use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE + use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE + use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample TEXTURE_SAMPLES + use ARB_texture_multisample TEXTURE_FIXED_SAMPLE_LOCATIONS + use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE + use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY + use ARB_texture_multisample MAX_COLOR_TEXTURE_SAMPLES + use ARB_texture_multisample MAX_DEPTH_TEXTURE_SAMPLES + use ARB_texture_multisample MAX_INTEGER_SAMPLES +passthru: /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ + +############################################################################### +# +# ARB extensions, in ARB extension order +# +############################################################################### + +############################################################################### + +# ARB Extension #1 +ARB_multitexture enum: + TEXTURE0_ARB = 0x84C0 + TEXTURE1_ARB = 0x84C1 + TEXTURE2_ARB = 0x84C2 + TEXTURE3_ARB = 0x84C3 + TEXTURE4_ARB = 0x84C4 + TEXTURE5_ARB = 0x84C5 + TEXTURE6_ARB = 0x84C6 + TEXTURE7_ARB = 0x84C7 + TEXTURE8_ARB = 0x84C8 + TEXTURE9_ARB = 0x84C9 + TEXTURE10_ARB = 0x84CA + TEXTURE11_ARB = 0x84CB + TEXTURE12_ARB = 0x84CC + TEXTURE13_ARB = 0x84CD + TEXTURE14_ARB = 0x84CE + TEXTURE15_ARB = 0x84CF + TEXTURE16_ARB = 0x84D0 + TEXTURE17_ARB = 0x84D1 + TEXTURE18_ARB = 0x84D2 + TEXTURE19_ARB = 0x84D3 + TEXTURE20_ARB = 0x84D4 + TEXTURE21_ARB = 0x84D5 + TEXTURE22_ARB = 0x84D6 + TEXTURE23_ARB = 0x84D7 + TEXTURE24_ARB = 0x84D8 + TEXTURE25_ARB = 0x84D9 + TEXTURE26_ARB = 0x84DA + TEXTURE27_ARB = 0x84DB + TEXTURE28_ARB = 0x84DC + TEXTURE29_ARB = 0x84DD + TEXTURE30_ARB = 0x84DE + TEXTURE31_ARB = 0x84DF + ACTIVE_TEXTURE_ARB = 0x84E0 # 1 I + CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 # 1 I + MAX_TEXTURE_UNITS_ARB = 0x84E2 # 1 I + +############################################################################### + +# No new tokens +# ARB Extension #2 - GLX_ARB_get_proc_address + +############################################################################### + +# ARB Extension #3 +ARB_transpose_matrix enum: + TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 # 16 F + TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 # 16 F + TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 # 16 F + TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 # 16 F + +############################################################################### + +# No new tokens +# ARB Extension #4 - WGL_ARB_buffer_region + +############################################################################### + +# ARB Extension #5 +ARB_multisample enum: + MULTISAMPLE_ARB = 0x809D + SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E + SAMPLE_ALPHA_TO_ONE_ARB = 0x809F + SAMPLE_COVERAGE_ARB = 0x80A0 + SAMPLE_BUFFERS_ARB = 0x80A8 + SAMPLES_ARB = 0x80A9 + SAMPLE_COVERAGE_VALUE_ARB = 0x80AA + SAMPLE_COVERAGE_INVERT_ARB = 0x80AB + MULTISAMPLE_BIT_ARB = 0x20000000 + +############################################################################### + +# No new tokens +# ARB Extension #6 +ARB_texture_env_add enum: + +############################################################################### + +# ARB Extension #7 +ARB_texture_cube_map enum: + NORMAL_MAP_ARB = 0x8511 + REFLECTION_MAP_ARB = 0x8512 + TEXTURE_CUBE_MAP_ARB = 0x8513 + TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A + PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C + +############################################################################### + +# No new tokens +# ARB Extension #8 - WGL_ARB_extensions_string +# ARB Extension #9 - WGL_ARB_pixel_format +# ARB Extension #10 - WGL_ARB_make_current_read +# ARB Extension #11 - WGL_ARB_pbuffer + +############################################################################### + +# ARB Extension #12 +ARB_texture_compression enum: + COMPRESSED_ALPHA_ARB = 0x84E9 + COMPRESSED_LUMINANCE_ARB = 0x84EA + COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB + COMPRESSED_INTENSITY_ARB = 0x84EC + COMPRESSED_RGB_ARB = 0x84ED + COMPRESSED_RGBA_ARB = 0x84EE + TEXTURE_COMPRESSION_HINT_ARB = 0x84EF + TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 + TEXTURE_COMPRESSED_ARB = 0x86A1 + NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 + COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 + +############################################################################### + +# ARB Extension #13 +# Promoted from #36 SGIS_texture_border_clamp +ARB_texture_border_clamp enum: + CLAMP_TO_BORDER_ARB = 0x812D + +############################################################################### + +# ARB Extension #14 - promoted from #54 EXT_point_parameters +# Promoted from #54 {SGIS,EXT}_point_parameters +ARB_point_parameters enum: + POINT_SIZE_MIN_ARB = 0x8126 # 1 F + POINT_SIZE_MAX_ARB = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 # 1 F + POINT_DISTANCE_ATTENUATION_ARB = 0x8129 # 3 F + +############################################################################### + +# ARB Extension #15 +ARB_vertex_blend enum: + MAX_VERTEX_UNITS_ARB = 0x86A4 + ACTIVE_VERTEX_UNITS_ARB = 0x86A5 + WEIGHT_SUM_UNITY_ARB = 0x86A6 + VERTEX_BLEND_ARB = 0x86A7 + CURRENT_WEIGHT_ARB = 0x86A8 + WEIGHT_ARRAY_TYPE_ARB = 0x86A9 + WEIGHT_ARRAY_STRIDE_ARB = 0x86AA + WEIGHT_ARRAY_SIZE_ARB = 0x86AB + WEIGHT_ARRAY_POINTER_ARB = 0x86AC + WEIGHT_ARRAY_ARB = 0x86AD + MODELVIEW0_ARB = 0x1700 + MODELVIEW1_ARB = 0x850A + MODELVIEW2_ARB = 0x8722 + MODELVIEW3_ARB = 0x8723 + MODELVIEW4_ARB = 0x8724 + MODELVIEW5_ARB = 0x8725 + MODELVIEW6_ARB = 0x8726 + MODELVIEW7_ARB = 0x8727 + MODELVIEW8_ARB = 0x8728 + MODELVIEW9_ARB = 0x8729 + MODELVIEW10_ARB = 0x872A + MODELVIEW11_ARB = 0x872B + MODELVIEW12_ARB = 0x872C + MODELVIEW13_ARB = 0x872D + MODELVIEW14_ARB = 0x872E + MODELVIEW15_ARB = 0x872F + MODELVIEW16_ARB = 0x8730 + MODELVIEW17_ARB = 0x8731 + MODELVIEW18_ARB = 0x8732 + MODELVIEW19_ARB = 0x8733 + MODELVIEW20_ARB = 0x8734 + MODELVIEW21_ARB = 0x8735 + MODELVIEW22_ARB = 0x8736 + MODELVIEW23_ARB = 0x8737 + MODELVIEW24_ARB = 0x8738 + MODELVIEW25_ARB = 0x8739 + MODELVIEW26_ARB = 0x873A + MODELVIEW27_ARB = 0x873B + MODELVIEW28_ARB = 0x873C + MODELVIEW29_ARB = 0x873D + MODELVIEW30_ARB = 0x873E + MODELVIEW31_ARB = 0x873F + +############################################################################### + +# ARB Extension #16 +ARB_matrix_palette enum: + MATRIX_PALETTE_ARB = 0x8840 + MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 + MAX_PALETTE_MATRICES_ARB = 0x8842 + CURRENT_PALETTE_MATRIX_ARB = 0x8843 + MATRIX_INDEX_ARRAY_ARB = 0x8844 + CURRENT_MATRIX_INDEX_ARB = 0x8845 + MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 + MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 + MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 + MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 + +############################################################################### + +# ARB Extension #17 +# Shares enum values with EXT_texture_env_combine +ARB_texture_env_combine enum: + COMBINE_ARB = 0x8570 + COMBINE_RGB_ARB = 0x8571 + COMBINE_ALPHA_ARB = 0x8572 + SOURCE0_RGB_ARB = 0x8580 + SOURCE1_RGB_ARB = 0x8581 + SOURCE2_RGB_ARB = 0x8582 + SOURCE0_ALPHA_ARB = 0x8588 + SOURCE1_ALPHA_ARB = 0x8589 + SOURCE2_ALPHA_ARB = 0x858A + OPERAND0_RGB_ARB = 0x8590 + OPERAND1_RGB_ARB = 0x8591 + OPERAND2_RGB_ARB = 0x8592 + OPERAND0_ALPHA_ARB = 0x8598 + OPERAND1_ALPHA_ARB = 0x8599 + OPERAND2_ALPHA_ARB = 0x859A + RGB_SCALE_ARB = 0x8573 + ADD_SIGNED_ARB = 0x8574 + INTERPOLATE_ARB = 0x8575 + SUBTRACT_ARB = 0x84E7 + CONSTANT_ARB = 0x8576 + PRIMARY_COLOR_ARB = 0x8577 + PREVIOUS_ARB = 0x8578 + +############################################################################### + +# No new tokens +# ARB Extension #18 +ARB_texture_env_crossbar enum: + +############################################################################### + +# ARB Extension #19 +# Promoted from #220 EXT_texture_env_dot3; enum values changed +ARB_texture_env_dot3 enum: + DOT3_RGB_ARB = 0x86AE + DOT3_RGBA_ARB = 0x86AF + +############################################################################### + +# No new tokens +# ARB Extension #20 - WGL_ARB_render_texture + +############################################################################### + +# ARB Extension #21 +ARB_texture_mirrored_repeat enum: + MIRRORED_REPEAT_ARB = 0x8370 + +############################################################################### + +# ARB Extension #22 +ARB_depth_texture enum: + DEPTH_COMPONENT16_ARB = 0x81A5 + DEPTH_COMPONENT24_ARB = 0x81A6 + DEPTH_COMPONENT32_ARB = 0x81A7 + TEXTURE_DEPTH_SIZE_ARB = 0x884A + DEPTH_TEXTURE_MODE_ARB = 0x884B + +############################################################################### + +# ARB Extension #23 +ARB_shadow enum: + TEXTURE_COMPARE_MODE_ARB = 0x884C + TEXTURE_COMPARE_FUNC_ARB = 0x884D + COMPARE_R_TO_TEXTURE_ARB = 0x884E + +############################################################################### + +# ARB Extension #24 +ARB_shadow_ambient enum: + TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF + +############################################################################### + +# No new tokens +# ARB Extension #25 +ARB_window_pos enum: + +############################################################################### + +# ARB Extension #26 +# ARB_vertex_program enums are shared by ARB_fragment_program are so marked. +# Unfortunately, PROGRAM_BINDING_ARB does accidentally reuse 0x8677 - +# this was a spec editing typo that's now uncorrectable. +ARB_vertex_program enum: + COLOR_SUM_ARB = 0x8458 + VERTEX_PROGRAM_ARB = 0x8620 + VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622 + VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623 + VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624 + VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625 + CURRENT_VERTEX_ATTRIB_ARB = 0x8626 + PROGRAM_LENGTH_ARB = 0x8627 # shared + PROGRAM_STRING_ARB = 0x8628 # shared + MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # shared + MAX_PROGRAM_MATRICES_ARB = 0x862F # shared + CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # shared + CURRENT_MATRIX_ARB = 0x8641 # shared + VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642 + VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643 + VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645 + PROGRAM_ERROR_POSITION_ARB = 0x864B # shared + PROGRAM_BINDING_ARB = 0x8677 # shared + MAX_VERTEX_ATTRIBS_ARB = 0x8869 + VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A + PROGRAM_ERROR_STRING_ARB = 0x8874 # shared + PROGRAM_FORMAT_ASCII_ARB = 0x8875 # shared + PROGRAM_FORMAT_ARB = 0x8876 # shared + PROGRAM_INSTRUCTIONS_ARB = 0x88A0 # shared + MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 # shared + PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 # shared + MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 # shared + PROGRAM_TEMPORARIES_ARB = 0x88A4 # shared + MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 # shared + PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 # shared + MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 # shared + PROGRAM_PARAMETERS_ARB = 0x88A8 # shared + MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 # shared + PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA # shared + MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB # shared + PROGRAM_ATTRIBS_ARB = 0x88AC # shared + MAX_PROGRAM_ATTRIBS_ARB = 0x88AD # shared + PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE # shared + MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF # shared + PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 # shared + MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 # shared + PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 # shared + MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 # shared + MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 # shared + MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 # shared + PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 # shared + TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 # shared + MATRIX0_ARB = 0x88C0 # shared + MATRIX1_ARB = 0x88C1 # shared + MATRIX2_ARB = 0x88C2 # shared + MATRIX3_ARB = 0x88C3 # shared + MATRIX4_ARB = 0x88C4 # shared + MATRIX5_ARB = 0x88C5 # shared + MATRIX6_ARB = 0x88C6 # shared + MATRIX7_ARB = 0x88C7 # shared + MATRIX8_ARB = 0x88C8 # shared + MATRIX9_ARB = 0x88C9 # shared + MATRIX10_ARB = 0x88CA # shared + MATRIX11_ARB = 0x88CB # shared + MATRIX12_ARB = 0x88CC # shared + MATRIX13_ARB = 0x88CD # shared + MATRIX14_ARB = 0x88CE # shared + MATRIX15_ARB = 0x88CF # shared + MATRIX16_ARB = 0x88D0 # shared + MATRIX17_ARB = 0x88D1 # shared + MATRIX18_ARB = 0x88D2 # shared + MATRIX19_ARB = 0x88D3 # shared + MATRIX20_ARB = 0x88D4 # shared + MATRIX21_ARB = 0x88D5 # shared + MATRIX22_ARB = 0x88D6 # shared + MATRIX23_ARB = 0x88D7 # shared + MATRIX24_ARB = 0x88D8 # shared + MATRIX25_ARB = 0x88D9 # shared + MATRIX26_ARB = 0x88DA # shared + MATRIX27_ARB = 0x88DB # shared + MATRIX28_ARB = 0x88DC # shared + MATRIX29_ARB = 0x88DD # shared + MATRIX30_ARB = 0x88DE # shared + MATRIX31_ARB = 0x88DF # shared + +############################################################################### + +# ARB Extension #27 +# Some ARB_fragment_program enums are shared with ARB_vertex_program, +# and are only included in that #define block, for now. +ARB_fragment_program enum: +# PROGRAM_LENGTH_ARB = 0x8627 # shared +# PROGRAM_STRING_ARB = 0x8628 # shared +# MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # shared +# MAX_PROGRAM_MATRICES_ARB = 0x862F # shared +# CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # shared +# CURRENT_MATRIX_ARB = 0x8641 # shared +# PROGRAM_ERROR_POSITION_ARB = 0x864B # shared +# PROGRAM_BINDING_ARB = 0x8677 # shared + FRAGMENT_PROGRAM_ARB = 0x8804 + PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 + PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 + PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 + PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 + PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 + PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A + MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B + MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C + MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D + MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E + MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F + MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 + MAX_TEXTURE_COORDS_ARB = 0x8871 + MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872 +# PROGRAM_ERROR_STRING_ARB = 0x8874 # shared +# PROGRAM_FORMAT_ASCII_ARB = 0x8875 # shared +# PROGRAM_FORMAT_ARB = 0x8876 # shared +# PROGRAM_INSTRUCTIONS_ARB = 0x88A0 # shared +# MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 # shared +# PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 # shared +# MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 # shared +# PROGRAM_TEMPORARIES_ARB = 0x88A4 # shared +# MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 # shared +# PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 # shared +# MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 # shared +# PROGRAM_PARAMETERS_ARB = 0x88A8 # shared +# MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 # shared +# PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA # shared +# MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB # shared +# PROGRAM_ATTRIBS_ARB = 0x88AC # shared +# MAX_PROGRAM_ATTRIBS_ARB = 0x88AD # shared +# PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE # shared +# MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF # shared +# PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 # shared +# MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 # shared +# PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 # shared +# MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 # shared +# MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 # shared +# MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 # shared +# PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 # shared +# TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 # shared +# MATRIX0_ARB = 0x88C0 # shared +# MATRIX1_ARB = 0x88C1 # shared +# MATRIX2_ARB = 0x88C2 # shared +# MATRIX3_ARB = 0x88C3 # shared +# MATRIX4_ARB = 0x88C4 # shared +# MATRIX5_ARB = 0x88C5 # shared +# MATRIX6_ARB = 0x88C6 # shared +# MATRIX7_ARB = 0x88C7 # shared +# MATRIX8_ARB = 0x88C8 # shared +# MATRIX9_ARB = 0x88C9 # shared +# MATRIX10_ARB = 0x88CA # shared +# MATRIX11_ARB = 0x88CB # shared +# MATRIX12_ARB = 0x88CC # shared +# MATRIX13_ARB = 0x88CD # shared +# MATRIX14_ARB = 0x88CE # shared +# MATRIX15_ARB = 0x88CF # shared +# MATRIX16_ARB = 0x88D0 # shared +# MATRIX17_ARB = 0x88D1 # shared +# MATRIX18_ARB = 0x88D2 # shared +# MATRIX19_ARB = 0x88D3 # shared +# MATRIX20_ARB = 0x88D4 # shared +# MATRIX21_ARB = 0x88D5 # shared +# MATRIX22_ARB = 0x88D6 # shared +# MATRIX23_ARB = 0x88D7 # shared +# MATRIX24_ARB = 0x88D8 # shared +# MATRIX25_ARB = 0x88D9 # shared +# MATRIX26_ARB = 0x88DA # shared +# MATRIX27_ARB = 0x88DB # shared +# MATRIX28_ARB = 0x88DC # shared +# MATRIX29_ARB = 0x88DD # shared +# MATRIX30_ARB = 0x88DE # shared +# MATRIX31_ARB = 0x88DF # shared + + +############################################################################### + +# ARB Extension #28 +ARB_vertex_buffer_object enum: + BUFFER_SIZE_ARB = 0x8764 + BUFFER_USAGE_ARB = 0x8765 + ARRAY_BUFFER_ARB = 0x8892 + ELEMENT_ARRAY_BUFFER_ARB = 0x8893 + ARRAY_BUFFER_BINDING_ARB = 0x8894 + ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 + VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 + NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 + COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 + INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 + TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A + EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B + SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C + FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D + WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F + READ_ONLY_ARB = 0x88B8 + WRITE_ONLY_ARB = 0x88B9 + READ_WRITE_ARB = 0x88BA + BUFFER_ACCESS_ARB = 0x88BB + BUFFER_MAPPED_ARB = 0x88BC + BUFFER_MAP_POINTER_ARB = 0x88BD + STREAM_DRAW_ARB = 0x88E0 + STREAM_READ_ARB = 0x88E1 + STREAM_COPY_ARB = 0x88E2 + STATIC_DRAW_ARB = 0x88E4 + STATIC_READ_ARB = 0x88E5 + STATIC_COPY_ARB = 0x88E6 + DYNAMIC_DRAW_ARB = 0x88E8 + DYNAMIC_READ_ARB = 0x88E9 + DYNAMIC_COPY_ARB = 0x88EA + +############################################################################### + +# ARB Extension #29 +ARB_occlusion_query enum: + QUERY_COUNTER_BITS_ARB = 0x8864 + CURRENT_QUERY_ARB = 0x8865 + QUERY_RESULT_ARB = 0x8866 + QUERY_RESULT_AVAILABLE_ARB = 0x8867 + SAMPLES_PASSED_ARB = 0x8914 + +############################################################################### + +# ARB Extension #30 +ARB_shader_objects enum: + PROGRAM_OBJECT_ARB = 0x8B40 + SHADER_OBJECT_ARB = 0x8B48 + OBJECT_TYPE_ARB = 0x8B4E + OBJECT_SUBTYPE_ARB = 0x8B4F + FLOAT_VEC2_ARB = 0x8B50 + FLOAT_VEC3_ARB = 0x8B51 + FLOAT_VEC4_ARB = 0x8B52 + INT_VEC2_ARB = 0x8B53 + INT_VEC3_ARB = 0x8B54 + INT_VEC4_ARB = 0x8B55 + BOOL_ARB = 0x8B56 + BOOL_VEC2_ARB = 0x8B57 + BOOL_VEC3_ARB = 0x8B58 + BOOL_VEC4_ARB = 0x8B59 + FLOAT_MAT2_ARB = 0x8B5A + FLOAT_MAT3_ARB = 0x8B5B + FLOAT_MAT4_ARB = 0x8B5C + SAMPLER_1D_ARB = 0x8B5D + SAMPLER_2D_ARB = 0x8B5E + SAMPLER_3D_ARB = 0x8B5F + SAMPLER_CUBE_ARB = 0x8B60 + SAMPLER_1D_SHADOW_ARB = 0x8B61 + SAMPLER_2D_SHADOW_ARB = 0x8B62 + SAMPLER_2D_RECT_ARB = 0x8B63 + SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 + OBJECT_DELETE_STATUS_ARB = 0x8B80 + OBJECT_COMPILE_STATUS_ARB = 0x8B81 + OBJECT_LINK_STATUS_ARB = 0x8B82 + OBJECT_VALIDATE_STATUS_ARB = 0x8B83 + OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 + OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 + OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 + OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 + OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 + +############################################################################### + +# ARB Extension #31 +# Additional enums are reused from ARB_vertex/fragment_program and ARB_shader_objects +ARB_vertex_shader enum: + VERTEX_SHADER_ARB = 0x8B31 + MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A + MAX_VARYING_FLOATS_ARB = 0x8B4B + MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C + MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D + OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 + OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A + +############################################################################### + +# ARB Extension #32 +# Additional enums are reused from ARB_fragment_program and ARB_shader_objects +ARB_fragment_shader enum: + FRAGMENT_SHADER_ARB = 0x8B30 + MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 + FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B + +############################################################################### + +# ARB Extension #33 +ARB_shading_language_100 enum: + SHADING_LANGUAGE_VERSION_ARB = 0x8B8C + +############################################################################### + +# ARB Extension #34 +# No new tokens +ARB_texture_non_power_of_two enum: + +############################################################################### + +# ARB Extension #35 +ARB_point_sprite enum: + POINT_SPRITE_ARB = 0x8861 + COORD_REPLACE_ARB = 0x8862 + +############################################################################### + +# ARB Extension #36 +# No new tokens +ARB_fragment_program_shadow enum: + +############################################################################### + +# ARB Extension #37 +ARB_draw_buffers enum: + MAX_DRAW_BUFFERS_ARB = 0x8824 + DRAW_BUFFER0_ARB = 0x8825 + DRAW_BUFFER1_ARB = 0x8826 + DRAW_BUFFER2_ARB = 0x8827 + DRAW_BUFFER3_ARB = 0x8828 + DRAW_BUFFER4_ARB = 0x8829 + DRAW_BUFFER5_ARB = 0x882A + DRAW_BUFFER6_ARB = 0x882B + DRAW_BUFFER7_ARB = 0x882C + DRAW_BUFFER8_ARB = 0x882D + DRAW_BUFFER9_ARB = 0x882E + DRAW_BUFFER10_ARB = 0x882F + DRAW_BUFFER11_ARB = 0x8830 + DRAW_BUFFER12_ARB = 0x8831 + DRAW_BUFFER13_ARB = 0x8832 + DRAW_BUFFER14_ARB = 0x8833 + DRAW_BUFFER15_ARB = 0x8834 + +############################################################################### + +# ARB Extension #38 +ARB_texture_rectangle enum: + TEXTURE_RECTANGLE_ARB = 0x84F5 + TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 + PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 + MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 + +############################################################################### + +# ARB Extension #39 +ARB_color_buffer_float enum: + RGBA_FLOAT_MODE_ARB = 0x8820 + CLAMP_VERTEX_COLOR_ARB = 0x891A + CLAMP_FRAGMENT_COLOR_ARB = 0x891B + CLAMP_READ_COLOR_ARB = 0x891C + FIXED_ONLY_ARB = 0x891D + +############################################################################### + +# ARB Extension #40 +ARB_half_float_pixel enum: + HALF_FLOAT_ARB = 0x140B + +############################################################################### + +# ARB Extension #41 +ARB_texture_float enum: + TEXTURE_RED_TYPE_ARB = 0x8C10 + TEXTURE_GREEN_TYPE_ARB = 0x8C11 + TEXTURE_BLUE_TYPE_ARB = 0x8C12 + TEXTURE_ALPHA_TYPE_ARB = 0x8C13 + TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 + TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 + TEXTURE_DEPTH_TYPE_ARB = 0x8C16 + UNSIGNED_NORMALIZED_ARB = 0x8C17 + RGBA32F_ARB = 0x8814 + RGB32F_ARB = 0x8815 + ALPHA32F_ARB = 0x8816 + INTENSITY32F_ARB = 0x8817 + LUMINANCE32F_ARB = 0x8818 + LUMINANCE_ALPHA32F_ARB = 0x8819 + RGBA16F_ARB = 0x881A + RGB16F_ARB = 0x881B + ALPHA16F_ARB = 0x881C + INTENSITY16F_ARB = 0x881D + LUMINANCE16F_ARB = 0x881E + LUMINANCE_ALPHA16F_ARB = 0x881F + +############################################################################### + +# ARB Extension #42 +ARB_pixel_buffer_object enum: + PIXEL_PACK_BUFFER_ARB = 0x88EB + PIXEL_UNPACK_BUFFER_ARB = 0x88EC + PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED + PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF + +############################################################################### + +# ARB Extension #43 +ARB_depth_buffer_float enum: + DEPTH_COMPONENT32F = 0x8CAC + DEPTH32F_STENCIL8 = 0x8CAD + FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD + +############################################################################### + +# ARB Extension #44 +# No new tokens +ARB_draw_instanced enum: + +############################################################################### + +# ARB Extension #45 +ARB_framebuffer_object enum: + INVALID_FRAMEBUFFER_OPERATION = 0x0506 + FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210 + FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211 + FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212 + FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213 + FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214 + FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215 + FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216 + FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217 + FRAMEBUFFER_DEFAULT = 0x8218 + FRAMEBUFFER_UNDEFINED = 0x8219 + DEPTH_STENCIL_ATTACHMENT = 0x821A + MAX_RENDERBUFFER_SIZE = 0x84E8 + DEPTH_STENCIL = 0x84F9 + UNSIGNED_INT_24_8 = 0x84FA + DEPTH24_STENCIL8 = 0x88F0 + TEXTURE_STENCIL_SIZE = 0x88F1 + TEXTURE_RED_TYPE = 0x8C10 + TEXTURE_GREEN_TYPE = 0x8C11 + TEXTURE_BLUE_TYPE = 0x8C12 + TEXTURE_ALPHA_TYPE = 0x8C13 + TEXTURE_DEPTH_TYPE = 0x8C16 + UNSIGNED_NORMALIZED = 0x8C17 + FRAMEBUFFER_BINDING = 0x8CA6 + DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING + RENDERBUFFER_BINDING = 0x8CA7 + READ_FRAMEBUFFER = 0x8CA8 + DRAW_FRAMEBUFFER = 0x8CA9 + READ_FRAMEBUFFER_BINDING = 0x8CAA + RENDERBUFFER_SAMPLES = 0x8CAB + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4 + FRAMEBUFFER_COMPLETE = 0x8CD5 + FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB + FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC + FRAMEBUFFER_UNSUPPORTED = 0x8CDD + MAX_COLOR_ATTACHMENTS = 0x8CDF + COLOR_ATTACHMENT0 = 0x8CE0 + COLOR_ATTACHMENT1 = 0x8CE1 + COLOR_ATTACHMENT2 = 0x8CE2 + COLOR_ATTACHMENT3 = 0x8CE3 + COLOR_ATTACHMENT4 = 0x8CE4 + COLOR_ATTACHMENT5 = 0x8CE5 + COLOR_ATTACHMENT6 = 0x8CE6 + COLOR_ATTACHMENT7 = 0x8CE7 + COLOR_ATTACHMENT8 = 0x8CE8 + COLOR_ATTACHMENT9 = 0x8CE9 + COLOR_ATTACHMENT10 = 0x8CEA + COLOR_ATTACHMENT11 = 0x8CEB + COLOR_ATTACHMENT12 = 0x8CEC + COLOR_ATTACHMENT13 = 0x8CED + COLOR_ATTACHMENT14 = 0x8CEE + COLOR_ATTACHMENT15 = 0x8CEF + DEPTH_ATTACHMENT = 0x8D00 + STENCIL_ATTACHMENT = 0x8D20 + FRAMEBUFFER = 0x8D40 + RENDERBUFFER = 0x8D41 + RENDERBUFFER_WIDTH = 0x8D42 + RENDERBUFFER_HEIGHT = 0x8D43 + RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 + STENCIL_INDEX1 = 0x8D46 + STENCIL_INDEX4 = 0x8D47 + STENCIL_INDEX8 = 0x8D48 + STENCIL_INDEX16 = 0x8D49 + RENDERBUFFER_RED_SIZE = 0x8D50 + RENDERBUFFER_GREEN_SIZE = 0x8D51 + RENDERBUFFER_BLUE_SIZE = 0x8D52 + RENDERBUFFER_ALPHA_SIZE = 0x8D53 + RENDERBUFFER_DEPTH_SIZE = 0x8D54 + RENDERBUFFER_STENCIL_SIZE = 0x8D55 + FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56 + MAX_SAMPLES = 0x8D57 + +ARB_framebuffer_object_DEPRECATED enum: + INDEX = 0x8222 + TEXTURE_LUMINANCE_TYPE = 0x8C14 + TEXTURE_INTENSITY_TYPE = 0x8C15 + +############################################################################### + +# ARB Extension #46 +ARB_framebuffer_sRGB enum: + FRAMEBUFFER_SRGB = 0x8DB9 + +############################################################################### + +# ARB Extension #47 +ARB_geometry_shader4 enum: + LINES_ADJACENCY_ARB = 0x000A + LINE_STRIP_ADJACENCY_ARB = 0x000B + TRIANGLES_ADJACENCY_ARB = 0x000C + TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D + PROGRAM_POINT_SIZE_ARB = 0x8642 + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 + FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 + FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 + GEOMETRY_SHADER_ARB = 0x8DD9 + GEOMETRY_VERTICES_OUT_ARB = 0x8DDA + GEOMETRY_INPUT_TYPE_ARB = 0x8DDB + GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC + MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD + MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE + MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 + use VERSION_3_0 MAX_VARYING_COMPONENTS + use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER + +############################################################################### + +# ARB Extension #48 +ARB_half_float_vertex enum: + HALF_FLOAT = 0x140B + +############################################################################### + +# ARB Extension #49 +ARB_instanced_arrays enum: + VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE + +############################################################################### + +# ARB Extension #50 +ARB_map_buffer_range enum: + MAP_READ_BIT = 0x0001 + MAP_WRITE_BIT = 0x0002 + MAP_INVALIDATE_RANGE_BIT = 0x0004 + MAP_INVALIDATE_BUFFER_BIT = 0x0008 + MAP_FLUSH_EXPLICIT_BIT = 0x0010 + MAP_UNSYNCHRONIZED_BIT = 0x0020 + +############################################################################### + +# ARB Extension #51 +ARB_texture_buffer_object enum: + TEXTURE_BUFFER_ARB = 0x8C2A + MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B + TEXTURE_BINDING_BUFFER_ARB = 0x8C2C + TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D + TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E + +############################################################################### + +# ARB Extension #52 +ARB_texture_compression_rgtc enum: + COMPRESSED_RED_RGTC1 = 0x8DBB + COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC + COMPRESSED_RG_RGTC2 = 0x8DBD + COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE + +############################################################################### + +# ARB Extension #53 +ARB_texture_rg enum: + RG = 0x8227 + RG_INTEGER = 0x8228 + R8 = 0x8229 + R16 = 0x822A + RG8 = 0x822B + RG16 = 0x822C + R16F = 0x822D + R32F = 0x822E + RG16F = 0x822F + RG32F = 0x8230 + R8I = 0x8231 + R8UI = 0x8232 + R16I = 0x8233 + R16UI = 0x8234 + R32I = 0x8235 + R32UI = 0x8236 + RG8I = 0x8237 + RG8UI = 0x8238 + RG16I = 0x8239 + RG16UI = 0x823A + RG32I = 0x823B + RG32UI = 0x823C + +############################################################################### + +# ARB Extension #54 +ARB_vertex_array_object enum: + VERTEX_ARRAY_BINDING = 0x85B5 + +############################################################################### + +# No new tokens +# ARB Extension #55 - WGL_ARB_create_context +# ARB Extension #56 - GLX_ARB_create_context + +############################################################################### + +# ARB Extension #57 +ARB_uniform_buffer_object enum: + UNIFORM_BUFFER = 0x8A11 + UNIFORM_BUFFER_BINDING = 0x8A28 + UNIFORM_BUFFER_START = 0x8A29 + UNIFORM_BUFFER_SIZE = 0x8A2A + MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B + MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C + MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D + MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E + MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F + MAX_UNIFORM_BLOCK_SIZE = 0x8A30 + MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 + MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 + MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 + UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 + ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 + ACTIVE_UNIFORM_BLOCKS = 0x8A36 + UNIFORM_TYPE = 0x8A37 + UNIFORM_SIZE = 0x8A38 + UNIFORM_NAME_LENGTH = 0x8A39 + UNIFORM_BLOCK_INDEX = 0x8A3A + UNIFORM_OFFSET = 0x8A3B + UNIFORM_ARRAY_STRIDE = 0x8A3C + UNIFORM_MATRIX_STRIDE = 0x8A3D + UNIFORM_IS_ROW_MAJOR = 0x8A3E + UNIFORM_BLOCK_BINDING = 0x8A3F + UNIFORM_BLOCK_DATA_SIZE = 0x8A40 + UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 + UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 + UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 + UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 + UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 + UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 + INVALID_INDEX = 0xFFFFFFFFu + +############################################################################### + +# ARB Extension #58 +# No new tokens +ARB_compatibility enum: +passthru: /* ARB_compatibility just defines tokens from core 3.0 */ + +############################################################################### + +# ARB Extension #59 +ARB_copy_buffer enum: + COPY_READ_BUFFER = 0x8F36 + COPY_WRITE_BUFFER = 0x8F37 + +############################################################################### + +# ARB Extension #60 +# No new tokens +ARB_shader_texture_lod enum: + +############################################################################### + +# ARB Extension #61 +ARB_depth_clamp enum: + DEPTH_CLAMP = 0x864F + +############################################################################### + +# No new tokens +# ARB Extension #62 +ARB_draw_elements_base_vertex enum: + +############################################################################### + +# No new tokens +# ARB Extension #63 +ARB_fragment_coord_conventions enum: + +############################################################################### + +# ARB Extension #64 +ARB_provoking_vertex enum: + QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C + FIRST_VERTEX_CONVENTION = 0x8E4D + LAST_VERTEX_CONVENTION = 0x8E4E + PROVOKING_VERTEX = 0x8E4F + +############################################################################### + +# ARB Extension #65 +ARB_seamless_cube_map enum: + TEXTURE_CUBE_MAP_SEAMLESS = 0x884F + +############################################################################### + +# ARB Extension #66 +ARB_sync enum: + MAX_SERVER_WAIT_TIMEOUT = 0x9111 + OBJECT_TYPE = 0x9112 + SYNC_CONDITION = 0x9113 + SYNC_STATUS = 0x9114 + SYNC_FLAGS = 0x9115 + SYNC_FENCE = 0x9116 + SYNC_GPU_COMMANDS_COMPLETE = 0x9117 + UNSIGNALED = 0x9118 + SIGNALED = 0x9119 + ALREADY_SIGNALED = 0x911A + TIMEOUT_EXPIRED = 0x911B + CONDITION_SATISFIED = 0x911C + WAIT_FAILED = 0x911D + SYNC_FLUSH_COMMANDS_BIT = 0x00000001 + TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFull + +############################################################################### + +# ARB Extension #67 +ARB_texture_multisample enum: + SAMPLE_POSITION = 0x8E50 + SAMPLE_MASK = 0x8E51 + SAMPLE_MASK_VALUE = 0x8E52 + MAX_SAMPLE_MASK_WORDS = 0x8E59 + TEXTURE_2D_MULTISAMPLE = 0x9100 + PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101 + TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102 + PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103 + TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104 + TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105 + TEXTURE_SAMPLES = 0x9106 + TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107 + SAMPLER_2D_MULTISAMPLE = 0x9108 + INT_SAMPLER_2D_MULTISAMPLE = 0x9109 + UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A + SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B + INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C + UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D + MAX_COLOR_TEXTURE_SAMPLES = 0x910E + MAX_DEPTH_TEXTURE_SAMPLES = 0x910F + MAX_INTEGER_SAMPLES = 0x9110 + +############################################################################### + +# ARB Extension #68 +ARB_vertex_array_bgra enum: + use VERSION_1_2 BGRA + +############################################################################### + +# No new tokens +# ARB Extension #69 +ARB_draw_buffers_blend enum: + +############################################################################### + +# ARB Extension #70 +ARB_sample_shading enum: + SAMPLE_SHADING = 0x8C36 + MIN_SAMPLE_SHADING_VALUE = 0x8C37 + +############################################################################### + +# ARB Extension #71 +ARB_texture_cube_map_array enum: + TEXTURE_CUBE_MAP_ARRAY = 0x9009 + TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A + PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B + SAMPLER_CUBE_MAP_ARRAY = 0x900C + SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D + INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E + UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F + +############################################################################### + +# ARB Extension #72 +ARB_texture_gather enum: + MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E + MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F + MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F + +############################################################################### + +# No new tokens +# ARB Extension #73 +ARB_texture_query_lod enum: + +############################################################################### + +# No new tokens +# ARB Extension #74 - WGL_ARB_create_context_profile +# ARB Extension #75 - GLX_ARB_create_context_profile + +############################################################################### +# +# non-ARB extensions follow, in registry order +# +############################################################################### + +############################################################################### + +# Extension #1 +EXT_abgr enum: + ABGR_EXT = 0x8000 + +############################################################################### + +# Extension #2 +EXT_blend_color enum: + CONSTANT_COLOR_EXT = 0x8001 + ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 + CONSTANT_ALPHA_EXT = 0x8003 + ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 + BLEND_COLOR_EXT = 0x8005 # 4 F + +############################################################################### + +# Extension #3 +EXT_polygon_offset enum: + POLYGON_OFFSET_EXT = 0x8037 + POLYGON_OFFSET_FACTOR_EXT = 0x8038 + POLYGON_OFFSET_BIAS_EXT = 0x8039 # 1 F + +############################################################################### + +# Extension #4 +EXT_texture enum: + ALPHA4_EXT = 0x803B + ALPHA8_EXT = 0x803C + ALPHA12_EXT = 0x803D + ALPHA16_EXT = 0x803E + LUMINANCE4_EXT = 0x803F + LUMINANCE8_EXT = 0x8040 + LUMINANCE12_EXT = 0x8041 + LUMINANCE16_EXT = 0x8042 + LUMINANCE4_ALPHA4_EXT = 0x8043 + LUMINANCE6_ALPHA2_EXT = 0x8044 + LUMINANCE8_ALPHA8_EXT = 0x8045 + LUMINANCE12_ALPHA4_EXT = 0x8046 + LUMINANCE12_ALPHA12_EXT = 0x8047 + LUMINANCE16_ALPHA16_EXT = 0x8048 + INTENSITY_EXT = 0x8049 + INTENSITY4_EXT = 0x804A + INTENSITY8_EXT = 0x804B + INTENSITY12_EXT = 0x804C + INTENSITY16_EXT = 0x804D + RGB2_EXT = 0x804E + RGB4_EXT = 0x804F + RGB5_EXT = 0x8050 + RGB8_EXT = 0x8051 + RGB10_EXT = 0x8052 + RGB12_EXT = 0x8053 + RGB16_EXT = 0x8054 + RGBA2_EXT = 0x8055 + RGBA4_EXT = 0x8056 + RGB5_A1_EXT = 0x8057 + RGBA8_EXT = 0x8058 + RGB10_A2_EXT = 0x8059 + RGBA12_EXT = 0x805A + RGBA16_EXT = 0x805B + TEXTURE_RED_SIZE_EXT = 0x805C + TEXTURE_GREEN_SIZE_EXT = 0x805D + TEXTURE_BLUE_SIZE_EXT = 0x805E + TEXTURE_ALPHA_SIZE_EXT = 0x805F + TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 + TEXTURE_INTENSITY_SIZE_EXT = 0x8061 + REPLACE_EXT = 0x8062 + PROXY_TEXTURE_1D_EXT = 0x8063 + PROXY_TEXTURE_2D_EXT = 0x8064 + TEXTURE_TOO_LARGE_EXT = 0x8065 + +############################################################################### + +# Extension #5 - skipped + +############################################################################### + +# Extension #6 +EXT_texture3D enum: + PACK_SKIP_IMAGES_EXT = 0x806B # 1 I + PACK_IMAGE_HEIGHT_EXT = 0x806C # 1 F + UNPACK_SKIP_IMAGES_EXT = 0x806D # 1 I + UNPACK_IMAGE_HEIGHT_EXT = 0x806E # 1 F + TEXTURE_3D_EXT = 0x806F # 1 I + PROXY_TEXTURE_3D_EXT = 0x8070 + TEXTURE_DEPTH_EXT = 0x8071 + TEXTURE_WRAP_R_EXT = 0x8072 + MAX_3D_TEXTURE_SIZE_EXT = 0x8073 # 1 I + +############################################################################### + +# Extension #7 +SGIS_texture_filter4 enum: + FILTER4_SGIS = 0x8146 + TEXTURE_FILTER4_SIZE_SGIS = 0x8147 + +############################################################################### + +# Extension #8 - skipped + +############################################################################### + +# No new tokens +# Extension #9 +EXT_subtexture enum: + +############################################################################### + +# No new tokens +# Extension #10 +EXT_copy_texture enum: + +############################################################################### + +# Extension #11 +EXT_histogram enum: + HISTOGRAM_EXT = 0x8024 # 1 I + PROXY_HISTOGRAM_EXT = 0x8025 + HISTOGRAM_WIDTH_EXT = 0x8026 + HISTOGRAM_FORMAT_EXT = 0x8027 + HISTOGRAM_RED_SIZE_EXT = 0x8028 + HISTOGRAM_GREEN_SIZE_EXT = 0x8029 + HISTOGRAM_BLUE_SIZE_EXT = 0x802A + HISTOGRAM_ALPHA_SIZE_EXT = 0x802B + HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C + HISTOGRAM_SINK_EXT = 0x802D + MINMAX_EXT = 0x802E # 1 I + MINMAX_FORMAT_EXT = 0x802F + MINMAX_SINK_EXT = 0x8030 + TABLE_TOO_LARGE_EXT = 0x8031 + +############################################################################### + +# Extension #12 +EXT_convolution enum: + CONVOLUTION_1D_EXT = 0x8010 # 1 I + CONVOLUTION_2D_EXT = 0x8011 # 1 I + SEPARABLE_2D_EXT = 0x8012 # 1 I + CONVOLUTION_BORDER_MODE_EXT = 0x8013 + CONVOLUTION_FILTER_SCALE_EXT = 0x8014 + CONVOLUTION_FILTER_BIAS_EXT = 0x8015 + REDUCE_EXT = 0x8016 + CONVOLUTION_FORMAT_EXT = 0x8017 + CONVOLUTION_WIDTH_EXT = 0x8018 + CONVOLUTION_HEIGHT_EXT = 0x8019 + MAX_CONVOLUTION_WIDTH_EXT = 0x801A + MAX_CONVOLUTION_HEIGHT_EXT = 0x801B + POST_CONVOLUTION_RED_SCALE_EXT = 0x801C # 1 F + POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D # 1 F + POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E # 1 F + POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F # 1 F + POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 # 1 F + POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 # 1 F + POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 # 1 F + POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 # 1 F + +############################################################################### + +# Extension #13 +SGI_color_matrix enum: + COLOR_MATRIX_SGI = 0x80B1 # 16 F + COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 # 1 I + MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 # 1 I + POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 # 1 F + POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 # 1 F + POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 # 1 F + POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 # 1 F + POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 # 1 F + POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 # 1 F + POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA # 1 F + POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB # 1 F + +############################################################################### + +# Extension #14 +SGI_color_table enum: + COLOR_TABLE_SGI = 0x80D0 # 1 I + POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 # 1 I + POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 # 1 I + PROXY_COLOR_TABLE_SGI = 0x80D3 + PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 + PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 + COLOR_TABLE_SCALE_SGI = 0x80D6 + COLOR_TABLE_BIAS_SGI = 0x80D7 + COLOR_TABLE_FORMAT_SGI = 0x80D8 + COLOR_TABLE_WIDTH_SGI = 0x80D9 + COLOR_TABLE_RED_SIZE_SGI = 0x80DA + COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB + COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC + COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD + COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE + COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF + +############################################################################### + +# Extension #15 +SGIS_pixel_texture enum: + PIXEL_TEXTURE_SGIS = 0x8353 # 1 I + PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 # 1 I + PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 # 1 I + PIXEL_GROUP_COLOR_SGIS = 0x8356 # 1 I + +############################################################################### + +# Extension #15a +SGIX_pixel_texture enum: + PIXEL_TEX_GEN_SGIX = 0x8139 # 1 I + PIXEL_TEX_GEN_MODE_SGIX = 0x832B # 1 I + +############################################################################### + +# Extension #16 +SGIS_texture4D enum: + PACK_SKIP_VOLUMES_SGIS = 0x8130 # 1 I + PACK_IMAGE_DEPTH_SGIS = 0x8131 # 1 I + UNPACK_SKIP_VOLUMES_SGIS = 0x8132 # 1 I + UNPACK_IMAGE_DEPTH_SGIS = 0x8133 # 1 I + TEXTURE_4D_SGIS = 0x8134 # 1 I + PROXY_TEXTURE_4D_SGIS = 0x8135 + TEXTURE_4DSIZE_SGIS = 0x8136 + TEXTURE_WRAP_Q_SGIS = 0x8137 + MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 # 1 I + TEXTURE_4D_BINDING_SGIS = 0x814F # 1 I + +############################################################################### + +# Extension #17 +SGI_texture_color_table enum: + TEXTURE_COLOR_TABLE_SGI = 0x80BC # 1 I + PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD + +############################################################################### + +# Extension #18 +EXT_cmyka enum: + CMYK_EXT = 0x800C + CMYKA_EXT = 0x800D + PACK_CMYK_HINT_EXT = 0x800E # 1 I + UNPACK_CMYK_HINT_EXT = 0x800F # 1 I + +############################################################################### + +# Extension #19 - skipped + +############################################################################### + +# Extension #20 +EXT_texture_object enum: + TEXTURE_PRIORITY_EXT = 0x8066 + TEXTURE_RESIDENT_EXT = 0x8067 + TEXTURE_1D_BINDING_EXT = 0x8068 + TEXTURE_2D_BINDING_EXT = 0x8069 + TEXTURE_3D_BINDING_EXT = 0x806A # 1 I + +############################################################################### + +# Extension #21 +SGIS_detail_texture enum: + DETAIL_TEXTURE_2D_SGIS = 0x8095 + DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 # 1 I + LINEAR_DETAIL_SGIS = 0x8097 + LINEAR_DETAIL_ALPHA_SGIS = 0x8098 + LINEAR_DETAIL_COLOR_SGIS = 0x8099 + DETAIL_TEXTURE_LEVEL_SGIS = 0x809A + DETAIL_TEXTURE_MODE_SGIS = 0x809B + DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C + +############################################################################### + +# Extension #22 +SGIS_sharpen_texture enum: + LINEAR_SHARPEN_SGIS = 0x80AD + LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE + LINEAR_SHARPEN_COLOR_SGIS = 0x80AF + SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 + +############################################################################### + +# Extension #23 +EXT_packed_pixels enum: + UNSIGNED_BYTE_3_3_2_EXT = 0x8032 + UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 + UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 + UNSIGNED_INT_8_8_8_8_EXT = 0x8035 + UNSIGNED_INT_10_10_10_2_EXT = 0x8036 + +############################################################################### + +# Extension #24 +SGIS_texture_lod enum: + TEXTURE_MIN_LOD_SGIS = 0x813A + TEXTURE_MAX_LOD_SGIS = 0x813B + TEXTURE_BASE_LEVEL_SGIS = 0x813C + TEXTURE_MAX_LEVEL_SGIS = 0x813D + +############################################################################### + +# Extension #25 +SGIS_multisample enum: + MULTISAMPLE_SGIS = 0x809D # 1 I + SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E # 1 I + SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F # 1 I + SAMPLE_MASK_SGIS = 0x80A0 # 1 I + 1PASS_SGIS = 0x80A1 + 2PASS_0_SGIS = 0x80A2 + 2PASS_1_SGIS = 0x80A3 + 4PASS_0_SGIS = 0x80A4 + 4PASS_1_SGIS = 0x80A5 + 4PASS_2_SGIS = 0x80A6 + 4PASS_3_SGIS = 0x80A7 + SAMPLE_BUFFERS_SGIS = 0x80A8 # 1 I + SAMPLES_SGIS = 0x80A9 # 1 I + SAMPLE_MASK_VALUE_SGIS = 0x80AA # 1 F + SAMPLE_MASK_INVERT_SGIS = 0x80AB # 1 I + SAMPLE_PATTERN_SGIS = 0x80AC # 1 I + +############################################################################### + +# Extension #26 - no specification? +# SGIS_premultiply_blend enum: + +############################################################################## + +# Extension #27 +# Diamond ships an otherwise identical IBM_rescale_normal extension; +# Dan Brokenshire says this is deprecated and should not be advertised. +EXT_rescale_normal enum: + RESCALE_NORMAL_EXT = 0x803A # 1 I + +############################################################################### + +# Extension #28 - GLX_EXT_visual_info + +############################################################################### + +# Extension #29 - skipped + +############################################################################### + +# Extension #30 +EXT_vertex_array enum: + VERTEX_ARRAY_EXT = 0x8074 + NORMAL_ARRAY_EXT = 0x8075 + COLOR_ARRAY_EXT = 0x8076 + INDEX_ARRAY_EXT = 0x8077 + TEXTURE_COORD_ARRAY_EXT = 0x8078 + EDGE_FLAG_ARRAY_EXT = 0x8079 + VERTEX_ARRAY_SIZE_EXT = 0x807A + VERTEX_ARRAY_TYPE_EXT = 0x807B + VERTEX_ARRAY_STRIDE_EXT = 0x807C + VERTEX_ARRAY_COUNT_EXT = 0x807D # 1 I + NORMAL_ARRAY_TYPE_EXT = 0x807E + NORMAL_ARRAY_STRIDE_EXT = 0x807F + NORMAL_ARRAY_COUNT_EXT = 0x8080 # 1 I + COLOR_ARRAY_SIZE_EXT = 0x8081 + COLOR_ARRAY_TYPE_EXT = 0x8082 + COLOR_ARRAY_STRIDE_EXT = 0x8083 + COLOR_ARRAY_COUNT_EXT = 0x8084 # 1 I + INDEX_ARRAY_TYPE_EXT = 0x8085 + INDEX_ARRAY_STRIDE_EXT = 0x8086 + INDEX_ARRAY_COUNT_EXT = 0x8087 # 1 I + TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 + TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 + TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A + TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B # 1 I + EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C + EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D # 1 I + VERTEX_ARRAY_POINTER_EXT = 0x808E + NORMAL_ARRAY_POINTER_EXT = 0x808F + COLOR_ARRAY_POINTER_EXT = 0x8090 + INDEX_ARRAY_POINTER_EXT = 0x8091 + TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 + EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 + +############################################################################### + +# Extension #31 +EXT_misc_attribute enum: +# MISC_BIT = 0x???? + +############################################################################### + +# Extension #32 +SGIS_generate_mipmap enum: + GENERATE_MIPMAP_SGIS = 0x8191 + GENERATE_MIPMAP_HINT_SGIS = 0x8192 # 1 I + +############################################################################### + +# Extension #33 +SGIX_clipmap enum: + LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 + TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 + TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 + TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 + TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 + TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 + TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 + MAX_CLIPMAP_DEPTH_SGIX = 0x8177 # 1 I + MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 # 1 I + NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D + NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E + LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F + +############################################################################### + +# Extension #34 +SGIX_shadow enum: + TEXTURE_COMPARE_SGIX = 0x819A + TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B + TEXTURE_LEQUAL_R_SGIX = 0x819C + TEXTURE_GEQUAL_R_SGIX = 0x819D + +############################################################################### + +# Extension #35 +SGIS_texture_edge_clamp enum: + CLAMP_TO_EDGE_SGIS = 0x812F + +############################################################################### + +# Extension #36 +# Promoted to ARB_texture_border_clamp +SGIS_texture_border_clamp enum: + CLAMP_TO_BORDER_SGIS = 0x812D + +############################################################################### + +# Extension #37 +EXT_blend_minmax enum: + FUNC_ADD_EXT = 0x8006 + MIN_EXT = 0x8007 + MAX_EXT = 0x8008 + BLEND_EQUATION_EXT = 0x8009 # 1 I + +############################################################################### + +# Extension #38 +EXT_blend_subtract enum: + FUNC_SUBTRACT_EXT = 0x800A + FUNC_REVERSE_SUBTRACT_EXT = 0x800B + +############################################################################### + +# No new tokens +# Extension #39 +EXT_blend_logic_op enum: + +############################################################################### + +# Extension #40 - GLX_SGI_swap_control +# Extension #41 - GLX_SGI_video_sync +# Extension #42 - GLX_SGI_make_current_read +# Extension #43 - GLX_SGIX_video_source +# Extension #44 - GLX_EXT_visual_rating + +############################################################################### + +# Extension #45 +SGIX_interlace enum: + INTERLACE_SGIX = 0x8094 # 1 I + +############################################################################### + +# Extension #46 +SGIX_pixel_tiles enum: + PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E # 1 I + PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F # 1 I + PIXEL_TILE_WIDTH_SGIX = 0x8140 # 1 I + PIXEL_TILE_HEIGHT_SGIX = 0x8141 # 1 I + PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 # 1 I + PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 # 1 I + PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 # 1 I + PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 # 1 I + +############################################################################### + +# Extension #47 - GLX_EXT_import_context + +############################################################################### + +# Extension #48 - skipped + +############################################################################### + +# Extension #49 - GLX_SGIX_fbconfig +# Extension #50 - GLX_SGIX_pbuffer + +############################################################################### + +# Extension #51 +SGIS_texture_select enum: + DUAL_ALPHA4_SGIS = 0x8110 + DUAL_ALPHA8_SGIS = 0x8111 + DUAL_ALPHA12_SGIS = 0x8112 + DUAL_ALPHA16_SGIS = 0x8113 + DUAL_LUMINANCE4_SGIS = 0x8114 + DUAL_LUMINANCE8_SGIS = 0x8115 + DUAL_LUMINANCE12_SGIS = 0x8116 + DUAL_LUMINANCE16_SGIS = 0x8117 + DUAL_INTENSITY4_SGIS = 0x8118 + DUAL_INTENSITY8_SGIS = 0x8119 + DUAL_INTENSITY12_SGIS = 0x811A + DUAL_INTENSITY16_SGIS = 0x811B + DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C + DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D + QUAD_ALPHA4_SGIS = 0x811E + QUAD_ALPHA8_SGIS = 0x811F + QUAD_LUMINANCE4_SGIS = 0x8120 + QUAD_LUMINANCE8_SGIS = 0x8121 + QUAD_INTENSITY4_SGIS = 0x8122 + QUAD_INTENSITY8_SGIS = 0x8123 + DUAL_TEXTURE_SELECT_SGIS = 0x8124 + QUAD_TEXTURE_SELECT_SGIS = 0x8125 + +############################################################################### + +# Extension #52 +SGIX_sprite enum: + SPRITE_SGIX = 0x8148 # 1 I + SPRITE_MODE_SGIX = 0x8149 # 1 I + SPRITE_AXIS_SGIX = 0x814A # 3 F + SPRITE_TRANSLATION_SGIX = 0x814B # 3 F + SPRITE_AXIAL_SGIX = 0x814C + SPRITE_OBJECT_ALIGNED_SGIX = 0x814D + SPRITE_EYE_ALIGNED_SGIX = 0x814E + +############################################################################### + +# Extension #53 +SGIX_texture_multi_buffer enum: + TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E + +############################################################################### + +# Extension #54 +# EXT form promoted from SGIS form; both are included +EXT_point_parameters enum: + POINT_SIZE_MIN_EXT = 0x8126 # 1 F + POINT_SIZE_MAX_EXT = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 # 1 F + DISTANCE_ATTENUATION_EXT = 0x8129 # 3 F + +SGIS_point_parameters enum: + POINT_SIZE_MIN_SGIS = 0x8126 # 1 F + POINT_SIZE_MAX_SGIS = 0x8127 # 1 F + POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 # 1 F + DISTANCE_ATTENUATION_SGIS = 0x8129 # 3 F + +############################################################################### + +# Extension #55 +SGIX_instruments enum: + INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 + INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 # 1 I + +############################################################################### + +# Extension #56 +SGIX_texture_scale_bias enum: + POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 + POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A + POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B # 2 F + POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C # 2 F + +############################################################################### + +# Extension #57 +SGIX_framezoom enum: + FRAMEZOOM_SGIX = 0x818B # 1 I + FRAMEZOOM_FACTOR_SGIX = 0x818C # 1 I + MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D # 1 I + +############################################################################### + +# No new tokens +# Extension #58 +SGIX_tag_sample_buffer enum: + +############################################################################### + +# Extension #59 +FfdMaskSGIX enum: + TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 + GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 +SGIX_polynomial_ffd enum: + GEOMETRY_DEFORMATION_SGIX = 0x8194 + TEXTURE_DEFORMATION_SGIX = 0x8195 + DEFORMATIONS_MASK_SGIX = 0x8196 # 1 I + MAX_DEFORMATION_ORDER_SGIX = 0x8197 + +############################################################################### + +# Extension #60 +SGIX_reference_plane enum: + REFERENCE_PLANE_SGIX = 0x817D # 1 I + REFERENCE_PLANE_EQUATION_SGIX = 0x817E # 4 F + +############################################################################### + +# No new tokens +# Extension #61 +SGIX_flush_raster enum: + +############################################################################### + +# Extension #62 - GLX_SGIX_cushion + +############################################################################### + +# Extension #63 +SGIX_depth_texture enum: + DEPTH_COMPONENT16_SGIX = 0x81A5 + DEPTH_COMPONENT24_SGIX = 0x81A6 + DEPTH_COMPONENT32_SGIX = 0x81A7 + +############################################################################### + +# Extension #64 +SGIS_fog_function enum: + FOG_FUNC_SGIS = 0x812A + FOG_FUNC_POINTS_SGIS = 0x812B # 1 I + MAX_FOG_FUNC_POINTS_SGIS = 0x812C # 1 I + +############################################################################### + +# Extension #65 +SGIX_fog_offset enum: + FOG_OFFSET_SGIX = 0x8198 # 1 I + FOG_OFFSET_VALUE_SGIX = 0x8199 # 4 F + +############################################################################### + +# Extension #66 +HP_image_transform enum: + IMAGE_SCALE_X_HP = 0x8155 + IMAGE_SCALE_Y_HP = 0x8156 + IMAGE_TRANSLATE_X_HP = 0x8157 + IMAGE_TRANSLATE_Y_HP = 0x8158 + IMAGE_ROTATE_ANGLE_HP = 0x8159 + IMAGE_ROTATE_ORIGIN_X_HP = 0x815A + IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B + IMAGE_MAG_FILTER_HP = 0x815C + IMAGE_MIN_FILTER_HP = 0x815D + IMAGE_CUBIC_WEIGHT_HP = 0x815E + CUBIC_HP = 0x815F + AVERAGE_HP = 0x8160 + IMAGE_TRANSFORM_2D_HP = 0x8161 + POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162 + PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163 + +############################################################################### + +# Extension #67 +HP_convolution_border_modes enum: + IGNORE_BORDER_HP = 0x8150 + CONSTANT_BORDER_HP = 0x8151 + REPLICATE_BORDER_HP = 0x8153 + CONVOLUTION_BORDER_COLOR_HP = 0x8154 + +############################################################################### + +# Extension #68 +# (Unknown token values???) +INGR_palette_buffer enum: + +############################################################################### + +# Extension #69 +SGIX_texture_add_env enum: + TEXTURE_ENV_BIAS_SGIX = 0x80BE + +############################################################################### + +# Extension #70 - skipped +# Extension #71 - skipped +# Extension #72 - skipped +# Extension #73 - skipped + +############################################################################### + +# No new tokens +# Extension #74 +EXT_color_subtable enum: + +############################################################################### + +# Extension #75 - GLU_EXT_object_space_tess + +############################################################################### + +# Extension #76 +PGI_vertex_hints enum: + VERTEX_DATA_HINT_PGI = 0x1A22A + VERTEX_CONSISTENT_HINT_PGI = 0x1A22B + MATERIAL_SIDE_HINT_PGI = 0x1A22C + MAX_VERTEX_HINT_PGI = 0x1A22D + COLOR3_BIT_PGI = 0x00010000 + COLOR4_BIT_PGI = 0x00020000 + EDGEFLAG_BIT_PGI = 0x00040000 + INDEX_BIT_PGI = 0x00080000 + MAT_AMBIENT_BIT_PGI = 0x00100000 + MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000 + MAT_DIFFUSE_BIT_PGI = 0x00400000 + MAT_EMISSION_BIT_PGI = 0x00800000 + MAT_COLOR_INDEXES_BIT_PGI = 0x01000000 + MAT_SHININESS_BIT_PGI = 0x02000000 + MAT_SPECULAR_BIT_PGI = 0x04000000 + NORMAL_BIT_PGI = 0x08000000 + TEXCOORD1_BIT_PGI = 0x10000000 + TEXCOORD2_BIT_PGI = 0x20000000 + TEXCOORD3_BIT_PGI = 0x40000000 + TEXCOORD4_BIT_PGI = 0x80000000 + VERTEX23_BIT_PGI = 0x00000004 + VERTEX4_BIT_PGI = 0x00000008 + +############################################################################### + +# Extension #77 +PGI_misc_hints enum: + PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8 + CONSERVE_MEMORY_HINT_PGI = 0x1A1FD + RECLAIM_MEMORY_HINT_PGI = 0x1A1FE + NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202 + NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203 + NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204 + ALWAYS_FAST_HINT_PGI = 0x1A20C + ALWAYS_SOFT_HINT_PGI = 0x1A20D + ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E + ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F + ALLOW_DRAW_FRG_HINT_PGI = 0x1A210 + ALLOW_DRAW_MEM_HINT_PGI = 0x1A211 + STRICT_DEPTHFUNC_HINT_PGI = 0x1A216 + STRICT_LIGHTING_HINT_PGI = 0x1A217 + STRICT_SCISSOR_HINT_PGI = 0x1A218 + FULL_STIPPLE_HINT_PGI = 0x1A219 + CLIP_NEAR_HINT_PGI = 0x1A220 + CLIP_FAR_HINT_PGI = 0x1A221 + WIDE_LINE_HINT_PGI = 0x1A222 + BACK_NORMALS_HINT_PGI = 0x1A223 + +############################################################################### + +# Extension #78 +EXT_paletted_texture enum: + COLOR_INDEX1_EXT = 0x80E2 + COLOR_INDEX2_EXT = 0x80E3 + COLOR_INDEX4_EXT = 0x80E4 + COLOR_INDEX8_EXT = 0x80E5 + COLOR_INDEX12_EXT = 0x80E6 + COLOR_INDEX16_EXT = 0x80E7 + TEXTURE_INDEX_SIZE_EXT = 0x80ED + +############################################################################### + +# Extension #79 +EXT_clip_volume_hint enum: + CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0 + +############################################################################### + +# Extension #80 +SGIX_list_priority enum: + LIST_PRIORITY_SGIX = 0x8182 + +############################################################################### + +# Extension #81 +SGIX_ir_instrument1 enum: + IR_INSTRUMENT1_SGIX = 0x817F # 1 I + +############################################################################### + +# Extension #82 +SGIX_calligraphic_fragment enum: + CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 # 1 I + +############################################################################### + +# Extension #83 - GLX_SGIX_video_resize + +############################################################################### + +# Extension #84 +SGIX_texture_lod_bias enum: + TEXTURE_LOD_BIAS_S_SGIX = 0x818E + TEXTURE_LOD_BIAS_T_SGIX = 0x818F + TEXTURE_LOD_BIAS_R_SGIX = 0x8190 + +############################################################################### + +# Extension #85 - skipped + +############################################################################### + +# Extension #86 - GLX_SGIX_dmbuffer + +############################################################################### + +# Extension #87 - skipped +# Extension #88 - skipped +# Extension #89 - skipped + +############################################################################### + +# Extension #90 +SGIX_shadow_ambient enum: + SHADOW_AMBIENT_SGIX = 0x80BF + +############################################################################### + +# Extension #91 - GLX_SGIX_swap_group +# Extension #92 - GLX_SGIX_swap_barrier + +############################################################################### + +# No new tokens +# Extension #93 +EXT_index_texture enum: + +############################################################################### + +# Extension #94 +# Promoted from SGI? +EXT_index_material enum: + INDEX_MATERIAL_EXT = 0x81B8 + INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 + INDEX_MATERIAL_FACE_EXT = 0x81BA + +############################################################################### + +# Extension #95 +# Promoted from SGI? +EXT_index_func enum: + INDEX_TEST_EXT = 0x81B5 + INDEX_TEST_FUNC_EXT = 0x81B6 + INDEX_TEST_REF_EXT = 0x81B7 + +############################################################################### + +# Extension #96 +# Promoted from SGI? +EXT_index_array_formats enum: + IUI_V2F_EXT = 0x81AD + IUI_V3F_EXT = 0x81AE + IUI_N3F_V2F_EXT = 0x81AF + IUI_N3F_V3F_EXT = 0x81B0 + T2F_IUI_V2F_EXT = 0x81B1 + T2F_IUI_V3F_EXT = 0x81B2 + T2F_IUI_N3F_V2F_EXT = 0x81B3 + T2F_IUI_N3F_V3F_EXT = 0x81B4 + +############################################################################### + +# Extension #97 +# Promoted from SGI? +EXT_compiled_vertex_array enum: + ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 + ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 + +############################################################################### + +# Extension #98 +# Promoted from SGI? +EXT_cull_vertex enum: + CULL_VERTEX_EXT = 0x81AA + CULL_VERTEX_EYE_POSITION_EXT = 0x81AB + CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC + +############################################################################### + +# Extension #99 - skipped + +############################################################################### + +# Extension #100 - GLU_EXT_nurbs_tessellator + +############################################################################### + +# Extension #101 +SGIX_ycrcb enum: + YCRCB_422_SGIX = 0x81BB + YCRCB_444_SGIX = 0x81BC + +############################################################################### + +# Extension #102 +SGIX_fragment_lighting enum: + FRAGMENT_LIGHTING_SGIX = 0x8400 # 1 I + FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 # 1 I + FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 # 1 I + FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 # 1 I + MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 # 1 I + MAX_ACTIVE_LIGHTS_SGIX = 0x8405 # 1 I + CURRENT_RASTER_NORMAL_SGIX = 0x8406 # 1 I + LIGHT_ENV_MODE_SGIX = 0x8407 # 1 I + FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 # 1 I + FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 # 1 I + FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A # 4 F + FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B # 1 I + FRAGMENT_LIGHT0_SGIX = 0x840C # 1 I + FRAGMENT_LIGHT1_SGIX = 0x840D + FRAGMENT_LIGHT2_SGIX = 0x840E + FRAGMENT_LIGHT3_SGIX = 0x840F + FRAGMENT_LIGHT4_SGIX = 0x8410 + FRAGMENT_LIGHT5_SGIX = 0x8411 + FRAGMENT_LIGHT6_SGIX = 0x8412 + FRAGMENT_LIGHT7_SGIX = 0x8413 + +############################################################################### + +# Extension #103 - skipped +# Extension #104 - skipped +# Extension #105 - skipped +# Extension #106 - skipped +# Extension #107 - skipped +# Extension #108 - skipped +# Extension #109 - skipped + +############################################################################### + +# Extension #110 +IBM_rasterpos_clip enum: + RASTER_POSITION_UNCLIPPED_IBM = 0x19262 + +############################################################################### + +# Extension #111 +HP_texture_lighting enum: + TEXTURE_LIGHTING_MODE_HP = 0x8167 + TEXTURE_POST_SPECULAR_HP = 0x8168 + TEXTURE_PRE_SPECULAR_HP = 0x8169 + +############################################################################### + +# Extension #112 +EXT_draw_range_elements enum: + MAX_ELEMENTS_VERTICES_EXT = 0x80E8 + MAX_ELEMENTS_INDICES_EXT = 0x80E9 + +############################################################################### + +# Extension #113 +WIN_phong_shading enum: + PHONG_WIN = 0x80EA + PHONG_HINT_WIN = 0x80EB + +############################################################################### + +# Extension #114 +WIN_specular_fog enum: + FOG_SPECULAR_TEXTURE_WIN = 0x80EC + +############################################################################### + +# Extension #115 - skipped +# Extension #116 - skipped + +############################################################################### + +# Extension #117 +EXT_light_texture enum: + FRAGMENT_MATERIAL_EXT = 0x8349 + FRAGMENT_NORMAL_EXT = 0x834A + FRAGMENT_COLOR_EXT = 0x834C + ATTENUATION_EXT = 0x834D + SHADOW_ATTENUATION_EXT = 0x834E + TEXTURE_APPLICATION_MODE_EXT = 0x834F # 1 I + TEXTURE_LIGHT_EXT = 0x8350 # 1 I + TEXTURE_MATERIAL_FACE_EXT = 0x8351 # 1 I + TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 # 1 I + use EXT_fog_coord FRAGMENT_DEPTH_EXT + +############################################################################### + +# Extension #118 - skipped + +############################################################################### + +# Extension #119 +SGIX_blend_alpha_minmax enum: + ALPHA_MIN_SGIX = 0x8320 + ALPHA_MAX_SGIX = 0x8321 + +############################################################################### + +# Extension #120 - skipped +# Extension #121 - skipped +# Extension #122 - skipped +# Extension #123 - skipped +# Extension #124 - skipped +# Extension #125 - skipped + +############################################################################### + +# Extension #126 +SGIX_impact_pixel_texture enum: + PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184 + PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185 + PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186 + PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187 + PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188 + PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189 + PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A + +############################################################################### + +# Extension #127 - skipped +# Extension #128 - skipped + +############################################################################### + +# Extension #129 +EXT_bgra enum: + BGR_EXT = 0x80E0 + BGRA_EXT = 0x80E1 + +############################################################################### + +# Extension #130 - skipped +# Extension #131 - skipped + +############################################################################### + +# Extension #132 +SGIX_async enum: + ASYNC_MARKER_SGIX = 0x8329 + +############################################################################### + +# Extension #133 +SGIX_async_pixel enum: + ASYNC_TEX_IMAGE_SGIX = 0x835C + ASYNC_DRAW_PIXELS_SGIX = 0x835D + ASYNC_READ_PIXELS_SGIX = 0x835E + MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F + MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 + MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 + +############################################################################### + +# Extension #134 +SGIX_async_histogram enum: + ASYNC_HISTOGRAM_SGIX = 0x832C + MAX_ASYNC_HISTOGRAM_SGIX = 0x832D + +############################################################################### + +# Intel has not implemented this; enums never assigned +# Extension #135 +INTEL_texture_scissor enum: +# TEXTURE_SCISSOR_INTEL = 0x???? +# TEXTURE_SCISSOR_INTEL = 0x???? +# TEXTURE_SCISSOR_FUNC_INTEL = 0x???? +# TEXTURE_SCISSOR_S_INTEL = 0x???? +# TEXTURE_SCISSOR_T_INTEL = 0x???? +# TEXTURE_SCISSOR_R_INTEL = 0x???? + +############################################################################### + +# Extension #136 +INTEL_parallel_arrays enum: + PARALLEL_ARRAYS_INTEL = 0x83F4 + VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 + NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 + COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 + TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 + +############################################################################### + +# Extension #137 +HP_occlusion_test enum: + OCCLUSION_TEST_HP = 0x8165 + OCCLUSION_TEST_RESULT_HP = 0x8166 + +############################################################################### + +# Extension #138 +EXT_pixel_transform enum: + PIXEL_TRANSFORM_2D_EXT = 0x8330 + PIXEL_MAG_FILTER_EXT = 0x8331 + PIXEL_MIN_FILTER_EXT = 0x8332 + PIXEL_CUBIC_WEIGHT_EXT = 0x8333 + CUBIC_EXT = 0x8334 + AVERAGE_EXT = 0x8335 + PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 + MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 + PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 + +############################################################################### + +# Unknown enum values +# Extension #139 +EXT_pixel_transform_color_table enum: + +# PIXEL_TRANSFORM_COLOR_TABLE_EXT +# PROXY_PIXEL_TRANSFORM_COLOR_TABLE_EXT + +############################################################################### + +# Extension #140 - skipped + +############################################################################### + +# Extension #141 +EXT_shared_texture_palette enum: + SHARED_TEXTURE_PALETTE_EXT = 0x81FB + +############################################################################### + +# Extension #142 - GLX_SGIS_blended_overlay + +############################################################################### + +# Extension #143 - SGIS_shared_multisample +# MULTISAMPLE_SUB_RECT_POSITION_SGIS = +# MULTISAMPLE_SUB_RECT_DIMS_SGIS = + +############################################################################### + +# Extension #144 +EXT_separate_specular_color enum: + LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 + SINGLE_COLOR_EXT = 0x81F9 + SEPARATE_SPECULAR_COLOR_EXT = 0x81FA + +############################################################################### + +# Extension #145 +EXT_secondary_color enum: + COLOR_SUM_EXT = 0x8458 # 1 I + CURRENT_SECONDARY_COLOR_EXT = 0x8459 # 3 F + SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A # 1 I + SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B # 1 I + SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C # 1 I + SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D + SECONDARY_COLOR_ARRAY_EXT = 0x845E # 1 I + +############################################################################### + +# Dead extension - EXT_texture_env_combine was finished instead +# Extension #146 +#EXT_texture_env enum: + +############################################################################### + +# Extension #147 +EXT_texture_perturb_normal enum: + PERTURB_EXT = 0x85AE + TEXTURE_NORMAL_EXT = 0x85AF + +############################################################################### + +# No new tokens +# Extension #148 +# Diamond ships an otherwise identical IBM_multi_draw_arrays extension; +# Dan Brokenshire says this is deprecated and should not be advertised. +EXT_multi_draw_arrays enum: + +############################################################################### + +# Extension #149 +EXT_fog_coord enum: + FOG_COORDINATE_SOURCE_EXT = 0x8450 # 1 I + FOG_COORDINATE_EXT = 0x8451 + FRAGMENT_DEPTH_EXT = 0x8452 + CURRENT_FOG_COORDINATE_EXT = 0x8453 # 1 F + FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 # 1 I + FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 # 1 I + FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 + FOG_COORDINATE_ARRAY_EXT = 0x8457 # 1 I + +############################################################################### + +# Extension #150 - skipped +# Extension #151 - skipped +# Extension #152 - skipped +# Extension #153 - skipped +# Extension #154 - skipped + +############################################################################### + +# Extension #155 +REND_screen_coordinates enum: + SCREEN_COORDINATES_REND = 0x8490 + INVERTED_SCREEN_W_REND = 0x8491 + +############################################################################### + +# Extension #156 +EXT_coordinate_frame enum: + TANGENT_ARRAY_EXT = 0x8439 + BINORMAL_ARRAY_EXT = 0x843A + CURRENT_TANGENT_EXT = 0x843B + CURRENT_BINORMAL_EXT = 0x843C + TANGENT_ARRAY_TYPE_EXT = 0x843E + TANGENT_ARRAY_STRIDE_EXT = 0x843F + BINORMAL_ARRAY_TYPE_EXT = 0x8440 + BINORMAL_ARRAY_STRIDE_EXT = 0x8441 + TANGENT_ARRAY_POINTER_EXT = 0x8442 + BINORMAL_ARRAY_POINTER_EXT = 0x8443 + MAP1_TANGENT_EXT = 0x8444 + MAP2_TANGENT_EXT = 0x8445 + MAP1_BINORMAL_EXT = 0x8446 + MAP2_BINORMAL_EXT = 0x8447 + +############################################################################### + +# Extension #157 - skipped + +############################################################################### + +# Extension #158 +EXT_texture_env_combine enum: + COMBINE_EXT = 0x8570 + COMBINE_RGB_EXT = 0x8571 + COMBINE_ALPHA_EXT = 0x8572 + RGB_SCALE_EXT = 0x8573 + ADD_SIGNED_EXT = 0x8574 + INTERPOLATE_EXT = 0x8575 + CONSTANT_EXT = 0x8576 + PRIMARY_COLOR_EXT = 0x8577 + PREVIOUS_EXT = 0x8578 + SOURCE0_RGB_EXT = 0x8580 + SOURCE1_RGB_EXT = 0x8581 + SOURCE2_RGB_EXT = 0x8582 + SOURCE0_ALPHA_EXT = 0x8588 + SOURCE1_ALPHA_EXT = 0x8589 + SOURCE2_ALPHA_EXT = 0x858A + OPERAND0_RGB_EXT = 0x8590 + OPERAND1_RGB_EXT = 0x8591 + OPERAND2_RGB_EXT = 0x8592 + OPERAND0_ALPHA_EXT = 0x8598 + OPERAND1_ALPHA_EXT = 0x8599 + OPERAND2_ALPHA_EXT = 0x859A + +############################################################################### + +# Extension #159 +APPLE_specular_vector enum: + LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 + +############################################################################### + +# Extension #160 +APPLE_transform_hint enum: + TRANSFORM_HINT_APPLE = 0x85B1 + +############################################################################### + +# Extension #161 +SGIX_fog_scale enum: + FOG_SCALE_SGIX = 0x81FC + FOG_SCALE_VALUE_SGIX = 0x81FD + +############################################################################### + +# Extension #162 - skipped + +############################################################################### + +# Extension #163 +SUNX_constant_data enum: + UNPACK_CONSTANT_DATA_SUNX = 0x81D5 + TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 + +############################################################################### + +# Extension #164 +SUN_global_alpha enum: + GLOBAL_ALPHA_SUN = 0x81D9 + GLOBAL_ALPHA_FACTOR_SUN = 0x81DA + +############################################################################### + +# Extension #165 +SUN_triangle_list enum: + RESTART_SUN = 0x0001 + REPLACE_MIDDLE_SUN = 0x0002 + REPLACE_OLDEST_SUN = 0x0003 + TRIANGLE_LIST_SUN = 0x81D7 + REPLACEMENT_CODE_SUN = 0x81D8 + REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 + REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 + REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 + REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 + R1UI_V3F_SUN = 0x85C4 + R1UI_C4UB_V3F_SUN = 0x85C5 + R1UI_C3F_V3F_SUN = 0x85C6 + R1UI_N3F_V3F_SUN = 0x85C7 + R1UI_C4F_N3F_V3F_SUN = 0x85C8 + R1UI_T2F_V3F_SUN = 0x85C9 + R1UI_T2F_N3F_V3F_SUN = 0x85CA + R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB + +############################################################################### + +# No new tokens +# Extension #166 +SUN_vertex enum: + +############################################################################### + +# Extension #167 - WGL_EXT_display_color_table +# Extension #168 - WGL_EXT_extensions_string +# Extension #169 - WGL_EXT_make_current_read +# Extension #170 - WGL_EXT_pixel_format +# Extension #171 - WGL_EXT_pbuffer +# Extension #172 - WGL_EXT_swap_control + +############################################################################### + +# Extension #173 +EXT_blend_func_separate enum: + BLEND_DST_RGB_EXT = 0x80C8 + BLEND_SRC_RGB_EXT = 0x80C9 + BLEND_DST_ALPHA_EXT = 0x80CA + BLEND_SRC_ALPHA_EXT = 0x80CB + +############################################################################### + +# Extension #174 +INGR_color_clamp enum: + RED_MIN_CLAMP_INGR = 0x8560 + GREEN_MIN_CLAMP_INGR = 0x8561 + BLUE_MIN_CLAMP_INGR = 0x8562 + ALPHA_MIN_CLAMP_INGR = 0x8563 + RED_MAX_CLAMP_INGR = 0x8564 + GREEN_MAX_CLAMP_INGR = 0x8565 + BLUE_MAX_CLAMP_INGR = 0x8566 + ALPHA_MAX_CLAMP_INGR = 0x8567 + +############################################################################### + +# Extension #175 +INGR_interlace_read enum: + INTERLACE_READ_INGR = 0x8568 + +############################################################################### + +# Extension #176 +EXT_stencil_wrap enum: + INCR_WRAP_EXT = 0x8507 + DECR_WRAP_EXT = 0x8508 + +############################################################################### + +# Extension #177 - skipped + +############################################################################### + +# Extension #178 +EXT_422_pixels enum: + 422_EXT = 0x80CC + 422_REV_EXT = 0x80CD + 422_AVERAGE_EXT = 0x80CE + 422_REV_AVERAGE_EXT = 0x80CF + +############################################################################### + +# Extension #179 +NV_texgen_reflection enum: + NORMAL_MAP_NV = 0x8511 + REFLECTION_MAP_NV = 0x8512 + +############################################################################### + +# Extension #180 - skipped +# Extension #181 - skipped + +############################################################################### + +# Is this shipping? No extension number assigned. +# Extension #? +EXT_texture_cube_map enum: + NORMAL_MAP_EXT = 0x8511 + REFLECTION_MAP_EXT = 0x8512 + TEXTURE_CUBE_MAP_EXT = 0x8513 + TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 + TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 + TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 + TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 + TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 + TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 + TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A + PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B + MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C + +############################################################################### + +# Extension #182 +SUN_convolution_border_modes enum: + WRAP_BORDER_SUN = 0x81D4 + +############################################################################### + +# Extension #183 - GLX_SUN_transparent_index + +############################################################################### + +# Extension #184 - skipped + +############################################################################### + +# No new tokens +# Extension #185 +EXT_texture_env_add enum: + +############################################################################### + +# Extension #186 +EXT_texture_lod_bias enum: + MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD + TEXTURE_FILTER_CONTROL_EXT = 0x8500 + TEXTURE_LOD_BIAS_EXT = 0x8501 + +############################################################################### + +# Extension #187 +EXT_texture_filter_anisotropic enum: + TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE + MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF + +############################################################################### + +# Extension #188 +EXT_vertex_weighting enum: + MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH + MODELVIEW1_STACK_DEPTH_EXT = 0x8502 + MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX + MODELVIEW1_MATRIX_EXT = 0x8506 + VERTEX_WEIGHTING_EXT = 0x8509 + MODELVIEW0_EXT = GL_MODELVIEW + MODELVIEW1_EXT = 0x850A + CURRENT_VERTEX_WEIGHT_EXT = 0x850B + VERTEX_WEIGHT_ARRAY_EXT = 0x850C + VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D + VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E + VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F + VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 + +############################################################################### + +# Extension #189 +NV_light_max_exponent enum: + MAX_SHININESS_NV = 0x8504 + MAX_SPOT_EXPONENT_NV = 0x8505 + +############################################################################### + +# Extension #190 +NV_vertex_array_range enum: + VERTEX_ARRAY_RANGE_NV = 0x851D + VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E + VERTEX_ARRAY_RANGE_VALID_NV = 0x851F + MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 + VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 + +############################################################################### + +# Extension #191 +NV_register_combiners enum: + REGISTER_COMBINERS_NV = 0x8522 + VARIABLE_A_NV = 0x8523 + VARIABLE_B_NV = 0x8524 + VARIABLE_C_NV = 0x8525 + VARIABLE_D_NV = 0x8526 + VARIABLE_E_NV = 0x8527 + VARIABLE_F_NV = 0x8528 + VARIABLE_G_NV = 0x8529 + CONSTANT_COLOR0_NV = 0x852A + CONSTANT_COLOR1_NV = 0x852B + PRIMARY_COLOR_NV = 0x852C + SECONDARY_COLOR_NV = 0x852D + SPARE0_NV = 0x852E + SPARE1_NV = 0x852F + DISCARD_NV = 0x8530 + E_TIMES_F_NV = 0x8531 + SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 + UNSIGNED_IDENTITY_NV = 0x8536 + UNSIGNED_INVERT_NV = 0x8537 + EXPAND_NORMAL_NV = 0x8538 + EXPAND_NEGATE_NV = 0x8539 + HALF_BIAS_NORMAL_NV = 0x853A + HALF_BIAS_NEGATE_NV = 0x853B + SIGNED_IDENTITY_NV = 0x853C + SIGNED_NEGATE_NV = 0x853D + SCALE_BY_TWO_NV = 0x853E + SCALE_BY_FOUR_NV = 0x853F + SCALE_BY_ONE_HALF_NV = 0x8540 + BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 + COMBINER_INPUT_NV = 0x8542 + COMBINER_MAPPING_NV = 0x8543 + COMBINER_COMPONENT_USAGE_NV = 0x8544 + COMBINER_AB_DOT_PRODUCT_NV = 0x8545 + COMBINER_CD_DOT_PRODUCT_NV = 0x8546 + COMBINER_MUX_SUM_NV = 0x8547 + COMBINER_SCALE_NV = 0x8548 + COMBINER_BIAS_NV = 0x8549 + COMBINER_AB_OUTPUT_NV = 0x854A + COMBINER_CD_OUTPUT_NV = 0x854B + COMBINER_SUM_OUTPUT_NV = 0x854C + MAX_GENERAL_COMBINERS_NV = 0x854D + NUM_GENERAL_COMBINERS_NV = 0x854E + COLOR_SUM_CLAMP_NV = 0x854F + COMBINER0_NV = 0x8550 + COMBINER1_NV = 0x8551 + COMBINER2_NV = 0x8552 + COMBINER3_NV = 0x8553 + COMBINER4_NV = 0x8554 + COMBINER5_NV = 0x8555 + COMBINER6_NV = 0x8556 + COMBINER7_NV = 0x8557 + use ARB_multitexture TEXTURE0_ARB + use ARB_multitexture TEXTURE1_ARB + use BlendingFactorDest ZERO + use DrawBufferMode NONE + use GetPName FOG + +############################################################################### + +# Extension #192 +NV_fog_distance enum: + FOG_DISTANCE_MODE_NV = 0x855A + EYE_RADIAL_NV = 0x855B + EYE_PLANE_ABSOLUTE_NV = 0x855C + use TextureGenParameter EYE_PLANE + +############################################################################### + +# Extension #193 +NV_texgen_emboss enum: + EMBOSS_LIGHT_NV = 0x855D + EMBOSS_CONSTANT_NV = 0x855E + EMBOSS_MAP_NV = 0x855F + +############################################################################### + +# No new tokens +# Extension #194 +NV_blend_square enum: + +############################################################################### + +# Extension #195 +NV_texture_env_combine4 enum: + COMBINE4_NV = 0x8503 + SOURCE3_RGB_NV = 0x8583 + SOURCE3_ALPHA_NV = 0x858B + OPERAND3_RGB_NV = 0x8593 + OPERAND3_ALPHA_NV = 0x859B + +############################################################################### + +# No new tokens +# Extension #196 +MESA_resize_buffers enum: + +############################################################################### + +# No new tokens +# Extension #197 +MESA_window_pos enum: + +############################################################################### + +# Extension #198 +EXT_texture_compression_s3tc enum: + COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0 + COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1 + COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 + COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 + +############################################################################### + +# Extension #199 +IBM_cull_vertex enum: + CULL_VERTEX_IBM = 103050 + +############################################################################### + +# No new tokens +# Extension #200 +IBM_multimode_draw_arrays enum: + +############################################################################### + +# Extension #201 +IBM_vertex_array_lists enum: + VERTEX_ARRAY_LIST_IBM = 103070 + NORMAL_ARRAY_LIST_IBM = 103071 + COLOR_ARRAY_LIST_IBM = 103072 + INDEX_ARRAY_LIST_IBM = 103073 + TEXTURE_COORD_ARRAY_LIST_IBM = 103074 + EDGE_FLAG_ARRAY_LIST_IBM = 103075 + FOG_COORDINATE_ARRAY_LIST_IBM = 103076 + SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 + VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 + NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 + COLOR_ARRAY_LIST_STRIDE_IBM = 103082 + INDEX_ARRAY_LIST_STRIDE_IBM = 103083 + TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 + EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 + FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 + SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 + +############################################################################### + +# Extension #202 +SGIX_subsample enum: + PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 + UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 + PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 + PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 + PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 + +############################################################################### + +# Extension #203 +SGIX_ycrcb_subsample enum: + PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 + UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 + PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 + PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 + PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 + +############################################################################### + +# Extension #204 +SGIX_ycrcba enum: + YCRCB_SGIX = 0x8318 + YCRCBA_SGIX = 0x8319 + +############################################################################### + +# Extension #205 +SGI_depth_pass_instrument enum: + DEPTH_PASS_INSTRUMENT_SGIX = 0x8310 + DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311 + DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312 + +############################################################################### + +# Extension #206 +3DFX_texture_compression_FXT1 enum: + COMPRESSED_RGB_FXT1_3DFX = 0x86B0 + COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 + +############################################################################### + +# Extension #207 +3DFX_multisample enum: + MULTISAMPLE_3DFX = 0x86B2 + SAMPLE_BUFFERS_3DFX = 0x86B3 + SAMPLES_3DFX = 0x86B4 + MULTISAMPLE_BIT_3DFX = 0x20000000 + +############################################################################### + +# No new tokens +# Extension #208 +3DFX_tbuffer enum: + +############################################################################### + +# Extension #209 +EXT_multisample enum: + MULTISAMPLE_EXT = 0x809D + SAMPLE_ALPHA_TO_MASK_EXT = 0x809E + SAMPLE_ALPHA_TO_ONE_EXT = 0x809F + SAMPLE_MASK_EXT = 0x80A0 + 1PASS_EXT = 0x80A1 + 2PASS_0_EXT = 0x80A2 + 2PASS_1_EXT = 0x80A3 + 4PASS_0_EXT = 0x80A4 + 4PASS_1_EXT = 0x80A5 + 4PASS_2_EXT = 0x80A6 + 4PASS_3_EXT = 0x80A7 + SAMPLE_BUFFERS_EXT = 0x80A8 # 1 I + SAMPLES_EXT = 0x80A9 # 1 I + SAMPLE_MASK_VALUE_EXT = 0x80AA # 1 F + SAMPLE_MASK_INVERT_EXT = 0x80AB # 1 I + SAMPLE_PATTERN_EXT = 0x80AC # 1 I + MULTISAMPLE_BIT_EXT = 0x20000000 + +############################################################################### + +# Extension #210 +SGIX_vertex_preclip enum: + VERTEX_PRECLIP_SGIX = 0x83EE + VERTEX_PRECLIP_HINT_SGIX = 0x83EF + +############################################################################### + +# Extension #211 +SGIX_convolution_accuracy enum: + CONVOLUTION_HINT_SGIX = 0x8316 # 1 I + +############################################################################### + +# Extension #212 +SGIX_resample enum: + PACK_RESAMPLE_SGIX = 0x842C + UNPACK_RESAMPLE_SGIX = 0x842D + RESAMPLE_REPLICATE_SGIX = 0x842E + RESAMPLE_ZERO_FILL_SGIX = 0x842F + RESAMPLE_DECIMATE_SGIX = 0x8430 + +############################################################################### + +# Extension #213 +SGIS_point_line_texgen enum: + EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 + OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 + EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 + OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 + EYE_POINT_SGIS = 0x81F4 + OBJECT_POINT_SGIS = 0x81F5 + EYE_LINE_SGIS = 0x81F6 + OBJECT_LINE_SGIS = 0x81F7 + +############################################################################### + +# Extension #214 +SGIS_texture_color_mask enum: + TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF + +############################################################################### + +# Extension #220 +# Promoted to ARB_texture_env_dot3, enum values changed +EXT_texture_env_dot3 enum: + DOT3_RGB_EXT = 0x8740 + DOT3_RGBA_EXT = 0x8741 + +############################################################################### + +# Extension #221 +ATI_texture_mirror_once enum: + MIRROR_CLAMP_ATI = 0x8742 + MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 + +############################################################################### + +# Extension #222 +NV_fence enum: + ALL_COMPLETED_NV = 0x84F2 + FENCE_STATUS_NV = 0x84F3 + FENCE_CONDITION_NV = 0x84F4 + +############################################################################### + +# Extension #224 +IBM_texture_mirrored_repeat enum: + MIRRORED_REPEAT_IBM = 0x8370 + +############################################################################### + +# Extension #225 +NV_evaluators enum: + EVAL_2D_NV = 0x86C0 + EVAL_TRIANGULAR_2D_NV = 0x86C1 + MAP_TESSELLATION_NV = 0x86C2 + MAP_ATTRIB_U_ORDER_NV = 0x86C3 + MAP_ATTRIB_V_ORDER_NV = 0x86C4 + EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 + EVAL_VERTEX_ATTRIB0_NV = 0x86C6 + EVAL_VERTEX_ATTRIB1_NV = 0x86C7 + EVAL_VERTEX_ATTRIB2_NV = 0x86C8 + EVAL_VERTEX_ATTRIB3_NV = 0x86C9 + EVAL_VERTEX_ATTRIB4_NV = 0x86CA + EVAL_VERTEX_ATTRIB5_NV = 0x86CB + EVAL_VERTEX_ATTRIB6_NV = 0x86CC + EVAL_VERTEX_ATTRIB7_NV = 0x86CD + EVAL_VERTEX_ATTRIB8_NV = 0x86CE + EVAL_VERTEX_ATTRIB9_NV = 0x86CF + EVAL_VERTEX_ATTRIB10_NV = 0x86D0 + EVAL_VERTEX_ATTRIB11_NV = 0x86D1 + EVAL_VERTEX_ATTRIB12_NV = 0x86D2 + EVAL_VERTEX_ATTRIB13_NV = 0x86D3 + EVAL_VERTEX_ATTRIB14_NV = 0x86D4 + EVAL_VERTEX_ATTRIB15_NV = 0x86D5 + MAX_MAP_TESSELLATION_NV = 0x86D6 + MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 + +############################################################################### + +# Extension #226 +NV_packed_depth_stencil enum: + DEPTH_STENCIL_NV = 0x84F9 + UNSIGNED_INT_24_8_NV = 0x84FA + +############################################################################### + +# Extension #227 +NV_register_combiners2 enum: + PER_STAGE_CONSTANTS_NV = 0x8535 + +############################################################################### + +# No new tokens +# Extension #228 +NV_texture_compression_vtc enum: + +############################################################################### + +# Extension #229 +NV_texture_rectangle enum: + TEXTURE_RECTANGLE_NV = 0x84F5 + TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 + PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 + MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 + +############################################################################### + +# Extension #230 +NV_texture_shader enum: + OFFSET_TEXTURE_RECTANGLE_NV = 0x864C + OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D + DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E + RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 + UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA + UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB + DSDT_MAG_INTENSITY_NV = 0x86DC + SHADER_CONSISTENT_NV = 0x86DD + TEXTURE_SHADER_NV = 0x86DE + SHADER_OPERATION_NV = 0x86DF + CULL_MODES_NV = 0x86E0 + OFFSET_TEXTURE_MATRIX_NV = 0x86E1 + OFFSET_TEXTURE_SCALE_NV = 0x86E2 + OFFSET_TEXTURE_BIAS_NV = 0x86E3 + OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV + OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV + OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV + PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 + CONST_EYE_NV = 0x86E5 + PASS_THROUGH_NV = 0x86E6 + CULL_FRAGMENT_NV = 0x86E7 + OFFSET_TEXTURE_2D_NV = 0x86E8 + DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 + DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA + DOT_PRODUCT_NV = 0x86EC + DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED + DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE + DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 + DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 + DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 + DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 + HILO_NV = 0x86F4 + DSDT_NV = 0x86F5 + DSDT_MAG_NV = 0x86F6 + DSDT_MAG_VIB_NV = 0x86F7 + HILO16_NV = 0x86F8 + SIGNED_HILO_NV = 0x86F9 + SIGNED_HILO16_NV = 0x86FA + SIGNED_RGBA_NV = 0x86FB + SIGNED_RGBA8_NV = 0x86FC + SIGNED_RGB_NV = 0x86FE + SIGNED_RGB8_NV = 0x86FF + SIGNED_LUMINANCE_NV = 0x8701 + SIGNED_LUMINANCE8_NV = 0x8702 + SIGNED_LUMINANCE_ALPHA_NV = 0x8703 + SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 + SIGNED_ALPHA_NV = 0x8705 + SIGNED_ALPHA8_NV = 0x8706 + SIGNED_INTENSITY_NV = 0x8707 + SIGNED_INTENSITY8_NV = 0x8708 + DSDT8_NV = 0x8709 + DSDT8_MAG8_NV = 0x870A + DSDT8_MAG8_INTENSITY8_NV = 0x870B + SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C + SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D + HI_SCALE_NV = 0x870E + LO_SCALE_NV = 0x870F + DS_SCALE_NV = 0x8710 + DT_SCALE_NV = 0x8711 + MAGNITUDE_SCALE_NV = 0x8712 + VIBRANCE_SCALE_NV = 0x8713 + HI_BIAS_NV = 0x8714 + LO_BIAS_NV = 0x8715 + DS_BIAS_NV = 0x8716 + DT_BIAS_NV = 0x8717 + MAGNITUDE_BIAS_NV = 0x8718 + VIBRANCE_BIAS_NV = 0x8719 + TEXTURE_BORDER_VALUES_NV = 0x871A + TEXTURE_HI_SIZE_NV = 0x871B + TEXTURE_LO_SIZE_NV = 0x871C + TEXTURE_DS_SIZE_NV = 0x871D + TEXTURE_DT_SIZE_NV = 0x871E + TEXTURE_MAG_SIZE_NV = 0x871F + +############################################################################### + +# Extension #231 +NV_texture_shader2 enum: + DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF + +############################################################################### + +# Extension #232 +NV_vertex_array_range2 enum: + VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 + +############################################################################### + +# Extension #233 +NV_vertex_program enum: + VERTEX_PROGRAM_NV = 0x8620 + VERTEX_STATE_PROGRAM_NV = 0x8621 + ATTRIB_ARRAY_SIZE_NV = 0x8623 + ATTRIB_ARRAY_STRIDE_NV = 0x8624 + ATTRIB_ARRAY_TYPE_NV = 0x8625 + CURRENT_ATTRIB_NV = 0x8626 + PROGRAM_LENGTH_NV = 0x8627 + PROGRAM_STRING_NV = 0x8628 + MODELVIEW_PROJECTION_NV = 0x8629 + IDENTITY_NV = 0x862A + INVERSE_NV = 0x862B + TRANSPOSE_NV = 0x862C + INVERSE_TRANSPOSE_NV = 0x862D + MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E + MAX_TRACK_MATRICES_NV = 0x862F + MATRIX0_NV = 0x8630 + MATRIX1_NV = 0x8631 + MATRIX2_NV = 0x8632 + MATRIX3_NV = 0x8633 + MATRIX4_NV = 0x8634 + MATRIX5_NV = 0x8635 + MATRIX6_NV = 0x8636 + MATRIX7_NV = 0x8637 +################## +# +# Reserved: +# +# MATRIX8_NV = 0x8638 +# MATRIX9_NV = 0x8639 +# MATRIX10_NV = 0x863A +# MATRIX11_NV = 0x863B +# MATRIX12_NV = 0x863C +# MATRIX13_NV = 0x863D +# MATRIX14_NV = 0x863E +# MATRIX15_NV = 0x863F +# +################### + CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 + CURRENT_MATRIX_NV = 0x8641 + VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 + VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 + PROGRAM_PARAMETER_NV = 0x8644 + ATTRIB_ARRAY_POINTER_NV = 0x8645 + PROGRAM_TARGET_NV = 0x8646 + PROGRAM_RESIDENT_NV = 0x8647 + TRACK_MATRIX_NV = 0x8648 + TRACK_MATRIX_TRANSFORM_NV = 0x8649 + VERTEX_PROGRAM_BINDING_NV = 0x864A + PROGRAM_ERROR_POSITION_NV = 0x864B + VERTEX_ATTRIB_ARRAY0_NV = 0x8650 + VERTEX_ATTRIB_ARRAY1_NV = 0x8651 + VERTEX_ATTRIB_ARRAY2_NV = 0x8652 + VERTEX_ATTRIB_ARRAY3_NV = 0x8653 + VERTEX_ATTRIB_ARRAY4_NV = 0x8654 + VERTEX_ATTRIB_ARRAY5_NV = 0x8655 + VERTEX_ATTRIB_ARRAY6_NV = 0x8656 + VERTEX_ATTRIB_ARRAY7_NV = 0x8657 + VERTEX_ATTRIB_ARRAY8_NV = 0x8658 + VERTEX_ATTRIB_ARRAY9_NV = 0x8659 + VERTEX_ATTRIB_ARRAY10_NV = 0x865A + VERTEX_ATTRIB_ARRAY11_NV = 0x865B + VERTEX_ATTRIB_ARRAY12_NV = 0x865C + VERTEX_ATTRIB_ARRAY13_NV = 0x865D + VERTEX_ATTRIB_ARRAY14_NV = 0x865E + VERTEX_ATTRIB_ARRAY15_NV = 0x865F + MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 + MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 + MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 + MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 + MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 + MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 + MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 + MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 + MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 + MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 + MAP1_VERTEX_ATTRIB10_4_NV = 0x866A + MAP1_VERTEX_ATTRIB11_4_NV = 0x866B + MAP1_VERTEX_ATTRIB12_4_NV = 0x866C + MAP1_VERTEX_ATTRIB13_4_NV = 0x866D + MAP1_VERTEX_ATTRIB14_4_NV = 0x866E + MAP1_VERTEX_ATTRIB15_4_NV = 0x866F + MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 + MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 + MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 + MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 + MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 + MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 + MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 + MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 + MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 + MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 + MAP2_VERTEX_ATTRIB10_4_NV = 0x867A + MAP2_VERTEX_ATTRIB11_4_NV = 0x867B + MAP2_VERTEX_ATTRIB12_4_NV = 0x867C + MAP2_VERTEX_ATTRIB13_4_NV = 0x867D + MAP2_VERTEX_ATTRIB14_4_NV = 0x867E + MAP2_VERTEX_ATTRIB15_4_NV = 0x867F + +############################################################################### + +# Extension #235 +SGIX_texture_coordinate_clamp enum: + TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 + TEXTURE_MAX_CLAMP_T_SGIX = 0x836A + TEXTURE_MAX_CLAMP_R_SGIX = 0x836B + +############################################################################### + +# Extension #236 +SGIX_scalebias_hint enum: + SCALEBIAS_HINT_SGIX = 0x8322 + +############################################################################### + +# Extension #237 - GLX_OML_swap_method +# Extension #238 - GLX_OML_sync_control + +############################################################################### + +# Extension #239 +OML_interlace enum: + INTERLACE_OML = 0x8980 + INTERLACE_READ_OML = 0x8981 + +############################################################################### + +# Extension #240 +OML_subsample enum: + FORMAT_SUBSAMPLE_24_24_OML = 0x8982 + FORMAT_SUBSAMPLE_244_244_OML = 0x8983 + +############################################################################### + +# Extension #241 +OML_resample enum: + PACK_RESAMPLE_OML = 0x8984 + UNPACK_RESAMPLE_OML = 0x8985 + RESAMPLE_REPLICATE_OML = 0x8986 + RESAMPLE_ZERO_FILL_OML = 0x8987 + RESAMPLE_AVERAGE_OML = 0x8988 + RESAMPLE_DECIMATE_OML = 0x8989 + +############################################################################### + +# Extension #242 - WGL_OML_sync_control + +############################################################################### + +# Extension #243 +NV_copy_depth_to_color enum: + DEPTH_STENCIL_TO_RGBA_NV = 0x886E + DEPTH_STENCIL_TO_BGRA_NV = 0x886F + +############################################################################### + +# Extension #244 +ATI_envmap_bumpmap enum: + BUMP_ROT_MATRIX_ATI = 0x8775 + BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 + BUMP_NUM_TEX_UNITS_ATI = 0x8777 + BUMP_TEX_UNITS_ATI = 0x8778 + DUDV_ATI = 0x8779 + DU8DV8_ATI = 0x877A + BUMP_ENVMAP_ATI = 0x877B + BUMP_TARGET_ATI = 0x877C + +############################################################################### + +# Extension #245 +ATI_fragment_shader enum: + FRAGMENT_SHADER_ATI = 0x8920 + REG_0_ATI = 0x8921 + REG_1_ATI = 0x8922 + REG_2_ATI = 0x8923 + REG_3_ATI = 0x8924 + REG_4_ATI = 0x8925 + REG_5_ATI = 0x8926 + REG_6_ATI = 0x8927 + REG_7_ATI = 0x8928 + REG_8_ATI = 0x8929 + REG_9_ATI = 0x892A + REG_10_ATI = 0x892B + REG_11_ATI = 0x892C + REG_12_ATI = 0x892D + REG_13_ATI = 0x892E + REG_14_ATI = 0x892F + REG_15_ATI = 0x8930 + REG_16_ATI = 0x8931 + REG_17_ATI = 0x8932 + REG_18_ATI = 0x8933 + REG_19_ATI = 0x8934 + REG_20_ATI = 0x8935 + REG_21_ATI = 0x8936 + REG_22_ATI = 0x8937 + REG_23_ATI = 0x8938 + REG_24_ATI = 0x8939 + REG_25_ATI = 0x893A + REG_26_ATI = 0x893B + REG_27_ATI = 0x893C + REG_28_ATI = 0x893D + REG_29_ATI = 0x893E + REG_30_ATI = 0x893F + REG_31_ATI = 0x8940 + CON_0_ATI = 0x8941 + CON_1_ATI = 0x8942 + CON_2_ATI = 0x8943 + CON_3_ATI = 0x8944 + CON_4_ATI = 0x8945 + CON_5_ATI = 0x8946 + CON_6_ATI = 0x8947 + CON_7_ATI = 0x8948 + CON_8_ATI = 0x8949 + CON_9_ATI = 0x894A + CON_10_ATI = 0x894B + CON_11_ATI = 0x894C + CON_12_ATI = 0x894D + CON_13_ATI = 0x894E + CON_14_ATI = 0x894F + CON_15_ATI = 0x8950 + CON_16_ATI = 0x8951 + CON_17_ATI = 0x8952 + CON_18_ATI = 0x8953 + CON_19_ATI = 0x8954 + CON_20_ATI = 0x8955 + CON_21_ATI = 0x8956 + CON_22_ATI = 0x8957 + CON_23_ATI = 0x8958 + CON_24_ATI = 0x8959 + CON_25_ATI = 0x895A + CON_26_ATI = 0x895B + CON_27_ATI = 0x895C + CON_28_ATI = 0x895D + CON_29_ATI = 0x895E + CON_30_ATI = 0x895F + CON_31_ATI = 0x8960 + MOV_ATI = 0x8961 + ADD_ATI = 0x8963 + MUL_ATI = 0x8964 + SUB_ATI = 0x8965 + DOT3_ATI = 0x8966 + DOT4_ATI = 0x8967 + MAD_ATI = 0x8968 + LERP_ATI = 0x8969 + CND_ATI = 0x896A + CND0_ATI = 0x896B + DOT2_ADD_ATI = 0x896C + SECONDARY_INTERPOLATOR_ATI = 0x896D + NUM_FRAGMENT_REGISTERS_ATI = 0x896E + NUM_FRAGMENT_CONSTANTS_ATI = 0x896F + NUM_PASSES_ATI = 0x8970 + NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 + NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 + NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 + NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 + COLOR_ALPHA_PAIRING_ATI = 0x8975 + SWIZZLE_STR_ATI = 0x8976 + SWIZZLE_STQ_ATI = 0x8977 + SWIZZLE_STR_DR_ATI = 0x8978 + SWIZZLE_STQ_DQ_ATI = 0x8979 + SWIZZLE_STRQ_ATI = 0x897A + SWIZZLE_STRQ_DQ_ATI = 0x897B + RED_BIT_ATI = 0x00000001 + GREEN_BIT_ATI = 0x00000002 + BLUE_BIT_ATI = 0x00000004 + 2X_BIT_ATI = 0x00000001 + 4X_BIT_ATI = 0x00000002 + 8X_BIT_ATI = 0x00000004 + HALF_BIT_ATI = 0x00000008 + QUARTER_BIT_ATI = 0x00000010 + EIGHTH_BIT_ATI = 0x00000020 + SATURATE_BIT_ATI = 0x00000040 + 2X_BIT_ATI = 0x00000001 + COMP_BIT_ATI = 0x00000002 + NEGATE_BIT_ATI = 0x00000004 + BIAS_BIT_ATI = 0x00000008 + +############################################################################### + +# Extension #246 +ATI_pn_triangles enum: + PN_TRIANGLES_ATI = 0x87F0 + MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 + PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 + PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 + PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 + PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 + PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 + PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 + PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 + +############################################################################### + +# Extension #247 +ATI_vertex_array_object enum: + STATIC_ATI = 0x8760 + DYNAMIC_ATI = 0x8761 + PRESERVE_ATI = 0x8762 + DISCARD_ATI = 0x8763 + OBJECT_BUFFER_SIZE_ATI = 0x8764 + OBJECT_BUFFER_USAGE_ATI = 0x8765 + ARRAY_OBJECT_BUFFER_ATI = 0x8766 + ARRAY_OBJECT_OFFSET_ATI = 0x8767 + +############################################################################### + +# Extension #248 +EXT_vertex_shader enum: + VERTEX_SHADER_EXT = 0x8780 + VERTEX_SHADER_BINDING_EXT = 0x8781 + OP_INDEX_EXT = 0x8782 + OP_NEGATE_EXT = 0x8783 + OP_DOT3_EXT = 0x8784 + OP_DOT4_EXT = 0x8785 + OP_MUL_EXT = 0x8786 + OP_ADD_EXT = 0x8787 + OP_MADD_EXT = 0x8788 + OP_FRAC_EXT = 0x8789 + OP_MAX_EXT = 0x878A + OP_MIN_EXT = 0x878B + OP_SET_GE_EXT = 0x878C + OP_SET_LT_EXT = 0x878D + OP_CLAMP_EXT = 0x878E + OP_FLOOR_EXT = 0x878F + OP_ROUND_EXT = 0x8790 + OP_EXP_BASE_2_EXT = 0x8791 + OP_LOG_BASE_2_EXT = 0x8792 + OP_POWER_EXT = 0x8793 + OP_RECIP_EXT = 0x8794 + OP_RECIP_SQRT_EXT = 0x8795 + OP_SUB_EXT = 0x8796 + OP_CROSS_PRODUCT_EXT = 0x8797 + OP_MULTIPLY_MATRIX_EXT = 0x8798 + OP_MOV_EXT = 0x8799 + OUTPUT_VERTEX_EXT = 0x879A + OUTPUT_COLOR0_EXT = 0x879B + OUTPUT_COLOR1_EXT = 0x879C + OUTPUT_TEXTURE_COORD0_EXT = 0x879D + OUTPUT_TEXTURE_COORD1_EXT = 0x879E + OUTPUT_TEXTURE_COORD2_EXT = 0x879F + OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 + OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 + OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 + OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 + OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 + OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 + OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 + OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 + OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 + OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 + OUTPUT_TEXTURE_COORD13_EXT = 0x87AA + OUTPUT_TEXTURE_COORD14_EXT = 0x87AB + OUTPUT_TEXTURE_COORD15_EXT = 0x87AC + OUTPUT_TEXTURE_COORD16_EXT = 0x87AD + OUTPUT_TEXTURE_COORD17_EXT = 0x87AE + OUTPUT_TEXTURE_COORD18_EXT = 0x87AF + OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 + OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 + OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 + OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 + OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 + OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 + OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 + OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 + OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 + OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 + OUTPUT_TEXTURE_COORD29_EXT = 0x87BA + OUTPUT_TEXTURE_COORD30_EXT = 0x87BB + OUTPUT_TEXTURE_COORD31_EXT = 0x87BC + OUTPUT_FOG_EXT = 0x87BD + SCALAR_EXT = 0x87BE + VECTOR_EXT = 0x87BF + MATRIX_EXT = 0x87C0 + VARIANT_EXT = 0x87C1 + INVARIANT_EXT = 0x87C2 + LOCAL_CONSTANT_EXT = 0x87C3 + LOCAL_EXT = 0x87C4 + MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 + MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 + MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 + MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 + MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 + MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA + MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB + MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC + MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD + MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE + VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF + VERTEX_SHADER_VARIANTS_EXT = 0x87D0 + VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 + VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 + VERTEX_SHADER_LOCALS_EXT = 0x87D3 + VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 + X_EXT = 0x87D5 + Y_EXT = 0x87D6 + Z_EXT = 0x87D7 + W_EXT = 0x87D8 + NEGATIVE_X_EXT = 0x87D9 + NEGATIVE_Y_EXT = 0x87DA + NEGATIVE_Z_EXT = 0x87DB + NEGATIVE_W_EXT = 0x87DC + ZERO_EXT = 0x87DD + ONE_EXT = 0x87DE + NEGATIVE_ONE_EXT = 0x87DF + NORMALIZED_RANGE_EXT = 0x87E0 + FULL_RANGE_EXT = 0x87E1 + CURRENT_VERTEX_EXT = 0x87E2 + MVP_MATRIX_EXT = 0x87E3 + VARIANT_VALUE_EXT = 0x87E4 + VARIANT_DATATYPE_EXT = 0x87E5 + VARIANT_ARRAY_STRIDE_EXT = 0x87E6 + VARIANT_ARRAY_TYPE_EXT = 0x87E7 + VARIANT_ARRAY_EXT = 0x87E8 + VARIANT_ARRAY_POINTER_EXT = 0x87E9 + INVARIANT_VALUE_EXT = 0x87EA + INVARIANT_DATATYPE_EXT = 0x87EB + LOCAL_CONSTANT_VALUE_EXT = 0x87EC + LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED + +############################################################################### + +# Extension #249 +ATI_vertex_streams enum: + MAX_VERTEX_STREAMS_ATI = 0x876B + VERTEX_STREAM0_ATI = 0x876C + VERTEX_STREAM1_ATI = 0x876D + VERTEX_STREAM2_ATI = 0x876E + VERTEX_STREAM3_ATI = 0x876F + VERTEX_STREAM4_ATI = 0x8770 + VERTEX_STREAM5_ATI = 0x8771 + VERTEX_STREAM6_ATI = 0x8772 + VERTEX_STREAM7_ATI = 0x8773 + VERTEX_SOURCE_ATI = 0x8774 + +############################################################################### + +# Extension #250 - WGL_I3D_digital_video_control +# Extension #251 - WGL_I3D_gamma +# Extension #252 - WGL_I3D_genlock +# Extension #253 - WGL_I3D_image_buffer +# Extension #254 - WGL_I3D_swap_frame_lock +# Extension #255 - WGL_I3D_swap_frame_usage + +############################################################################### + +# Extension #256 +ATI_element_array enum: + ELEMENT_ARRAY_ATI = 0x8768 + ELEMENT_ARRAY_TYPE_ATI = 0x8769 + ELEMENT_ARRAY_POINTER_ATI = 0x876A + +############################################################################### + +# Extension #257 +SUN_mesh_array enum: + QUAD_MESH_SUN = 0x8614 + TRIANGLE_MESH_SUN = 0x8615 + +############################################################################### + +# Extension #258 +SUN_slice_accum enum: + SLICE_ACCUM_SUN = 0x85CC + +############################################################################### + +# Extension #259 +NV_multisample_filter_hint enum: + MULTISAMPLE_FILTER_HINT_NV = 0x8534 + +############################################################################### + +# Extension #260 +NV_depth_clamp enum: + DEPTH_CLAMP_NV = 0x864F + +############################################################################### + +# Extension #261 +NV_occlusion_query enum: + PIXEL_COUNTER_BITS_NV = 0x8864 + CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 + PIXEL_COUNT_NV = 0x8866 + PIXEL_COUNT_AVAILABLE_NV = 0x8867 + +############################################################################### + +# Extension #262 +NV_point_sprite enum: + POINT_SPRITE_NV = 0x8861 + COORD_REPLACE_NV = 0x8862 + POINT_SPRITE_R_MODE_NV = 0x8863 + +############################################################################### + +# Extension #263 - WGL_NV_render_depth_texture +# Extension #264 - WGL_NV_render_texture_rectangle + +############################################################################### + +# Extension #265 +NV_texture_shader3 enum: + OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 + OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 + OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 + OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 + OFFSET_HILO_TEXTURE_2D_NV = 0x8854 + OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 + OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 + OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 + DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 + DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 + DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A + DOT_PRODUCT_PASS_THROUGH_NV = 0x885B + DOT_PRODUCT_TEXTURE_1D_NV = 0x885C + DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D + HILO8_NV = 0x885E + SIGNED_HILO8_NV = 0x885F + FORCE_BLUE_TO_ONE_NV = 0x8860 + +############################################################################### + +# No new tokens +# Extension #266 +NV_vertex_program1_1 enum: + +############################################################################### + +# No new tokens +# Extension #267 +EXT_shadow_funcs enum: + +############################################################################### + +# Extension #268 +EXT_stencil_two_side enum: + STENCIL_TEST_TWO_SIDE_EXT = 0x8910 + ACTIVE_STENCIL_FACE_EXT = 0x8911 + +############################################################################### + +# Extension #269 +ATI_text_fragment_shader enum: + TEXT_FRAGMENT_SHADER_ATI = 0x8200 + +############################################################################### + +# Extension #270 +APPLE_client_storage enum: + UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 + +############################################################################### + +# Extension #271 +# (extends ATI_element_array???) +APPLE_element_array enum: + ELEMENT_ARRAY_APPLE = 0x8768 + ELEMENT_ARRAY_TYPE_APPLE = 0x8769 + ELEMENT_ARRAY_POINTER_APPLE = 0x876A + +############################################################################### + +# Extension #272 +# ??? BUFFER_OBJECT_APPLE appears to be part of the shipping extension, +# but is not in the spec in the registry. Also appears in +# APPLE_object_purgeable below. +APPLE_fence enum: + DRAW_PIXELS_APPLE = 0x8A0A + FENCE_APPLE = 0x8A0B + +############################################################################### + +# Extension #273 +APPLE_vertex_array_object enum: + VERTEX_ARRAY_BINDING_APPLE = 0x85B5 + +############################################################################### + +# Extension #274 +# (How does this interact with NV_vertex_array_range???) +APPLE_vertex_array_range enum: + VERTEX_ARRAY_RANGE_APPLE = 0x851D + VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E + VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F + VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 + STORAGE_CACHED_APPLE = 0x85BE + STORAGE_SHARED_APPLE = 0x85BF + +############################################################################### + +# Extension #275 +APPLE_ycbcr_422 enum: + YCBCR_422_APPLE = 0x85B9 + UNSIGNED_SHORT_8_8_APPLE = 0x85BA + UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB + +############################################################################### + +# Extension #276 +S3_s3tc enum: + RGB_S3TC = 0x83A0 + RGB4_S3TC = 0x83A1 + RGBA_S3TC = 0x83A2 + RGBA4_S3TC = 0x83A3 + +############################################################################### + +# Extension #277 +ATI_draw_buffers enum: + MAX_DRAW_BUFFERS_ATI = 0x8824 + DRAW_BUFFER0_ATI = 0x8825 + DRAW_BUFFER1_ATI = 0x8826 + DRAW_BUFFER2_ATI = 0x8827 + DRAW_BUFFER3_ATI = 0x8828 + DRAW_BUFFER4_ATI = 0x8829 + DRAW_BUFFER5_ATI = 0x882A + DRAW_BUFFER6_ATI = 0x882B + DRAW_BUFFER7_ATI = 0x882C + DRAW_BUFFER8_ATI = 0x882D + DRAW_BUFFER9_ATI = 0x882E + DRAW_BUFFER10_ATI = 0x882F + DRAW_BUFFER11_ATI = 0x8830 + DRAW_BUFFER12_ATI = 0x8831 + DRAW_BUFFER13_ATI = 0x8832 + DRAW_BUFFER14_ATI = 0x8833 + DRAW_BUFFER15_ATI = 0x8834 + +############################################################################### + +# Extension #278 +# This is really a WGL extension, but if defined there are +# some associated GL enumerants. +ATI_pixel_format_float enum: + TYPE_RGBA_FLOAT_ATI = 0x8820 + COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 + +############################################################################### + +# Extension #279 +ATI_texture_env_combine3 enum: + MODULATE_ADD_ATI = 0x8744 + MODULATE_SIGNED_ADD_ATI = 0x8745 + MODULATE_SUBTRACT_ATI = 0x8746 + +############################################################################### + +# Extension #280 +ATI_texture_float enum: + RGBA_FLOAT32_ATI = 0x8814 + RGB_FLOAT32_ATI = 0x8815 + ALPHA_FLOAT32_ATI = 0x8816 + INTENSITY_FLOAT32_ATI = 0x8817 + LUMINANCE_FLOAT32_ATI = 0x8818 + LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 + RGBA_FLOAT16_ATI = 0x881A + RGB_FLOAT16_ATI = 0x881B + ALPHA_FLOAT16_ATI = 0x881C + INTENSITY_FLOAT16_ATI = 0x881D + LUMINANCE_FLOAT16_ATI = 0x881E + LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F + +############################################################################### + +# Extension #281 (also WGL_NV_float_buffer) +NV_float_buffer enum: + FLOAT_R_NV = 0x8880 + FLOAT_RG_NV = 0x8881 + FLOAT_RGB_NV = 0x8882 + FLOAT_RGBA_NV = 0x8883 + FLOAT_R16_NV = 0x8884 + FLOAT_R32_NV = 0x8885 + FLOAT_RG16_NV = 0x8886 + FLOAT_RG32_NV = 0x8887 + FLOAT_RGB16_NV = 0x8888 + FLOAT_RGB32_NV = 0x8889 + FLOAT_RGBA16_NV = 0x888A + FLOAT_RGBA32_NV = 0x888B + TEXTURE_FLOAT_COMPONENTS_NV = 0x888C + FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D + FLOAT_RGBA_MODE_NV = 0x888E + +############################################################################### + +# Extension #282 +NV_fragment_program enum: + MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 + FRAGMENT_PROGRAM_NV = 0x8870 + MAX_TEXTURE_COORDS_NV = 0x8871 + MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 + FRAGMENT_PROGRAM_BINDING_NV = 0x8873 + PROGRAM_ERROR_STRING_NV = 0x8874 + +############################################################################### + +# Extension #283 +NV_half_float enum: + HALF_FLOAT_NV = 0x140B + +############################################################################### + +# Extension #284 +NV_pixel_data_range enum: + WRITE_PIXEL_DATA_RANGE_NV = 0x8878 + READ_PIXEL_DATA_RANGE_NV = 0x8879 + WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A + READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B + WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C + READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D + +############################################################################### + +# Extension #285 +NV_primitive_restart enum: + PRIMITIVE_RESTART_NV = 0x8558 + PRIMITIVE_RESTART_INDEX_NV = 0x8559 + +############################################################################### + +# Extension #286 +NV_texture_expand_normal enum: + TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F + +############################################################################### + +# No new tokens +# Extension #287 +NV_vertex_program2 enum: + +############################################################################### + +# No new tokens +# Extension #288 +ATI_map_object_buffer enum: + +############################################################################### + +# Extension #289 +ATI_separate_stencil enum: + STENCIL_BACK_FUNC_ATI = 0x8800 + STENCIL_BACK_FAIL_ATI = 0x8801 + STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 + STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 + +############################################################################### + +# No new tokens +# Extension #290 +ATI_vertex_attrib_array_object enum: + +############################################################################### + +# No new tokens +# Extension #291 - OpenGL ES only, not in glext.h +# OES_byte_coordinates enum: + +############################################################################### + +# Extension #292 - OpenGL ES only, not in glext.h +# OES_fixed_point enum: +# FIXED_OES = 0x140C + +############################################################################### + +# No new tokens +# Extension #293 - OpenGL ES only, not in glext.h +# OES_single_precision enum: + +############################################################################### + +# Extension #294 - OpenGL ES only, not in glext.h +# OES_compressed_paletted_texture enum: +# PALETTE4_RGB8_OES = 0x8B90 +# PALETTE4_RGBA8_OES = 0x8B91 +# PALETTE4_R5_G6_B5_OES = 0x8B92 +# PALETTE4_RGBA4_OES = 0x8B93 +# PALETTE4_RGB5_A1_OES = 0x8B94 +# PALETTE8_RGB8_OES = 0x8B95 +# PALETTE8_RGBA8_OES = 0x8B96 +# PALETTE8_R5_G6_B5_OES = 0x8B97 +# PALETTE8_RGBA4_OES = 0x8B98 +# PALETTE8_RGB5_A1_OES = 0x8B99 + +############################################################################### + +# Extension #295 - This is an OpenGL ES extension, but also implemented in Mesa +OES_read_format enum: + IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A + IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B + +############################################################################### + +# No new tokens +# Extension #296 - OpenGL ES only, not in glext.h +# OES_query_matrix enum: + +############################################################################### + +# Extension #297 +EXT_depth_bounds_test enum: + DEPTH_BOUNDS_TEST_EXT = 0x8890 + DEPTH_BOUNDS_EXT = 0x8891 + +############################################################################### + +# Extension #298 +EXT_texture_mirror_clamp enum: + MIRROR_CLAMP_EXT = 0x8742 + MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 + MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 + +############################################################################### + +# Extension #299 +EXT_blend_equation_separate enum: + BLEND_EQUATION_RGB_EXT = 0x8009 # alias GL_BLEND_EQUATION_EXT + BLEND_EQUATION_ALPHA_EXT = 0x883D + +############################################################################### + +# Extension #300 +MESA_pack_invert enum: + PACK_INVERT_MESA = 0x8758 + +############################################################################### + +# Extension #301 +MESA_ycbcr_texture enum: + UNSIGNED_SHORT_8_8_MESA = 0x85BA + UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB + YCBCR_MESA = 0x8757 + +############################################################################### + +# Extension #302 +EXT_pixel_buffer_object enum: + PIXEL_PACK_BUFFER_EXT = 0x88EB + PIXEL_UNPACK_BUFFER_EXT = 0x88EC + PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED + PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF + +############################################################################### + +# No new tokens +# Extension #303 +NV_fragment_program_option enum: + +############################################################################### + +# Extension #304 +NV_fragment_program2 enum: + MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 + MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 + MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 + MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 + MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 + +############################################################################### + +# Extension #305 +NV_vertex_program2_option enum: + use NV_fragment_program2 MAX_PROGRAM_EXEC_INSTRUCTIONS_NV + use NV_fragment_program2 MAX_PROGRAM_CALL_DEPTH_NV + +############################################################################### + +# Extension #306 +NV_vertex_program3 enum: + use ARB_vertex_shader MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB + +############################################################################### + +# Extension #307 - GLX_SGIX_hyperpipe +# Extension #308 - GLX_MESA_agp_offset +# Extension #309 - GL_EXT_texture_compression_dxt1 (OpenGL ES only, subset of _s3tc version) + +############################################################################### + +# Extension #310 +EXT_framebuffer_object enum: + INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 + MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 + FRAMEBUFFER_BINDING_EXT = 0x8CA6 + RENDERBUFFER_BINDING_EXT = 0x8CA7 + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 + FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 + FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 + FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 +## Removed 2005/09/26 in revision #117 of the extension: +## FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = 0x8CD8 + FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 + FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA + FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB + FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC + FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD +## Removed 2005/05/31 in revision #113 of the extension: +## FRAMEBUFFER_STATUS_ERROR_EXT = 0x8CDE + MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF + COLOR_ATTACHMENT0_EXT = 0x8CE0 + COLOR_ATTACHMENT1_EXT = 0x8CE1 + COLOR_ATTACHMENT2_EXT = 0x8CE2 + COLOR_ATTACHMENT3_EXT = 0x8CE3 + COLOR_ATTACHMENT4_EXT = 0x8CE4 + COLOR_ATTACHMENT5_EXT = 0x8CE5 + COLOR_ATTACHMENT6_EXT = 0x8CE6 + COLOR_ATTACHMENT7_EXT = 0x8CE7 + COLOR_ATTACHMENT8_EXT = 0x8CE8 + COLOR_ATTACHMENT9_EXT = 0x8CE9 + COLOR_ATTACHMENT10_EXT = 0x8CEA + COLOR_ATTACHMENT11_EXT = 0x8CEB + COLOR_ATTACHMENT12_EXT = 0x8CEC + COLOR_ATTACHMENT13_EXT = 0x8CED + COLOR_ATTACHMENT14_EXT = 0x8CEE + COLOR_ATTACHMENT15_EXT = 0x8CEF + DEPTH_ATTACHMENT_EXT = 0x8D00 + STENCIL_ATTACHMENT_EXT = 0x8D20 + FRAMEBUFFER_EXT = 0x8D40 + RENDERBUFFER_EXT = 0x8D41 + RENDERBUFFER_WIDTH_EXT = 0x8D42 + RENDERBUFFER_HEIGHT_EXT = 0x8D43 + RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 +# removed STENCIL_INDEX_EXT = 0x8D45 in rev. #114 of the spec + STENCIL_INDEX1_EXT = 0x8D46 + STENCIL_INDEX4_EXT = 0x8D47 + STENCIL_INDEX8_EXT = 0x8D48 + STENCIL_INDEX16_EXT = 0x8D49 + RENDERBUFFER_RED_SIZE_EXT = 0x8D50 + RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 + RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 + RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 + RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 + RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 + +############################################################################### + +# No new tokens +# Extension #311 +GREMEDY_string_marker enum: + +############################################################################### + +# Extension #312 +EXT_packed_depth_stencil enum: + DEPTH_STENCIL_EXT = 0x84F9 + UNSIGNED_INT_24_8_EXT = 0x84FA + DEPTH24_STENCIL8_EXT = 0x88F0 + TEXTURE_STENCIL_SIZE_EXT = 0x88F1 + +############################################################################### + +# Extension #313 - WGL_3DL_stereo_control + +############################################################################### + +# Extension #314 +EXT_stencil_clear_tag enum: + STENCIL_TAG_BITS_EXT = 0x88F2 + STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 + +############################################################################### + +# Extension #315 +EXT_texture_sRGB enum: + SRGB_EXT = 0x8C40 + SRGB8_EXT = 0x8C41 + SRGB_ALPHA_EXT = 0x8C42 + SRGB8_ALPHA8_EXT = 0x8C43 + SLUMINANCE_ALPHA_EXT = 0x8C44 + SLUMINANCE8_ALPHA8_EXT = 0x8C45 + SLUMINANCE_EXT = 0x8C46 + SLUMINANCE8_EXT = 0x8C47 + COMPRESSED_SRGB_EXT = 0x8C48 + COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 + COMPRESSED_SLUMINANCE_EXT = 0x8C4A + COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B + COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C + COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D + COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E + COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F + +############################################################################### + +# Extension #316 +EXT_framebuffer_blit enum: + READ_FRAMEBUFFER_EXT = 0x8CA8 + DRAW_FRAMEBUFFER_EXT = 0x8CA9 + DRAW_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT + READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA + +############################################################################### + +# Extension #317 +EXT_framebuffer_multisample enum: + RENDERBUFFER_SAMPLES_EXT = 0x8CAB + FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56 + MAX_SAMPLES_EXT = 0x8D57 + +############################################################################### + +# Extension #318 +MESAX_texture_stack enum: + TEXTURE_1D_STACK_MESAX = 0x8759 + TEXTURE_2D_STACK_MESAX = 0x875A + PROXY_TEXTURE_1D_STACK_MESAX = 0x875B + PROXY_TEXTURE_2D_STACK_MESAX = 0x875C + TEXTURE_1D_STACK_BINDING_MESAX = 0x875D + TEXTURE_2D_STACK_BINDING_MESAX = 0x875E + +############################################################################### + +# Extension #319 +EXT_timer_query enum: + TIME_ELAPSED_EXT = 0x88BF + +############################################################################### + +# No new tokens +# Extension #320 +EXT_gpu_program_parameters enum: + +############################################################################### + +# Extension #321 +APPLE_flush_buffer_range enum: + BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 + BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 + +############################################################################### + +# Extension #322 +NV_gpu_program4 enum: + MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 + MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 + PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 + PROGRAM_RESULT_COMPONENTS_NV = 0x8907 + MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 + MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 + MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 + MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 + +############################################################################### + +# Extension #323 +NV_geometry_program4 enum: + LINES_ADJACENCY_EXT = 0x000A + LINE_STRIP_ADJACENCY_EXT = 0x000B + TRIANGLES_ADJACENCY_EXT = 0x000C + TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D + GEOMETRY_PROGRAM_NV = 0x8C26 + MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 + MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 + GEOMETRY_VERTICES_OUT_EXT = 0x8DDA + GEOMETRY_INPUT_TYPE_EXT = 0x8DDB + GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC + MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29 + FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7 + FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8 + FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9 + FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4 + PROGRAM_POINT_SIZE_EXT = 0x8642 + +############################################################################### + +# Extension #324 +EXT_geometry_shader4 enum: + GEOMETRY_SHADER_EXT = 0x8DD9 + use NV_geometry_program4 GEOMETRY_VERTICES_OUT_EXT + use NV_geometry_program4 GEOMETRY_INPUT_TYPE_EXT + use NV_geometry_program4 GEOMETRY_OUTPUT_TYPE_EXT + use NV_geometry_program4 MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT + MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD + MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE + MAX_VARYING_COMPONENTS_EXT = 0x8B4B + MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF + MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0 + MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1 + use NV_geometry_program4 LINES_ADJACENCY_EXT + use NV_geometry_program4 LINE_STRIP_ADJACENCY_EXT + use NV_geometry_program4 TRIANGLES_ADJACENCY_EXT + use NV_geometry_program4 TRIANGLE_STRIP_ADJACENCY_EXT + use NV_geometry_program4 FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT + use NV_geometry_program4 FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT + use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_LAYERED_EXT + use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT + use NV_geometry_program4 PROGRAM_POINT_SIZE_EXT + +############################################################################### + +# Extension #325 +NV_vertex_program4 enum: + VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD + +############################################################################### + +# Extension #326 +EXT_gpu_shader4 enum: + SAMPLER_1D_ARRAY_EXT = 0x8DC0 + SAMPLER_2D_ARRAY_EXT = 0x8DC1 + SAMPLER_BUFFER_EXT = 0x8DC2 + SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 + SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 + SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 + UNSIGNED_INT_VEC2_EXT = 0x8DC6 + UNSIGNED_INT_VEC3_EXT = 0x8DC7 + UNSIGNED_INT_VEC4_EXT = 0x8DC8 + INT_SAMPLER_1D_EXT = 0x8DC9 + INT_SAMPLER_2D_EXT = 0x8DCA + INT_SAMPLER_3D_EXT = 0x8DCB + INT_SAMPLER_CUBE_EXT = 0x8DCC + INT_SAMPLER_2D_RECT_EXT = 0x8DCD + INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE + INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF + INT_SAMPLER_BUFFER_EXT = 0x8DD0 + UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 + UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 + UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 + UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 + UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 + UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 + UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 + UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8 + +############################################################################### + +# No new tokens +# Extension #327 +EXT_draw_instanced enum: + +############################################################################### + +# Extension #328 +EXT_packed_float enum: + R11F_G11F_B10F_EXT = 0x8C3A + UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B + RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C + +############################################################################### + +# Extension #329 +EXT_texture_array enum: + TEXTURE_1D_ARRAY_EXT = 0x8C18 + PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 + TEXTURE_2D_ARRAY_EXT = 0x8C1A + PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B + TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C + TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D + MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF + COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E + use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT + +############################################################################### + +# Extension #330 +EXT_texture_buffer_object enum: + TEXTURE_BUFFER_EXT = 0x8C2A + MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B + TEXTURE_BINDING_BUFFER_EXT = 0x8C2C + TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D + TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E + +############################################################################### + +# Extension #331 +EXT_texture_compression_latc enum: + COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 + COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 + COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 + COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 + +############################################################################### + +# Extension #332 +EXT_texture_compression_rgtc enum: + COMPRESSED_RED_RGTC1_EXT = 0x8DBB + COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC + COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD + COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE + +############################################################################### + +# Extension #333 +EXT_texture_shared_exponent enum: + RGB9_E5_EXT = 0x8C3D + UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E + TEXTURE_SHARED_SIZE_EXT = 0x8C3F + +############################################################################### + +# Extension #334 +NV_depth_buffer_float enum: + DEPTH_COMPONENT32F_NV = 0x8DAB + DEPTH32F_STENCIL8_NV = 0x8DAC + FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD + DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF + +############################################################################### + +# No new tokens +# Extension #335 +NV_fragment_program4 enum: + +############################################################################### + +# Extension #336 +NV_framebuffer_multisample_coverage enum: + RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB + RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 + MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 + MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 + +############################################################################### + +# Extension #337 +# ??? Also WGL/GLX extensions ??? +EXT_framebuffer_sRGB enum: + FRAMEBUFFER_SRGB_EXT = 0x8DB9 + FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA + +############################################################################### + +# No new tokens +# Extension #338 +NV_geometry_shader4 enum: + +############################################################################### + +# Extension #339 +NV_parameter_buffer_object enum: + MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 + MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 + VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 + GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 + FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 + +############################################################################### + +# No new tokens +# Extension #340 +EXT_draw_buffers2 enum: + +############################################################################### + +# Extension #341 +NV_transform_feedback enum: + BACK_PRIMARY_COLOR_NV = 0x8C77 + BACK_SECONDARY_COLOR_NV = 0x8C78 + TEXTURE_COORD_NV = 0x8C79 + CLIP_DISTANCE_NV = 0x8C7A + VERTEX_ID_NV = 0x8C7B + PRIMITIVE_ID_NV = 0x8C7C + GENERIC_ATTRIB_NV = 0x8C7D + TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E + TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 + ACTIVE_VARYINGS_NV = 0x8C81 + ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 + TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 + TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 + TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 + TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 + PRIMITIVES_GENERATED_NV = 0x8C87 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 + RASTERIZER_DISCARD_NV = 0x8C89 + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B + INTERLEAVED_ATTRIBS_NV = 0x8C8C + SEPARATE_ATTRIBS_NV = 0x8C8D + TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E + TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F + +############################################################################### + +# Extension #342 +EXT_bindable_uniform enum: + MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 + MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 + MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 + MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED + UNIFORM_BUFFER_EXT = 0x8DEE + UNIFORM_BUFFER_BINDING_EXT = 0x8DEF + +############################################################################### + +# Extension #343 +EXT_texture_integer enum: + RGBA32UI_EXT = 0x8D70 + RGB32UI_EXT = 0x8D71 + ALPHA32UI_EXT = 0x8D72 + INTENSITY32UI_EXT = 0x8D73 + LUMINANCE32UI_EXT = 0x8D74 + LUMINANCE_ALPHA32UI_EXT = 0x8D75 + RGBA16UI_EXT = 0x8D76 + RGB16UI_EXT = 0x8D77 + ALPHA16UI_EXT = 0x8D78 + INTENSITY16UI_EXT = 0x8D79 + LUMINANCE16UI_EXT = 0x8D7A + LUMINANCE_ALPHA16UI_EXT = 0x8D7B + RGBA8UI_EXT = 0x8D7C + RGB8UI_EXT = 0x8D7D + ALPHA8UI_EXT = 0x8D7E + INTENSITY8UI_EXT = 0x8D7F + LUMINANCE8UI_EXT = 0x8D80 + LUMINANCE_ALPHA8UI_EXT = 0x8D81 + RGBA32I_EXT = 0x8D82 + RGB32I_EXT = 0x8D83 + ALPHA32I_EXT = 0x8D84 + INTENSITY32I_EXT = 0x8D85 + LUMINANCE32I_EXT = 0x8D86 + LUMINANCE_ALPHA32I_EXT = 0x8D87 + RGBA16I_EXT = 0x8D88 + RGB16I_EXT = 0x8D89 + ALPHA16I_EXT = 0x8D8A + INTENSITY16I_EXT = 0x8D8B + LUMINANCE16I_EXT = 0x8D8C + LUMINANCE_ALPHA16I_EXT = 0x8D8D + RGBA8I_EXT = 0x8D8E + RGB8I_EXT = 0x8D8F + ALPHA8I_EXT = 0x8D90 + INTENSITY8I_EXT = 0x8D91 + LUMINANCE8I_EXT = 0x8D92 + LUMINANCE_ALPHA8I_EXT = 0x8D93 + RED_INTEGER_EXT = 0x8D94 + GREEN_INTEGER_EXT = 0x8D95 + BLUE_INTEGER_EXT = 0x8D96 + ALPHA_INTEGER_EXT = 0x8D97 + RGB_INTEGER_EXT = 0x8D98 + RGBA_INTEGER_EXT = 0x8D99 + BGR_INTEGER_EXT = 0x8D9A + BGRA_INTEGER_EXT = 0x8D9B + LUMINANCE_INTEGER_EXT = 0x8D9C + LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D + RGBA_INTEGER_MODE_EXT = 0x8D9E + +############################################################################### + +# Extension #344 - GLX_EXT_texture_from_pixmap + +############################################################################### + +# No new tokens +# Extension #345 +GREMEDY_frame_terminator enum: + +############################################################################### + +# Extension #346 +NV_conditional_render enum: + QUERY_WAIT_NV = 0x8E13 + QUERY_NO_WAIT_NV = 0x8E14 + QUERY_BY_REGION_WAIT_NV = 0x8E15 + QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 + +############################################################################### + +# Extension #347 +NV_present_video enum: + FRAME_NV = 0x8E26 + FIELDS_NV = 0x8E27 + CURRENT_TIME_NV = 0x8E28 + NUM_FILL_STREAMS_NV = 0x8E29 + PRESENT_TIME_NV = 0x8E2A + PRESENT_DURATION_NV = 0x8E2B + +############################################################################### + +# Extension #348 - GLX_NV_video_out +# Extension #349 - WGL_NV_video_out +# Extension #350 - GLX_NV_swap_group +# Extension #351 - WGL_NV_swap_group + +############################################################################### + +# Extension #352 +EXT_transform_feedback enum: + TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E + TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 + TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 + TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F + INTERLEAVED_ATTRIBS_EXT = 0x8C8C + SEPARATE_ATTRIBS_EXT = 0x8C8D + PRIMITIVES_GENERATED_EXT = 0x8C87 + TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 + RASTERIZER_DISCARD_EXT = 0x8C89 + MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A + MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B + MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 + TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 + TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F + TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 + +############################################################################### + +# Extension #353 +EXT_direct_state_access enum: + PROGRAM_MATRIX_EXT = 0x8E2D + TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E + PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F + +############################################################################### + +# Extension #354 +EXT_vertex_array_bgra enum: + use VERSION_1_2 BGRA + +############################################################################### + +# Extension #355 - WGL_NV_gpu_affinity + +############################################################################### + +# Extension #356 +EXT_texture_swizzle enum: + TEXTURE_SWIZZLE_R_EXT = 0x8E42 + TEXTURE_SWIZZLE_G_EXT = 0x8E43 + TEXTURE_SWIZZLE_B_EXT = 0x8E44 + TEXTURE_SWIZZLE_A_EXT = 0x8E45 + TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 + +############################################################################### + +# Extension #357 +NV_explicit_multisample enum: + SAMPLE_POSITION_NV = 0x8E50 + SAMPLE_MASK_NV = 0x8E51 + SAMPLE_MASK_VALUE_NV = 0x8E52 + TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 + TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 + TEXTURE_RENDERBUFFER_NV = 0x8E55 + SAMPLER_RENDERBUFFER_NV = 0x8E56 + INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 + UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 + MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 + +############################################################################### + +# Extension #358 +NV_transform_feedback2 enum: + TRANSFORM_FEEDBACK_NV = 0x8E22 + TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 + TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 + TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 + +############################################################################### + +# Extension #359 +ATI_meminfo enum: + VBO_FREE_MEMORY_ATI = 0x87FB + TEXTURE_FREE_MEMORY_ATI = 0x87FC + RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD + +############################################################################### + +# Extension #360 +AMD_performance_monitor enum: + COUNTER_TYPE_AMD = 0x8BC0 + COUNTER_RANGE_AMD = 0x8BC1 + UNSIGNED_INT64_AMD = 0x8BC2 + PERCENTAGE_AMD = 0x8BC3 + PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 + PERFMON_RESULT_SIZE_AMD = 0x8BC5 + PERFMON_RESULT_AMD = 0x8BC6 + +############################################################################### + +# Extension #361 - WGL_AMD_gpu_association + +############################################################################### + +# No new tokens +# Extension #362 +AMD_texture_texture4 enum: + +############################################################################### + +# Extension #363 +AMD_vertex_shader_tesselator enum: + SAMPLER_BUFFER_AMD = 0x9001 + INT_SAMPLER_BUFFER_AMD = 0x9002 + UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 + TESSELLATION_MODE_AMD = 0x9004 + TESSELLATION_FACTOR_AMD = 0x9005 + DISCRETE_AMD = 0x9006 + CONTINUOUS_AMD = 0x9007 + +############################################################################### + +# Extension #364 +EXT_provoking_vertex enum: + QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C + FIRST_VERTEX_CONVENTION_EXT = 0x8E4D + LAST_VERTEX_CONVENTION_EXT = 0x8E4E + PROVOKING_VERTEX_EXT = 0x8E4F + +############################################################################### + +# Extension #365 +EXT_texture_snorm enum: + ALPHA_SNORM = 0x9010 + LUMINANCE_SNORM = 0x9011 + LUMINANCE_ALPHA_SNORM = 0x9012 + INTENSITY_SNORM = 0x9013 + ALPHA8_SNORM = 0x9014 + LUMINANCE8_SNORM = 0x9015 + LUMINANCE8_ALPHA8_SNORM = 0x9016 + INTENSITY8_SNORM = 0x9017 + ALPHA16_SNORM = 0x9018 + LUMINANCE16_SNORM = 0x9019 + LUMINANCE16_ALPHA16_SNORM = 0x901A + INTENSITY16_SNORM = 0x901B + use VERSION_3_1 RED_SNORM + use VERSION_3_1 RG_SNORM + use VERSION_3_1 RGB_SNORM + use VERSION_3_1 RGBA_SNORM + use VERSION_3_1 R8_SNORM + use VERSION_3_1 RG8_SNORM + use VERSION_3_1 RGB8_SNORM + use VERSION_3_1 RGBA8_SNORM + use VERSION_3_1 R16_SNORM + use VERSION_3_1 RG16_SNORM + use VERSION_3_1 RGB16_SNORM + use VERSION_3_1 RGBA16_SNORM + use VERSION_3_1 SIGNED_NORMALIZED + +############################################################################### + +# No new tokens +# Extension #366 +AMD_draw_buffers_blend enum: + +############################################################################### + +# Extension #367 +APPLE_texture_range enum: + TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 + TEXTURE_RANGE_POINTER_APPLE = 0x85B8 + TEXTURE_STORAGE_HINT_APPLE = 0x85BC + STORAGE_PRIVATE_APPLE = 0x85BD + use APPLE_vertex_array_range STORAGE_CACHED_APPLE + use APPLE_vertex_array_range STORAGE_SHARED_APPLE + +############################################################################### + +# Extension #368 +APPLE_float_pixels enum: + HALF_APPLE = 0x140B + RGBA_FLOAT32_APPLE = 0x8814 + RGB_FLOAT32_APPLE = 0x8815 + ALPHA_FLOAT32_APPLE = 0x8816 + INTENSITY_FLOAT32_APPLE = 0x8817 + LUMINANCE_FLOAT32_APPLE = 0x8818 + LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 + RGBA_FLOAT16_APPLE = 0x881A + RGB_FLOAT16_APPLE = 0x881B + ALPHA_FLOAT16_APPLE = 0x881C + INTENSITY_FLOAT16_APPLE = 0x881D + LUMINANCE_FLOAT16_APPLE = 0x881E + LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F + COLOR_FLOAT_APPLE = 0x8A0F + +############################################################################### + +# Extension #369 +APPLE_vertex_program_evaluators enum: + VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 + VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 + VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 + VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 + VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 + VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 + VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 + VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 + VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 + VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 + +############################################################################### + +# Extension #370 +APPLE_aux_depth_stencil enum: + AUX_DEPTH_STENCIL_APPLE = 0x8A14 + +############################################################################### + +# Extension #371 +APPLE_object_purgeable enum: + BUFFER_OBJECT_APPLE = 0x85B3 + RELEASED_APPLE = 0x8A19 + VOLATILE_APPLE = 0x8A1A + RETAINED_APPLE = 0x8A1B + UNDEFINED_APPLE = 0x8A1C + PURGEABLE_APPLE = 0x8A1D + +############################################################################### + +# Extension #372 +APPLE_row_bytes enum: + PACK_ROW_BYTES_APPLE = 0x8A15 + UNPACK_ROW_BYTES_APPLE = 0x8A16 + +############################################################################### + +# Extension #373 +APPLE_rgb_422 enum: + RGB_422_APPLE = 0x8A1F + use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_APPLE + use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_REV_APPLE + +############################################################################### + +# Extension #374 + +NV_video_capture enum: + VIDEO_BUFFER_NV = 0x9020 + VIDEO_BUFFER_BINDING_NV = 0x9021 + FIELD_UPPER_NV = 0x9022 + FIELD_LOWER_NV = 0x9023 + NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 + NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 + VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 + LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 + VIDEO_BUFFER_PITCH_NV = 0x9028 + VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 + VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A + VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B + VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C + VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D + PARTIAL_SUCCESS_NV = 0x902E + SUCCESS_NV = 0x902F + FAILURE_NV = 0x9030 + YCBYCR8_422_NV = 0x9031 + YCBAYCR8A_4224_NV = 0x9032 + Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 + Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 + Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 + Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 + Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 + VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 + VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 + VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A + VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B + VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C + +############################################################################### + +# Extension #375 - GLX_EXT_swap_control + +############################################################################### + +# No new tokens +# Extension #376 - also GLX_NV_copy_image, WGL_NV_copy_image +NV_copy_image enum: + +############################################################################### + +# Extension #377 +EXT_separate_shader_objects enum: + ACTIVE_PROGRAM_EXT = 0x8B8D + +############################################################################### + +# No new tokens +# Extension #378 +NV_parameter_buffer_object2 enum: + +############################################################################### + +# Extension #379 +NV_shader_buffer_load enum: + BUFFER_GPU_ADDRESS_NV = 0x8F1D + GPU_ADDRESS_NV = 0x8F34 + MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 + +############################################################################### + +# Extension #380 +NV_vertex_buffer_unified_memory enum: + VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E + ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F + VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 + VERTEX_ARRAY_ADDRESS_NV = 0x8F21 + NORMAL_ARRAY_ADDRESS_NV = 0x8F22 + COLOR_ARRAY_ADDRESS_NV = 0x8F23 + INDEX_ARRAY_ADDRESS_NV = 0x8F24 + TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 + EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 + SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 + FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 + ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 + VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A + VERTEX_ARRAY_LENGTH_NV = 0x8F2B + NORMAL_ARRAY_LENGTH_NV = 0x8F2C + COLOR_ARRAY_LENGTH_NV = 0x8F2D + INDEX_ARRAY_LENGTH_NV = 0x8F2E + TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F + EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 + SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 + FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 + ELEMENT_ARRAY_LENGTH_NV = 0x8F33 + +############################################################################### + +# No new tokens +# Extension #381 +NV_texture_barrier enum: diff --git a/src/glx/apple/specs/gl.spec b/src/glx/apple/specs/gl.spec new file mode 100644 index 0000000000..98f364d53e --- /dev/null +++ b/src/glx/apple/specs/gl.spec @@ -0,0 +1,26844 @@ +# gl.spec file +# DON'T REMOVE PREVIOUS LINE!!! libspec depends on it! +# +# Copyright (c) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# Copyright (c) 2006-2009 The Khronos Group Inc. +# +# This document is licensed under the SGI Free Software B License Version +# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + + +required-props: +# Description of a parameter +param: retval retained +# Display list flags +dlflags: notlistable handcode +# GLX implementation flags +glxflags: client-intercept client-handcode server-handcode EXT SGI ignore ARB +# Vector ('v') equivalent form of a command taking 1-4 explicit xyzw/rgba arguments +vectorequiv: * +# Category this function falls in. While there are many categories for +# early GL 1.0 functions, later functions just have a core version +# (e.g. VERSION_major_minor) or extension name for the category. +category: display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform VERSION_1_0 VERSION_1_0_DEPRECATED VERSION_1_1 VERSION_1_1_DEPRECATED VERSION_1_2 VERSION_1_2_DEPRECATED VERSION_1_3 VERSION_1_3_DEPRECATED VERSION_1_4 VERSION_1_4_DEPRECATED VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 VERSION_3_0_DEPRECATED VERSION_3_1 VERSION_3_2 ATI_element_array ATI_envmap_bumpmap ATI_fragment_shader ATI_pn_triangles ATI_vertex_array_object ATI_vertex_streams EXT_blend_color EXT_blend_minmax EXT_convolution EXT_copy_texture EXT_histogram EXT_polygon_offset EXT_subtexture EXT_texture3D EXT_texture_object EXT_vertex_array EXT_vertex_shader SGIS_detail_texture SGIS_multisample SGIS_pixel_texture ARB_point_parameters EXT_point_parameters SGIS_point_parameters SGIS_sharpen_texture SGIS_texture4D SGIS_texture_filter4 SGIX_async SGIX_flush_raster SGIX_fragment_lighting SGIX_framezoom SGIX_igloo_interface SGIX_instruments SGIX_list_priority SGIX_pixel_texture SGIX_polynomial_ffd SGIX_reference_plane SGIX_sprite SGIX_tag_sample_buffer SGI_color_table ARB_multitexture ARB_multisample ARB_texture_compression ARB_transpose_matrix ARB_vertex_blend ARB_matrix_palette EXT_compiled_vertex_array EXT_cull_vertex EXT_index_func EXT_index_material EXT_draw_range_elements EXT_vertex_weighting INGR_blend_func_separate NV_evaluators NV_fence NV_occlusion_query NV_point_sprite NV_register_combiners NV_register_combiners2 NV_vertex_array_range NV_vertex_program NV_vertex_program1_1_dcc MESA_resize_buffers MESA_window_pos PGI_misc_hints EXT_fog_coord EXT_blend_func_separate EXT_color_subtable EXT_coordinate_frame EXT_light_texture EXT_multi_draw_arrays EXT_paletted_texture EXT_pixel_transform EXT_secondary_color EXT_texture_perturb_normal HP_image_transform IBM_multimode_draw_arrays IBM_vertex_array_lists INTEL_parallel_arrays SUNX_constant_data SUN_global_alpha SUN_mesh_array SUN_triangle_list SUN_vertex 3DFX_tbuffer EXT_multisample SGIS_fog_function SGIS_texture_color_mask ARB_window_pos EXT_stencil_two_side EXT_depth_bounds_test EXT_blend_equation_separate ARB_vertex_program ARB_fragment_program ARB_vertex_buffer_object ARB_occlusion_query ARB_shader_objects ARB_vertex_shader ARB_fragment_shader S3_s3tc ATI_draw_buffers ATI_texture_env_combine3 ATI_texture_float NV_float_buffer NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart NV_texture_expand_normal NV_texture_expand_normal NV_vertex_program2 APPLE_element_array APPLE_fence APPLE_vertex_array_object APPLE_vertex_array_range ATI_draw_buffers NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart ATI_map_object_buffer ATI_separate_stencil ATI_vertex_attrib_array_object ARB_draw_buffers ARB_texture_rectangle ARB_color_buffer_float EXT_framebuffer_object GREMEDY_string_marker EXT_stencil_clear_tag EXT_framebuffer_blit EXT_framebuffer_multisample MESAX_texture_stack EXT_timer_query EXT_gpu_program_parameters APPLE_flush_buffer_range NV_gpu_program4 NV_geometry_program4 EXT_geometry_shader4 NV_vertex_program4 EXT_gpu_shader4 EXT_draw_instanced EXT_texture_buffer_object NV_depth_buffer_float NV_framebuffer_multisample_coverage NV_parameter_buffer_object EXT_draw_buffers2 NV_transform_feedback EXT_bindable_uniform EXT_texture_integer GREMEDY_frame_terminator NV_conditional_render NV_present_video EXT_transform_feedback ARB_depth_buffer_float ARB_draw_instanced ARB_framebuffer_object ARB_framebuffer_sRGB ARB_geometry_shader4 ARB_half_float_vertex ARB_instanced_arrays ARB_map_buffer_range ARB_texture_buffer_object ARB_texture_compression_rgtc ARB_texture_rg ARB_vertex_array_object EXT_direct_state_access EXT_vertex_array_bgra EXT_texture_swizzle NV_explicit_multisample NV_transform_feedback2 ATI_meminfo AMD_performance_monitor AMD_vertex_shader_tesselator EXT_provoking_vertex ARB_uniform_buffer_object ARB_copy_buffer EXT_texture_snorm AMD_draw_buffers_blend APPLE_texture_range APPLE_float_pixels APPLE_vertex_program_evaluators APPLE_aux_depth_stencil APPLE_object_purgeable APPLE_row_bytes ARB_draw_elements_base_vertex ARB_provoking_vertex ARB_sync ARB_texture_multisample ARB_draw_buffers_blend ARB_sample_shading NV_video_capture NV_copy_image EXT_separate_shader_objects NV_parameter_buffer_object2 NV_shader_buffer_load NV_vertex_buffer_unified_memory NV_texture_barrier + +# Categories for extensions with no functions - need not be included now +# ARB_texture_env_add ARB_texture_cube_map ARB_texture_border_clamp +# ARB_shading_language_100 ARB_texture_non_power_of_two ARB_point_sprite +# ARB_half_float_pixel ARB_texture_float ARB_pixel_buffer_object EXT_abgr +# EXT_texture SGI_color_matrix SGI_texture_color_table EXT_cmyka +# EXT_packed_pixels SGIS_texture_lod EXT_rescale_normal EXT_misc_attribute +# SGIS_generate_mipmap SGIX_clipmap SGIX_shadow SGIS_texture_edge_clamp +# SGIS_texture_border_clamp EXT_blend_subtract EXT_blend_logic_op +# SGIX_async_histogram SGIX_async_pixel SGIX_interlace SGIX_pixel_tiles +# SGIX_texture_select SGIX_texture_multi_buffer SGIX_texture_scale_bias +# SGIX_depth_texture SGIX_fog_offset HP_convolution_border_modes +# SGIX_texture_add_env PGI_vertex_hints EXT_clip_volume_hint +# SGIX_ir_instrument1 SGIX_calligraphic_fragment SGIX_texture_lod_bias +# SGIX_shadow_ambient EXT_index_texture EXT_index_array_formats SGIX_ycrcb +# IBM_rasterpos_clip HP_texture_lighting WIN_phong_shading +# WIN_specular_fog SGIX_blend_alpha_minmax EXT_bgra HP_occlusion_test +# EXT_pixel_transform_color_table EXT_shared_texture_palette +# EXT_separate_specular_color EXT_texture_env REND_screen_coordinates +# EXT_texture_env_combine APPLE_specular_vector APPLE_transform_hint +# SGIX_fog_scale INGR_color_clamp INGR_interlace_read EXT_stencil_wrap +# EXT_422_pixels NV_texgen_reflection SUN_convolution_border_modes +# SUN_slice_accum EXT_texture_env_add EXT_texture_lod_bias +# EXT_texture_filter_anisotropic NV_light_max_exponent NV_fog_distance +# NV_texgen_emboss NV_blend_square NV_texture_env_combine4 +# NV_packed_depth_stencil NV_texture_compression_vtc NV_texture_rectangle +# NV_texture_shader NV_texture_shader2 NV_vertex_array_range2 +# IBM_cull_vertex SGIX_subsample SGIX_ycrcba SGIX_ycrcb_subsample +# SGIX_depth_pass_instrument 3DFX_texture_compression_FXT1 +# 3DFX_multisample SGIX_vertex_preclip SGIX_convolution_accuracy +# SGIX_resample SGIX_scalebias_hint SGIX_texture_coordinate_clamp +# EXT_shadow_funcs MESA_pack_invert MESA_ycbcr_texture EXT_packed_float +# EXT_texture_array EXT_texture_compression_latc +# EXT_texture_compression_rgtc EXT_texture_shared_exponent +# NV_fragment_program4 EXT_framebuffer_sRGB NV_geometry_shader4 +# EXT_vertex_array_bgra ARB_depth_clamp ARB_fragment_coord_conventions +# ARB_seamless_cube_map ARB_vertex_array_bgra ARB_texture_cube_map_array +# ARB_texture_gather ARB_texture_query_lod + +# Core version in which a function was introduced, or against +# which an extension can be implemented +version: 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.1 3.0 3.1 3.2 +# Core version in which a function was removed +deprecated: 3.1 +# GLX Single, Rendering, or Vendor Private opcode +glxsingle: * +glxropcode: * +glxvendorpriv: * +# WGL implementation flags (incomplete) +wglflags: client-handcode server-handcode small-data batchable +# Drivers in which this is implemented (very incomplete) +extension: future not_implemented soft WINSOFT NV10 NV20 NV50 +# Function this aliases (indistinguishable to the GL) +alias: * +# Mesa dispatch table offset (incomplete) +offset: * +# These properties are picked up from NVIDIA .spec files, we don't use them +glfflags: * +beginend: * +glxvectorequiv: * +subcategory: * +glextmask: * + +############################################################################### +# +# glxsingle, glxropcode, and other GLX allocations to vendors +# are used here, but the master registry for GLX is in +# /ogl/trunk/doc/registry/extensions.reserved +# +# XFree86 dispatch offsets: 0-645 +# 578-641 NV_vertex_program +# GLS opcodes: 0x0030-0x0269 +# +############################################################################### + +############################################################################### +# +# things to remember when adding an extension command +# +# - append new ARB and non-ARB extensions to the appropriate portion of +# the spec file, in extension number order. +# - use tabs, not spaces +# - set glxflags to "ignore" until GLX is updated to support the new command +# - add new data types to typemaps/spec2wire.map +# - add extension name in alphabetical order to category list +# - add commands within an extension in spec order +# - use existing command entries as a model (where possible) +# - when reserving new glxropcodes, update +# gfx/lib/opengl/doc/glspec/extensions.reserved to indicate this +# +############################################################################### + +# New type declarations + +passthru: #include + +passthru: #ifndef GL_VERSION_2_0 +passthru: /* GL type for program/shader text */ +passthru: typedef char GLchar; +passthru: #endif +passthru: +passthru: #ifndef GL_VERSION_1_5 +passthru: /* GL types for handling large vertex buffer objects */ +passthru: typedef ptrdiff_t GLintptr; +passthru: typedef ptrdiff_t GLsizeiptr; +passthru: #endif +passthru: +passthru: #ifndef GL_ARB_vertex_buffer_object +passthru: /* GL types for handling large vertex buffer objects */ +passthru: typedef ptrdiff_t GLintptrARB; +passthru: typedef ptrdiff_t GLsizeiptrARB; +passthru: #endif +passthru: +passthru: #ifndef GL_ARB_shader_objects +passthru: /* GL types for program/shader text and shader object handles */ +passthru: typedef char GLcharARB; +passthru: typedef unsigned int GLhandleARB; +passthru: #endif +passthru: +passthru: /* GL type for "half" precision (s10e5) float data in host memory */ +passthru: #ifndef GL_ARB_half_float_pixel +passthru: typedef unsigned short GLhalfARB; +passthru: #endif +passthru: +passthru: #ifndef GL_NV_half_float +passthru: typedef unsigned short GLhalfNV; +passthru: #endif +passthru: +passthru: #ifndef GLEXT_64_TYPES_DEFINED +passthru: /* This code block is duplicated in glxext.h, so must be protected */ +passthru: #define GLEXT_64_TYPES_DEFINED +passthru: /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +passthru: /* (as used in the GL_EXT_timer_query extension). */ +passthru: #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +passthru: #include +passthru: #elif defined(__sun__) || defined(__digital__) +passthru: #include +passthru: #if defined(__STDC__) +passthru: #if defined(__arch64__) || defined(_LP64) +passthru: typedef long int int64_t; +passthru: typedef unsigned long int uint64_t; +passthru: #else +passthru: typedef long long int int64_t; +passthru: typedef unsigned long long int uint64_t; +passthru: #endif /* __arch64__ */ +passthru: #endif /* __STDC__ */ +passthru: #elif defined( __VMS ) || defined(__sgi) +passthru: #include +passthru: #elif defined(__SCO__) || defined(__USLC__) +passthru: #include +passthru: #elif defined(__UNIXOS2__) || defined(__SOL64__) +passthru: typedef long int int32_t; +passthru: typedef long long int int64_t; +passthru: typedef unsigned long long int uint64_t; +passthru: #elif defined(_WIN32) && defined(__GNUC__) +passthru: #include +passthru: #elif defined(_WIN32) +passthru: typedef __int32 int32_t; +passthru: typedef __int64 int64_t; +passthru: typedef unsigned __int64 uint64_t; +passthru: #else +passthru: /* Fallback if nothing above works */ +passthru: #include +passthru: #endif +passthru: #endif +passthru: +passthru: #ifndef GL_EXT_timer_query +passthru: typedef int64_t GLint64EXT; +passthru: typedef uint64_t GLuint64EXT; +passthru: #endif +passthru: +passthru: #ifndef ARB_sync +passthru: typedef int64_t GLint64; +passthru: typedef uint64_t GLuint64; +passthru: typedef struct __GLsync *GLsync; +passthru: #endif +passthru: + +############################################################################### +############################################################################### +# +# OpenGL 1.0 commands +# +############################################################################### +############################################################################### + +############################################################################### +# +# drawing-control commands +# +############################################################################### + +CullFace(mode) + return void + param mode CullFaceMode in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 79 + offset 152 + +FrontFace(mode) + return void + param mode FrontFaceDirection in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 84 + offset 157 + +Hint(target, mode) + return void + param target HintTarget in value + param mode HintMode in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 85 + offset 158 + +LineWidth(width) + return void + param width CheckedFloat32 in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 95 + offset 168 + +PointSize(size) + return void + param size CheckedFloat32 in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 100 + offset 173 + +PolygonMode(face, mode) + return void + param face MaterialFace in value + param mode PolygonMode in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 101 + offset 174 + +Scissor(x, y, width, height) + return void + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 103 + offset 176 + +TexParameterf(target, pname, param) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedFloat32 in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 105 + wglflags small-data + offset 178 + +TexParameterfv(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 106 + wglflags small-data + offset 179 + +TexParameteri(target, pname, param) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedInt32 in value + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 107 + wglflags small-data + offset 180 + +TexParameteriv(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0 # old: drawing-control + version 1.0 + glxropcode 108 + wglflags small-data + offset 181 + +TexImage1D(target, level, internalformat, width, border, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureComponentCount in value + param width SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category VERSION_1_0 # old: drawing-control + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + glxropcode 109 + wglflags client-handcode server-handcode + offset 182 + +TexImage2D(target, level, internalformat, width, height, border, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureComponentCount in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category VERSION_1_0 # old: drawing-control + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + glxropcode 110 + wglflags client-handcode server-handcode + offset 183 + +############################################################################### +# +# framebuf commands +# +############################################################################### + +DrawBuffer(mode) + return void + param mode DrawBufferMode in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 126 + offset 202 + +Clear(mask) + return void + param mask ClearBufferMask in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 127 + offset 203 + +ClearColor(red, green, blue, alpha) + return void + param red ClampedColorF in value + param green ClampedColorF in value + param blue ClampedColorF in value + param alpha ClampedColorF in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 130 + offset 206 + +ClearStencil(s) + return void + param s StencilValue in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 131 + offset 207 + +ClearDepth(depth) + return void + param depth ClampedFloat64 in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 132 + offset 208 + +StencilMask(mask) + return void + param mask MaskedStencilValue in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 133 + offset 209 + +ColorMask(red, green, blue, alpha) + return void + param red Boolean in value + param green Boolean in value + param blue Boolean in value + param alpha Boolean in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 134 + offset 210 + +DepthMask(flag) + return void + param flag Boolean in value + category VERSION_1_0 # old: framebuf + version 1.0 + glxropcode 135 + offset 211 + +############################################################################### +# +# misc commands +# +############################################################################### + +Disable(cap) + return void + param cap EnableCap in value + category VERSION_1_0 # old: misc + version 1.0 + dlflags handcode + glxflags client-handcode client-intercept + glxropcode 138 + offset 214 + +Enable(cap) + return void + param cap EnableCap in value + category VERSION_1_0 # old: misc + version 1.0 + dlflags handcode + glxflags client-handcode client-intercept + glxropcode 139 + offset 215 + +Finish() + return void + dlflags notlistable + glxflags client-handcode server-handcode + category VERSION_1_0 # old: misc + version 1.0 + glxsingle 108 + offset 216 + +Flush() + return void + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + category VERSION_1_0 # old: misc + version 1.0 + glxsingle 142 + offset 217 + +############################################################################### +# +# pixel-op commands +# +############################################################################### + +BlendFunc(sfactor, dfactor) + return void + param sfactor BlendingFactorSrc in value + param dfactor BlendingFactorDest in value + category VERSION_1_0 # old: pixel-op + version 1.0 + glxropcode 160 + offset 241 + +LogicOp(opcode) + return void + param opcode LogicOp in value + category VERSION_1_0 # old: pixel-op + version 1.0 + glxropcode 161 + offset 242 + +StencilFunc(func, ref, mask) + return void + param func StencilFunction in value + param ref ClampedStencilValue in value + param mask MaskedStencilValue in value + category VERSION_1_0 # old: pixel-op + version 1.0 + glxropcode 162 + offset 243 + +StencilOp(fail, zfail, zpass) + return void + param fail StencilOp in value + param zfail StencilOp in value + param zpass StencilOp in value + category VERSION_1_0 # old: pixel-op + version 1.0 + glxropcode 163 + offset 244 + +DepthFunc(func) + return void + param func DepthFunction in value + category VERSION_1_0 # old: pixel-op + version 1.0 + glxropcode 164 + offset 245 + +############################################################################### +# +# pixel-rw commands +# +############################################################################### + +PixelStoref(pname, param) + return void + param pname PixelStoreParameter in value + param param CheckedFloat32 in value + dlflags notlistable + glxflags client-handcode + category VERSION_1_0 # old: pixel-rw + version 1.0 + glxsingle 109 + wglflags batchable + offset 249 + +PixelStorei(pname, param) + return void + param pname PixelStoreParameter in value + param param CheckedInt32 in value + dlflags notlistable + glxflags client-handcode + category VERSION_1_0 # old: pixel-rw + version 1.0 + glxsingle 110 + wglflags batchable + offset 250 + +ReadBuffer(mode) + return void + param mode ReadBufferMode in value + category VERSION_1_0 # old: pixel-rw + version 1.0 + glxropcode 171 + offset 254 + +ReadPixels(x, y, width, height, format, type, pixels) + return void + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void out array [COMPSIZE(format/type/width/height)] + category VERSION_1_0 # old: pixel-rw + dlflags notlistable + glxflags client-handcode server-handcode + version 1.0 + glxsingle 111 + wglflags client-handcode server-handcode + offset 256 + +############################################################################### +# +# state-req commands +# +############################################################################### + +GetBooleanv(pname, params) + return void + param pname GetPName in value + param params Boolean out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode + version 1.0 + glxsingle 112 + wglflags small-data + offset 258 + +GetDoublev(pname, params) + return void + param pname GetPName in value + param params Float64 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode + version 1.0 + glxsingle 114 + wglflags small-data + offset 260 + +GetError() + return ErrorCode + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode + version 1.0 + glxsingle 115 + offset 261 + +GetFloatv(pname, params) + return void + param pname GetPName in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode + version 1.0 + glxsingle 116 + wglflags small-data + offset 262 + +GetIntegerv(pname, params) + return void + param pname GetPName in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode + version 1.0 + glxsingle 117 + wglflags small-data + offset 263 + +GetString(name) + return String + param name StringName in value + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode server-handcode + version 1.0 + glxsingle 129 + wglflags client-handcode server-handcode + offset 275 + +GetTexImage(target, level, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void out array [COMPSIZE(target/level/format/type)] + category VERSION_1_0 # old: state-req + dlflags notlistable + glxflags client-handcode server-handcode + version 1.0 + glxsingle 135 + wglflags client-handcode server-handcode + offset 281 + +GetTexParameterfv(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + version 1.0 + glxsingle 136 + wglflags small-data + offset 282 + +GetTexParameteriv(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + version 1.0 + glxsingle 137 + wglflags small-data + offset 283 + +GetTexLevelParameterfv(target, level, pname, params) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + version 1.0 + glxsingle 138 + wglflags small-data + offset 284 + +GetTexLevelParameteriv(target, level, pname, params) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0 # old: state-req + dlflags notlistable + version 1.0 + glxsingle 139 + wglflags small-data + offset 285 + +IsEnabled(cap) + return Boolean + param cap EnableCap in value + category VERSION_1_0 # old: state-req + dlflags notlistable + version 1.0 + glxflags client-handcode client-intercept + glxsingle 140 + offset 286 + +############################################################################### +# +# xform commands +# +############################################################################### + +DepthRange(near, far) + return void + param near ClampedFloat64 in value + param far ClampedFloat64 in value + category VERSION_1_0 # old: xform + version 1.0 + glxropcode 174 + offset 288 + +Viewport(x, y, width, height) + return void + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category VERSION_1_0 # old: xform + version 1.0 + glxropcode 191 + offset 305 + +############################################################################### +############################################################################### +# +# OpenGL 1.0 deprecated commands +# +############################################################################### +############################################################################### + +# display-list commands + +NewList(list, mode) + return void + param list List in value + param mode ListMode in value + dlflags notlistable + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxsingle 101 + wglflags batchable + offset 0 + +EndList() + return void + dlflags notlistable + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxsingle 102 + wglflags batchable + offset 1 + +CallList(list) + return void + param list List in value + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxropcode 1 + offset 2 + +CallLists(n, type, lists) + return void + param n SizeI in value + param type ListNameType in value + param lists Void in array [COMPSIZE(n/type)] + category VERSION_1_0_DEPRECATED # old: display-list + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 2 + offset 3 + +DeleteLists(list, range) + return void + param list List in value + param range SizeI in value + dlflags notlistable + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxsingle 103 + wglflags batchable + offset 4 + +GenLists(range) + return List + param range SizeI in value + dlflags notlistable + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxsingle 104 + offset 5 + +ListBase(base) + return void + param base List in value + category VERSION_1_0_DEPRECATED # old: display-list + version 1.0 + deprecated 3.1 + glxropcode 3 + offset 6 + +# drawing commands + +Begin(mode) + return void + param mode BeginMode in value + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 4 + offset 7 + +Bitmap(width, height, xorig, yorig, xmove, ymove, bitmap) + return void + param width SizeI in value + param height SizeI in value + param xorig CoordF in value + param yorig CoordF in value + param xmove CoordF in value + param ymove CoordF in value + param bitmap UInt8 in array [COMPSIZE(width/height)] + category VERSION_1_0_DEPRECATED # old: drawing + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 5 + wglflags client-handcode server-handcode + offset 8 + +Color3b(red, green, blue) + return void + param red ColorB in value + param green ColorB in value + param blue ColorB in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3bv + version 1.0 + deprecated 3.1 + offset 9 + +Color3bv(v) + return void + param v ColorB in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 6 + offset 10 + +Color3d(red, green, blue) + return void + param red ColorD in value + param green ColorD in value + param blue ColorD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3dv + version 1.0 + deprecated 3.1 + offset 11 + +Color3dv(v) + return void + param v ColorD in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 7 + offset 12 + +Color3f(red, green, blue) + return void + param red ColorF in value + param green ColorF in value + param blue ColorF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3fv + version 1.0 + deprecated 3.1 + offset 13 + +Color3fv(v) + return void + param v ColorF in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 8 + offset 14 + +Color3i(red, green, blue) + return void + param red ColorI in value + param green ColorI in value + param blue ColorI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3iv + version 1.0 + deprecated 3.1 + offset 15 + +Color3iv(v) + return void + param v ColorI in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 9 + offset 16 + +Color3s(red, green, blue) + return void + param red ColorS in value + param green ColorS in value + param blue ColorS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3sv + version 1.0 + deprecated 3.1 + offset 17 + +Color3sv(v) + return void + param v ColorS in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 10 + offset 18 + +Color3ub(red, green, blue) + return void + param red ColorUB in value + param green ColorUB in value + param blue ColorUB in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3ubv + version 1.0 + deprecated 3.1 + offset 19 + +Color3ubv(v) + return void + param v ColorUB in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 11 + offset 20 + +Color3ui(red, green, blue) + return void + param red ColorUI in value + param green ColorUI in value + param blue ColorUI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3uiv + version 1.0 + deprecated 3.1 + offset 21 + +Color3uiv(v) + return void + param v ColorUI in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 12 + offset 22 + +Color3us(red, green, blue) + return void + param red ColorUS in value + param green ColorUS in value + param blue ColorUS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color3usv + version 1.0 + deprecated 3.1 + offset 23 + +Color3usv(v) + return void + param v ColorUS in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 13 + offset 24 + +Color4b(red, green, blue, alpha) + return void + param red ColorB in value + param green ColorB in value + param blue ColorB in value + param alpha ColorB in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4bv + version 1.0 + deprecated 3.1 + offset 25 + +Color4bv(v) + return void + param v ColorB in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 14 + offset 26 + +Color4d(red, green, blue, alpha) + return void + param red ColorD in value + param green ColorD in value + param blue ColorD in value + param alpha ColorD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4dv + version 1.0 + deprecated 3.1 + offset 27 + +Color4dv(v) + return void + param v ColorD in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 15 + offset 28 + +Color4f(red, green, blue, alpha) + return void + param red ColorF in value + param green ColorF in value + param blue ColorF in value + param alpha ColorF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4fv + version 1.0 + deprecated 3.1 + offset 29 + +Color4fv(v) + return void + param v ColorF in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 16 + offset 30 + +Color4i(red, green, blue, alpha) + return void + param red ColorI in value + param green ColorI in value + param blue ColorI in value + param alpha ColorI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4iv + version 1.0 + deprecated 3.1 + offset 31 + +Color4iv(v) + return void + param v ColorI in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 17 + offset 32 + +Color4s(red, green, blue, alpha) + return void + param red ColorS in value + param green ColorS in value + param blue ColorS in value + param alpha ColorS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4sv + version 1.0 + deprecated 3.1 + offset 33 + +Color4sv(v) + return void + param v ColorS in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 18 + offset 34 + +Color4ub(red, green, blue, alpha) + return void + param red ColorUB in value + param green ColorUB in value + param blue ColorUB in value + param alpha ColorUB in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4ubv + version 1.0 + deprecated 3.1 + offset 35 + +Color4ubv(v) + return void + param v ColorUB in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 19 + offset 36 + +Color4ui(red, green, blue, alpha) + return void + param red ColorUI in value + param green ColorUI in value + param blue ColorUI in value + param alpha ColorUI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4uiv + version 1.0 + deprecated 3.1 + offset 37 + +Color4uiv(v) + return void + param v ColorUI in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 20 + offset 38 + +Color4us(red, green, blue, alpha) + return void + param red ColorUS in value + param green ColorUS in value + param blue ColorUS in value + param alpha ColorUS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Color4usv + version 1.0 + deprecated 3.1 + offset 39 + +Color4usv(v) + return void + param v ColorUS in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 21 + offset 40 + +EdgeFlag(flag) + return void + param flag Boolean in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv EdgeFlagv + version 1.0 + deprecated 3.1 + offset 41 + +EdgeFlagv(flag) + return void + param flag Boolean in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 22 + offset 42 + +End() + return void + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 23 + offset 43 + +Indexd(c) + return void + param c ColorIndexValueD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Indexdv + version 1.0 + deprecated 3.1 + offset 44 + +Indexdv(c) + return void + param c ColorIndexValueD in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 24 + offset 45 + +Indexf(c) + return void + param c ColorIndexValueF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Indexfv + version 1.0 + deprecated 3.1 + offset 46 + +Indexfv(c) + return void + param c ColorIndexValueF in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 25 + offset 47 + +Indexi(c) + return void + param c ColorIndexValueI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Indexiv + version 1.0 + deprecated 3.1 + offset 48 + +Indexiv(c) + return void + param c ColorIndexValueI in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 26 + offset 49 + +Indexs(c) + return void + param c ColorIndexValueS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Indexsv + version 1.0 + deprecated 3.1 + offset 50 + +Indexsv(c) + return void + param c ColorIndexValueS in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 27 + offset 51 + +Normal3b(nx, ny, nz) + return void + param nx Int8 in value + param ny Int8 in value + param nz Int8 in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Normal3bv + version 1.0 + deprecated 3.1 + offset 52 + +Normal3bv(v) + return void + param v Int8 in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 28 + offset 53 + +Normal3d(nx, ny, nz) + return void + param nx CoordD in value + param ny CoordD in value + param nz CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Normal3dv + version 1.0 + deprecated 3.1 + offset 54 + +Normal3dv(v) + return void + param v CoordD in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 29 + offset 55 + +Normal3f(nx, ny, nz) + return void + param nx CoordF in value + param ny CoordF in value + param nz CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Normal3fv + version 1.0 + deprecated 3.1 + offset 56 + +Normal3fv(v) + return void + param v CoordF in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 30 + offset 57 + +Normal3i(nx, ny, nz) + return void + param nx Int32 in value + param ny Int32 in value + param nz Int32 in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Normal3iv + version 1.0 + deprecated 3.1 + offset 58 + +Normal3iv(v) + return void + param v Int32 in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 31 + offset 59 + +Normal3s(nx, ny, nz) + return void + param nx Int16 in value + param ny Int16 in value + param nz Int16 in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Normal3sv + version 1.0 + deprecated 3.1 + offset 60 + +Normal3sv(v) + return void + param v Int16 in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 32 + offset 61 + +RasterPos2d(x, y) + return void + param x CoordD in value + param y CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos2dv + version 1.0 + deprecated 3.1 + offset 62 + +RasterPos2dv(v) + return void + param v CoordD in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 33 + offset 63 + +RasterPos2f(x, y) + return void + param x CoordF in value + param y CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos2fv + version 1.0 + deprecated 3.1 + offset 64 + +RasterPos2fv(v) + return void + param v CoordF in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 34 + offset 65 + +RasterPos2i(x, y) + return void + param x CoordI in value + param y CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos2iv + version 1.0 + deprecated 3.1 + offset 66 + +RasterPos2iv(v) + return void + param v CoordI in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 35 + offset 67 + +RasterPos2s(x, y) + return void + param x CoordS in value + param y CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos2sv + version 1.0 + deprecated 3.1 + offset 68 + +RasterPos2sv(v) + return void + param v CoordS in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 36 + offset 69 + +RasterPos3d(x, y, z) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + vectorequiv RasterPos3dv + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + offset 70 + +RasterPos3dv(v) + return void + param v CoordD in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 37 + offset 71 + +RasterPos3f(x, y, z) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos3fv + version 1.0 + deprecated 3.1 + offset 72 + +RasterPos3fv(v) + return void + param v CoordF in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 38 + offset 73 + +RasterPos3i(x, y, z) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos3iv + version 1.0 + deprecated 3.1 + offset 74 + +RasterPos3iv(v) + return void + param v CoordI in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 39 + offset 75 + +RasterPos3s(x, y, z) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos3sv + version 1.0 + deprecated 3.1 + offset 76 + +RasterPos3sv(v) + return void + param v CoordS in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 40 + offset 77 + +RasterPos4d(x, y, z, w) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + param w CoordD in value + vectorequiv RasterPos4dv + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + offset 78 + +RasterPos4dv(v) + return void + param v CoordD in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 41 + offset 79 + +RasterPos4f(x, y, z, w) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + param w CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos4fv + version 1.0 + deprecated 3.1 + offset 80 + +RasterPos4fv(v) + return void + param v CoordF in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 42 + offset 81 + +RasterPos4i(x, y, z, w) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + param w CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos4iv + version 1.0 + deprecated 3.1 + offset 82 + +RasterPos4iv(v) + return void + param v CoordI in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 43 + offset 83 + +RasterPos4s(x, y, z, w) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + param w CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv RasterPos4sv + version 1.0 + deprecated 3.1 + offset 84 + +RasterPos4sv(v) + return void + param v CoordS in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 44 + offset 85 + +Rectd(x1, y1, x2, y2) + return void + param x1 CoordD in value + param y1 CoordD in value + param x2 CoordD in value + param y2 CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Rectdv + version 1.0 + deprecated 3.1 + offset 86 + +Rectdv(v1, v2) + return void + param v1 CoordD in array [2] + param v2 CoordD in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 45 + offset 87 + +Rectf(x1, y1, x2, y2) + return void + param x1 CoordF in value + param y1 CoordF in value + param x2 CoordF in value + param y2 CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Rectfv + version 1.0 + deprecated 3.1 + offset 88 + +Rectfv(v1, v2) + return void + param v1 CoordF in array [2] + param v2 CoordF in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 46 + offset 89 + +Recti(x1, y1, x2, y2) + return void + param x1 CoordI in value + param y1 CoordI in value + param x2 CoordI in value + param y2 CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Rectiv + version 1.0 + deprecated 3.1 + offset 90 + +Rectiv(v1, v2) + return void + param v1 CoordI in array [2] + param v2 CoordI in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 47 + offset 91 + +Rects(x1, y1, x2, y2) + return void + param x1 CoordS in value + param y1 CoordS in value + param x2 CoordS in value + param y2 CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Rectsv + version 1.0 + deprecated 3.1 + offset 92 + +Rectsv(v1, v2) + return void + param v1 CoordS in array [2] + param v2 CoordS in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 48 + offset 93 + +TexCoord1d(s) + return void + param s CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord1dv + version 1.0 + deprecated 3.1 + offset 94 + +TexCoord1dv(v) + return void + param v CoordD in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 49 + offset 95 + +TexCoord1f(s) + return void + param s CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord1fv + version 1.0 + deprecated 3.1 + offset 96 + +TexCoord1fv(v) + return void + param v CoordF in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 50 + offset 97 + +TexCoord1i(s) + return void + param s CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord1iv + version 1.0 + deprecated 3.1 + offset 98 + +TexCoord1iv(v) + return void + param v CoordI in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 51 + offset 99 + +TexCoord1s(s) + return void + param s CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord1sv + version 1.0 + deprecated 3.1 + offset 100 + +TexCoord1sv(v) + return void + param v CoordS in array [1] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 52 + offset 101 + +TexCoord2d(s, t) + return void + param s CoordD in value + param t CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord2dv + version 1.0 + deprecated 3.1 + offset 102 + +TexCoord2dv(v) + return void + param v CoordD in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 53 + offset 103 + +TexCoord2f(s, t) + return void + param s CoordF in value + param t CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord2fv + version 1.0 + deprecated 3.1 + offset 104 + +TexCoord2fv(v) + return void + param v CoordF in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 54 + offset 105 + +TexCoord2i(s, t) + return void + param s CoordI in value + param t CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord2iv + version 1.0 + deprecated 3.1 + offset 106 + +TexCoord2iv(v) + return void + param v CoordI in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 55 + offset 107 + +TexCoord2s(s, t) + return void + param s CoordS in value + param t CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord2sv + version 1.0 + deprecated 3.1 + offset 108 + +TexCoord2sv(v) + return void + param v CoordS in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 56 + offset 109 + +TexCoord3d(s, t, r) + return void + param s CoordD in value + param t CoordD in value + param r CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord3dv + version 1.0 + deprecated 3.1 + offset 110 + +TexCoord3dv(v) + return void + param v CoordD in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 57 + offset 111 + +TexCoord3f(s, t, r) + return void + param s CoordF in value + param t CoordF in value + param r CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord3fv + version 1.0 + deprecated 3.1 + offset 112 + +TexCoord3fv(v) + return void + param v CoordF in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 58 + offset 113 + +TexCoord3i(s, t, r) + return void + param s CoordI in value + param t CoordI in value + param r CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord3iv + version 1.0 + deprecated 3.1 + offset 114 + +TexCoord3iv(v) + return void + param v CoordI in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 59 + offset 115 + +TexCoord3s(s, t, r) + return void + param s CoordS in value + param t CoordS in value + param r CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord3sv + version 1.0 + deprecated 3.1 + offset 116 + +TexCoord3sv(v) + return void + param v CoordS in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 60 + offset 117 + +TexCoord4d(s, t, r, q) + return void + param s CoordD in value + param t CoordD in value + param r CoordD in value + param q CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord4dv + version 1.0 + deprecated 3.1 + offset 118 + +TexCoord4dv(v) + return void + param v CoordD in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 61 + offset 119 + +TexCoord4f(s, t, r, q) + return void + param s CoordF in value + param t CoordF in value + param r CoordF in value + param q CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord4fv + version 1.0 + deprecated 3.1 + offset 120 + +TexCoord4fv(v) + return void + param v CoordF in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 62 + offset 121 + +TexCoord4i(s, t, r, q) + return void + param s CoordI in value + param t CoordI in value + param r CoordI in value + param q CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord4iv + version 1.0 + deprecated 3.1 + offset 122 + +TexCoord4iv(v) + return void + param v CoordI in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 63 + offset 123 + +TexCoord4s(s, t, r, q) + return void + param s CoordS in value + param t CoordS in value + param r CoordS in value + param q CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv TexCoord4sv + version 1.0 + deprecated 3.1 + offset 124 + +TexCoord4sv(v) + return void + param v CoordS in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 64 + offset 125 + +Vertex2d(x, y) + return void + param x CoordD in value + param y CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex2dv + version 1.0 + deprecated 3.1 + offset 126 + +Vertex2dv(v) + return void + param v CoordD in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 65 + offset 127 + +Vertex2f(x, y) + return void + param x CoordF in value + param y CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex2fv + version 1.0 + deprecated 3.1 + offset 128 + +Vertex2fv(v) + return void + param v CoordF in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 66 + offset 129 + +Vertex2i(x, y) + return void + param x CoordI in value + param y CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex2iv + version 1.0 + deprecated 3.1 + offset 130 + +Vertex2iv(v) + return void + param v CoordI in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 67 + offset 131 + +Vertex2s(x, y) + return void + param x CoordS in value + param y CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex2sv + version 1.0 + deprecated 3.1 + offset 132 + +Vertex2sv(v) + return void + param v CoordS in array [2] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 68 + offset 133 + +Vertex3d(x, y, z) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex3dv + version 1.0 + deprecated 3.1 + offset 134 + +Vertex3dv(v) + return void + param v CoordD in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 69 + offset 135 + +Vertex3f(x, y, z) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex3fv + version 1.0 + deprecated 3.1 + offset 136 + +Vertex3fv(v) + return void + param v CoordF in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 70 + offset 137 + +Vertex3i(x, y, z) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex3iv + version 1.0 + deprecated 3.1 + offset 138 + +Vertex3iv(v) + return void + param v CoordI in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 71 + offset 139 + +Vertex3s(x, y, z) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex3sv + version 1.0 + deprecated 3.1 + offset 140 + +Vertex3sv(v) + return void + param v CoordS in array [3] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 72 + offset 141 + +Vertex4d(x, y, z, w) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + param w CoordD in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex4dv + version 1.0 + deprecated 3.1 + offset 142 + +Vertex4dv(v) + return void + param v CoordD in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 73 + offset 143 + +Vertex4f(x, y, z, w) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + param w CoordF in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex4fv + version 1.0 + deprecated 3.1 + offset 144 + +Vertex4fv(v) + return void + param v CoordF in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 74 + offset 145 + +Vertex4i(x, y, z, w) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + param w CoordI in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex4iv + version 1.0 + deprecated 3.1 + offset 146 + +Vertex4iv(v) + return void + param v CoordI in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 75 + offset 147 + +Vertex4s(x, y, z, w) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + param w CoordS in value + category VERSION_1_0_DEPRECATED # old: drawing + vectorequiv Vertex4sv + version 1.0 + deprecated 3.1 + offset 148 + +Vertex4sv(v) + return void + param v CoordS in array [4] + category VERSION_1_0_DEPRECATED # old: drawing + version 1.0 + deprecated 3.1 + glxropcode 76 + offset 149 + +ClipPlane(plane, equation) + return void + param plane ClipPlaneName in value + param equation Float64 in array [4] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 77 + offset 150 + +ColorMaterial(face, mode) + return void + param face MaterialFace in value + param mode ColorMaterialParameter in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 78 + offset 151 + +Fogf(pname, param) + return void + param pname FogParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 80 + wglflags small-data + offset 153 + +Fogfv(pname, params) + return void + param pname FogParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 81 + wglflags small-data + offset 154 + +Fogi(pname, param) + return void + param pname FogParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 82 + wglflags small-data + offset 155 + +Fogiv(pname, params) + return void + param pname FogParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 83 + wglflags small-data + offset 156 + +Lightf(light, pname, param) + return void + param light LightName in value + param pname LightParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 86 + wglflags small-data + offset 159 + +Lightfv(light, pname, params) + return void + param light LightName in value + param pname LightParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 87 + wglflags small-data + offset 160 + +Lighti(light, pname, param) + return void + param light LightName in value + param pname LightParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 88 + wglflags small-data + offset 161 + +Lightiv(light, pname, params) + return void + param light LightName in value + param pname LightParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 89 + wglflags small-data + offset 162 + +LightModelf(pname, param) + return void + param pname LightModelParameter in value + param param Float32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 90 + wglflags small-data + offset 163 + +LightModelfv(pname, params) + return void + param pname LightModelParameter in value + param params Float32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 91 + wglflags small-data + offset 164 + +LightModeli(pname, param) + return void + param pname LightModelParameter in value + param param Int32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 92 + wglflags small-data + offset 165 + +LightModeliv(pname, params) + return void + param pname LightModelParameter in value + param params Int32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 93 + wglflags small-data + offset 166 + +LineStipple(factor, pattern) + return void + param factor CheckedInt32 in value + param pattern LineStipple in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 94 + offset 167 + +Materialf(face, pname, param) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 96 + wglflags small-data + offset 169 + +Materialfv(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 97 + wglflags small-data + offset 170 + +Materiali(face, pname, param) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 98 + wglflags small-data + offset 171 + +Materialiv(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 99 + wglflags small-data + offset 172 + +PolygonStipple(mask) + return void + param mask UInt8 in array [COMPSIZE()] + category VERSION_1_0_DEPRECATED # old: drawing-control + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 102 + wglflags client-handcode server-handcode + offset 175 + +ShadeModel(mode) + return void + param mode ShadingModel in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 104 + offset 177 + +TexEnvf(target, pname, param) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 111 + wglflags small-data + offset 184 + +TexEnvfv(target, pname, params) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 112 + wglflags small-data + offset 185 + +TexEnvi(target, pname, param) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 113 + wglflags small-data + offset 186 + +TexEnviv(target, pname, params) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 114 + wglflags small-data + offset 187 + +TexGend(coord, pname, param) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param Float64 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 115 + wglflags small-data + offset 188 + +TexGendv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float64 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 116 + wglflags small-data + offset 189 + +TexGenf(coord, pname, param) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 117 + wglflags small-data + offset 190 + +TexGenfv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 118 + wglflags small-data + offset 191 + +TexGeni(coord, pname, param) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 119 + wglflags small-data + offset 192 + +TexGeniv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: drawing-control + version 1.0 + deprecated 3.1 + glxropcode 120 + wglflags small-data + offset 193 + +# feedback commands + +FeedbackBuffer(size, type, buffer) + return void + param size SizeI in value + param type FeedbackType in value + param buffer FeedbackElement out array [size] retained + dlflags notlistable + glxflags client-handcode server-handcode + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxsingle 105 + wglflags client-handcode server-handcode batchable + offset 194 + +SelectBuffer(size, buffer) + return void + param size SizeI in value + param buffer SelectName out array [size] retained + dlflags notlistable + glxflags client-handcode server-handcode + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxsingle 106 + wglflags client-handcode server-handcode batchable + offset 195 + +RenderMode(mode) + return Int32 + param mode RenderingMode in value + category VERSION_1_0_DEPRECATED # old: feedback + dlflags notlistable + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxsingle 107 + wglflags client-handcode server-handcode + offset 196 + +InitNames() + return void + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxropcode 121 + offset 197 + +LoadName(name) + return void + param name SelectName in value + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxropcode 122 + offset 198 + +PassThrough(token) + return void + param token FeedbackElement in value + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxropcode 123 + offset 199 + +PopName() + return void + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxropcode 124 + offset 200 + +PushName(name) + return void + param name SelectName in value + category VERSION_1_0_DEPRECATED # old: feedback + version 1.0 + deprecated 3.1 + glxropcode 125 + offset 201 + +ClearAccum(red, green, blue, alpha) + return void + param red Float32 in value + param green Float32 in value + param blue Float32 in value + param alpha Float32 in value + category VERSION_1_0_DEPRECATED # old: framebuf + version 1.0 + deprecated 3.1 + glxropcode 128 + offset 204 + +ClearIndex(c) + return void + param c MaskedColorIndexValueF in value + category VERSION_1_0_DEPRECATED # old: framebuf + version 1.0 + deprecated 3.1 + glxropcode 129 + offset 205 + +IndexMask(mask) + return void + param mask MaskedColorIndexValueI in value + category VERSION_1_0_DEPRECATED # old: framebuf + version 1.0 + deprecated 3.1 + glxropcode 136 + offset 212 + +Accum(op, value) + return void + param op AccumOp in value + param value CoordF in value + category VERSION_1_0_DEPRECATED # old: misc + version 1.0 + deprecated 3.1 + glxropcode 137 + offset 213 + +PopAttrib() + return void + category VERSION_1_0_DEPRECATED # old: misc + version 1.0 + deprecated 3.1 + glxropcode 141 + offset 218 + +PushAttrib(mask) + return void + param mask AttribMask in value + category VERSION_1_0_DEPRECATED # old: misc + version 1.0 + deprecated 3.1 + glxropcode 142 + offset 219 + +# modeling commands + +Map1d(target, u1, u2, stride, order, points) + return void + param target MapTarget in value + param u1 CoordD in value + param u2 CoordD in value + param stride Int32 in value + param order CheckedInt32 in value + param points CoordD in array [COMPSIZE(target/stride/order)] + category VERSION_1_0_DEPRECATED # old: modeling + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 143 + wglflags client-handcode server-handcode + offset 220 + +Map1f(target, u1, u2, stride, order, points) + return void + param target MapTarget in value + param u1 CoordF in value + param u2 CoordF in value + param stride Int32 in value + param order CheckedInt32 in value + param points CoordF in array [COMPSIZE(target/stride/order)] + category VERSION_1_0_DEPRECATED # old: modeling + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 144 + wglflags client-handcode server-handcode + offset 221 + +Map2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + return void + param target MapTarget in value + param u1 CoordD in value + param u2 CoordD in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordD in value + param v2 CoordD in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param points CoordD in array [COMPSIZE(target/ustride/uorder/vstride/vorder)] + category VERSION_1_0_DEPRECATED # old: modeling + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 145 + wglflags client-handcode server-handcode + offset 222 + +Map2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + return void + param target MapTarget in value + param u1 CoordF in value + param u2 CoordF in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordF in value + param v2 CoordF in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param points CoordF in array [COMPSIZE(target/ustride/uorder/vstride/vorder)] + category VERSION_1_0_DEPRECATED # old: modeling + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 146 + wglflags client-handcode server-handcode + offset 223 + +MapGrid1d(un, u1, u2) + return void + param un Int32 in value + param u1 CoordD in value + param u2 CoordD in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 147 + offset 224 + +MapGrid1f(un, u1, u2) + return void + param un Int32 in value + param u1 CoordF in value + param u2 CoordF in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 148 + offset 225 + +MapGrid2d(un, u1, u2, vn, v1, v2) + return void + param un Int32 in value + param u1 CoordD in value + param u2 CoordD in value + param vn Int32 in value + param v1 CoordD in value + param v2 CoordD in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 149 + offset 226 + +MapGrid2f(un, u1, u2, vn, v1, v2) + return void + param un Int32 in value + param u1 CoordF in value + param u2 CoordF in value + param vn Int32 in value + param v1 CoordF in value + param v2 CoordF in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 150 + offset 227 + +EvalCoord1d(u) + return void + param u CoordD in value + category VERSION_1_0_DEPRECATED # old: modeling + vectorequiv EvalCoord1dv + version 1.0 + deprecated 3.1 + offset 228 + +EvalCoord1dv(u) + return void + param u CoordD in array [1] + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 151 + offset 229 + +EvalCoord1f(u) + return void + param u CoordF in value + category VERSION_1_0_DEPRECATED # old: modeling + vectorequiv EvalCoord1fv + version 1.0 + deprecated 3.1 + offset 230 + +EvalCoord1fv(u) + return void + param u CoordF in array [1] + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 152 + offset 231 + +EvalCoord2d(u, v) + return void + param u CoordD in value + param v CoordD in value + category VERSION_1_0_DEPRECATED # old: modeling + vectorequiv EvalCoord2dv + version 1.0 + deprecated 3.1 + offset 232 + +EvalCoord2dv(u) + return void + param u CoordD in array [2] + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 153 + offset 233 + +EvalCoord2f(u, v) + return void + param u CoordF in value + param v CoordF in value + category VERSION_1_0_DEPRECATED # old: modeling + vectorequiv EvalCoord2fv + version 1.0 + deprecated 3.1 + offset 234 + +EvalCoord2fv(u) + return void + param u CoordF in array [2] + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 154 + offset 235 + +EvalMesh1(mode, i1, i2) + return void + param mode MeshMode1 in value + param i1 CheckedInt32 in value + param i2 CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 155 + offset 236 + +EvalPoint1(i) + return void + param i Int32 in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 156 + offset 237 + +EvalMesh2(mode, i1, i2, j1, j2) + return void + param mode MeshMode2 in value + param i1 CheckedInt32 in value + param i2 CheckedInt32 in value + param j1 CheckedInt32 in value + param j2 CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 157 + offset 238 + +EvalPoint2(i, j) + return void + param i CheckedInt32 in value + param j CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: modeling + version 1.0 + deprecated 3.1 + glxropcode 158 + offset 239 + +AlphaFunc(func, ref) + return void + param func AlphaFunction in value + param ref ClampedFloat32 in value + category VERSION_1_0_DEPRECATED # old: pixel-op + version 1.0 + deprecated 3.1 + glxropcode 159 + offset 240 + +PixelZoom(xfactor, yfactor) + return void + param xfactor Float32 in value + param yfactor Float32 in value + category VERSION_1_0_DEPRECATED # old: pixel-rw + version 1.0 + deprecated 3.1 + glxropcode 165 + offset 246 + +PixelTransferf(pname, param) + return void + param pname PixelTransferParameter in value + param param CheckedFloat32 in value + category VERSION_1_0_DEPRECATED # old: pixel-rw + version 1.0 + deprecated 3.1 + glxropcode 166 + offset 247 + +PixelTransferi(pname, param) + return void + param pname PixelTransferParameter in value + param param CheckedInt32 in value + category VERSION_1_0_DEPRECATED # old: pixel-rw + version 1.0 + deprecated 3.1 + glxropcode 167 + offset 248 + +PixelMapfv(map, mapsize, values) + return void + param map PixelMap in value + param mapsize CheckedInt32 in value + param values Float32 in array [mapsize] + category VERSION_1_0_DEPRECATED # old: pixel-rw + glxflags client-handcode + version 1.0 + deprecated 3.1 + glxropcode 168 + offset 251 + +PixelMapuiv(map, mapsize, values) + return void + param map PixelMap in value + param mapsize CheckedInt32 in value + param values UInt32 in array [mapsize] + category VERSION_1_0_DEPRECATED # old: pixel-rw + glxflags client-handcode + version 1.0 + deprecated 3.1 + glxropcode 169 + offset 252 + +PixelMapusv(map, mapsize, values) + return void + param map PixelMap in value + param mapsize CheckedInt32 in value + param values UInt16 in array [mapsize] + category VERSION_1_0_DEPRECATED # old: pixel-rw + glxflags client-handcode + version 1.0 + deprecated 3.1 + glxropcode 170 + offset 253 + +CopyPixels(x, y, width, height, type) + return void + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param type PixelCopyType in value + category VERSION_1_0_DEPRECATED # old: pixel-rw + version 1.0 + deprecated 3.1 + glxropcode 172 + offset 255 + +DrawPixels(width, height, format, type, pixels) + return void + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category VERSION_1_0_DEPRECATED # old: pixel-rw + dlflags handcode + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxropcode 173 + wglflags client-handcode server-handcode + offset 257 + +GetClipPlane(plane, equation) + return void + param plane ClipPlaneName in value + param equation Float64 out array [4] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 113 + glxflags client-handcode server-handcode + offset 259 + +GetLightfv(light, pname, params) + return void + param light LightName in value + param pname LightParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 118 + wglflags small-data + offset 264 + +GetLightiv(light, pname, params) + return void + param light LightName in value + param pname LightParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 119 + wglflags small-data + offset 265 + +GetMapdv(target, query, v) + return void + param target MapTarget in value + param query GetMapQuery in value + param v Float64 out array [COMPSIZE(target/query)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 120 + offset 266 + +GetMapfv(target, query, v) + return void + param target MapTarget in value + param query GetMapQuery in value + param v Float32 out array [COMPSIZE(target/query)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 121 + offset 267 + +GetMapiv(target, query, v) + return void + param target MapTarget in value + param query GetMapQuery in value + param v Int32 out array [COMPSIZE(target/query)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 122 + offset 268 + +GetMaterialfv(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 123 + wglflags small-data + offset 269 + +GetMaterialiv(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 124 + wglflags small-data + offset 270 + +GetPixelMapfv(map, values) + return void + param map PixelMap in value + param values Float32 out array [COMPSIZE(map)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 125 + offset 271 + +GetPixelMapuiv(map, values) + return void + param map PixelMap in value + param values UInt32 out array [COMPSIZE(map)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 126 + offset 272 + +GetPixelMapusv(map, values) + return void + param map PixelMap in value + param values UInt16 out array [COMPSIZE(map)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 127 + offset 273 + +GetPolygonStipple(mask) + return void + param mask UInt8 out array [COMPSIZE()] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + glxflags client-handcode server-handcode + version 1.0 + deprecated 3.1 + glxsingle 128 + wglflags client-handcode server-handcode + offset 274 + +GetTexEnvfv(target, pname, params) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 130 + wglflags small-data + offset 276 + +GetTexEnviv(target, pname, params) + return void + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 131 + wglflags small-data + offset 277 + +GetTexGendv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float64 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 132 + wglflags small-data + offset 278 + +GetTexGenfv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 133 + wglflags small-data + offset 279 + +GetTexGeniv(coord, pname, params) + return void + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 134 + wglflags small-data + offset 280 + +IsList(list) + return Boolean + param list List in value + category VERSION_1_0_DEPRECATED # old: state-req + dlflags notlistable + version 1.0 + deprecated 3.1 + glxsingle 141 + offset 287 + +Frustum(left, right, bottom, top, zNear, zFar) + return void + param left Float64 in value + param right Float64 in value + param bottom Float64 in value + param top Float64 in value + param zNear Float64 in value + param zFar Float64 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 175 + offset 289 + +LoadIdentity() + return void + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 176 + offset 290 + +LoadMatrixf(m) + return void + param m Float32 in array [16] + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 177 + offset 291 + +LoadMatrixd(m) + return void + param m Float64 in array [16] + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 178 + offset 292 + +MatrixMode(mode) + return void + param mode MatrixMode in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 179 + offset 293 + +MultMatrixf(m) + return void + param m Float32 in array [16] + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 180 + offset 294 + +MultMatrixd(m) + return void + param m Float64 in array [16] + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 181 + offset 295 + +Ortho(left, right, bottom, top, zNear, zFar) + return void + param left Float64 in value + param right Float64 in value + param bottom Float64 in value + param top Float64 in value + param zNear Float64 in value + param zFar Float64 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 182 + offset 296 + +PopMatrix() + return void + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 183 + offset 297 + +PushMatrix() + return void + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 184 + offset 298 + +Rotated(angle, x, y, z) + return void + param angle Float64 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 185 + offset 299 + +Rotatef(angle, x, y, z) + return void + param angle Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 186 + offset 300 + +Scaled(x, y, z) + return void + param x Float64 in value + param y Float64 in value + param z Float64 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 187 + offset 301 + +Scalef(x, y, z) + return void + param x Float32 in value + param y Float32 in value + param z Float32 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 188 + offset 302 + +Translated(x, y, z) + return void + param x Float64 in value + param y Float64 in value + param z Float64 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 189 + offset 303 + +Translatef(x, y, z) + return void + param x Float32 in value + param y Float32 in value + param z Float32 in value + category VERSION_1_0_DEPRECATED # old: xform + version 1.0 + deprecated 3.1 + glxropcode 190 + offset 304 + +############################################################################### +############################################################################### +# +# OpenGL 1.1 commands +# +############################################################################### +############################################################################### + +DrawArrays(mode, first, count) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + category VERSION_1_1 + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.1 + glxropcode 193 + offset 310 + +DrawElements(mode, count, type, indices) + return void + param mode BeginMode in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + category VERSION_1_1 + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.1 + offset 311 + +GetPointerv(pname, params) + return void + param pname GetPointervPName in value + param params VoidPointer out array [1] + category VERSION_1_1 + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + offset 329 + +PolygonOffset(factor, units) + return void + param factor Float32 in value + param units Float32 in value + category VERSION_1_1 + version 1.1 + glxropcode 192 + offset 319 + +# Arguably TexelInternalFormat, not PixelInternalFormat +CopyTexImage1D(target, level, internalformat, x, y, width, border) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param border CheckedInt32 in value + category VERSION_1_1 + version 1.1 + glxropcode 4119 + glxflags EXT + offset 323 + +# Arguably TexelInternalFormat, not PixelInternalFormat +CopyTexImage2D(target, level, internalformat, x, y, width, height, border) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + category VERSION_1_1 + version 1.1 + glxropcode 4120 + glxflags EXT + offset 324 + +CopyTexSubImage1D(target, level, xoffset, x, y, width) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category VERSION_1_1 + version 1.1 + glxropcode 4121 + glxflags EXT + offset 325 + +CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category VERSION_1_1 + version 1.1 + glxropcode 4122 + glxflags EXT + offset 326 + +TexSubImage1D(target, level, xoffset, width, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category VERSION_1_1 + dlflags handcode + glxflags EXT client-handcode server-handcode + version 1.1 + glxropcode 4099 + offset 332 + +TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category VERSION_1_1 + dlflags handcode + glxflags EXT client-handcode server-handcode + version 1.1 + glxropcode 4100 + offset 333 + +BindTexture(target, texture) + return void + param target TextureTarget in value + param texture Texture in value + category VERSION_1_1 + version 1.1 + glxropcode 4117 + glxflags EXT + offset 307 + +DeleteTextures(n, textures) + return void + param n SizeI in value + param textures Texture in array [n] + category VERSION_1_1 + dlflags notlistable + version 1.1 + glxsingle 144 + offset 327 + +GenTextures(n, textures) + return void + param n SizeI in value + param textures Texture out array [n] + category VERSION_1_1 + dlflags notlistable + version 1.1 + glxsingle 145 + offset 328 + +IsTexture(texture) + return Boolean + param texture Texture in value + category VERSION_1_1 + dlflags notlistable + version 1.1 + glxsingle 146 + offset 330 + +############################################################################### +############################################################################### +# +# OpenGL 1.1 deprecated commands +# +############################################################################### +############################################################################### + +ArrayElement(i) + return void + param i Int32 in value + category VERSION_1_1_DEPRECATED + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 306 + +ColorPointer(size, type, stride, pointer) + return void + param size Int32 in value + param type ColorPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 308 + +DisableClientState(array) + return void + param array EnableCap in value + category VERSION_1_1_DEPRECATED + version 1.1 + deprecated 3.1 + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + offset 309 + +EdgeFlagPointer(stride, pointer) + return void + param stride SizeI in value + param pointer Void in array [COMPSIZE(stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 312 + +EnableClientState(array) + return void + param array EnableCap in value + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 313 + +IndexPointer(type, stride, pointer) + return void + param type IndexPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 314 + +InterleavedArrays(format, stride, pointer) + return void + param format InterleavedArrayFormat in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(format/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 317 + +NormalPointer(type, stride, pointer) + return void + param type NormalPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 318 + +TexCoordPointer(size, type, stride, pointer) + return void + param size Int32 in value + param type TexCoordPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 320 + +VertexPointer(size, type, stride, pointer) + return void + param size Int32 in value + param type VertexPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category VERSION_1_1_DEPRECATED + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + deprecated 3.1 + offset 321 + +AreTexturesResident(n, textures, residences) + return Boolean + param n SizeI in value + param textures Texture in array [n] + param residences Boolean out array [n] + category VERSION_1_1_DEPRECATED + glxsingle 143 + dlflags notlistable + version 1.1 + deprecated 3.1 + offset 322 + +PrioritizeTextures(n, textures, priorities) + return void + param n SizeI in value + param textures Texture in array [n] + param priorities ClampedFloat32 in array [n] + category VERSION_1_1_DEPRECATED + version 1.1 + deprecated 3.1 + glxropcode 4118 + glxflags EXT + offset 331 + +Indexub(c) + return void + param c ColorIndexValueUB in value + category VERSION_1_1_DEPRECATED + vectorequiv Indexubv + version 1.1 + offset 315 + +Indexubv(c) + return void + param c ColorIndexValueUB in array [1] + category VERSION_1_1_DEPRECATED + version 1.1 + glxropcode 194 + offset 316 + +PopClientAttrib() + return void + category VERSION_1_1_DEPRECATED + version 1.1 + deprecated 3.1 + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + offset 334 + +PushClientAttrib(mask) + return void + param mask ClientAttribMask in value + category VERSION_1_1_DEPRECATED + version 1.1 + deprecated 3.1 + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + offset 335 + +############################################################################### +############################################################################### +# +# OpenGL 1.2 commands +# +############################################################################### +############################################################################### + +BlendColor(red, green, blue, alpha) + return void + param red ClampedColorF in value + param green ClampedColorF in value + param blue ClampedColorF in value + param alpha ClampedColorF in value + category VERSION_1_2 + glxflags EXT + version 1.2 + glxropcode 4096 + offset 336 + +BlendEquation(mode) + return void + param mode BlendEquationMode in value + category VERSION_1_2 + glxflags EXT + version 1.2 + glxropcode 4097 + offset 337 + +DrawRangeElements(mode, start, end, count, type, indices) + return void + param mode BeginMode in value + param start UInt32 in value + param end UInt32 in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + category VERSION_1_2 + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.2 + offset 338 + +# OpenGL 1.2 (EXT_texture3D) commands + +# Arguably TexelInternalFormat, not PixelInternalFormat +TexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureComponentCount in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category VERSION_1_2 + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + deprecated 3.1 + glxropcode 4114 + offset 371 + +TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category VERSION_1_2 + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + glxropcode 4115 + offset 372 + +# OpenGL 1.2 (EXT_copy_texture) commands (specific to texture3D) + +CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category VERSION_1_2 + glxflags EXT + version 1.2 + glxropcode 4123 + offset 373 + +############################################################################### +############################################################################### +# +# OpenGL 1.2 deprecated commands +# +############################################################################### +############################################################################### + +# OpenGL 1.2 (SGI_color_table) commands + +ColorTable(target, internalformat, width, format, type, table) + return void + param target ColorTableTarget in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param table Void in array [COMPSIZE(format/type/width)] + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + deprecated 3.1 + glxropcode 2053 + offset 339 + +ColorTableParameterfv(target, pname, params) + return void + param target ColorTableTarget in value + param pname ColorTableParameterPName in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 2054 + offset 340 + +ColorTableParameteriv(target, pname, params) + return void + param target ColorTableTarget in value + param pname ColorTableParameterPName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 2055 + offset 341 + +CopyColorTable(target, internalformat, x, y, width) + return void + param target ColorTableTarget in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 2056 + offset 342 + +GetColorTable(target, format, type, table) + return void + param target ColorTableTarget in value + param format PixelFormat in value + param type PixelType in value + param table Void out array [COMPSIZE(target/format/type)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxsingle 147 + offset 343 + +GetColorTableParameterfv(target, pname, params) + return void + param target ColorTableTarget in value + param pname GetColorTableParameterPName in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 148 + offset 344 + +GetColorTableParameteriv(target, pname, params) + return void + param target ColorTableTarget in value + param pname GetColorTableParameterPName in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 149 + offset 345 + +# OpenGL 1.2 (EXT_color_subtable) commands + +ColorSubTable(target, start, count, format, type, data) + return void + param target ColorTableTarget in value + param start SizeI in value + param count SizeI in value + param format PixelFormat in value + param type PixelType in value + param data Void in array [COMPSIZE(format/type/count)] + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxropcode 195 + offset 346 + +CopyColorSubTable(target, start, x, y, width) + return void + param target ColorTableTarget in value + param start SizeI in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category VERSION_1_2_DEPRECATED + version 1.2 + deprecated 3.1 + glxropcode 196 + offset 347 + +# OpenGL 1.2 (EXT_convolution) commands + +ConvolutionFilter1D(target, internalformat, width, format, type, image) + return void + param target ConvolutionTarget in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param image Void in array [COMPSIZE(format/type/width)] + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + deprecated 3.1 + glxropcode 4101 + offset 348 + +ConvolutionFilter2D(target, internalformat, width, height, format, type, image) + return void + param target ConvolutionTarget in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param image Void in array [COMPSIZE(format/type/width/height)] + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + deprecated 3.1 + glxropcode 4102 + offset 349 + +ConvolutionParameterf(target, pname, params) + return void + param target ConvolutionTarget in value + param pname ConvolutionParameter in value + param params CheckedFloat32 in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4103 + offset 350 + +ConvolutionParameterfv(target, pname, params) + return void + param target ConvolutionTarget in value + param pname ConvolutionParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4104 + offset 351 + +ConvolutionParameteri(target, pname, params) + return void + param target ConvolutionTarget in value + param pname ConvolutionParameter in value + param params CheckedInt32 in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4105 + offset 352 + +ConvolutionParameteriv(target, pname, params) + return void + param target ConvolutionTarget in value + param pname ConvolutionParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4106 + offset 353 + +CopyConvolutionFilter1D(target, internalformat, x, y, width) + return void + param target ConvolutionTarget in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4107 + offset 354 + +CopyConvolutionFilter2D(target, internalformat, x, y, width, height) + return void + param target ConvolutionTarget in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4108 + offset 355 + +GetConvolutionFilter(target, format, type, image) + return void + param target ConvolutionTarget in value + param format PixelFormat in value + param type PixelType in value + param image Void out array [COMPSIZE(target/format/type)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxsingle 150 + offset 356 + +GetConvolutionParameterfv(target, pname, params) + return void + param target ConvolutionTarget in value + param pname GetConvolutionParameterPName in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 151 + offset 357 + +GetConvolutionParameteriv(target, pname, params) + return void + param target ConvolutionTarget in value + param pname GetConvolutionParameterPName in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 152 + offset 358 + +GetSeparableFilter(target, format, type, row, column, span) + return void + param target SeparableTarget in value + param format PixelFormat in value + param type PixelType in value + param row Void out array [COMPSIZE(target/format/type)] + param column Void out array [COMPSIZE(target/format/type)] + param span Void out array [COMPSIZE(target/format/type)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxsingle 153 + offset 359 + +SeparableFilter2D(target, internalformat, width, height, format, type, row, column) + return void + param target SeparableTarget in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param row Void in array [COMPSIZE(target/format/type/width)] + param column Void in array [COMPSIZE(target/format/type/height)] + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.2 + deprecated 3.1 + glxropcode 4109 + offset 360 + +# OpenGL 1.2 (EXT_histogram) commands + +GetHistogram(target, reset, format, type, values) + return void + param target HistogramTarget in value + param reset Boolean in value + param format PixelFormat in value + param type PixelType in value + param values Void out array [COMPSIZE(target/format/type)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxsingle 154 + offset 361 + +GetHistogramParameterfv(target, pname, params) + return void + param target HistogramTarget in value + param pname GetHistogramParameterPName in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 155 + offset 362 + +GetHistogramParameteriv(target, pname, params) + return void + param target HistogramTarget in value + param pname GetHistogramParameterPName in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 156 + offset 363 + +GetMinmax(target, reset, format, type, values) + return void + param target MinmaxTarget in value + param reset Boolean in value + param format PixelFormat in value + param type PixelType in value + param values Void out array [COMPSIZE(target/format/type)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.2 + deprecated 3.1 + glxsingle 157 + offset 364 + +GetMinmaxParameterfv(target, pname, params) + return void + param target MinmaxTarget in value + param pname GetMinmaxParameterPName in value + param params Float32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 158 + offset 365 + +GetMinmaxParameteriv(target, pname, params) + return void + param target MinmaxTarget in value + param pname GetMinmaxParameterPName in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_2_DEPRECATED + dlflags notlistable + version 1.2 + deprecated 3.1 + glxsingle 159 + offset 366 + +Histogram(target, width, internalformat, sink) + return void + param target HistogramTarget in value + param width SizeI in value + param internalformat PixelInternalFormat in value + param sink Boolean in value + category VERSION_1_2_DEPRECATED + dlflags handcode + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4110 + offset 367 + +Minmax(target, internalformat, sink) + return void + param target MinmaxTarget in value + param internalformat PixelInternalFormat in value + param sink Boolean in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4111 + offset 368 + +ResetHistogram(target) + return void + param target HistogramTarget in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4112 + offset 369 + +ResetMinmax(target) + return void + param target MinmaxTarget in value + category VERSION_1_2_DEPRECATED + glxflags EXT + version 1.2 + deprecated 3.1 + glxropcode 4113 + offset 370 + +############################################################################### +############################################################################### +# +# OpenGL 1.3 commands +# +############################################################################### +############################################################################### + +# OpenGL 1.3 (ARB_multitexture) commands + +ActiveTexture(texture) + return void + param texture TextureUnit in value + category VERSION_1_3 + glxflags ARB + version 1.3 + glxropcode 197 + offset 374 + +# OpenGL 1.3 (ARB_multisample) commands + +SampleCoverage(value, invert) + return void + param value ClampedFloat32 in value + param invert Boolean in value + category VERSION_1_3 + glxflags ARB + version 1.3 + glxropcode 229 + offset 412 + +# OpenGL 1.3 (ARB_texture_compression) commands + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 216 + wglflags client-handcode server-handcode + offset 554 + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 215 + wglflags client-handcode server-handcode + offset 555 + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage1D(target, level, internalformat, width, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 214 + wglflags client-handcode server-handcode + offset 556 + +CompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 219 + wglflags client-handcode server-handcode + offset 557 + +CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 218 + wglflags client-handcode server-handcode + offset 558 + +CompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category VERSION_1_3 + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.3 + glxropcode 217 + wglflags client-handcode server-handcode + offset 559 + +GetCompressedTexImage(target, level, img) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param img CompressedTextureARB out array [COMPSIZE(target/level)] + category VERSION_1_3 + dlflags notlistable + glxflags ARB client-handcode server-handcode + version 1.3 + glxsingle 160 + wglflags client-handcode server-handcode + offset 560 + +############################################################################### +############################################################################### +# +# OpenGL 1.3 deprecated commands +# +############################################################################### +############################################################################### + +ClientActiveTexture(texture) + return void + param texture TextureUnit in value + category VERSION_1_3_DEPRECATED + dlflags notlistable + glxflags ARB client-handcode client-intercept server-handcode + version 1.3 + deprecated 3.1 + offset 375 + +MultiTexCoord1d(target, s) + return void + param target TextureUnit in value + param s CoordD in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord1dv + offset 376 + +MultiTexCoord1dv(target, v) + return void + param target TextureUnit in value + param v CoordD in array [1] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 198 + offset 377 + +MultiTexCoord1f(target, s) + return void + param target TextureUnit in value + param s CoordF in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord1fv + offset 378 + +MultiTexCoord1fv(target, v) + return void + param target TextureUnit in value + param v CoordF in array [1] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 199 + offset 379 + +MultiTexCoord1i(target, s) + return void + param target TextureUnit in value + param s CoordI in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord1iv + offset 380 + +MultiTexCoord1iv(target, v) + return void + param target TextureUnit in value + param v CoordI in array [1] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 200 + offset 381 + +MultiTexCoord1s(target, s) + return void + param target TextureUnit in value + param s CoordS in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord1sv + offset 382 + +MultiTexCoord1sv(target, v) + return void + param target TextureUnit in value + param v CoordS in array [1] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 201 + offset 383 + +MultiTexCoord2d(target, s, t) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord2dv + offset 384 + +MultiTexCoord2dv(target, v) + return void + param target TextureUnit in value + param v CoordD in array [2] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 202 + offset 385 + +MultiTexCoord2f(target, s, t) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord2fv + offset 386 + +MultiTexCoord2fv(target, v) + return void + param target TextureUnit in value + param v CoordF in array [2] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 203 + offset 387 + +MultiTexCoord2i(target, s, t) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord2iv + offset 388 + +MultiTexCoord2iv(target, v) + return void + param target TextureUnit in value + param v CoordI in array [2] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 204 + offset 389 + +MultiTexCoord2s(target, s, t) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord2sv + offset 390 + +MultiTexCoord2sv(target, v) + return void + param target TextureUnit in value + param v CoordS in array [2] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 205 + offset 391 + +MultiTexCoord3d(target, s, t, r) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + param r CoordD in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord3dv + offset 392 + +MultiTexCoord3dv(target, v) + return void + param target TextureUnit in value + param v CoordD in array [3] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 206 + offset 393 + +MultiTexCoord3f(target, s, t, r) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + param r CoordF in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord3fv + offset 394 + +MultiTexCoord3fv(target, v) + return void + param target TextureUnit in value + param v CoordF in array [3] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 207 + offset 395 + +MultiTexCoord3i(target, s, t, r) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + param r CoordI in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord3iv + offset 396 + +MultiTexCoord3iv(target, v) + return void + param target TextureUnit in value + param v CoordI in array [3] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 208 + offset 397 + +MultiTexCoord3s(target, s, t, r) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + param r CoordS in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord3sv + offset 398 + +MultiTexCoord3sv(target, v) + return void + param target TextureUnit in value + param v CoordS in array [3] + category VERSION_1_3_DEPRECATED + version 1.3 + deprecated 3.1 + glxflags ARB + glxropcode 209 + offset 399 + +MultiTexCoord4d(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + param r CoordD in value + param q CoordD in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord4dv + offset 400 + +MultiTexCoord4dv(target, v) + return void + param target TextureUnit in value + param v CoordD in array [4] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 210 + offset 401 + +MultiTexCoord4f(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + param r CoordF in value + param q CoordF in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord4fv + offset 402 + +MultiTexCoord4fv(target, v) + return void + param target TextureUnit in value + param v CoordF in array [4] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 211 + offset 403 + +MultiTexCoord4i(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + param r CoordI in value + param q CoordI in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord4iv + offset 404 + +MultiTexCoord4iv(target, v) + return void + param target TextureUnit in value + param v CoordI in array [4] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 212 + offset 405 + +MultiTexCoord4s(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + param r CoordS in value + param q CoordS in value + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + vectorequiv MultiTexCoord4sv + offset 406 + +MultiTexCoord4sv(target, v) + return void + param target TextureUnit in value + param v CoordS in array [4] + category VERSION_1_3_DEPRECATED + glxflags ARB + version 1.3 + deprecated 3.1 + glxropcode 213 + offset 407 + +# OpenGL 1.3 (ARB_transpose_matrix) commands + +LoadTransposeMatrixf(m) + return void + param m Float32 in array [16] + category VERSION_1_3_DEPRECATED + glxflags ARB client-handcode client-intercept server-handcode + version 1.3 + deprecated 3.1 + offset 408 + +LoadTransposeMatrixd(m) + return void + param m Float64 in array [16] + category VERSION_1_3_DEPRECATED + glxflags ARB client-handcode client-intercept server-handcode + version 1.3 + deprecated 3.1 + offset 409 + +MultTransposeMatrixf(m) + return void + param m Float32 in array [16] + category VERSION_1_3_DEPRECATED + glxflags ARB client-handcode client-intercept server-handcode + version 1.3 + deprecated 3.1 + offset 410 + +MultTransposeMatrixd(m) + return void + param m Float64 in array [16] + category VERSION_1_3_DEPRECATED + glxflags ARB client-handcode client-intercept server-handcode + version 1.3 + deprecated 3.1 + offset 411 + +############################################################################### +############################################################################### +# +# OpenGL 1.4 commands +# +############################################################################### +############################################################################### + +# OpenGL 1.4 (EXT_blend_func_separate) commands + +BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + return void + param sfactorRGB BlendFuncSeparateParameterEXT in value + param dfactorRGB BlendFuncSeparateParameterEXT in value + param sfactorAlpha BlendFuncSeparateParameterEXT in value + param dfactorAlpha BlendFuncSeparateParameterEXT in value + category VERSION_1_4 + glxropcode 4134 + version 1.4 + extension + offset 537 + +# OpenGL 1.4 (EXT_multi_draw_arrays) commands + +# first and count are really 'in' +MultiDrawArrays(mode, first, count, primcount) + return void + param mode BeginMode in value + param first Int32 out array [COMPSIZE(count)] + param count SizeI out array [COMPSIZE(primcount)] + param primcount SizeI in value + category VERSION_1_4 + version 1.4 + glxropcode ? + offset 644 + +MultiDrawElements(mode, count, type, indices, primcount) + return void + param mode BeginMode in value + param count SizeI in array [COMPSIZE(primcount)] + param type DrawElementsType in value + param indices VoidPointer in array [COMPSIZE(primcount)] + param primcount SizeI in value + category VERSION_1_4 + version 1.4 + glxropcode ? + offset 645 + +# OpenGL 1.4 (ARB_point_parameters, NV_point_sprite) commands + +PointParameterf(pname, param) + return void + param pname PointParameterNameARB in value + param param CheckedFloat32 in value + category VERSION_1_4 + version 1.4 + glxropcode 2065 + extension + offset 458 + +PointParameterfv(pname, params) + return void + param pname PointParameterNameARB in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category VERSION_1_4 + version 1.4 + glxropcode 2066 + extension + offset 459 + +PointParameteri(pname, param) + return void + param pname PointParameterNameARB in value + param param Int32 in value + category VERSION_1_4 + version 1.4 + extension soft WINSOFT NV20 + glxropcode 4221 + offset 642 + +PointParameteriv(pname, params) + return void + param pname PointParameterNameARB in value + param params Int32 in array [COMPSIZE(pname)] + category VERSION_1_4 + version 1.4 + extension soft WINSOFT NV20 + glxropcode 4222re + offset 643 + +############################################################################### +############################################################################### +# +# OpenGL 1.4 deprecated commands +# +############################################################################### +############################################################################### + +# OpenGL 1.4 (EXT_fog_coord) commands + +FogCoordf(coord) + return void + param coord CoordF in value + category VERSION_1_4_DEPRECATED + vectorequiv FogCoordfv + version 1.4 + deprecated 3.1 + offset 545 + +FogCoordfv(coord) + return void + param coord CoordF in array [1] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4124 + offset 546 + +FogCoordd(coord) + return void + param coord CoordD in value + category VERSION_1_4_DEPRECATED + vectorequiv FogCoorddv + version 1.4 + deprecated 3.1 + offset 547 + +FogCoorddv(coord) + return void + param coord CoordD in array [1] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4125 + offset 548 + +FogCoordPointer(type, stride, pointer) + return void + param type FogPointerTypeEXT in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category VERSION_1_4_DEPRECATED + dlflags notlistable + version 1.4 + deprecated 3.1 + glxflags client-handcode server-handcode + offset 549 + +# OpenGL 1.4 (EXT_secondary_color) commands + +SecondaryColor3b(red, green, blue) + return void + param red ColorB in value + param green ColorB in value + param blue ColorB in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3bv + version 1.4 + deprecated 3.1 + offset 561 + +SecondaryColor3bv(v) + return void + param v ColorB in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4126 + offset 562 + +SecondaryColor3d(red, green, blue) + return void + param red ColorD in value + param green ColorD in value + param blue ColorD in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3dv + version 1.4 + deprecated 3.1 + offset 563 + +SecondaryColor3dv(v) + return void + param v ColorD in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4130 + offset 564 + +SecondaryColor3f(red, green, blue) + return void + param red ColorF in value + param green ColorF in value + param blue ColorF in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3fv + version 1.4 + deprecated 3.1 + offset 565 + +SecondaryColor3fv(v) + return void + param v ColorF in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4129 + offset 566 + +SecondaryColor3i(red, green, blue) + return void + param red ColorI in value + param green ColorI in value + param blue ColorI in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3iv + version 1.4 + deprecated 3.1 + offset 567 + +SecondaryColor3iv(v) + return void + param v ColorI in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4128 + offset 568 + +SecondaryColor3s(red, green, blue) + return void + param red ColorS in value + param green ColorS in value + param blue ColorS in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3sv + version 1.4 + deprecated 3.1 + offset 569 + +SecondaryColor3sv(v) + return void + param v ColorS in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4127 + offset 570 + +SecondaryColor3ub(red, green, blue) + return void + param red ColorUB in value + param green ColorUB in value + param blue ColorUB in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3ubv + version 1.4 + deprecated 3.1 + offset 571 + +SecondaryColor3ubv(v) + return void + param v ColorUB in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4131 + offset 572 + +SecondaryColor3ui(red, green, blue) + return void + param red ColorUI in value + param green ColorUI in value + param blue ColorUI in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3uiv + version 1.4 + deprecated 3.1 + offset 573 + +SecondaryColor3uiv(v) + return void + param v ColorUI in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4133 + offset 574 + +SecondaryColor3us(red, green, blue) + return void + param red ColorUS in value + param green ColorUS in value + param blue ColorUS in value + category VERSION_1_4_DEPRECATED + vectorequiv SecondaryColor3usv + version 1.4 + deprecated 3.1 + offset 575 + +SecondaryColor3usv(v) + return void + param v ColorUS in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 4132 + offset 576 + +SecondaryColorPointer(size, type, stride, pointer) + return void + param size Int32 in value + param type ColorPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category VERSION_1_4_DEPRECATED + dlflags notlistable + glxflags client-handcode server-handcode + version 1.4 + deprecated 3.1 + extension + offset 577 + +# OpenGL 1.4 (ARB_window_pos) commands +# Note: all WindowPos* entry points use glxropcode ropcode 230, with 3 float parameters + +WindowPos2d(x, y) + return void + param x CoordD in value + param y CoordD in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos2dv + version 1.4 + deprecated 3.1 + offset 513 + +WindowPos2dv(v) + return void + param v CoordD in array [2] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 514 + +WindowPos2f(x, y) + return void + param x CoordF in value + param y CoordF in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos2fv + version 1.4 + deprecated 3.1 + offset 515 + +WindowPos2fv(v) + return void + param v CoordF in array [2] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 516 + +WindowPos2i(x, y) + return void + param x CoordI in value + param y CoordI in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos2iv + version 1.4 + deprecated 3.1 + offset 517 + +WindowPos2iv(v) + return void + param v CoordI in array [2] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 518 + +WindowPos2s(x, y) + return void + param x CoordS in value + param y CoordS in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos2sv + version 1.4 + deprecated 3.1 + offset 519 + +WindowPos2sv(v) + return void + param v CoordS in array [2] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 520 + +WindowPos3d(x, y, z) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + vectorequiv WindowPos3dv + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + offset 521 + +WindowPos3dv(v) + return void + param v CoordD in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 522 + +WindowPos3f(x, y, z) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos3fv + version 1.4 + deprecated 3.1 + offset 523 + +WindowPos3fv(v) + return void + param v CoordF in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 524 + +WindowPos3i(x, y, z) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos3iv + version 1.4 + deprecated 3.1 + offset 525 + +WindowPos3iv(v) + return void + param v CoordI in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 526 + +WindowPos3s(x, y, z) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + category VERSION_1_4_DEPRECATED + vectorequiv WindowPos3sv + version 1.4 + deprecated 3.1 + offset 527 + +WindowPos3sv(v) + return void + param v CoordS in array [3] + category VERSION_1_4_DEPRECATED + version 1.4 + deprecated 3.1 + glxropcode 230 + glxflags client-handcode server-handcode + offset 528 + +############################################################################### +############################################################################### +# +# OpenGL 1.5 commands +# +############################################################################### +############################################################################### + +# OpenGL 1.5 (ARB_occlusion_query) commands + +GenQueries(n, ids) + return void + param n SizeI in value + param ids UInt32 out array [n] + category VERSION_1_5 + version 1.5 + extension + glxsingle 162 + glxflags ignore + offset 700 + +DeleteQueries(n, ids) + return void + param n SizeI in value + param ids UInt32 in array [n] + category VERSION_1_5 + version 1.5 + extension + glxsingle 161 + glxflags ignore + offset 701 + +IsQuery(id) + return Boolean + param id UInt32 in value + category VERSION_1_5 + version 1.5 + extension + glxsingle 163 + glxflags ignore + offset 702 + +BeginQuery(target, id) + return void + param target GLenum in value + param id UInt32 in value + category VERSION_1_5 + version 1.5 + extension + glxropcode 231 + glxflags ignore + offset 703 + +EndQuery(target) + return void + param target GLenum in value + category VERSION_1_5 + version 1.5 + extension + glxropcode 232 + glxflags ignore + offset 704 + +GetQueryiv(target, pname, params) + return void + param target GLenum in value + param pname GLenum in value + param params Int32 out array [pname] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle 164 + glxflags ignore + offset 705 + +GetQueryObjectiv(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params Int32 out array [pname] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle 165 + glxflags ignore + offset 706 + +GetQueryObjectuiv(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params UInt32 out array [pname] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle 166 + glxflags ignore + offset 707 + +# OpenGL 1.5 (ARB_vertex_buffer_object) commands + +BindBuffer(target, buffer) + return void + param target BufferTargetARB in value + param buffer UInt32 in value + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 688 + +DeleteBuffers(n, buffers) + return void + param n SizeI in value + param buffers ConstUInt32 in array [n] + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 691 + +GenBuffers(n, buffers) + return void + param n SizeI in value + param buffers UInt32 out array [n] + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 692 + +IsBuffer(buffer) + return Boolean + param buffer UInt32 in value + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 696 + +BufferData(target, size, data, usage) + return void + param target BufferTargetARB in value + param size BufferSize in value + param data ConstVoid in array [size] + param usage BufferUsageARB in value + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 689 + +BufferSubData(target, offset, size, data) + return void + param target BufferTargetARB in value + param offset BufferOffset in value + param size BufferSize in value + param data ConstVoid in array [size] + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 690 + +GetBufferSubData(target, offset, size, data) + return void + param target BufferTargetARB in value + param offset BufferOffset in value + param size BufferSize in value + param data Void out array [size] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle ? + glxflags ignore + offset 695 + +MapBuffer(target, access) + return VoidPointer + param target BufferTargetARB in value + param access BufferAccessARB in value + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 697 + +UnmapBuffer(target) + return Boolean + param target BufferTargetARB in value + category VERSION_1_5 + version 1.5 + extension + glxropcode ? + glxflags ignore + offset 698 + +GetBufferParameteriv(target, pname, params) + return void + param target BufferTargetARB in value + param pname BufferPNameARB in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle ? + glxflags ignore + offset 693 + +GetBufferPointerv(target, pname, params) + return void + param target BufferTargetARB in value + param pname BufferPointerNameARB in value + param params VoidPointer out array [1] + category VERSION_1_5 + dlflags notlistable + version 1.5 + extension + glxsingle ? + glxflags ignore + offset 694 + +# OpenGL 1.5 (EXT_shadow_funcs) commands - none + + +############################################################################### +############################################################################### +# +# OpenGL 2.0 commands +# +############################################################################### +############################################################################### + +# OpenGL 2.0 (EXT_blend_equation_separate) commands + +BlendEquationSeparate(modeRGB, modeAlpha) + return void + param modeRGB BlendEquationModeEXT in value + param modeAlpha BlendEquationModeEXT in value + category VERSION_2_0 + version 2.0 + extension + glxropcode 4228 + +# OpenGL 2.0 (ARB_draw_buffers) commands + +DrawBuffers(n, bufs) + return void + param n SizeI in value + param bufs DrawBufferModeATI in array [n] + category VERSION_2_0 + version 2.0 + extension + glxropcode 233 + glxflags ignore + offset ? + +# OpenGL 2.0 (ARB_stencil_two_side) commands + +StencilOpSeparate(face, sfail, dpfail, dppass) + return void + param face StencilFaceDirection in value + param sfail StencilOp in value + param dpfail StencilOp in value + param dppass StencilOp in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +StencilFuncSeparate(frontfunc, backfunc, ref, mask) + return void + param frontfunc StencilFunction in value + param backfunc StencilFunction in value + param ref ClampedStencilValue in value + param mask MaskedStencilValue in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +StencilMaskSeparate(face, mask) + return void + param face StencilFaceDirection in value + param mask MaskedStencilValue in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +# OpenGL 2.0 (ARB_shader_objects / ARB_vertex_shader / ARB_fragment_shader) commands + +AttachShader(program, shader) + return void + param program UInt32 in value + param shader UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +BindAttribLocation(program, index, name) + return void + param program UInt32 in value + param index UInt32 in value + param name Char in array [] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +CompileShader(shader) + return void + param shader UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +CreateProgram() + return UInt32 + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +CreateShader(type) + return UInt32 + param type GLenum in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteProgram(program) + return void + param program UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteShader(shader) + return void + param shader UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +DetachShader(program, shader) + return void + param program UInt32 in value + param shader UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +DisableVertexAttribArray(index) + return void + param index UInt32 in value + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxflags ignore + offset 666 + +EnableVertexAttribArray(index) + return void + param index UInt32 in value + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxflags ignore + offset 665 + +GetActiveAttrib(program, index, bufSize, length, size, type, name) + return void + param program UInt32 in value + param index UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param size Int32 out array [1] + param type GLenum out array [1] + param name Char out array [] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetActiveUniform(program, index, bufSize, length, size, type, name) + return void + param program UInt32 in value + param index UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param size Int32 out array [1] + param type GLenum out array [1] + param name Char out array [] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetAttachedShaders(program, maxCount, count, obj) + return void + param program UInt32 in value + param maxCount SizeI in value + param count SizeI out array [1] + param obj UInt32 out array [count] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetAttribLocation(program, name) + return Int32 + param program UInt32 in value + param name Char in array [] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetProgramiv(program, pname, params) + return void + param program UInt32 in value + param pname GLenum in value + param params Int32 out array [pname] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetProgramInfoLog(program, bufSize, length, infoLog) + return void + param program UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param infoLog Char out array [length] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetShaderiv(shader, pname, params) + return void + param shader UInt32 in value + param pname GLenum in value + param params Int32 out array [pname] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetShaderInfoLog(shader, bufSize, length, infoLog) + return void + param shader UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param infoLog Char out array [length] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetShaderSource(shader, bufSize, length, source) + return void + param shader UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param source Char out array [length] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetUniformLocation(program, name) + return Int32 + param program UInt32 in value + param name Char in array [] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetUniformfv(program, location, params) + return void + param program UInt32 in value + param location Int32 in value + param params Float32 out array [location] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetUniformiv(program, location, params) + return void + param program UInt32 in value + param location Int32 in value + param params Int32 out array [location] + category VERSION_2_0 + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVertexAttribdv(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Float64 out array [4] + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxvendorpriv 1301 + offset 588 + +GetVertexAttribfv(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Float32 out array [4] + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxvendorpriv 1302 + offset 589 + +GetVertexAttribiv(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Int32 out array [4] + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxvendorpriv 1303 + offset 590 + +GetVertexAttribPointerv(index, pname, pointer) + return void + param index UInt32 in value + param pname VertexAttribPointerPropertyARB in value + param pointer VoidPointer out array [1] + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxflags ignore + offset 591 + +IsProgram(program) + return Boolean + param program UInt32 in value + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxvendorpriv 1304 + offset 592 + +IsShader(shader) + return Boolean + param shader UInt32 in value + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxvendorpriv ? + offset ? + +LinkProgram(program) + return void + param program UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +ShaderSource(shader, count, string, length) + return void + param shader UInt32 in value + param count SizeI in value + param string CharPointer in array [count] + param length Int32 in array [1] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +UseProgram(program) + return void + param program UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform1f(location, v0) + return void + param location Int32 in value + param v0 Float32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform2f(location, v0, v1) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform3f(location, v0, v1, v2) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform4f(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + param v3 Float32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform1i(location, v0) + return void + param location Int32 in value + param v0 Int32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform2i(location, v0, v1) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform3i(location, v0, v1, v2) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform4i(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + param v3 Int32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform1fv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform2fv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform3fv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform4fv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform1iv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform2iv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform3iv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniform4iv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix2fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix3fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix4fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +ValidateProgram(program) + return void + param program UInt32 in value + category VERSION_2_0 + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib1d(index, x) + return void + param index UInt32 in value + param x Float64 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib1dv + extension soft WINSOFT NV10 + glxflags ignore + offset 603 + +VertexAttrib1dv(index, v) + return void + param index UInt32 in value + param v Float64 in array [1] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4197 + offset 604 + +VertexAttrib1f(index, x) + return void + param index UInt32 in value + param x Float32 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib1fv + extension soft WINSOFT NV10 + glxflags ignore + offset 605 + +VertexAttrib1fv(index, v) + return void + param index UInt32 in value + param v Float32 in array [1] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4193 + offset 606 + +VertexAttrib1s(index, x) + return void + param index UInt32 in value + param x Int16 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib1sv + extension soft WINSOFT NV10 + glxflags ignore + offset 607 + +VertexAttrib1sv(index, v) + return void + param index UInt32 in value + param v Int16 in array [1] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4189 + offset 608 + +VertexAttrib2d(index, x, y) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib2dv + extension soft WINSOFT NV10 + glxflags ignore + offset 609 + +VertexAttrib2dv(index, v) + return void + param index UInt32 in value + param v Float64 in array [2] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4198 + offset 610 + +VertexAttrib2f(index, x, y) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib2fv + extension soft WINSOFT NV10 + glxflags ignore + offset 611 + +VertexAttrib2fv(index, v) + return void + param index UInt32 in value + param v Float32 in array [2] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4194 + offset 612 + +VertexAttrib2s(index, x, y) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib2sv + extension soft WINSOFT NV10 + glxflags ignore + offset 613 + +VertexAttrib2sv(index, v) + return void + param index UInt32 in value + param v Int16 in array [2] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4190 + offset 614 + +VertexAttrib3d(index, x, y, z) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib3dv + extension soft WINSOFT NV10 + glxflags ignore + offset 615 + +VertexAttrib3dv(index, v) + return void + param index UInt32 in value + param v Float64 in array [3] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4199 + offset 616 + +VertexAttrib3f(index, x, y, z) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib3fv + extension soft WINSOFT NV10 + glxflags ignore + offset 617 + +VertexAttrib3fv(index, v) + return void + param index UInt32 in value + param v Float32 in array [3] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4195 + offset 618 + +VertexAttrib3s(index, x, y, z) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib3sv + extension soft WINSOFT NV10 + glxflags ignore + offset 619 + +VertexAttrib3sv(index, v) + return void + param index UInt32 in value + param v Int16 in array [3] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4191 + offset 620 + +VertexAttrib4Nbv(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 659 + +VertexAttrib4Niv(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 661 + +VertexAttrib4Nsv(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 660 + +VertexAttrib4Nub(index, x, y, z, w) + return void + param index UInt32 in value + param x UInt8 in value + param y UInt8 in value + param z UInt8 in value + param w UInt8 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 627 + +VertexAttrib4Nubv(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + glxropcode 4201 + offset 628 + +VertexAttrib4Nuiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 663 + +VertexAttrib4Nusv(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 662 + +VertexAttrib4bv(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 654 + +VertexAttrib4d(index, x, y, z, w) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib4dv + extension soft WINSOFT NV10 + glxflags ignore + offset 621 + +VertexAttrib4dv(index, v) + return void + param index UInt32 in value + param v Float64 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4200 + offset 622 + +VertexAttrib4f(index, x, y, z, w) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib4fv + extension soft WINSOFT NV10 + glxflags ignore + offset 623 + +VertexAttrib4fv(index, v) + return void + param index UInt32 in value + param v Float32 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxropcode 4196 + offset 624 + +VertexAttrib4iv(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 655 + +VertexAttrib4s(index, x, y, z, w) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + param w Int16 in value + category VERSION_2_0 + version 2.0 + deprecated 3.1 + vectorequiv VertexAttrib4sv + extension soft WINSOFT NV10 + glxflags ignore + offset 625 + +VertexAttrib4sv(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + glxropcode 4192 + offset 626 + +VertexAttrib4ubv(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 656 + +VertexAttrib4uiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 658 + +VertexAttrib4usv(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category VERSION_2_0 + version 2.0 + deprecated 3.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 657 + +VertexAttribPointer(index, size, type, normalized, stride, pointer) + return void + param index UInt32 in value + param size Int32 in value + param type VertexAttribPointerTypeARB in value + param normalized Boolean in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + dlflags notlistable + category VERSION_2_0 + version 2.0 + extension soft WINSOFT NV10 + glxflags ignore + offset 664 + + +############################################################################### +############################################################################### +# +# OpenGL 2.1 commands +# +############################################################################### +############################################################################### + +# OpenGL 2.1 (ARB_pixel_buffer_object) commands - none + +# OpenGL 2.1 (EXT_texture_sRGB) commands - none + +# New commands in OpenGL 2.1 + +UniformMatrix2x3fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [6] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix3x2fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [6] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix2x4fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [8] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix4x2fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [8] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix3x4fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [12] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +UniformMatrix4x3fv(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [12] + category VERSION_2_1 + version 2.1 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +############################################################################### +# +# OpenGL 3.0 commands +# +############################################################################### +############################################################################### + +# OpenGL 3.0 (EXT_draw_buffers2) commands + +ColorMaski(index, r, g, b, a) + return void + param index UInt32 in value + param r Boolean in value + param g Boolean in value + param b Boolean in value + param a Boolean in value + category VERSION_3_0 + version 3.0 + extension + glxflags ignore + glfflags ignore + +GetBooleani_v(target, index, data) + return void + param target GLenum in value + param index UInt32 in value + param data Boolean out array [COMPSIZE(target)] + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +GetIntegeri_v(target, index, data) + return void + param target GLenum in value + param index UInt32 in value + param data Int32 out array [COMPSIZE(target)] + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +Enablei(target, index) + return void + param target GLenum in value + param index UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glxflags ignore + glfflags ignore + +Disablei(target, index) + return void + param target GLenum in value + param index UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glxflags ignore + glfflags ignore + +IsEnabledi(target, index) + return Boolean + param target GLenum in value + param index UInt32 in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +# OpenGL 3.0 (EXT_transform_feedback) commands + +BeginTransformFeedback(primitiveMode) + return void + param primitiveMode GLenum in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +EndTransformFeedback() + return void + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +BindBufferRange(target, index, buffer, offset, size) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + param offset BufferOffset in value + param size BufferSize in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +BindBufferBase(target, index, buffer) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +TransformFeedbackVaryings(program, count, varyings, bufferMode) + return void + param program UInt32 in value + param count SizeI in value + param varyings CharPointer in array [count] + param bufferMode GLenum in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + +GetTransformFeedbackVarying(program, index, bufSize, length, size, type, name) + return void + param program UInt32 in value + param index UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param size SizeI out array [1] + param type GLenum out array [1] + param name Char out array [COMPSIZE(length)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +ClampColor(target, clamp) + return void + param target ClampColorTargetARB in value + param clamp ClampColorModeARB in value + category VERSION_3_0 + version 3.0 + extension + glxropcode 234 + glxflags ignore + offset ? + +BeginConditionalRender(id, mode) + return void + param id UInt32 in value + param mode TypeEnum in value + category VERSION_3_0 + version 3.0 + glfflags ignore + glxflags ignore + +EndConditionalRender() + return void + category VERSION_3_0 + version 3.0 + glfflags ignore + glxflags ignore + +VertexAttribIPointer(index, size, type, stride, pointer) + return void + param index UInt32 in value + param size Int32 in value + param type VertexAttribEnum in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category VERSION_3_0 + version 3.0 + dlflags notlistable + extension + glfflags ignore + glxflags ignore + +GetVertexAttribIiv(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnum in value + param params Int32 out array [1] + category VERSION_3_0 + version 3.0 + dlflags notlistable + extension + glfflags ignore + glxflags ignore + +GetVertexAttribIuiv(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnum in value + param params UInt32 out array [1] + category VERSION_3_0 + version 3.0 + dlflags notlistable + extension + glfflags ignore + glxflags ignore + +# OpenGL 3.0 (NV_vertex_program4) commands + +VertexAttribI1i(index, x) + return void + param index UInt32 in value + param x Int32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI1iv + glxvectorequiv VertexAttribI1iv + extension + glfflags ignore + glxflags ignore + +VertexAttribI2i(index, x, y) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI2iv + glxvectorequiv VertexAttribI2iv + extension + glfflags ignore + glxflags ignore + +VertexAttribI3i(index, x, y, z) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI3iv + glxvectorequiv VertexAttribI3iv + extension + glfflags ignore + glxflags ignore + +VertexAttribI4i(index, x, y, z, w) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI4iv + glxvectorequiv VertexAttribI4iv + extension + glfflags ignore + glxflags ignore + +VertexAttribI1ui(index, x) + return void + param index UInt32 in value + param x UInt32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI1uiv + glxvectorequiv VertexAttribI1uiv + extension + glfflags ignore + glxflags ignore + +VertexAttribI2ui(index, x, y) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI2uiv + glxvectorequiv VertexAttribI2uiv + extension + glfflags ignore + glxflags ignore + +VertexAttribI3ui(index, x, y, z) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI3uiv + glxvectorequiv VertexAttribI3uiv + extension + glfflags ignore + glxflags ignore + +VertexAttribI4ui(index, x, y, z, w) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + param w UInt32 in value + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + vectorequiv VertexAttribI4uiv + glxvectorequiv VertexAttribI4uiv + extension + glfflags ignore + glxflags ignore + +VertexAttribI1iv(index, v) + return void + param index UInt32 in value + param v Int32 in array [1] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI2iv(index, v) + return void + param index UInt32 in value + param v Int32 in array [2] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI3iv(index, v) + return void + param index UInt32 in value + param v Int32 in array [3] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4iv(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI1uiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [1] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI2uiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [2] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI3uiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [3] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4uiv(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4bv(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4sv(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4ubv(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +VertexAttribI4usv(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category VERSION_3_0 + version 3.0 + deprecated 3.1 + beginend allow-inside + extension + glfflags ignore + glxflags ignore + +# OpenGL 3.0 (EXT_gpu_shader4) commands + +GetUniformuiv(program, location, params) + return void + param program UInt32 in value + param location Int32 in value + param params UInt32 out array [COMPSIZE(program/location)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +BindFragDataLocation(program, color, name) + return void + param program UInt32 in value + param color UInt32 in value + param name Char in array [COMPSIZE(name)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +GetFragDataLocation(program, name) + return Int32 + param program UInt32 in value + param name Char in array [COMPSIZE(name)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform1ui(location, v0) + return void + param location Int32 in value + param v0 UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform2ui(location, v0, v1) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform3ui(location, v0, v1, v2) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform4ui(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + param v3 UInt32 in value + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform1uiv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform2uiv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*2] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform3uiv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*3] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +Uniform4uiv(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*4] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +# OpenGL 3.0 (EXT_texture_integer) commands + +TexParameterIiv(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params Int32 in array [COMPSIZE(pname)] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +TexParameterIuiv(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params UInt32 in array [COMPSIZE(pname)] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +GetTexParameterIiv(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +GetTexParameterIuiv(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params UInt32 out array [COMPSIZE(pname)] + category VERSION_3_0 + dlflags notlistable + version 3.0 + extension + glfflags ignore + glxflags ignore + +# New commands in OpenGL 3.0 + +ClearBufferiv(buffer, drawbuffer, value) + return void + param buffer GLenum in value + param drawbuffer DrawBufferName in value + param value Int32 in array [COMPSIZE(buffer)] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +ClearBufferuiv(buffer, drawbuffer, value) + return void + param buffer GLenum in value + param drawbuffer DrawBufferName in value + param value UInt32 in array [COMPSIZE(buffer)] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +ClearBufferfv(buffer, drawbuffer, value) + return void + param buffer GLenum in value + param drawbuffer DrawBufferName in value + param value Float32 in array [COMPSIZE(buffer)] + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +ClearBufferfi(buffer, drawbuffer, depth, stencil) + return void + param buffer GLenum in value + param drawbuffer DrawBufferName in value + param depth Float32 in value + param stencil Int32 in value + category VERSION_3_0 + version 3.0 + extension + glfflags ignore + glxflags ignore + +GetStringi(name, index) + return String + param name GLenum in value + param index UInt32 in value + category VERSION_3_0 + version 3.0 + extension + dlflags notlistable + glxflags client-handcode server-handcode + glfflags ignore + glxsingle ? + +passthru: /* OpenGL 3.0 also reuses entry points from these extensions: */ +passthru: /* ARB_framebuffer_object */ +passthru: /* ARB_map_buffer_range */ +passthru: /* ARB_vertex_array_object */ + +############################################################################### +############################################################################### +# +# OpenGL 3.0 deprecated commands +# +############################################################################### +############################################################################### + +# (none - VertexAttribI* were moved back into non-deprecated) + + +############################################################################### +############################################################################### +# +# OpenGL 3.1 commands +# +############################################################################### +############################################################################### + +# New commands in OpenGL 3.1 - none + +# OpenGL 3.1 (ARB_draw_instanced) commands + +DrawArraysInstanced(mode, first, count, primcount) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + param primcount SizeI in value + category VERSION_3_1 + version 3.1 + extension + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + +DrawElementsInstanced(mode, count, type, indices, primcount) + return void + param mode BeginMode in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param primcount SizeI in value + category VERSION_3_1 + version 3.1 + extension + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + +# OpenGL 3.1 (ARB_texture_buffer_object) commands + +TexBuffer(target, internalformat, buffer) + return void + param target TextureTarget in value + param internalformat GLenum in value + param buffer UInt32 in value + category VERSION_3_1 + version 3.1 + extension + glfflags ignore + glxflags ignore + +# OpenGL 3.1 (ARB_texture_rectangle) commands - none + +# OpenGL 3.1 (SNORM texture) commands - none + +# OpenGL 3.1 (NV_primitive_restart) commands +# This is *not* an alias of PrimitiveRestartIndexNV, since it sets +# server instead of client state. + +PrimitiveRestartIndex(index) + return void + param index UInt32 in value + category VERSION_3_1 + version 3.1 + extension + glxropcode ? + glxflags ignore + offset ? + +passthru: /* OpenGL 3.1 also reuses entry points from these extensions: */ +passthru: /* ARB_copy_buffer */ +passthru: /* ARB_uniform_buffer_object */ + + +############################################################################### +############################################################################### +# +# OpenGL 3.2 commands +# +############################################################################### +############################################################################### + +# New commands in OpenGL 3.2 + +GetInteger64i_v(target, index, data) + return void + param target GLenum in value + param index UInt32 in value + param data Int64 out array [COMPSIZE(target)] + category VERSION_3_2 + version 3.2 + extension + dlflags notlistable + glxflags ignore + glfflags ignore + + +GetBufferParameteri64v(target, pname, params) + return void + param target BufferTargetARB in value + param pname BufferPNameARB in value + param params Int64 out array [COMPSIZE(pname)] + category VERSION_3_2 + dlflags notlistable + version 3.2 + extension + glxsingle ? + glxflags ignore + +# OpenGL 3.2 (ARB_depth_clamp) commands - none +# OpenGL 3.2 (ARB_fragment_coord_conventions) commands - none + +# OpenGL 3.2 (ARB_geometry_shader4) commands + +ProgramParameteri(program, pname, value) + return void + param program UInt32 in value + param pname GLenum in value + param value Int32 in value + category VERSION_3_2 + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FramebufferTexture(target, attachment, texture, level) + return void + param target GLenum in value + param attachment GLenum in value + param texture UInt32 in value + param level Int32 in value + category VERSION_3_2 + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +# FramebufferTextureLayer redeclared in ARB_framebuffer_object +# FramebufferTextureLayer(target, attachment, texture, level, layer) +# return void +# param target GLenum in value +# param attachment GLenum in value +# param texture UInt32 in value +# param level Int32 in value +# param layer Int32 in value +# category VERSION_3_2 +# version 1.2 +# extension +# glxropcode ? +# glxflags ignore +# offset ? + +FramebufferTextureFace(target, attachment, texture, level, face) + return void + param target GLenum in value + param attachment GLenum in value + param texture UInt32 in value + param level Int32 in value + param face GLenum in value + category VERSION_3_2 + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +# OpenGL 3.2 (ARB_seamless_cube_map) commands - none +# OpenGL 3.2 (ARB_vertex_array_bgra) commands - none + +passthru: /* OpenGL 3.2 also reuses entry points from these extensions: */ +passthru: /* ARB_draw_elements_base_vertex */ +passthru: /* ARB_provoking_vertex */ +passthru: /* ARB_sync */ +passthru: /* ARB_texture_multisample */ + + +############################################################################### +############################################################################### +# +# ARB extensions, in order by ARB extension number +# +############################################################################### +############################################################################### + +############################################################################### +# +# ARB Extension #1 +# ARB_multitexture commands +# +############################################################################### + +ActiveTextureARB(texture) + return void + param texture TextureUnit in value + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 197 + alias ActiveTexture + +ClientActiveTextureARB(texture) + return void + param texture TextureUnit in value + category ARB_multitexture + dlflags notlistable + glxflags ARB client-handcode client-intercept server-handcode + version 1.2 + alias ClientActiveTexture + +MultiTexCoord1dARB(target, s) + return void + param target TextureUnit in value + param s CoordD in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord1dv + +MultiTexCoord1dvARB(target, v) + return void + param target TextureUnit in value + param v CoordD in array [1] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 198 + alias MultiTexCoord1dv + +MultiTexCoord1fARB(target, s) + return void + param target TextureUnit in value + param s CoordF in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord1fv + +MultiTexCoord1fvARB(target, v) + return void + param target TextureUnit in value + param v CoordF in array [1] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 199 + alias MultiTexCoord1fv + +MultiTexCoord1iARB(target, s) + return void + param target TextureUnit in value + param s CoordI in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord1iv + +MultiTexCoord1ivARB(target, v) + return void + param target TextureUnit in value + param v CoordI in array [1] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 200 + alias MultiTexCoord1iv + +MultiTexCoord1sARB(target, s) + return void + param target TextureUnit in value + param s CoordS in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord1sv + +MultiTexCoord1svARB(target, v) + return void + param target TextureUnit in value + param v CoordS in array [1] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 201 + alias MultiTexCoord1sv + +MultiTexCoord2dARB(target, s, t) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord2dv + +MultiTexCoord2dvARB(target, v) + return void + param target TextureUnit in value + param v CoordD in array [2] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 202 + alias MultiTexCoord2dv + +MultiTexCoord2fARB(target, s, t) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord2fv + +MultiTexCoord2fvARB(target, v) + return void + param target TextureUnit in value + param v CoordF in array [2] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 203 + alias MultiTexCoord2fv + +MultiTexCoord2iARB(target, s, t) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord2iv + +MultiTexCoord2ivARB(target, v) + return void + param target TextureUnit in value + param v CoordI in array [2] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 204 + alias MultiTexCoord2iv + +MultiTexCoord2sARB(target, s, t) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord2sv + +MultiTexCoord2svARB(target, v) + return void + param target TextureUnit in value + param v CoordS in array [2] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 205 + alias MultiTexCoord2sv + +MultiTexCoord3dARB(target, s, t, r) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + param r CoordD in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord3dv + +MultiTexCoord3dvARB(target, v) + return void + param target TextureUnit in value + param v CoordD in array [3] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 206 + alias MultiTexCoord3dv + +MultiTexCoord3fARB(target, s, t, r) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + param r CoordF in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord3fv + +MultiTexCoord3fvARB(target, v) + return void + param target TextureUnit in value + param v CoordF in array [3] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 207 + alias MultiTexCoord3fv + +MultiTexCoord3iARB(target, s, t, r) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + param r CoordI in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord3iv + +MultiTexCoord3ivARB(target, v) + return void + param target TextureUnit in value + param v CoordI in array [3] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 208 + alias MultiTexCoord3iv + +MultiTexCoord3sARB(target, s, t, r) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + param r CoordS in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord3sv + +MultiTexCoord3svARB(target, v) + return void + param target TextureUnit in value + param v CoordS in array [3] + category ARB_multitexture + version 1.2 + glxflags ARB + glxropcode 209 + alias MultiTexCoord3sv + +MultiTexCoord4dARB(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordD in value + param t CoordD in value + param r CoordD in value + param q CoordD in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord4dv + +MultiTexCoord4dvARB(target, v) + return void + param target TextureUnit in value + param v CoordD in array [4] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 210 + alias MultiTexCoord4dv + +MultiTexCoord4fARB(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordF in value + param t CoordF in value + param r CoordF in value + param q CoordF in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord4fv + +MultiTexCoord4fvARB(target, v) + return void + param target TextureUnit in value + param v CoordF in array [4] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 211 + alias MultiTexCoord4fv + +MultiTexCoord4iARB(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordI in value + param t CoordI in value + param r CoordI in value + param q CoordI in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord4iv + +MultiTexCoord4ivARB(target, v) + return void + param target TextureUnit in value + param v CoordI in array [4] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 212 + alias MultiTexCoord4iv + +MultiTexCoord4sARB(target, s, t, r, q) + return void + param target TextureUnit in value + param s CoordS in value + param t CoordS in value + param r CoordS in value + param q CoordS in value + category ARB_multitexture + glxflags ARB + version 1.2 + vectorequiv MultiTexCoord4sv + +MultiTexCoord4svARB(target, v) + return void + param target TextureUnit in value + param v CoordS in array [4] + category ARB_multitexture + glxflags ARB + version 1.2 + glxropcode 213 + alias MultiTexCoord4sv + +################################################################################ +# +# ARB Extension #2 - GLX_ARB_get_proc_address +# +############################################################################### + +################################################################################ +# +# ARB Extension #3 +# ARB_transpose_matrix commands +# +############################################################################### + +LoadTransposeMatrixfARB(m) + return void + param m Float32 in array [16] + category ARB_transpose_matrix + glxflags ARB client-handcode client-intercept server-handcode + version 1.2 + alias LoadTransposeMatrixf + +LoadTransposeMatrixdARB(m) + return void + param m Float64 in array [16] + category ARB_transpose_matrix + glxflags ARB client-handcode client-intercept server-handcode + version 1.2 + alias LoadTransposeMatrixd + +MultTransposeMatrixfARB(m) + return void + param m Float32 in array [16] + category ARB_transpose_matrix + glxflags ARB client-handcode client-intercept server-handcode + version 1.2 + alias MultTransposeMatrixf + +MultTransposeMatrixdARB(m) + return void + param m Float64 in array [16] + category ARB_transpose_matrix + glxflags ARB client-handcode client-intercept server-handcode + version 1.2 + alias MultTransposeMatrixd + +################################################################################ +# +# ARB Extension #4 - WGL_ARB_buffer_region +# +############################################################################### + +################################################################################ +# +# ARB Extension #5 +# ARB_multisample commands +# +############################################################################### + +SampleCoverageARB(value, invert) + return void + param value ClampedFloat32 in value + param invert Boolean in value + category ARB_multisample + glxflags ARB + version 1.2 + alias SampleCoverage + +################################################################################ +# +# ARB Extension #6 +# ARB_texture_env_add commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_env_add + +################################################################################ +# +# ARB Extension #7 +# ARB_texture_cube_map commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_cube_map + +################################################################################ +# +# ARB Extension #8 - WGL_ARB_extensions_string +# ARB Extension #9 - WGL_ARB_pixel_format commands +# ARB Extension #10 - WGL_ARB_make_current_read commands +# ARB Extension #11 - WGL_ARB_pbuffer +# +############################################################################### + +################################################################################ +# +# ARB Extension #12 +# ARB_texture_compression commands +# +############################################################################### + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage3DARB(target, level, internalformat, width, height, depth, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 216 + alias CompressedTexImage3D + wglflags client-handcode server-handcode + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage2DARB(target, level, internalformat, width, height, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 215 + alias CompressedTexImage2D + wglflags client-handcode server-handcode + +# Arguably TexelInternalFormat, not PixelInternalFormat +CompressedTexImage1DARB(target, level, internalformat, width, border, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 214 + alias CompressedTexImage1D + wglflags client-handcode server-handcode + +CompressedTexSubImage3DARB(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 219 + alias CompressedTexSubImage3D + wglflags client-handcode server-handcode + +CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 218 + alias CompressedTexSubImage2D + wglflags client-handcode server-handcode + +CompressedTexSubImage1DARB(target, level, xoffset, width, format, imageSize, data) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param data CompressedTextureARB in array [imageSize] + category ARB_texture_compression + dlflags handcode + glxflags ARB client-handcode server-handcode + version 1.2 + glxropcode 217 + alias CompressedTexSubImage1D + wglflags client-handcode server-handcode + +GetCompressedTexImageARB(target, level, img) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param img CompressedTextureARB out array [COMPSIZE(target/level)] + category ARB_texture_compression + dlflags notlistable + glxflags ARB client-handcode server-handcode + version 1.2 + glxsingle 160 + alias GetCompressedTexImage + wglflags client-handcode server-handcode + +################################################################################ +# +# ARB Extension #13 +# ARB_texture_border_clamp commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_border_clamp + +############################################################################### +# +# ARB Extension #14 +# ARB_point_parameters commands +# +############################################################################### + +PointParameterfARB(pname, param) + return void + param pname PointParameterNameARB in value + param param CheckedFloat32 in value + category ARB_point_parameters + version 1.0 + glxflags ARB + glxropcode 2065 + extension + alias PointParameterf + +PointParameterfvARB(pname, params) + return void + param pname PointParameterNameARB in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category ARB_point_parameters + version 1.0 + glxflags ARB + glxropcode 2066 + extension + alias PointParameterfv + +################################################################################ +# +# ARB Extension #15 +# ARB_vertex_blend commands +# +############################################################################### + +WeightbvARB(size, weights) + return void + param size Int32 in value + param weights Int8 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 220 + glxflags ignore + offset ? + +WeightsvARB(size, weights) + return void + param size Int32 in value + param weights Int16 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 222 + glxflags ignore + offset ? + +WeightivARB(size, weights) + return void + param size Int32 in value + param weights Int32 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 224 + glxflags ignore + offset ? + +WeightfvARB(size, weights) + return void + param size Int32 in value + param weights Float32 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 227 + glxflags ignore + offset ? + +WeightdvARB(size, weights) + return void + param size Int32 in value + param weights Float64 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 228 + glxflags ignore + offset ? + +WeightubvARB(size, weights) + return void + param size Int32 in value + param weights UInt8 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 221 + glxflags ignore + offset ? + +WeightusvARB(size, weights) + return void + param size Int32 in value + param weights UInt16 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 223 + glxflags ignore + offset ? + +WeightuivARB(size, weights) + return void + param size Int32 in value + param weights UInt32 in array [size] + category ARB_vertex_blend + version 1.1 + extension + glxropcode 225 + glxflags ignore + offset ? + +WeightPointerARB(size, type, stride, pointer) + return void + param size Int32 in value + param type WeightPointerTypeARB in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category ARB_vertex_blend + version 1.1 + extension + dlflags notlistable + glxflags ignore + offset ? + +VertexBlendARB(count) + return void + param count Int32 in value + category ARB_vertex_blend + version 1.1 + extension + glxropcode 226 + glxflags ignore + offset ? + +################################################################################ +# +# ARB Extension #16 +# ARB_matrix_palette commands +# +############################################################################### + +CurrentPaletteMatrixARB(index) + return void + param index Int32 in value + category ARB_matrix_palette + version 1.1 + extension + glxropcode 4329 + glxflags ignore + offset ? + +MatrixIndexubvARB(size, indices) + return void + param size Int32 in value + param indices UInt8 in array [size] + category ARB_matrix_palette + version 1.1 + extension + glxropcode 4326 + glxflags ignore + offset ? + +MatrixIndexusvARB(size, indices) + return void + param size Int32 in value + param indices UInt16 in array [size] + category ARB_matrix_palette + version 1.1 + extension + glxropcode 4327 + glxflags ignore + offset ? + +MatrixIndexuivARB(size, indices) + return void + param size Int32 in value + param indices UInt32 in array [size] + category ARB_matrix_palette + version 1.1 + extension + glxropcode 4328 + glxflags ignore + offset ? + +MatrixIndexPointerARB(size, type, stride, pointer) + return void + param size Int32 in value + param type MatrixIndexPointerTypeARB in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category ARB_matrix_palette + version 1.1 + extension + dlflags notlistable + glxflags ignore + offset ? + +################################################################################ +# +# ARB Extension #17 +# ARB_texture_env_combine commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_env_combine + +################################################################################ +# +# ARB Extension #18 +# ARB_texture_env_crossbar commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_env_crossbar + +################################################################################ +# +# ARB Extension #19 +# ARB_texture_env_dot3 commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_env_dot3 + +############################################################################### +# +# ARB Extension #20 - WGL_ARB_render_texture +# +############################################################################### + +############################################################################### +# +# ARB Extension #21 +# ARB_texture_mirrored_repeat commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_mirrored_repeat + +############################################################################### +# +# ARB Extension #22 +# ARB_depth_texture commands +# +############################################################################### + +# (none) +newcategory: ARB_depth_texture + +############################################################################### +# +# ARB Extension #23 +# ARB_shadow commands +# +############################################################################### + +# (none) +newcategory: ARB_shadow + +############################################################################### +# +# ARB Extension #24 +# ARB_shadow_ambient commands +# +############################################################################### + +# (none) +newcategory: ARB_shadow_ambient + +############################################################################### +# +# ARB Extension #25 +# ARB_window_pos commands +# Note: all entry points use glxropcode ropcode 230, with 3 float parameters +# +############################################################################### + +WindowPos2dARB(x, y) + return void + param x CoordD in value + param y CoordD in value + category ARB_window_pos + vectorequiv WindowPos2dvARB + version 1.0 + alias WindowPos2d + +WindowPos2dvARB(v) + return void + param v CoordD in array [2] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos2dv + +WindowPos2fARB(x, y) + return void + param x CoordF in value + param y CoordF in value + category ARB_window_pos + vectorequiv WindowPos2fvARB + version 1.0 + alias WindowPos2f + +WindowPos2fvARB(v) + return void + param v CoordF in array [2] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos2fv + +WindowPos2iARB(x, y) + return void + param x CoordI in value + param y CoordI in value + category ARB_window_pos + vectorequiv WindowPos2ivARB + version 1.0 + alias WindowPos2i + +WindowPos2ivARB(v) + return void + param v CoordI in array [2] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos2iv + +WindowPos2sARB(x, y) + return void + param x CoordS in value + param y CoordS in value + category ARB_window_pos + vectorequiv WindowPos2svARB + version 1.0 + alias WindowPos2s + +WindowPos2svARB(v) + return void + param v CoordS in array [2] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos2sv + +WindowPos3dARB(x, y, z) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + vectorequiv WindowPos3dvARB + category ARB_window_pos + version 1.0 + alias WindowPos3d + +WindowPos3dvARB(v) + return void + param v CoordD in array [3] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos3dv + +WindowPos3fARB(x, y, z) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + category ARB_window_pos + vectorequiv WindowPos3fvARB + version 1.0 + alias WindowPos3f + +WindowPos3fvARB(v) + return void + param v CoordF in array [3] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos3fv + +WindowPos3iARB(x, y, z) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + category ARB_window_pos + vectorequiv WindowPos3ivARB + version 1.0 + alias WindowPos3i + +WindowPos3ivARB(v) + return void + param v CoordI in array [3] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos3iv + +WindowPos3sARB(x, y, z) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + category ARB_window_pos + vectorequiv WindowPos3svARB + version 1.0 + alias WindowPos3s + +WindowPos3svARB(v) + return void + param v CoordS in array [3] + category ARB_window_pos + version 1.0 + glxropcode 230 + glxflags client-handcode server-handcode + alias WindowPos3sv + +############################################################################### +# +# ARB Extension #26 +# ARB_vertex_program commands +# +############################################################################### + +VertexAttrib1dARB(index, x) + return void + param index UInt32 in value + param x Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib1dvARB + extension soft WINSOFT NV10 + alias VertexAttrib1d + +VertexAttrib1dvARB(index, v) + return void + param index UInt32 in value + param v Float64 in array [1] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4197 + alias VertexAttrib1dv + +VertexAttrib1fARB(index, x) + return void + param index UInt32 in value + param x Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib1fvARB + extension soft WINSOFT NV10 + alias VertexAttrib1f + +VertexAttrib1fvARB(index, v) + return void + param index UInt32 in value + param v Float32 in array [1] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4193 + alias VertexAttrib1fv + +VertexAttrib1sARB(index, x) + return void + param index UInt32 in value + param x Int16 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib1svARB + extension soft WINSOFT NV10 + alias VertexAttrib1s + +VertexAttrib1svARB(index, v) + return void + param index UInt32 in value + param v Int16 in array [1] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4189 + alias VertexAttrib1sv + +VertexAttrib2dARB(index, x, y) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib2dvARB + extension soft WINSOFT NV10 + alias VertexAttrib2d + +VertexAttrib2dvARB(index, v) + return void + param index UInt32 in value + param v Float64 in array [2] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4198 + alias VertexAttrib2dv + +VertexAttrib2fARB(index, x, y) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib2fvARB + extension soft WINSOFT NV10 + alias VertexAttrib2f + +VertexAttrib2fvARB(index, v) + return void + param index UInt32 in value + param v Float32 in array [2] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4194 + alias VertexAttrib2fv + +VertexAttrib2sARB(index, x, y) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib2svARB + extension soft WINSOFT NV10 + alias VertexAttrib2s + +VertexAttrib2svARB(index, v) + return void + param index UInt32 in value + param v Int16 in array [2] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4190 + alias VertexAttrib2sv + +VertexAttrib3dARB(index, x, y, z) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib3dvARB + extension soft WINSOFT NV10 + alias VertexAttrib3d + +VertexAttrib3dvARB(index, v) + return void + param index UInt32 in value + param v Float64 in array [3] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4199 + alias VertexAttrib3dv + +VertexAttrib3fARB(index, x, y, z) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib3fvARB + extension soft WINSOFT NV10 + alias VertexAttrib3f + +VertexAttrib3fvARB(index, v) + return void + param index UInt32 in value + param v Float32 in array [3] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4195 + alias VertexAttrib3fv + +VertexAttrib3sARB(index, x, y, z) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib3svARB + extension soft WINSOFT NV10 + alias VertexAttrib3s + +VertexAttrib3svARB(index, v) + return void + param index UInt32 in value + param v Int16 in array [3] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4191 + alias VertexAttrib3sv + +VertexAttrib4NbvARB(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Nbv + +VertexAttrib4NivARB(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Niv + +VertexAttrib4NsvARB(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Nsv + +VertexAttrib4NubARB(index, x, y, z, w) + return void + param index UInt32 in value + param x UInt8 in value + param y UInt8 in value + param z UInt8 in value + param w UInt8 in value + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Nub + +VertexAttrib4NubvARB(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4201 + alias VertexAttrib4Nubv + +VertexAttrib4NuivARB(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Nuiv + +VertexAttrib4NusvARB(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4Nusv + +VertexAttrib4bvARB(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4bv + +VertexAttrib4dARB(index, x, y, z, w) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib4dvARB + extension soft WINSOFT NV10 + alias VertexAttrib4d + +VertexAttrib4dvARB(index, v) + return void + param index UInt32 in value + param v Float64 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4200 + alias VertexAttrib4dv + +VertexAttrib4fARB(index, x, y, z, w) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib4fvARB + extension soft WINSOFT NV10 + alias VertexAttrib4f + +VertexAttrib4fvARB(index, v) + return void + param index UInt32 in value + param v Float32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4196 + alias VertexAttrib4fv + +VertexAttrib4ivARB(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4iv + +VertexAttrib4sARB(index, x, y, z, w) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + param w Int16 in value + category ARB_vertex_program + version 1.3 + vectorequiv VertexAttrib4svARB + extension soft WINSOFT NV10 + alias VertexAttrib4s + +VertexAttrib4svARB(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4192 + alias VertexAttrib4sv + +VertexAttrib4ubvARB(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4ubv + +VertexAttrib4uivARB(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4uiv + +VertexAttrib4usvARB(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttrib4usv + +VertexAttribPointerARB(index, size, type, normalized, stride, pointer) + return void + param index UInt32 in value + param size Int32 in value + param type VertexAttribPointerTypeARB in value + param normalized Boolean in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias VertexAttribPointer + +EnableVertexAttribArrayARB(index) + return void + param index UInt32 in value + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias EnableVertexAttribArray + +DisableVertexAttribArrayARB(index) + return void + param index UInt32 in value + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + alias DisableVertexAttribArray + +ProgramStringARB(target, format, len, string) + return void + param target ProgramTargetARB in value + param format ProgramFormatARB in value + param len SizeI in value + param string Void in array [len] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 667 + +BindProgramARB(target, program) + return void + param target ProgramTargetARB in value + param program UInt32 in value + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxropcode 4180 + offset 579 + +DeleteProgramsARB(n, programs) + return void + param n SizeI in value + param programs UInt32 in array [n] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1294 + offset 580 + +GenProgramsARB(n, programs) + return void + param n SizeI in value + param programs UInt32 out array [n] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1295 + offset 582 + +ProgramEnvParameter4dARB(target, index, x, y, z, w) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv ProgramEnvParameter4dvARB + extension soft WINSOFT NV10 + glxflags ignore + offset 668 + +ProgramEnvParameter4dvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float64 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 669 + +ProgramEnvParameter4fARB(target, index, x, y, z, w) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv ProgramEnvParameter4fvARB + extension soft WINSOFT NV10 + glxflags ignore + offset 670 + +ProgramEnvParameter4fvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 671 + +ProgramLocalParameter4dARB(target, index, x, y, z, w) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category ARB_vertex_program + version 1.3 + vectorequiv ProgramLocalParameter4dvARB + extension soft WINSOFT NV10 + glxflags ignore + offset 672 + +ProgramLocalParameter4dvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float64 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 673 + +ProgramLocalParameter4fARB(target, index, x, y, z, w) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category ARB_vertex_program + version 1.3 + vectorequiv ProgramLocalParameter4fvARB + extension soft WINSOFT NV10 + glxflags ignore + offset 674 + +ProgramLocalParameter4fvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float32 in array [4] + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 675 + +GetProgramEnvParameterdvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float64 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 676 + +GetProgramEnvParameterfvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float32 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 677 + +GetProgramLocalParameterdvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float64 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 678 + +GetProgramLocalParameterfvARB(target, index, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param params Float32 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 679 + +GetProgramivARB(target, pname, params) + return void + param target ProgramTargetARB in value + param pname ProgramPropertyARB in value + param params Int32 out array [1] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 680 + +GetProgramStringARB(target, pname, string) + return void + param target ProgramTargetARB in value + param pname ProgramStringPropertyARB in value + param string Void out array [COMPSIZE(target,pname)] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + offset 681 + +GetVertexAttribdvARB(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Float64 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1301 + alias GetVertexAttribdv + +GetVertexAttribfvARB(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Float32 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1302 + alias GetVertexAttribfv + +GetVertexAttribivARB(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribPropertyARB in value + param params Int32 out array [4] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1303 + alias GetVertexAttribiv + +GetVertexAttribPointervARB(index, pname, pointer) + return void + param index UInt32 in value + param pname VertexAttribPointerPropertyARB in value + param pointer VoidPointer out array [1] + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxflags ignore + alias GetVertexAttribPointerv + +IsProgramARB(program) + return Boolean + param program UInt32 in value + dlflags notlistable + category ARB_vertex_program + version 1.3 + extension soft WINSOFT NV10 + glxvendorpriv 1304 + alias IsProgram + + +############################################################################### +# +# ARB Extension #27 +# ARB_fragment_program commands +# +############################################################################### + +# All ARB_fragment_program entry points are shared with ARB_vertex_program, +# and are only included in that #define block, for now. +newcategory: ARB_fragment_program +passthru: /* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ + +############################################################################### +# +# ARB Extension #28 +# ARB_vertex_buffer_object commands +# +############################################################################### + +BindBufferARB(target, buffer) + return void + param target BufferTargetARB in value + param buffer UInt32 in value + category ARB_vertex_buffer_object + version 1.2 + extension + alias BindBuffer + +DeleteBuffersARB(n, buffers) + return void + param n SizeI in value + param buffers ConstUInt32 in array [n] + category ARB_vertex_buffer_object + version 1.2 + extension + alias DeleteBuffers + +GenBuffersARB(n, buffers) + return void + param n SizeI in value + param buffers UInt32 out array [n] + category ARB_vertex_buffer_object + version 1.2 + extension + alias GenBuffers + +IsBufferARB(buffer) + return Boolean + param buffer UInt32 in value + category ARB_vertex_buffer_object + version 1.2 + extension + alias IsBuffer + +BufferDataARB(target, size, data, usage) + return void + param target BufferTargetARB in value + param size BufferSizeARB in value + param data ConstVoid in array [size] + param usage BufferUsageARB in value + category ARB_vertex_buffer_object + version 1.2 + extension + alias BufferData + +BufferSubDataARB(target, offset, size, data) + return void + param target BufferTargetARB in value + param offset BufferOffsetARB in value + param size BufferSizeARB in value + param data ConstVoid in array [size] + category ARB_vertex_buffer_object + version 1.2 + extension + alias BufferSubData + +GetBufferSubDataARB(target, offset, size, data) + return void + param target BufferTargetARB in value + param offset BufferOffsetARB in value + param size BufferSizeARB in value + param data Void out array [size] + category ARB_vertex_buffer_object + dlflags notlistable + version 1.2 + extension + alias GetBufferSubData + +MapBufferARB(target, access) + return VoidPointer + param target BufferTargetARB in value + param access BufferAccessARB in value + category ARB_vertex_buffer_object + version 1.2 + extension + alias MapBuffer + +UnmapBufferARB(target) + return Boolean + param target BufferTargetARB in value + category ARB_vertex_buffer_object + version 1.2 + extension + alias UnmapBuffer + +GetBufferParameterivARB(target, pname, params) + return void + param target BufferTargetARB in value + param pname BufferPNameARB in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_vertex_buffer_object + dlflags notlistable + version 1.2 + extension + alias GetBufferParameteriv + +GetBufferPointervARB(target, pname, params) + return void + param target BufferTargetARB in value + param pname BufferPointerNameARB in value + param params VoidPointer out array [1] + category ARB_vertex_buffer_object + dlflags notlistable + version 1.2 + extension + alias GetBufferPointerv + +############################################################################### +# +# ARB Extension #29 +# ARB_occlusion_query commands +# +############################################################################### + +GenQueriesARB(n, ids) + return void + param n SizeI in value + param ids UInt32 out array [n] + category ARB_occlusion_query + version 1.5 + extension + alias GenQueries + +DeleteQueriesARB(n, ids) + return void + param n SizeI in value + param ids UInt32 in array [n] + category ARB_occlusion_query + version 1.5 + extension + alias DeleteQueries + +IsQueryARB(id) + return Boolean + param id UInt32 in value + category ARB_occlusion_query + version 1.5 + extension + alias IsQuery + +BeginQueryARB(target, id) + return void + param target GLenum in value + param id UInt32 in value + category ARB_occlusion_query + version 1.5 + extension + alias BeginQuery + +EndQueryARB(target) + return void + param target GLenum in value + category ARB_occlusion_query + version 1.5 + extension + alias EndQuery + +GetQueryivARB(target, pname, params) + return void + param target GLenum in value + param pname GLenum in value + param params Int32 out array [pname] + category ARB_occlusion_query + dlflags notlistable + version 1.5 + extension + alias GetQueryiv + +GetQueryObjectivARB(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params Int32 out array [pname] + category ARB_occlusion_query + dlflags notlistable + version 1.5 + extension + alias GetQueryObjectiv + +GetQueryObjectuivARB(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params UInt32 out array [pname] + category ARB_occlusion_query + dlflags notlistable + version 1.5 + extension + alias GetQueryObjectuiv + +############################################################################### +# +# ARB Extension #30 +# ARB_shader_objects commands +# +############################################################################### + +DeleteObjectARB(obj) + return void + param obj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetHandleARB(pname) + return handleARB + param pname GLenum in value + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +DetachObjectARB(containerObj, attachedObj) + return void + param containerObj handleARB in value + param attachedObj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias DetachShader + +CreateShaderObjectARB(shaderType) + return handleARB + param shaderType GLenum in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias CreateShader + +ShaderSourceARB(shaderObj, count, string, length) + return void + param shaderObj handleARB in value + param count SizeI in value + param string charPointerARB in array [count] + param length Int32 in array [1] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias ShaderSource + +CompileShaderARB(shaderObj) + return void + param shaderObj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias CompileShader + +CreateProgramObjectARB() + return handleARB + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias CreateProgram + +AttachObjectARB(containerObj, obj) + return void + param containerObj handleARB in value + param obj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias AttachShader + +LinkProgramARB(programObj) + return void + param programObj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias LinkProgram + +UseProgramObjectARB(programObj) + return void + param programObj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias UseProgram + +ValidateProgramARB(programObj) + return void + param programObj handleARB in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias ValidateProgram + +Uniform1fARB(location, v0) + return void + param location Int32 in value + param v0 Float32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform1f + +Uniform2fARB(location, v0, v1) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform2f + +Uniform3fARB(location, v0, v1, v2) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform3f + +Uniform4fARB(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + param v3 Float32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform4f + +Uniform1iARB(location, v0) + return void + param location Int32 in value + param v0 Int32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform1i + +Uniform2iARB(location, v0, v1) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform2i + +Uniform3iARB(location, v0, v1, v2) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform3i + +Uniform4iARB(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + param v3 Int32 in value + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform4i + +Uniform1fvARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform1fv + +Uniform2fvARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform2fv + +Uniform3fvARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform3fv + +Uniform4fvARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform4fv + +Uniform1ivARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform1iv + +Uniform2ivARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform2iv + +Uniform3ivARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform3iv + +Uniform4ivARB(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias Uniform4iv + +UniformMatrix2fvARB(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias UniformMatrix2fv + +UniformMatrix3fvARB(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias UniformMatrix3fv + +UniformMatrix4fvARB(location, count, transpose, value) + return void + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count] + category ARB_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + alias UniformMatrix4fv + +GetObjectParameterfvARB(obj, pname, params) + return void + param obj handleARB in value + param pname GLenum in value + param params Float32 out array [pname] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetObjectParameterivARB(obj, pname, params) + return void + param obj handleARB in value + param pname GLenum in value + param params Int32 out array [pname] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetInfoLogARB(obj, maxLength, length, infoLog) + return void + param obj handleARB in value + param maxLength SizeI in value + param length SizeI out array [1] + param infoLog charARB out array [length] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetAttachedObjectsARB(containerObj, maxCount, count, obj) + return void + param containerObj handleARB in value + param maxCount SizeI in value + param count SizeI out array [1] + param obj handleARB out array [count] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetAttachedShaders + +GetUniformLocationARB(programObj, name) + return Int32 + param programObj handleARB in value + param name charARB in array [] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetUniformLocation + +GetActiveUniformARB(programObj, index, maxLength, length, size, type, name) + return void + param programObj handleARB in value + param index UInt32 in value + param maxLength SizeI in value + param length SizeI out array [1] + param size Int32 out array [1] + param type GLenum out array [1] + param name charARB out array [] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetActiveUniform + +GetUniformfvARB(programObj, location, params) + return void + param programObj handleARB in value + param location Int32 in value + param params Float32 out array [location] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetUniformfv + +GetUniformivARB(programObj, location, params) + return void + param programObj handleARB in value + param location Int32 in value + param params Int32 out array [location] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetUniformiv + +GetShaderSourceARB(obj, maxLength, length, source) + return void + param obj handleARB in value + param maxLength SizeI in value + param length SizeI out array [1] + param source charARB out array [length] + category ARB_shader_objects + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetShaderSource + + +############################################################################### +# +# ARB Extension #31 +# ARB_vertex_shader commands +# +############################################################################### + +BindAttribLocationARB(programObj, index, name) + return void + param programObj handleARB in value + param index UInt32 in value + param name charARB in array [] + category ARB_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + alias BindAttribLocation + +GetActiveAttribARB(programObj, index, maxLength, length, size, type, name) + return void + param programObj handleARB in value + param index UInt32 in value + param maxLength SizeI in value + param length SizeI out array [1] + param size Int32 out array [1] + param type GLenum out array [1] + param name charARB out array [] + category ARB_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetActiveAttrib + +GetAttribLocationARB(programObj, name) + return Int32 + param programObj handleARB in value + param name charARB in array [] + category ARB_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + alias GetAttribLocation + +############################################################################### +# +# ARB Extension #32 +# ARB_fragment_shader commands +# +############################################################################### + +# (none) +newcategory: ARB_fragment_shader + +############################################################################### +# +# ARB Extension #33 +# ARB_shading_language_100 commands +# +############################################################################### + +# (none) +newcategory: ARB_shading_language_100 + +############################################################################### +# +# ARB Extension #34 +# ARB_texture_non_power_of_two commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_non_power_of_two + +############################################################################### +# +# ARB Extension #35 +# ARB_point_sprite commands +# +############################################################################### + +# (none) +newcategory: ARB_point_sprite + +############################################################################### +# +# ARB Extension #36 +# ARB_fragment_program_shadow commands +# +############################################################################### + +# (none) +newcategory: ARB_fragment_program_shadow + +############################################################################### +# +# ARB Extension #37 +# ARB_draw_buffers commands +# +############################################################################### + +DrawBuffersARB(n, bufs) + return void + param n SizeI in value + param bufs DrawBufferModeATI in array [n] + category ARB_draw_buffers + version 1.5 + extension + alias DrawBuffers + +############################################################################### +# +# ARB Extension #38 +# ARB_texture_rectangle commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_rectangle + +############################################################################### +# +# ARB Extension #39 +# ARB_color_buffer_float commands +# +############################################################################### + +ClampColorARB(target, clamp) + return void + param target ClampColorTargetARB in value + param clamp ClampColorModeARB in value + category ARB_color_buffer_float + version 1.5 + extension + glxropcode 234 + glxflags ignore + alias ClampColor + +############################################################################### +# +# ARB Extension #40 +# ARB_half_float_pixel commands +# +############################################################################### + +# (none) +newcategory: ARB_half_float_pixel + +############################################################################### +# +# ARB Extension #41 +# ARB_texture_float commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_float + +############################################################################### +# +# ARB Extension #42 +# ARB_pixel_buffer_object commands +# +############################################################################### + +# (none) +newcategory: ARB_pixel_buffer_object + +############################################################################### +# +# ARB Extension #43 +# ARB_depth_buffer_float commands (also OpenGL 3.0) +# +############################################################################### + +# (none) +newcategory: ARB_depth_buffer_float + +############################################################################### +# +# ARB Extension #44 +# ARB_draw_instanced commands +# +############################################################################### + +DrawArraysInstancedARB(mode, first, count, primcount) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + param primcount SizeI in value + category ARB_draw_instanced + version 2.0 + extension soft WINSOFT + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + alias DrawArraysInstanced + +DrawElementsInstancedARB(mode, count, type, indices, primcount) + return void + param mode BeginMode in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param primcount SizeI in value + category ARB_draw_instanced + version 2.0 + extension soft WINSOFT + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + alias DrawElementsInstanced + +############################################################################### +# +# ARB Extension #45 +# ARB_framebuffer_object commands (also OpenGL 3.0) +# +############################################################################### + +# Promoted from EXT_framebuffer_object +IsRenderbuffer(renderbuffer) + return Boolean + param renderbuffer UInt32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxvendorpriv 1422 + glxflags ignore + offset ? + +BindRenderbuffer(target, renderbuffer) + return void + param target RenderbufferTarget in value + param renderbuffer UInt32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4316 + glxflags ignore + offset ? + +DeleteRenderbuffers(n, renderbuffers) + return void + param n SizeI in value + param renderbuffers UInt32 in array [n] + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4317 + glxflags ignore + offset ? + +GenRenderbuffers(n, renderbuffers) + return void + param n SizeI in value + param renderbuffers UInt32 out array [n] + category ARB_framebuffer_object + version 3.0 + extension + glxvendorpriv 1423 + glxflags ignore + offset ? + +RenderbufferStorage(target, internalformat, width, height) + return void + param target RenderbufferTarget in value + param internalformat GLenum in value + param width SizeI in value + param height SizeI in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4318 + glxflags ignore + offset ? + +GetRenderbufferParameteriv(target, pname, params) + return void + param target RenderbufferTarget in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_framebuffer_object + dlflags notlistable + version 3.0 + extension + glxvendorpriv 1424 + glxflags ignore + offset ? + +IsFramebuffer(framebuffer) + return Boolean + param framebuffer UInt32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxvendorpriv 1425 + glxflags ignore + offset ? + +BindFramebuffer(target, framebuffer) + return void + param target FramebufferTarget in value + param framebuffer UInt32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4319 + glxflags ignore + offset ? + +DeleteFramebuffers(n, framebuffers) + return void + param n SizeI in value + param framebuffers UInt32 in array [n] + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4320 + glxflags ignore + offset ? + +GenFramebuffers(n, framebuffers) + return void + param n SizeI in value + param framebuffers UInt32 out array [n] + category ARB_framebuffer_object + version 3.0 + extension + glxvendorpriv 1426 + glxflags ignore + offset ? + +CheckFramebufferStatus(target) + return GLenum + param target FramebufferTarget in value + category ARB_framebuffer_object + version 3.0 + extension + glxvendorpriv 1427 + glxflags ignore + offset ? + +FramebufferTexture1D(target, attachment, textarget, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4321 + glxflags ignore + offset ? + +FramebufferTexture2D(target, attachment, textarget, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4322 + glxflags ignore + offset ? + +FramebufferTexture3D(target, attachment, textarget, texture, level, zoffset) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + param zoffset Int32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4323 + glxflags ignore + offset ? + +FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param renderbuffertarget RenderbufferTarget in value + param renderbuffer UInt32 in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4324 + glxflags ignore + offset ? + +GetFramebufferAttachmentParameteriv(target, attachment, pname, params) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_framebuffer_object + dlflags notlistable + version 3.0 + extension + glxvendorpriv 1428 + glxflags ignore + offset ? + +GenerateMipmap(target) + return void + param target GLenum in value + category ARB_framebuffer_object + version 3.0 + extension + glxropcode 4325 + glxflags ignore + offset ? + +# Promoted from EXT_framebuffer_blit +BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + return void + param srcX0 Int32 in value + param srcY0 Int32 in value + param srcX1 Int32 in value + param srcY1 Int32 in value + param dstX0 Int32 in value + param dstY0 Int32 in value + param dstX1 Int32 in value + param dstY1 Int32 in value + param mask ClearBufferMask in value + param filter GLenum in value + category ARB_framebuffer_object + version 3.0 + glxropcode 4330 + offset ? + +# Promoted from EXT_framebuffer_multisample +RenderbufferStorageMultisample(target, samples, internalformat, width, height) + return void + param target GLenum in value + param samples SizeI in value + param internalformat GLenum in value + param width SizeI in value + param height SizeI in value + category ARB_framebuffer_object + version 3.0 + glxropcode 4331 + offset ? + +# Promoted from ARB_geometry_shader4 +FramebufferTextureLayer(target, attachment, texture, level, layer) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param layer CheckedInt32 in value + category ARB_framebuffer_object + version 3.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + + +############################################################################### +# +# ARB Extension #46 +# ARB_framebuffer_sRGB commands (also OpenGL 3.0) +# +############################################################################### + +# (none) +newcategory: ARB_framebuffer_sRGB + +############################################################################### +# +# ARB Extension #47 +# ARB_geometry_shader4 commands +# +############################################################################### + +ProgramParameteriARB(program, pname, value) + return void + param program UInt32 in value + param pname ProgramParameterPName in value + param value Int32 in value + category ARB_geometry_shader4 + version 3.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + +FramebufferTextureARB(target, attachment, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + category ARB_geometry_shader4 + version 3.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + +FramebufferTextureLayerARB(target, attachment, texture, level, layer) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param layer CheckedInt32 in value + category ARB_geometry_shader4 + version 3.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + alias FramebufferTextureLayer + +FramebufferTextureFaceARB(target, attachment, texture, level, face) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param face TextureTarget in value + category ARB_geometry_shader4 + version 3.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + +############################################################################### +# +# ARB Extension #48 +# ARB_half_float_vertex commands (also OpenGL 3.0) +# +############################################################################### + +# (none) +newcategory: ARB_half_float_vertex + +############################################################################### +# +# ARB Extension #49 +# ARB_instanced_arrays commands +# +############################################################################### + +VertexAttribDivisorARB(index, divisor) + return void + param index UInt32 in value + param divisor UInt32 in value + category ARB_instanced_arrays + version 2.0 + extension + glfflags ignore + glxflags ignore + +############################################################################### +# +# ARB Extension #50 +# ARB_map_buffer_range commands (also OpenGL 3.0) +# +############################################################################### + +MapBufferRange(target, offset, length, access) + return VoidPointer + param target BufferTargetARB in value + param offset BufferOffset in value + param length BufferSize in value + param access BufferAccessMask in value + category ARB_map_buffer_range + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +# Promoted from APPLE_flush_buffer_range +FlushMappedBufferRange(target, offset, length) + return void + param target BufferTargetARB in value + param offset BufferOffset in value + param length BufferSize in value + category ARB_map_buffer_range + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #51 +# ARB_texture_buffer_object commands +# +############################################################################### + +TexBufferARB(target, internalformat, buffer) + return void + param target TextureTarget in value + param internalformat GLenum in value + param buffer UInt32 in value + category ARB_texture_buffer_object + version 3.0 + extension soft WINSOFT NV50 + glfflags ignore + alias TexBuffer + +############################################################################### +# +# ARB Extension #52 +# ARB_texture_compression_rgtc commands (also OpenGL 3.0) +# +############################################################################### + +# (none) +newcategory: ARB_texture_compression_rgtc + +############################################################################### +# +# ARB Extension #53 +# ARB_texture_rg commands (also OpenGL 3.0) +# +############################################################################### + +# (none) +newcategory: ARB_texture_rg + +############################################################################### +# +# ARB Extension #54 +# ARB_vertex_array_object commands (also OpenGL 3.0) +# +############################################################################### + +# Promoted from APPLE_vertex_array_object +BindVertexArray(array) + return void + param array UInt32 in value + category ARB_vertex_array_object + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteVertexArrays(n, arrays) + return void + param n SizeI in value + param arrays UInt32 in array [n] + category ARB_vertex_array_object + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +GenVertexArrays(n, arrays) + return void + param n SizeI in value + param arrays UInt32 out array [n] + category ARB_vertex_array_object + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +IsVertexArray(array) + return Boolean + param array UInt32 in value + category ARB_vertex_array_object + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #55 - WGL_ARB_create_context +# ARB Extension #56 - GLX_ARB_create_context +# +############################################################################### + +############################################################################### +# +# ARB Extension #57 +# ARB_uniform_buffer_object commands +# +############################################################################### + +GetUniformIndices(program, uniformCount, uniformNames, uniformIndices) + return void + param program UInt32 in value + param uniformCount SizeI in value + param uniformNames CharPointer in array [COMPSIZE(uniformCount)] + param uniformIndices UInt32 out array [COMPSIZE(uniformCount)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params) + return void + param program UInt32 in value + param uniformCount SizeI in value + param uniformIndices UInt32 in array [COMPSIZE(uniformCount)] + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetActiveUniformName(program, uniformIndex, bufSize, length, uniformName) + return void + param program UInt32 in value + param uniformIndex UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param uniformName Char out array [bufSize] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetUniformBlockIndex(program, uniformBlockName) + return UInt32 + param program UInt32 in value + param uniformBlockName Char in array [COMPSIZE()] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetActiveUniformBlockiv(program, uniformBlockIndex, pname, params) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +GetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param uniformBlockName Char out array [bufSize] + category ARB_uniform_buffer_object + dlflags notlistable + version 2.0 + extension + glxsingle ? + glxflags ignore + offset ? + +UniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding) + return void + param program UInt32 in value + param uniformBlockIndex UInt32 in value + param uniformBlockBinding UInt32 in value + category ARB_uniform_buffer_object + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + + +############################################################################### +# +# ARB Extension #58 +# ARB_compatibility commands +# +############################################################################### + +# (none) +newcategory: ARB_compatibility + +############################################################################### +# +# ARB Extension #59 +# ARB_copy_buffer commands +# +############################################################################### + +CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size) + return void + param readTarget GLenum in value + param writeTarget GLenum in value + param readOffset BufferOffset in value + param writeOffset BufferOffset in value + param size BufferSize in value + category ARB_copy_buffer + version 3.0 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #60 +# ARB_shader_texture_lod commands +# +############################################################################### + +# (none) +newcategory: ARB_shader_texture_lod + +############################################################################### +# +# ARB Extension #61 +# ARB_depth_clamp commands +# +############################################################################### + +# (none) +newcategory: ARB_depth_clamp + +############################################################################### +# +# ARB Extension #62 +# ARB_draw_elements_base_vertex commands +# +############################################################################### + +DrawElementsBaseVertex(mode, count, type, indices, basevertex) + return void + param mode GLenum in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param basevertex Int32 in value + category ARB_draw_elements_base_vertex + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex) + return void + param mode GLenum in value + param start UInt32 in value + param end UInt32 in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param basevertex Int32 in value + category ARB_draw_elements_base_vertex + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DrawElementsInstancedBaseVertex(mode, count, type, indices, primcount, basevertex) + return void + param mode GLenum in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param primcount SizeI in value + param basevertex Int32 in value + category ARB_draw_elements_base_vertex + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiDrawElementsBaseVertex(mode, count, type, indices, primcount, basevertex) + return void + param mode GLenum in value + param count SizeI in array [COMPSIZE(primcount)] + param type DrawElementsType in value + param indices VoidPointer in array [COMPSIZE(primcount)] + param primcount SizeI in value + param basevertex Int32 in array [COMPSIZE(primcount)] + category ARB_draw_elements_base_vertex + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #63 +# ARB_fragment_coord_conventions commands +# +############################################################################### + +# (none) +newcategory: ARB_fragment_coord_conventions + +############################################################################### +# +# ARB Extension #64 +# ARB_provoking_vertex commands +# +############################################################################### + +ProvokingVertex(mode) + return void + param mode GLenum in value + category ARB_provoking_vertex + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #65 +# ARB_seamless_cube_map commands +# +############################################################################### + +# (none) +newcategory: ARB_seamless_cube_map + +############################################################################### +# +# ARB Extension #66 +# ARB_sync commands +# +############################################################################### + +FenceSync(condition, flags) + return sync + param condition GLenum in value + param flags GLbitfield in value + category ARB_sync + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsSync(sync) + return Boolean + param sync sync in value + category ARB_sync + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteSync(sync) + return void + param sync sync in value + category ARB_sync + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ClientWaitSync(sync, flags, timeout) + return GLenum + param sync sync in value + param flags GLbitfield in value + param timeout UInt64 in value + category ARB_sync + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +WaitSync(sync, flags, timeout) + return void + param sync sync in value + param flags GLbitfield in value + param timeout UInt64 in value + category ARB_sync + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetInteger64v(pname, params) + return void + param pname GLenum in value + param params Int64 out array [COMPSIZE(pname)] + category ARB_sync + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetSynciv(sync, pname, bufSize, length, values) + return void + param sync sync in value + param pname GLenum in value + param bufSize SizeI in value + param length SizeI out array [1] + param values Int32 out array [length] + category ARB_sync + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #67 +# ARB_texture_multisample commands +# +############################################################################### + +TexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations) + return void + param target GLenum in value + param samples SizeI in value + param internalformat Int32 in value + param width SizeI in value + param height SizeI in value + param fixedsamplelocations Boolean in value + category ARB_texture_multisample + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations) + return void + param target GLenum in value + param samples SizeI in value + param internalformat Int32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param fixedsamplelocations Boolean in value + category ARB_texture_multisample + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetMultisamplefv(pname, index, val) + return void + param pname GLenum in value + param index UInt32 in value + param val Float32 out array [COMPSIZE(pname)] + category ARB_texture_multisample + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +SampleMaski(index, mask) + return void + param index UInt32 in value + param mask GLbitfield in value + category ARB_texture_multisample + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #68 +# ARB_vertex_array_bgra commands +# +############################################################################### + +# (none) +newcategory: ARB_vertex_array_bgra + +############################################################################### +# +# ARB Extension #69 +# ARB_draw_buffers_blend commands +# +############################################################################### + +BlendEquationi(buf, mode) + return void + param buf UInt32 in value + param mode GLenum in value + category ARB_draw_buffers_blend + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendEquationSeparatei(buf, modeRGB, modeAlpha) + return void + param buf UInt32 in value + param modeRGB GLenum in value + param modeAlpha GLenum in value + category ARB_draw_buffers_blend + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendFunci(buf, src, dst) + return void + param buf UInt32 in value + param src GLenum in value + param dst GLenum in value + category ARB_draw_buffers_blend + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha) + return void + param buf UInt32 in value + param srcRGB GLenum in value + param dstRGB GLenum in value + param srcAlpha GLenum in value + param dstAlpha GLenum in value + category ARB_draw_buffers_blend + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #70 +# ARB_sample_shading commands +# +############################################################################### + +MinSampleShading(value) + return void + param value ClampedColorF in value + category ARB_sample_shading + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# ARB Extension #71 +# ARB_texture_cube_map_array commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_cube_map_array + +############################################################################### +# +# ARB Extension #72 +# ARB_texture_gather commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_gather + +############################################################################### +# +# ARB Extension #73 +# ARB_texture_query_lod commands +# +############################################################################### + +# (none) +newcategory: ARB_texture_query_lod + +############################################################################### +# +# ARB Extension #74 - WGL_ARB_create_context_profile +# ARB Extension #75 - GLX_ARB_create_context_profile +# +############################################################################### + + +############################################################################### +############################################################################### +# +# Non-ARB extensions, in order by registry extension number +# +############################################################################### +############################################################################### + +############################################################################### +# +# Extension #1 +# EXT_abgr commands +# +############################################################################### + +# (none) +newcategory: EXT_abgr + +############################################################################### +# +# Extension #2 +# EXT_blend_color commands +# +############################################################################### + +BlendColorEXT(red, green, blue, alpha) + return void + param red ClampedColorF in value + param green ClampedColorF in value + param blue ClampedColorF in value + param alpha ClampedColorF in value + category EXT_blend_color + version 1.0 + glxropcode 4096 + glxflags EXT + extension soft + alias BlendColor + +############################################################################### +# +# Extension #3 +# EXT_polygon_offset commands +# +############################################################################### + +PolygonOffsetEXT(factor, bias) + return void + param factor Float32 in value + param bias Float32 in value + category EXT_polygon_offset + version 1.0 + glxropcode 4098 + glxflags EXT + extension soft + offset 414 + +############################################################################### +# +# Extension #4 +# EXT_texture commands +# +############################################################################### + +# (none) +newcategory: EXT_texture + +############################################################################### +# +# Extension #5 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #6 +# EXT_texture3D commands +# +############################################################################### + +# Arguably TexelInternalFormat, not PixelInternalFormat +TexImage3DEXT(target, level, internalformat, width, height, depth, border, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_texture3D + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4114 + extension + alias TexImage3D + +TexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_texture3D + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4115 + extension + alias TexSubImage3D + +############################################################################### +# +# Extension #7 +# SGIS_texture_filter4 commands +# +############################################################################### + +GetTexFilterFuncSGIS(target, filter, weights) + return void + param target TextureTarget in value + param filter TextureFilterSGIS in value + param weights Float32 out array [COMPSIZE(target/filter)] + category SGIS_texture_filter4 + dlflags notlistable + version 1.0 + glxflags SGI + glxvendorpriv 4101 + extension + offset 415 + +TexFilterFuncSGIS(target, filter, n, weights) + return void + param target TextureTarget in value + param filter TextureFilterSGIS in value + param n SizeI in value + param weights Float32 in array [n] + category SGIS_texture_filter4 + glxflags SGI + version 1.0 + glxropcode 2064 + extension + offset 416 + +############################################################################### +# +# Extension #8 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #9 +# EXT_subtexture commands +# +############################################################################### + +TexSubImage1DEXT(target, level, xoffset, width, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category EXT_subtexture + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4099 + extension + alias TexSubImage1D + +TexSubImage2DEXT(target, level, xoffset, yoffset, width, height, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category EXT_subtexture + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4100 + extension + alias TexSubImage2D + +############################################################################### +# +# Extension #10 +# EXT_copy_texture commands +# +############################################################################### + +# Arguably TexelInternalFormat, not PixelInternalFormat +CopyTexImage1DEXT(target, level, internalformat, x, y, width, border) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param border CheckedInt32 in value + category EXT_copy_texture + version 1.0 + glxflags EXT + glxropcode 4119 + extension + alias CopyTexImage1D + +# Arguably TexelInternalFormat, not PixelInternalFormat +CopyTexImage2DEXT(target, level, internalformat, x, y, width, height, border) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + category EXT_copy_texture + version 1.0 + glxflags EXT + glxropcode 4120 + extension + alias CopyTexImage2D + +CopyTexSubImage1DEXT(target, level, xoffset, x, y, width) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category EXT_copy_texture + version 1.0 + glxflags EXT + glxropcode 4121 + extension + alias CopyTexSubImage1D + +CopyTexSubImage2DEXT(target, level, xoffset, yoffset, x, y, width, height) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_copy_texture + version 1.0 + glxflags EXT + glxropcode 4122 + extension + alias CopyTexSubImage2D + +CopyTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, x, y, width, height) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_copy_texture + version 1.0 + glxflags EXT + glxropcode 4123 + extension + alias CopyTexSubImage3D + +############################################################################### +# +# Extension #11 +# EXT_histogram commands +# +############################################################################### + +GetHistogramEXT(target, reset, format, type, values) + return void + param target HistogramTargetEXT in value + param reset Boolean in value + param format PixelFormat in value + param type PixelType in value + param values Void out array [COMPSIZE(target/format/type)] + category EXT_histogram + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + glxvendorpriv 5 + extension + offset 417 + +GetHistogramParameterfvEXT(target, pname, params) + return void + param target HistogramTargetEXT in value + param pname GetHistogramParameterPNameEXT in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_histogram + dlflags notlistable + version 1.0 + glxvendorpriv 6 + glxflags EXT + extension + offset 418 + +GetHistogramParameterivEXT(target, pname, params) + return void + param target HistogramTargetEXT in value + param pname GetHistogramParameterPNameEXT in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_histogram + dlflags notlistable + version 1.0 + glxvendorpriv 7 + glxflags EXT + extension + offset 419 + +GetMinmaxEXT(target, reset, format, type, values) + return void + param target MinmaxTargetEXT in value + param reset Boolean in value + param format PixelFormat in value + param type PixelType in value + param values Void out array [COMPSIZE(target/format/type)] + category EXT_histogram + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + glxvendorpriv 8 + extension + offset 420 + +GetMinmaxParameterfvEXT(target, pname, params) + return void + param target MinmaxTargetEXT in value + param pname GetMinmaxParameterPNameEXT in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_histogram + dlflags notlistable + version 1.0 + glxvendorpriv 9 + glxflags EXT + extension + offset 421 + +GetMinmaxParameterivEXT(target, pname, params) + return void + param target MinmaxTargetEXT in value + param pname GetMinmaxParameterPNameEXT in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_histogram + dlflags notlistable + version 1.0 + glxvendorpriv 10 + glxflags EXT + extension + offset 422 + +HistogramEXT(target, width, internalformat, sink) + return void + param target HistogramTargetEXT in value + param width SizeI in value + param internalformat PixelInternalFormat in value + param sink Boolean in value + category EXT_histogram + version 1.0 + glxropcode 4110 + glxflags EXT + extension + alias Histogram + +MinmaxEXT(target, internalformat, sink) + return void + param target MinmaxTargetEXT in value + param internalformat PixelInternalFormat in value + param sink Boolean in value + category EXT_histogram + version 1.0 + glxropcode 4111 + glxflags EXT + extension + alias Minmax + +ResetHistogramEXT(target) + return void + param target HistogramTargetEXT in value + category EXT_histogram + version 1.0 + glxropcode 4112 + glxflags EXT + extension + alias ResetHistogram + +ResetMinmaxEXT(target) + return void + param target MinmaxTargetEXT in value + category EXT_histogram + version 1.0 + glxropcode 4113 + glxflags EXT + extension + alias ResetMinmax + +############################################################################### +# +# Extension #12 +# EXT_convolution commands +# +############################################################################### + +ConvolutionFilter1DEXT(target, internalformat, width, format, type, image) + return void + param target ConvolutionTargetEXT in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param image Void in array [COMPSIZE(format/type/width)] + category EXT_convolution + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4101 + extension + alias ConvolutionFilter1D + +ConvolutionFilter2DEXT(target, internalformat, width, height, format, type, image) + return void + param target ConvolutionTargetEXT in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param image Void in array [COMPSIZE(format/type/width/height)] + category EXT_convolution + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4102 + extension + alias ConvolutionFilter2D + +ConvolutionParameterfEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params CheckedFloat32 in value + category EXT_convolution + version 1.0 + glxropcode 4103 + glxflags EXT + extension + alias ConvolutionParameterf + +ConvolutionParameterfvEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_convolution + version 1.0 + glxropcode 4104 + glxflags EXT + extension + alias ConvolutionParameterfv + +ConvolutionParameteriEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params CheckedInt32 in value + category EXT_convolution + version 1.0 + glxropcode 4105 + glxflags EXT + extension + alias ConvolutionParameteri + +ConvolutionParameterivEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_convolution + version 1.0 + glxropcode 4106 + glxflags EXT + extension + alias ConvolutionParameteriv + +CopyConvolutionFilter1DEXT(target, internalformat, x, y, width) + return void + param target ConvolutionTargetEXT in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category EXT_convolution + version 1.0 + glxropcode 4107 + glxflags EXT + extension + alias CopyConvolutionFilter1D + +CopyConvolutionFilter2DEXT(target, internalformat, x, y, width, height) + return void + param target ConvolutionTargetEXT in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_convolution + version 1.0 + glxropcode 4108 + glxflags EXT + extension + alias CopyConvolutionFilter2D + +GetConvolutionFilterEXT(target, format, type, image) + return void + param target ConvolutionTargetEXT in value + param format PixelFormat in value + param type PixelType in value + param image Void out array [COMPSIZE(target/format/type)] + category EXT_convolution + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + glxvendorpriv 1 + extension + offset 423 + +GetConvolutionParameterfvEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_convolution + dlflags notlistable + version 1.0 + glxvendorpriv 2 + glxflags EXT + extension + offset 424 + +GetConvolutionParameterivEXT(target, pname, params) + return void + param target ConvolutionTargetEXT in value + param pname ConvolutionParameterEXT in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_convolution + dlflags notlistable + version 1.0 + glxvendorpriv 3 + glxflags EXT + extension + offset 425 + +GetSeparableFilterEXT(target, format, type, row, column, span) + return void + param target SeparableTargetEXT in value + param format PixelFormat in value + param type PixelType in value + param row Void out array [COMPSIZE(target/format/type)] + param column Void out array [COMPSIZE(target/format/type)] + param span Void out array [COMPSIZE(target/format/type)] + category EXT_convolution + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + glxvendorpriv 4 + extension + offset 426 + +SeparableFilter2DEXT(target, internalformat, width, height, format, type, row, column) + return void + param target SeparableTargetEXT in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param row Void in array [COMPSIZE(target/format/type/width)] + param column Void in array [COMPSIZE(target/format/type/height)] + category EXT_convolution + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4109 + extension + alias SeparableFilter2D + +############################################################################### +# +# Extension #13 +# SGI_color_matrix commands +# +############################################################################### + +# (none) +newcategory: SGI_color_matrix + +############################################################################### +# +# Extension #14 +# SGI_color_table commands +# +############################################################################### + +ColorTableSGI(target, internalformat, width, format, type, table) + return void + param target ColorTableTargetSGI in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param table Void in array [COMPSIZE(format/type/width)] + category SGI_color_table + dlflags handcode + glxflags client-handcode server-handcode SGI + version 1.0 + glxropcode 2053 + extension + alias ColorTable + +ColorTableParameterfvSGI(target, pname, params) + return void + param target ColorTableTargetSGI in value + param pname ColorTableParameterPNameSGI in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGI_color_table + version 1.0 + glxropcode 2054 + glxflags SGI + extension + alias ColorTableParameterfv + +ColorTableParameterivSGI(target, pname, params) + return void + param target ColorTableTargetSGI in value + param pname ColorTableParameterPNameSGI in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGI_color_table + version 1.0 + glxropcode 2055 + glxflags SGI + extension + alias ColorTableParameteriv + +CopyColorTableSGI(target, internalformat, x, y, width) + return void + param target ColorTableTargetSGI in value + param internalformat PixelInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category SGI_color_table + version 1.0 + glxropcode 2056 + glxflags SGI + extension + alias CopyColorTable + +GetColorTableSGI(target, format, type, table) + return void + param target ColorTableTargetSGI in value + param format PixelFormat in value + param type PixelType in value + param table Void out array [COMPSIZE(target/format/type)] + category SGI_color_table + dlflags notlistable + glxflags client-handcode server-handcode SGI + version 1.0 + glxvendorpriv 4098 + extension + offset 427 + +GetColorTableParameterfvSGI(target, pname, params) + return void + param target ColorTableTargetSGI in value + param pname GetColorTableParameterPNameSGI in value + param params Float32 out array [COMPSIZE(pname)] + category SGI_color_table + dlflags notlistable + version 1.0 + glxflags SGI + glxvendorpriv 4099 + extension + offset 428 + +GetColorTableParameterivSGI(target, pname, params) + return void + param target ColorTableTargetSGI in value + param pname GetColorTableParameterPNameSGI in value + param params Int32 out array [COMPSIZE(pname)] + category SGI_color_table + dlflags notlistable + version 1.0 + glxflags SGI + glxvendorpriv 4100 + extension + offset 429 + +############################################################################### +# +# Extension #15 +# SGIX_pixel_texture commands +# +############################################################################### + +PixelTexGenSGIX(mode) + return void + param mode PixelTexGenModeSGIX in value + category SGIX_pixel_texture + version 1.0 + glxflags SGI + glxropcode 2059 + extension + offset 430 + +############################################################################### +# +# Extension #15 (variant) +# SGIS_pixel_texture commands +# Both SGIS and SGIX forms have extension #15! +# +############################################################################### + +PixelTexGenParameteriSGIS(pname, param) + return void + param pname PixelTexGenParameterNameSGIS in value + param param CheckedInt32 in value + category SGIS_pixel_texture + version 1.0 + extension + glxropcode ? + glxflags ignore + offset 431 + +PixelTexGenParameterivSGIS(pname, params) + return void + param pname PixelTexGenParameterNameSGIS in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGIS_pixel_texture + version 1.0 + extension + glxropcode ? + glxflags ignore + offset 432 + +PixelTexGenParameterfSGIS(pname, param) + return void + param pname PixelTexGenParameterNameSGIS in value + param param CheckedFloat32 in value + category SGIS_pixel_texture + version 1.0 + extension + glxropcode ? + glxflags ignore + offset 433 + +PixelTexGenParameterfvSGIS(pname, params) + return void + param pname PixelTexGenParameterNameSGIS in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIS_pixel_texture + version 1.0 + extension + glxropcode ? + glxflags ignore + offset 434 + +GetPixelTexGenParameterivSGIS(pname, params) + return void + param pname PixelTexGenParameterNameSGIS in value + param params CheckedInt32 out array [COMPSIZE(pname)] + dlflags notlistable + category SGIS_pixel_texture + version 1.0 + extension + glxvendorpriv ? + glxflags ignore + offset 435 + +GetPixelTexGenParameterfvSGIS(pname, params) + return void + param pname PixelTexGenParameterNameSGIS in value + param params CheckedFloat32 out array [COMPSIZE(pname)] + dlflags notlistable + category SGIS_pixel_texture + version 1.0 + extension + glxvendorpriv ? + glxflags ignore + offset 436 + +############################################################################### +# +# Extension #16 +# SGIS_texture4D commands +# +############################################################################### + +TexImage4DSGIS(target, level, internalformat, width, height, depth, size4d, border, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param size4d SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth/size4d)] + category SGIS_texture4D + dlflags handcode + glxflags client-handcode server-handcode SGI + version 1.0 + glxropcode 2057 + extension + offset 437 + +TexSubImage4DSGIS(target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels) + return void + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param woffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param size4d SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth/size4d)] + category SGIS_texture4D + dlflags handcode + glxflags client-handcode server-handcode SGI + version 1.0 + glxropcode 2058 + extension + offset 438 + +############################################################################### +# +# Extension #17 +# SGI_texture_color_table commands +# +############################################################################### + +# (none) +newcategory: SGI_texture_color_table + +############################################################################### +# +# Extension #18 +# EXT_cmyka commands +# +############################################################################### + +# (none) +newcategory: EXT_cmyka + +############################################################################### +# +# Extension #19 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #20 +# EXT_texture_object commands +# +############################################################################### + +AreTexturesResidentEXT(n, textures, residences) + return Boolean + param n SizeI in value + param textures Texture in array [n] + param residences Boolean out array [n] + category EXT_texture_object + glxflags EXT + glxvendorpriv 11 + dlflags notlistable + version 1.0 + extension + offset 439 + +BindTextureEXT(target, texture) + return void + param target TextureTarget in value + param texture Texture in value + category EXT_texture_object + version 1.0 + glxflags EXT + glxropcode 4117 + extension + alias BindTexture + +DeleteTexturesEXT(n, textures) + return void + param n SizeI in value + param textures Texture in array [n] + category EXT_texture_object + dlflags notlistable + version 1.0 + glxflags EXT + glxvendorpriv 12 + extension + offset 561 + +GenTexturesEXT(n, textures) + return void + param n SizeI in value + param textures Texture out array [n] + category EXT_texture_object + dlflags notlistable + version 1.0 + glxflags EXT + glxvendorpriv 13 + extension + offset 440 + +IsTextureEXT(texture) + return Boolean + param texture Texture in value + category EXT_texture_object + dlflags notlistable + version 1.0 + glxflags EXT + glxvendorpriv 14 + extension + offset 441 + +PrioritizeTexturesEXT(n, textures, priorities) + return void + param n SizeI in value + param textures Texture in array [n] + param priorities ClampedFloat32 in array [n] + category EXT_texture_object + glxflags EXT + version 1.0 + glxropcode 4118 + extension + alias PrioritizeTextures + +############################################################################### +# +# Extension #21 +# SGIS_detail_texture commands +# +############################################################################### + +DetailTexFuncSGIS(target, n, points) + return void + param target TextureTarget in value + param n SizeI in value + param points Float32 in array [n*2] + category SGIS_detail_texture + glxflags SGI + version 1.0 + glxropcode 2051 + extension + offset 442 + +GetDetailTexFuncSGIS(target, points) + return void + param target TextureTarget in value + param points Float32 out array [COMPSIZE(target)] + category SGIS_detail_texture + dlflags notlistable + version 1.0 + glxflags SGI + glxvendorpriv 4096 + extension + offset 443 + +############################################################################### +# +# Extension #22 +# SGIS_sharpen_texture commands +# +############################################################################### + +SharpenTexFuncSGIS(target, n, points) + return void + param target TextureTarget in value + param n SizeI in value + param points Float32 in array [n*2] + category SGIS_sharpen_texture + glxflags SGI + version 1.0 + glxropcode 2052 + extension + offset 444 + +GetSharpenTexFuncSGIS(target, points) + return void + param target TextureTarget in value + param points Float32 out array [COMPSIZE(target)] + category SGIS_sharpen_texture + dlflags notlistable + version 1.0 + glxflags SGI + glxvendorpriv 4097 + extension + offset 445 + +############################################################################### +# +# EXT_packed_pixels commands +# Extension #23 +# +############################################################################### + +# (none) +newcategory: EXT_packed_pixels + +############################################################################### +# +# Extension #24 +# SGIS_texture_lod commands +# +############################################################################### + +# (none) +newcategory: SGIS_texture_lod + +############################################################################### +# +# Extension #25 +# SGIS_multisample commands +# +############################################################################### + +SampleMaskSGIS(value, invert) + return void + param value ClampedFloat32 in value + param invert Boolean in value + category SGIS_multisample + version 1.1 + glxropcode 2048 + glxflags SGI + extension + alias SampleMaskEXT + +SamplePatternSGIS(pattern) + return void + param pattern SamplePatternSGIS in value + category SGIS_multisample + version 1.0 + glxropcode 2049 + glxflags SGI + extension + alias SamplePatternEXT + +############################################################################### +# +# Extension #26 - no specification? +# +############################################################################### + +############################################################################### +# +# Extension #27 +# EXT_rescale_normal commands +# +############################################################################### + +# (none) +newcategory: EXT_rescale_normal + +############################################################################### +# +# Extension #28 - GLX_EXT_visual_info +# Extension #29 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #30 +# EXT_vertex_array commands +# +############################################################################### + +ArrayElementEXT(i) + return void + param i Int32 in value + category EXT_vertex_array + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + extension + alias ArrayElement + +ColorPointerEXT(size, type, stride, count, pointer) + return void + param size Int32 in value + param type ColorPointerType in value + param stride SizeI in value + param count SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 448 + +DrawArraysEXT(mode, first, count) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + category EXT_vertex_array + dlflags handcode + glxflags client-handcode server-handcode EXT + version 1.0 + glxropcode 4116 + extension + alias DrawArrays + +EdgeFlagPointerEXT(stride, count, pointer) + return void + param stride SizeI in value + param count SizeI in value + param pointer Boolean in array [COMPSIZE(stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 449 + +GetPointervEXT(pname, params) + return void + param pname GetPointervPName in value + param params VoidPointer out array [1] + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + alias GetPointerv + +IndexPointerEXT(type, stride, count, pointer) + return void + param type IndexPointerType in value + param stride SizeI in value + param count SizeI in value + param pointer Void in array [COMPSIZE(type/stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 450 + +NormalPointerEXT(type, stride, count, pointer) + return void + param type NormalPointerType in value + param stride SizeI in value + param count SizeI in value + param pointer Void in array [COMPSIZE(type/stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 451 + +TexCoordPointerEXT(size, type, stride, count, pointer) + return void + param size Int32 in value + param type TexCoordPointerType in value + param stride SizeI in value + param count SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 452 + +VertexPointerEXT(size, type, stride, count, pointer) + return void + param size Int32 in value + param type VertexPointerType in value + param stride SizeI in value + param count SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride/count)] retained + category EXT_vertex_array + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.0 + extension + offset 453 + +############################################################################### +# +# Extension #31 +# EXT_misc_attribute commands +# +############################################################################### + +# (none) +newcategory: EXT_misc_attribute + +############################################################################### +# +# Extension #32 +# SGIS_generate_mipmap commands +# +############################################################################### + +# (none) +newcategory: SGIS_generate_mipmap + +############################################################################### +# +# Extension #33 +# SGIX_clipmap commands +# +############################################################################### + +# (none) +newcategory: SGIX_clipmap + +############################################################################### +# +# Extension #34 +# SGIX_shadow commands +# +############################################################################### + +# (none) +newcategory: SGIX_shadow + +############################################################################### +# +# Extension #35 +# SGIS_texture_edge_clamp commands +# +############################################################################### + +# (none) +newcategory: SGIS_texture_edge_clamp + +############################################################################### +# +# Extension #36 +# SGIS_texture_border_clamp commands +# +############################################################################### + +# (none) +newcategory: SGIS_texture_border_clamp + +############################################################################### +# +# Extension #37 +# EXT_blend_minmax commands +# +############################################################################### + +BlendEquationEXT(mode) + return void + param mode BlendEquationModeEXT in value + category EXT_blend_minmax + version 1.0 + glxropcode 4097 + glxflags EXT + extension soft + alias BlendEquation + +############################################################################### +# +# Extension #38 +# EXT_blend_subtract commands +# +############################################################################### + +# (none) +newcategory: EXT_blend_subtract + +############################################################################### +# +# Extension #39 +# EXT_blend_logic_op commands +# +############################################################################### + +# (none) +newcategory: EXT_blend_logic_op + +############################################################################### +# +# Extension #40 - GLX_SGI_swap_control +# Extension #41 - GLX_SGI_video_sync +# Extension #42 - GLX_SGI_make_current_read +# Extension #43 - GLX_SGIX_video_source +# Extension #44 - GLX_EXT_visual_rating +# +############################################################################### + +############################################################################### +# +# Extension #45 +# SGIX_interlace commands +# +############################################################################### + +# (none) +newcategory: SGIX_interlace + +############################################################################### +# +# Extension #46 +# SGIX_pixel_tiles commands +# +############################################################################### + +# (none) +newcategory: SGIX_pixel_tiles + +############################################################################### +# +# Extension #47 - GLX_EXT_import_context +# Extension #48 - skipped +# Extension #49 - GLX_SGIX_fbconfig +# Extension #50 - GLX_SGIX_pbuffer +# +############################################################################### + +############################################################################### +# +# Extension #51 +# SGIX_texture_select commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_select + +############################################################################### +# +# Extension #52 +# SGIX_sprite commands +# +############################################################################### + +SpriteParameterfSGIX(pname, param) + return void + param pname SpriteParameterNameSGIX in value + param param CheckedFloat32 in value + category SGIX_sprite + version 1.0 + glxflags SGI + glxropcode 2060 + extension + offset 454 + +SpriteParameterfvSGIX(pname, params) + return void + param pname SpriteParameterNameSGIX in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIX_sprite + version 1.0 + glxflags SGI + glxropcode 2061 + extension + offset 455 + +SpriteParameteriSGIX(pname, param) + return void + param pname SpriteParameterNameSGIX in value + param param CheckedInt32 in value + category SGIX_sprite + version 1.0 + glxflags SGI + glxropcode 2062 + extension + offset 456 + +SpriteParameterivSGIX(pname, params) + return void + param pname SpriteParameterNameSGIX in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGIX_sprite + version 1.0 + glxflags SGI + glxropcode 2063 + extension + offset 457 + +############################################################################### +# +# Extension #53 +# SGIX_texture_multi_buffer commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_multi_buffer + +############################################################################### +# +# Extension #54 +# EXT_point_parameters / SGIS_point_parameters commands +# +############################################################################### + +PointParameterfEXT(pname, param) + return void + param pname PointParameterNameARB in value + param param CheckedFloat32 in value + category EXT_point_parameters + version 1.0 + glxflags SGI + extension + alias PointParameterfARB + +PointParameterfvEXT(pname, params) + return void + param pname PointParameterNameARB in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_point_parameters + version 1.0 + glxflags SGI + extension + alias PointParameterfvARB + +PointParameterfSGIS(pname, param) + return void + param pname PointParameterNameARB in value + param param CheckedFloat32 in value + category SGIS_point_parameters + version 1.0 + glxflags SGI + extension + alias PointParameterfARB + +PointParameterfvSGIS(pname, params) + return void + param pname PointParameterNameARB in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIS_point_parameters + version 1.0 + glxflags SGI + extension + alias PointParameterfvARB + +############################################################################### +# +# Extension #55 +# SGIX_instruments commands +# +############################################################################### + +GetInstrumentsSGIX() + return Int32 + dlflags notlistable + category SGIX_instruments + version 1.0 + glxflags SGI + glxvendorpriv 4102 + extension + offset 460 + +InstrumentsBufferSGIX(size, buffer) + return void + param size SizeI in value + param buffer Int32 out array [size] retained + dlflags notlistable + category SGIX_instruments + version 1.0 + glxflags SGI + glxvendorpriv 4103 + extension + offset 461 + +PollInstrumentsSGIX(marker_p) + return Int32 + param marker_p Int32 out array [1] + dlflags notlistable + category SGIX_instruments + version 1.0 + glxflags SGI + glxvendorpriv 4104 + extension + offset 462 + +ReadInstrumentsSGIX(marker) + return void + param marker Int32 in value + category SGIX_instruments + version 1.0 + glxflags SGI + glxropcode 2077 + extension + offset 463 + +StartInstrumentsSGIX() + return void + category SGIX_instruments + version 1.0 + glxflags SGI + glxropcode 2069 + extension + offset 464 + +StopInstrumentsSGIX(marker) + return void + param marker Int32 in value + category SGIX_instruments + version 1.0 + glxflags SGI + glxropcode 2070 + extension + offset 465 + +############################################################################### +# +# Extension #56 +# SGIX_texture_scale_bias commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_scale_bias + +############################################################################### +# +# Extension #57 +# SGIX_framezoom commands +# +############################################################################### + +FrameZoomSGIX(factor) + return void + param factor CheckedInt32 in value + category SGIX_framezoom + version 1.0 + glxflags SGI + glxropcode 2072 + extension + offset 466 + +############################################################################### +# +# Extension #58 +# SGIX_tag_sample_buffer commands +# +############################################################################### + +TagSampleBufferSGIX() + return void + category SGIX_tag_sample_buffer + version 1.0 + glxropcode 2050 + glxflags SGI + extension + offset 467 + +############################################################################### +# +# Extension #59 +# SGIX_polynomial_ffd commands +# +############################################################################### + +DeformationMap3dSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) + return void + param target FfdTargetSGIX in value + param u1 CoordD in value + param u2 CoordD in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordD in value + param v2 CoordD in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param w1 CoordD in value + param w2 CoordD in value + param wstride Int32 in value + param worder CheckedInt32 in value + param points CoordD in array [COMPSIZE(target/ustride/uorder/vstride/vorder/wstride/worder)] + dlflags handcode + category SGIX_polynomial_ffd + version 1.0 + glxflags SGI ignore + glxropcode 2073 + extension + offset ? + +DeformationMap3fSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) + return void + param target FfdTargetSGIX in value + param u1 CoordF in value + param u2 CoordF in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordF in value + param v2 CoordF in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param w1 CoordF in value + param w2 CoordF in value + param wstride Int32 in value + param worder CheckedInt32 in value + param points CoordF in array [COMPSIZE(target/ustride/uorder/vstride/vorder/wstride/worder)] + category SGIX_polynomial_ffd + dlflags handcode + version 1.0 + glxflags SGI ignore + glxropcode 2074 + extension + offset ? + +DeformSGIX(mask) + return void + param mask FfdMaskSGIX in value + category SGIX_polynomial_ffd + version 1.0 + glxflags SGI ignore + glxropcode 2075 + extension + offset ? + +LoadIdentityDeformationMapSGIX(mask) + return void + param mask FfdMaskSGIX in value + category SGIX_polynomial_ffd + version 1.0 + glxflags SGI ignore + glxropcode 2076 + extension + offset ? + +############################################################################### +# +# Extension #60 +# SGIX_reference_plane commands +# +############################################################################### + +ReferencePlaneSGIX(equation) + return void + param equation Float64 in array [4] + category SGIX_reference_plane + version 1.0 + glxflags SGI + glxropcode 2071 + extension + offset 468 + +############################################################################### +# +# Extension #61 +# SGIX_flush_raster commands +# +############################################################################### + +FlushRasterSGIX() + return void + category SGIX_flush_raster + version 1.0 + dlflags notlistable + glxflags SGI + glxvendorpriv 4105 + extension + offset 469 + +############################################################################### +# +# Extension #62 - GLX_SGIX_cushion +# +############################################################################### + +############################################################################### +# +# Extension #63 +# SGIX_depth_texture commands +# +############################################################################### + +# (none) +newcategory: SGIX_depth_texture + +############################################################################### +# +# Extension #64 +# SGIS_fog_function commands +# +############################################################################### + +FogFuncSGIS(n, points) + return void + param n SizeI in value + param points Float32 in array [n*2] + category SGIS_fog_function + version 1.1 + glxflags SGI + glxropcode 2067 + extension + offset + +# Need to insert GLX information +GetFogFuncSGIS(points) + return void + param points Float32 out array [COMPSIZE()] + category SGIS_fog_function + version 1.1 + dlflags notlistable + glxflags ignore + extension + offset + +############################################################################### +# +# Extension #65 +# SGIX_fog_offset commands +# +############################################################################### + +# (none) +newcategory: SGIX_fog_offset + +############################################################################### +# +# Extension #66 +# HP_image_transform commands +# +############################################################################### + +ImageTransformParameteriHP(target, pname, param) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param param Int32 in value + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +ImageTransformParameterfHP(target, pname, param) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param param Float32 in value + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +ImageTransformParameterivHP(target, pname, params) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param params Int32 in array [COMPSIZE(pname)] + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +ImageTransformParameterfvHP(target, pname, params) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param params Float32 in array [COMPSIZE(pname)] + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +GetImageTransformParameterivHP(target, pname, params) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param params Int32 out array [COMPSIZE(pname)] + dlflags notlistable + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +GetImageTransformParameterfvHP(target, pname, params) + return void + param target ImageTransformTargetHP in value + param pname ImageTransformPNameHP in value + param params Float32 out array [COMPSIZE(pname)] + category HP_image_transform + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #67 +# HP_convolution_border_modes commands +# +############################################################################### + +# (none) +newcategory: HP_convolution_border_modes + +############################################################################### +# +# Extension #68 +# INGR_palette_buffer commands +# +############################################################################### + +#@ (Intergraph hasn't provided a spec) + +############################################################################### +# +# Extension #69 +# SGIX_texture_add_env commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_add_env + +############################################################################### +# +# Extension #70 - skipped +# Extension #71 - skipped +# Extension #72 - skipped +# Extension #73 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #74 +# EXT_color_subtable commands +# +# This was probably never actually shipped as an EXT - just written up as a +# reference for OpenGL 1.2 ARB_imaging. +# +############################################################################### + +ColorSubTableEXT(target, start, count, format, type, data) + return void + param target ColorTableTarget in value + param start SizeI in value + param count SizeI in value + param format PixelFormat in value + param type PixelType in value + param data Void in array [COMPSIZE(format/type/count)] + category EXT_color_subtable + version 1.2 + alias ColorSubTable + +CopyColorSubTableEXT(target, start, x, y, width) + return void + param target ColorTableTarget in value + param start SizeI in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category EXT_color_subtable + version 1.2 + alias CopyColorSubTable + +############################################################################### +# +# Extension #75 - GLU_EXT_object_space_tess +# +############################################################################### + +############################################################################### +# +# Extension #76 +# PGI_vertex_hints commands +# +############################################################################### + +# (none) +newcategory: PGI_vertex_hints + +############################################################################### +# +# Extension #77 +# PGI_misc_hints commands +# +############################################################################### + +HintPGI(target, mode) + return void + param target HintTargetPGI in value + param mode Int32 in value + category PGI_misc_hints + version 1.1 + offset 544 + +############################################################################### +# +# Extension #78 +# EXT_paletted_texture commands +# +############################################################################### + +ColorTableEXT(target, internalFormat, width, format, type, table) + return void + param target ColorTableTarget in value + param internalFormat PixelInternalFormat in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param table Void in array [COMPSIZE(format/type/width)] + category EXT_paletted_texture + version 1.1 + alias ColorTable + +GetColorTableEXT(target, format, type, data) + return void + param target ColorTableTarget in value + param format PixelFormat in value + param type PixelType in value + param data Void out array [COMPSIZE(target/format/type)] + category EXT_paletted_texture + version 1.1 + offset 550 + +GetColorTableParameterivEXT(target, pname, params) + return void + param target ColorTableTarget in value + param pname GetColorTableParameterPName in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_paletted_texture + version 1.1 + offset 551 + +GetColorTableParameterfvEXT(target, pname, params) + return void + param target ColorTableTarget in value + param pname GetColorTableParameterPName in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_paletted_texture + version 1.1 + offset 552 + +############################################################################### +# +# Extension #79 +# EXT_clip_volume_hint commands +# +############################################################################### + +# (none) +newcategory: EXT_clip_volume_hint + +############################################################################### +# +# Extension #80 +# SGIX_list_priority commands +# +############################################################################### + +# @@@ Needs vendorpriv opcodes assigned +GetListParameterfvSGIX(list, pname, params) + return void + param list List in value + param pname ListParameterName in value + param params CheckedFloat32 out array [COMPSIZE(pname)] + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxvendorpriv ? + extension + offset 470 + +# @@@ Needs vendorpriv opcodes assigned +GetListParameterivSGIX(list, pname, params) + return void + param list List in value + param pname ListParameterName in value + param params CheckedInt32 out array [COMPSIZE(pname)] + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxvendorpriv ? + extension + offset 471 + +ListParameterfSGIX(list, pname, param) + return void + param list List in value + param pname ListParameterName in value + param param CheckedFloat32 in value + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxropcode 2078 + extension + offset 472 + +ListParameterfvSGIX(list, pname, params) + return void + param list List in value + param pname ListParameterName in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxropcode 2079 + extension + offset 473 + +ListParameteriSGIX(list, pname, param) + return void + param list List in value + param pname ListParameterName in value + param param CheckedInt32 in value + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxropcode 2080 + extension + offset 474 + +ListParameterivSGIX(list, pname, params) + return void + param list List in value + param pname ListParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + dlflags notlistable + glxflags ignore + category SGIX_list_priority + version 1.0 + glxropcode 2081 + extension + offset 475 + +############################################################################### +# +# Extension #81 +# SGIX_ir_instrument1 commands +# +############################################################################### + +# (none) +newcategory: SGIX_ir_instrument1 + +############################################################################### +# +# Extension #82 +# SGIX_calligraphic_fragment commands +# +############################################################################### + +# (none) +newcategory: SGIX_calligraphic_fragment + +############################################################################### +# +# Extension #83 - GLX_SGIX_video_resize +# +############################################################################### + +############################################################################### +# +# Extension #84 +# SGIX_texture_lod_bias commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_lod_bias + +############################################################################### +# +# Extension #85 - skipped +# Extension #86 - GLX_SGIX_dmbuffer +# Extension #87 - skipped +# Extension #88 - skipped +# Extension #89 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #90 +# SGIX_shadow_ambient commands +# +############################################################################### + +# (none) +newcategory: SGIX_shadow_ambient + +############################################################################### +# +# Extension #91 - GLX_SGIX_swap_group +# Extension #92 - GLX_SGIX_swap_barrier +# +############################################################################### + +############################################################################### +# +# Extension #93 +# EXT_index_texture commands +# +############################################################################### + +# (none) +newcategory: EXT_index_texture + +############################################################################### +# +# Extension #94 +# EXT_index_material commands +# +############################################################################### + +IndexMaterialEXT(face, mode) + return void + param face MaterialFace in value + param mode IndexMaterialParameterEXT in value + category EXT_index_material + version 1.1 + extension soft + glxflags ignore + offset 538 + +############################################################################### +# +# Extension #95 +# EXT_index_func commands +# +############################################################################### + +IndexFuncEXT(func, ref) + return void + param func IndexFunctionEXT in value + param ref ClampedFloat32 in value + category EXT_index_func + version 1.1 + extension soft + glxflags ignore + offset 539 + +############################################################################### +# +# Extension #96 +# EXT_index_array_formats commands +# +############################################################################### + +# (none) +newcategory: EXT_index_array_formats + +############################################################################### +# +# Extension #97 +# EXT_compiled_vertex_array commands +# +############################################################################### + +LockArraysEXT(first, count) + return void + param first Int32 in value + param count SizeI in value + category EXT_compiled_vertex_array + version 1.1 + dlflags notlistable + extension soft + glxflags ignore + offset 540 + +UnlockArraysEXT() + return void + category EXT_compiled_vertex_array + version 1.1 + dlflags notlistable + extension soft + glxflags ignore + offset 541 + +############################################################################### +# +# Extension #98 +# EXT_cull_vertex commands +# +############################################################################### + +CullParameterdvEXT(pname, params) + return void + param pname CullParameterEXT in value + param params Float64 out array [4] + category EXT_cull_vertex + version 1.1 + dlflags notlistable + extension soft + glxflags ignore + offset 542 + +CullParameterfvEXT(pname, params) + return void + param pname CullParameterEXT in value + param params Float32 out array [4] + category EXT_cull_vertex + version 1.1 + dlflags notlistable + extension soft + glxflags ignore + offset 543 + +############################################################################### +# +# Extension #99 - skipped +# Extension #100 - GLU_EXT_nurbs_tessellator +# +############################################################################### + +############################################################################### +# +# Extension #101 +# SGIX_ycrcb commands +# +############################################################################### + +# (none) +newcategory: SGIX_ycrcb + +############################################################################### +# +# Extension #102 +# SGIX_fragment_lighting commands +# +############################################################################### + +FragmentColorMaterialSGIX(face, mode) + return void + param face MaterialFace in value + param mode MaterialParameter in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 476 + +FragmentLightfSGIX(light, pname, param) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param param CheckedFloat32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 477 + +FragmentLightfvSGIX(light, pname, params) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 478 + +FragmentLightiSGIX(light, pname, param) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param param CheckedInt32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 479 + +FragmentLightivSGIX(light, pname, params) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 480 + +FragmentLightModelfSGIX(pname, param) + return void + param pname FragmentLightModelParameterSGIX in value + param param CheckedFloat32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 481 + +FragmentLightModelfvSGIX(pname, params) + return void + param pname FragmentLightModelParameterSGIX in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 482 + +FragmentLightModeliSGIX(pname, param) + return void + param pname FragmentLightModelParameterSGIX in value + param param CheckedInt32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 483 + +FragmentLightModelivSGIX(pname, params) + return void + param pname FragmentLightModelParameterSGIX in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 484 + +FragmentMaterialfSGIX(face, pname, param) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param param CheckedFloat32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 485 + +FragmentMaterialfvSGIX(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 486 + +FragmentMaterialiSGIX(face, pname, param) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param param CheckedInt32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 487 + +FragmentMaterialivSGIX(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 488 + +GetFragmentLightfvSGIX(light, pname, params) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param params Float32 out array [COMPSIZE(pname)] + category SGIX_fragment_lighting + dlflags notlistable + glxflags ignore + version 1.0 + extension + offset 489 + +GetFragmentLightivSGIX(light, pname, params) + return void + param light FragmentLightNameSGIX in value + param pname FragmentLightParameterSGIX in value + param params Int32 out array [COMPSIZE(pname)] + category SGIX_fragment_lighting + dlflags notlistable + glxflags ignore + version 1.0 + extension + offset 490 + +GetFragmentMaterialfvSGIX(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params Float32 out array [COMPSIZE(pname)] + category SGIX_fragment_lighting + dlflags notlistable + glxflags ignore + version 1.0 + extension + offset 491 + +GetFragmentMaterialivSGIX(face, pname, params) + return void + param face MaterialFace in value + param pname MaterialParameter in value + param params Int32 out array [COMPSIZE(pname)] + category SGIX_fragment_lighting + dlflags notlistable + glxflags ignore + version 1.0 + extension + offset 492 + +LightEnviSGIX(pname, param) + return void + param pname LightEnvParameterSGIX in value + param param CheckedInt32 in value + category SGIX_fragment_lighting + glxflags ignore + version 1.0 + extension + offset 493 + +############################################################################### +# +# Extension #103 - skipped +# Extension #104 - skipped +# Extension #105 - skipped +# Extension #106 - skipped +# Extension #107 - skipped +# Extension #108 - skipped +# Extension #109 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #110 +# IBM_rasterpos_clip commands +# +############################################################################### + +# (none) +newcategory: IBM_rasterpos_clip + +############################################################################### +# +# Extension #111 +# HP_texture_lighting commands +# +############################################################################### + +# (none) +newcategory: HP_texture_lighting + +############################################################################### +# +# Extension #112 +# EXT_draw_range_elements commands +# +############################################################################### + +# Spec entries to be written +DrawRangeElementsEXT(mode, start, end, count, type, indices) + return void + param mode BeginMode in value + param start UInt32 in value + param end UInt32 in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + category EXT_draw_range_elements + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.1 + alias DrawRangeElements + +############################################################################### +# +# Extension #113 +# WIN_phong_shading commands +# +############################################################################### + +# (none) +newcategory: WIN_phong_shading + +############################################################################### +# +# Extension #114 +# WIN_specular_fog commands +# +############################################################################### + +# (none) +newcategory: WIN_specular_fog + +############################################################################### +# +# Extension #115 - skipped +# Extension #116 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #117 +# EXT_light_texture commands +# +############################################################################### + +# Spec entries to be written +ApplyTextureEXT(mode) + return void + param mode LightTextureModeEXT in value + category EXT_light_texture + version 1.1 + glxropcode ? + offset ? + +TextureLightEXT(pname) + return void + param pname LightTexturePNameEXT in value + category EXT_light_texture + version 1.1 + glxropcode ? + offset ? + +TextureMaterialEXT(face, mode) + return void + param face MaterialFace in value + param mode MaterialParameter in value + category EXT_light_texture + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #118 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #119 +# SGIX_blend_alpha_minmax commands +# +############################################################################### + +# (none) +newcategory: SGIX_blend_alpha_minmax + +############################################################################### +# +# Extension #120 - skipped +# Extension #121 - skipped +# Extension #122 - skipped +# Extension #123 - skipped +# Extension #124 - skipped +# Extension #125 - skipped +# Extension #126 - skipped +# Extension #127 - skipped +# Extension #128 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #129 +# EXT_bgra commands +# +############################################################################### + +# (none) +newcategory: EXT_bgra + +############################################################################### +# +# Extension #130 - skipped +# Extension #131 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #132 +# SGIX_async commands +# +############################################################################### + +AsyncMarkerSGIX(marker) + return void + param marker UInt32 in value + category SGIX_async + version 1.0 + glxflags ignore + extension + offset ? + +FinishAsyncSGIX(markerp) + return Int32 + param markerp UInt32 out array [1] + category SGIX_async + version 1.0 + dlflags notlistable + glxflags ignore + extension + offset ? + +PollAsyncSGIX(markerp) + return Int32 + param markerp UInt32 out array [1] + category SGIX_async + version 1.0 + dlflags notlistable + glxflags ignore + extension + offset ? + +GenAsyncMarkersSGIX(range) + return UInt32 + param range SizeI in value + category SGIX_async + version 1.0 + dlflags notlistable + glxflags ignore + extension + offset ? + +DeleteAsyncMarkersSGIX(marker, range) + return void + param marker UInt32 in value + param range SizeI in value + category SGIX_async + version 1.0 + dlflags notlistable + glxflags ignore + extension + offset ? + +IsAsyncMarkerSGIX(marker) + return Boolean + param marker UInt32 in value + category SGIX_async + version 1.0 + dlflags notlistable + glxflags ignore + extension + offset ? + +############################################################################### +# +# Extension #133 +# SGIX_async_pixel commands +# +############################################################################### + +# (none) +newcategory: SGIX_async_pixel + +############################################################################### +# +# Extension #134 +# SGIX_async_histogram commands +# +############################################################################### + +# (none) +newcategory: SGIX_async_histogram + +############################################################################### +# +# Extension #135 - skipped (INTEL_texture_scissor was never implemented) +# +############################################################################### + +############################################################################### +# +# Extension #136 +# INTEL_parallel_arrays commands +# +############################################################################### + +VertexPointervINTEL(size, type, pointer) + return void + param size Int32 in value + param type VertexPointerType in value + param pointer VoidPointer in array [4] retained + category INTEL_parallel_arrays + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.1 + offset ? + +NormalPointervINTEL(type, pointer) + return void + param type NormalPointerType in value + param pointer VoidPointer in array [4] retained + category INTEL_parallel_arrays + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.1 + offset ? + +ColorPointervINTEL(size, type, pointer) + return void + param size Int32 in value + param type VertexPointerType in value + param pointer VoidPointer in array [4] retained + category INTEL_parallel_arrays + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.1 + offset ? + +TexCoordPointervINTEL(size, type, pointer) + return void + param size Int32 in value + param type VertexPointerType in value + param pointer VoidPointer in array [4] retained + category INTEL_parallel_arrays + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.1 + offset ? + + +############################################################################### +# +# Extension #137 +# HP_occlusion_test commands +# +############################################################################### + +# (none) +newcategory: HP_occlusion_test + +############################################################################### +# +# Extension #138 +# EXT_pixel_transform commands +# +############################################################################### + +PixelTransformParameteriEXT(target, pname, param) + return void + param target PixelTransformTargetEXT in value + param pname PixelTransformPNameEXT in value + param param Int32 in value + category EXT_pixel_transform + version 1.1 + glxropcode ? + offset ? + +PixelTransformParameterfEXT(target, pname, param) + return void + param target PixelTransformTargetEXT in value + param pname PixelTransformPNameEXT in value + param param Float32 in value + category EXT_pixel_transform + version 1.1 + glxropcode ? + offset ? + +PixelTransformParameterivEXT(target, pname, params) + return void + param target PixelTransformTargetEXT in value + param pname PixelTransformPNameEXT in value + param params Int32 in array [1] + category EXT_pixel_transform + version 1.1 + glxropcode ? + offset ? + +PixelTransformParameterfvEXT(target, pname, params) + return void + param target PixelTransformTargetEXT in value + param pname PixelTransformPNameEXT in value + param params Float32 in array [1] + category EXT_pixel_transform + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #139 +# EXT_pixel_transform_color_table commands +# +############################################################################### + +# (none) +newcategory: EXT_pixel_transform_color_table + +############################################################################### +# +# Extension #140 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #141 +# EXT_shared_texture_palette commands +# +############################################################################### + +# (none) +newcategory: EXT_shared_texture_palette + +############################################################################### +# +# Extension #142 - GLX_SGIS_blended_overlay +# Extension #143 - GLX_SGIS_shared_multisample +# +############################################################################### + +############################################################################### +# +# Extension #144 +# EXT_separate_specular_color commands +# +############################################################################### + +# (none) +newcategory: EXT_separate_specular_color + +############################################################################### +# +# Extension #145 +# EXT_secondary_color commands +# +############################################################################### + +SecondaryColor3bEXT(red, green, blue) + return void + param red ColorB in value + param green ColorB in value + param blue ColorB in value + category EXT_secondary_color + vectorequiv SecondaryColor3bvEXT + version 1.1 + alias SecondaryColor3b + +SecondaryColor3bvEXT(v) + return void + param v ColorB in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4126 + alias SecondaryColor3bv + +SecondaryColor3dEXT(red, green, blue) + return void + param red ColorD in value + param green ColorD in value + param blue ColorD in value + category EXT_secondary_color + vectorequiv SecondaryColor3dvEXT + version 1.1 + alias SecondaryColor3d + +SecondaryColor3dvEXT(v) + return void + param v ColorD in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4130 + alias SecondaryColor3dv + +SecondaryColor3fEXT(red, green, blue) + return void + param red ColorF in value + param green ColorF in value + param blue ColorF in value + category EXT_secondary_color + vectorequiv SecondaryColor3fvEXT + version 1.1 + alias SecondaryColor3f + +SecondaryColor3fvEXT(v) + return void + param v ColorF in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4129 + alias SecondaryColor3fv + +SecondaryColor3iEXT(red, green, blue) + return void + param red ColorI in value + param green ColorI in value + param blue ColorI in value + category EXT_secondary_color + vectorequiv SecondaryColor3ivEXT + version 1.1 + alias SecondaryColor3i + +SecondaryColor3ivEXT(v) + return void + param v ColorI in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4128 + offset 568 + alias SecondaryColor3iv + +SecondaryColor3sEXT(red, green, blue) + return void + param red ColorS in value + param green ColorS in value + param blue ColorS in value + category EXT_secondary_color + vectorequiv SecondaryColor3svEXT + version 1.1 + alias SecondaryColor3s + +SecondaryColor3svEXT(v) + return void + param v ColorS in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4127 + alias SecondaryColor3sv + +SecondaryColor3ubEXT(red, green, blue) + return void + param red ColorUB in value + param green ColorUB in value + param blue ColorUB in value + category EXT_secondary_color + vectorequiv SecondaryColor3ubvEXT + version 1.1 + alias SecondaryColor3ub + +SecondaryColor3ubvEXT(v) + return void + param v ColorUB in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4131 + alias SecondaryColor3ubv + +SecondaryColor3uiEXT(red, green, blue) + return void + param red ColorUI in value + param green ColorUI in value + param blue ColorUI in value + category EXT_secondary_color + vectorequiv SecondaryColor3uivEXT + version 1.1 + alias SecondaryColor3ui + +SecondaryColor3uivEXT(v) + return void + param v ColorUI in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4133 + alias SecondaryColor3uiv + +SecondaryColor3usEXT(red, green, blue) + return void + param red ColorUS in value + param green ColorUS in value + param blue ColorUS in value + category EXT_secondary_color + vectorequiv SecondaryColor3usvEXT + version 1.1 + alias SecondaryColor3us + +SecondaryColor3usvEXT(v) + return void + param v ColorUS in array [3] + category EXT_secondary_color + version 1.1 + glxropcode 4132 + alias SecondaryColor3usv + +SecondaryColorPointerEXT(size, type, stride, pointer) + return void + param size Int32 in value + param type ColorPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category EXT_secondary_color + dlflags notlistable + glxflags client-handcode server-handcode EXT + version 1.1 + extension + alias SecondaryColorPointer + +############################################################################### +# +# Extension #146 +# EXT_texture_env commands +# +############################################################################### + +# Dead extension - never implemented (removed from registry!) +# (none) +# newcategory: EXT_texture_env + +############################################################################### +# +# Extension #147 +# EXT_texture_perturb_normal commands +# +############################################################################### + +TextureNormalEXT(mode) + return void + param mode TextureNormalModeEXT in value + category EXT_texture_perturb_normal + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #148 +# EXT_multi_draw_arrays commands +# +############################################################################### + +# first and count are really 'in' +MultiDrawArraysEXT(mode, first, count, primcount) + return void + param mode BeginMode in value + param first Int32 out array [COMPSIZE(primcount)] + param count SizeI out array [COMPSIZE(primcount)] + param primcount SizeI in value + category EXT_multi_draw_arrays + version 1.1 + glxropcode ? + alias MultiDrawArrays + +MultiDrawElementsEXT(mode, count, type, indices, primcount) + return void + param mode BeginMode in value + param count SizeI in array [COMPSIZE(primcount)] + param type DrawElementsType in value + param indices VoidPointer in array [COMPSIZE(primcount)] + param primcount SizeI in value + category EXT_multi_draw_arrays + version 1.1 + glxropcode ? + alias MultiDrawElements + +############################################################################### +# +# Extension #149 +# EXT_fog_coord commands +# +############################################################################### + +FogCoordfEXT(coord) + return void + param coord CoordF in value + category EXT_fog_coord + vectorequiv FogCoordfvEXT + version 1.1 + alias FogCoordf + +FogCoordfvEXT(coord) + return void + param coord CoordF in array [1] + category EXT_fog_coord + version 1.1 + glxropcode 4124 + alias FogCoordfv + +FogCoorddEXT(coord) + return void + param coord CoordD in value + category EXT_fog_coord + vectorequiv FogCoorddvEXT + version 1.1 + alias FogCoordd + +FogCoorddvEXT(coord) + return void + param coord CoordD in array [1] + category EXT_fog_coord + version 1.1 + glxropcode 4125 + alias FogCoorddv + +FogCoordPointerEXT(type, stride, pointer) + return void + param type FogPointerTypeEXT in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category EXT_fog_coord + dlflags notlistable + version 1.1 + glxflags client-handcode server-handcode EXT + alias FogCoordPointer + +############################################################################### +# +# Extension #150 - skipped +# Extension #151 - skipped +# Extension #152 - skipped +# Extension #153 - skipped +# Extension #154 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #155 +# REND_screen_coordinates commands +# +############################################################################### + +# (none) +newcategory: REND_screen_coordinates + +############################################################################### +# +# Extension #156 +# EXT_coordinate_frame commands +# +############################################################################### + +Tangent3bEXT(tx, ty, tz) + return void + param tx Int8 in value + param ty Int8 in value + param tz Int8 in value + category EXT_coordinate_frame + vectorequiv Tangent3bvEXT + version 1.1 + offset ? + +Tangent3bvEXT(v) + return void + param v Int8 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Tangent3dEXT(tx, ty, tz) + return void + param tx CoordD in value + param ty CoordD in value + param tz CoordD in value + category EXT_coordinate_frame + vectorequiv Tangent3dvEXT + version 1.1 + offset ? + +Tangent3dvEXT(v) + return void + param v CoordD in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Tangent3fEXT(tx, ty, tz) + return void + param tx CoordF in value + param ty CoordF in value + param tz CoordF in value + category EXT_coordinate_frame + vectorequiv Tangent3fvEXT + version 1.1 + offset ? + +Tangent3fvEXT(v) + return void + param v CoordF in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Tangent3iEXT(tx, ty, tz) + return void + param tx Int32 in value + param ty Int32 in value + param tz Int32 in value + category EXT_coordinate_frame + vectorequiv Tangent3ivEXT + version 1.1 + offset ? + +Tangent3ivEXT(v) + return void + param v Int32 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Tangent3sEXT(tx, ty, tz) + return void + param tx Int16 in value + param ty Int16 in value + param tz Int16 in value + category EXT_coordinate_frame + vectorequiv Tangent3svEXT + version 1.1 + offset ? + +Tangent3svEXT(v) + return void + param v Int16 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Binormal3bEXT(bx, by, bz) + return void + param bx Int8 in value + param by Int8 in value + param bz Int8 in value + category EXT_coordinate_frame + vectorequiv Binormal3bvEXT + version 1.1 + offset ? + +Binormal3bvEXT(v) + return void + param v Int8 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Binormal3dEXT(bx, by, bz) + return void + param bx CoordD in value + param by CoordD in value + param bz CoordD in value + category EXT_coordinate_frame + vectorequiv Binormal3dvEXT + version 1.1 + offset ? + +Binormal3dvEXT(v) + return void + param v CoordD in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Binormal3fEXT(bx, by, bz) + return void + param bx CoordF in value + param by CoordF in value + param bz CoordF in value + category EXT_coordinate_frame + vectorequiv Binormal3fvEXT + version 1.1 + offset ? + +Binormal3fvEXT(v) + return void + param v CoordF in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Binormal3iEXT(bx, by, bz) + return void + param bx Int32 in value + param by Int32 in value + param bz Int32 in value + category EXT_coordinate_frame + vectorequiv Binormal3ivEXT + version 1.1 + offset ? + +Binormal3ivEXT(v) + return void + param v Int32 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +Binormal3sEXT(bx, by, bz) + return void + param bx Int16 in value + param by Int16 in value + param bz Int16 in value + category EXT_coordinate_frame + vectorequiv Binormal3svEXT + version 1.1 + offset ? + +Binormal3svEXT(v) + return void + param v Int16 in array [3] + category EXT_coordinate_frame + version 1.1 + glxropcode ? + offset ? + +TangentPointerEXT(type, stride, pointer) + return void + param type TangentPointerTypeEXT in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category EXT_coordinate_frame + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + offset ? + +BinormalPointerEXT(type, stride, pointer) + return void + param type BinormalPointerTypeEXT in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category EXT_coordinate_frame + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.1 + offset ? + +############################################################################### +# +# Extension #157 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #158 +# EXT_texture_env_combine commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_env_combine + +############################################################################### +# +# Extension #159 +# APPLE_specular_vector commands +# +############################################################################### + +# (none) +newcategory: APPLE_specular_vector + +############################################################################### +# +# Extension #160 +# APPLE_transform_hint commands +# +############################################################################### + +# (none) +newcategory: APPLE_transform_hint + +############################################################################### +# +# Extension #161 +# SGIX_fog_scale commands +# +############################################################################### + +# (none) +newcategory: SGIX_fog_scale + +############################################################################### +# +# Extension #162 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #163 +# SUNX_constant_data commands +# +############################################################################### + +FinishTextureSUNX() + return void + category SUNX_constant_data + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #164 +# SUN_global_alpha commands +# +############################################################################### + +GlobalAlphaFactorbSUN(factor) + return void + param factor Int8 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactorsSUN(factor) + return void + param factor Int16 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactoriSUN(factor) + return void + param factor Int32 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactorfSUN(factor) + return void + param factor Float32 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactordSUN(factor) + return void + param factor Float64 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactorubSUN(factor) + return void + param factor UInt8 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactorusSUN(factor) + return void + param factor UInt16 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +GlobalAlphaFactoruiSUN(factor) + return void + param factor UInt32 in value + category SUN_global_alpha + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #165 +# SUN_triangle_list commands +# +############################################################################### + +ReplacementCodeuiSUN(code) + return void + param code UInt32 in value + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeusSUN(code) + return void + param code UInt16 in value + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeubSUN(code) + return void + param code UInt8 in value + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuivSUN(code) + return void + param code UInt32 in array [COMPSIZE()] + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeusvSUN(code) + return void + param code UInt16 in array [COMPSIZE()] + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeubvSUN(code) + return void + param code UInt8 in array [COMPSIZE()] + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +ReplacementCodePointerSUN(type, stride, pointer) + return void + param type ReplacementCodeTypeSUN in value + param stride SizeI in value + param pointer VoidPointer in array [COMPSIZE(type/stride)] retained + category SUN_triangle_list + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #166 +# SUN_vertex commands +# +############################################################################### + +Color4ubVertex2fSUN(r, g, b, a, x, y) + return void + param r UInt8 in value + param g UInt8 in value + param b UInt8 in value + param a UInt8 in value + param x Float32 in value + param y Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color4ubVertex2fvSUN(c, v) + return void + param c UInt8 in array [4] + param v Float32 in array [2] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color4ubVertex3fSUN(r, g, b, a, x, y, z) + return void + param r UInt8 in value + param g UInt8 in value + param b UInt8 in value + param a UInt8 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color4ubVertex3fvSUN(c, v) + return void + param c UInt8 in array [4] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color3fVertex3fSUN(r, g, b, x, y, z) + return void + param r Float32 in value + param g Float32 in value + param b Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color3fVertex3fvSUN(c, v) + return void + param c Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Normal3fVertex3fSUN(nx, ny, nz, x, y, z) + return void + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Normal3fVertex3fvSUN(n, v) + return void + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color4fNormal3fVertex3fSUN(r, g, b, a, nx, ny, nz, x, y, z) + return void + param r Float32 in value + param g Float32 in value + param b Float32 in value + param a Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +Color4fNormal3fVertex3fvSUN(c, n, v) + return void + param c Float32 in array [4] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fVertex3fSUN(s, t, x, y, z) + return void + param s Float32 in value + param t Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fVertex3fvSUN(tc, v) + return void + param tc Float32 in array [2] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord4fVertex4fSUN(s, t, p, q, x, y, z, w) + return void + param s Float32 in value + param t Float32 in value + param p Float32 in value + param q Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord4fVertex4fvSUN(tc, v) + return void + param tc Float32 in array [4] + param v Float32 in array [4] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor4ubVertex3fSUN(s, t, r, g, b, a, x, y, z) + return void + param s Float32 in value + param t Float32 in value + param r UInt8 in value + param g UInt8 in value + param b UInt8 in value + param a UInt8 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor4ubVertex3fvSUN(tc, c, v) + return void + param tc Float32 in array [2] + param c UInt8 in array [4] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor3fVertex3fSUN(s, t, r, g, b, x, y, z) + return void + param s Float32 in value + param t Float32 in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor3fVertex3fvSUN(tc, c, v) + return void + param tc Float32 in array [2] + param c Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fNormal3fVertex3fSUN(s, t, nx, ny, nz, x, y, z) + return void + param s Float32 in value + param t Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fNormal3fVertex3fvSUN(tc, n, v) + return void + param tc Float32 in array [2] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor4fNormal3fVertex3fSUN(s, t, r, g, b, a, nx, ny, nz, x, y, z) + return void + param s Float32 in value + param t Float32 in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param a Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord2fColor4fNormal3fVertex3fvSUN(tc, c, n, v) + return void + param tc Float32 in array [2] + param c Float32 in array [4] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord4fColor4fNormal3fVertex4fSUN(s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w) + return void + param s Float32 in value + param t Float32 in value + param p Float32 in value + param q Float32 in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param a Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +TexCoord4fColor4fNormal3fVertex4fvSUN(tc, c, n, v) + return void + param tc Float32 in array [4] + param c Float32 in array [4] + param n Float32 in array [3] + param v Float32 in array [4] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiVertex3fSUN(rc, x, y, z) + return void + param rc ReplacementCodeSUN in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiVertex3fvSUN(rc, v) + return void + param rc ReplacementCodeSUN in array [1] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor4ubVertex3fSUN(rc, r, g, b, a, x, y, z) + return void + param rc ReplacementCodeSUN in value + param r UInt8 in value + param g UInt8 in value + param b UInt8 in value + param a UInt8 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor4ubVertex3fvSUN(rc, c, v) + return void + param rc ReplacementCodeSUN in array [1] + param c UInt8 in array [4] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor3fVertex3fSUN(rc, r, g, b, x, y, z) + return void + param rc ReplacementCodeSUN in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor3fVertex3fvSUN(rc, c, v) + return void + param rc ReplacementCodeSUN in array [1] + param c Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiNormal3fVertex3fSUN(rc, nx, ny, nz, x, y, z) + return void + param rc ReplacementCodeSUN in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiNormal3fVertex3fvSUN(rc, n, v) + return void + param rc ReplacementCodeSUN in array [1] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor4fNormal3fVertex3fSUN(rc, r, g, b, a, nx, ny, nz, x, y, z) + return void + param rc ReplacementCodeSUN in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param a Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiColor4fNormal3fVertex3fvSUN(rc, c, n, v) + return void + param rc ReplacementCodeSUN in array [1] + param c Float32 in array [4] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fVertex3fSUN(rc, s, t, x, y, z) + return void + param rc ReplacementCodeSUN in value + param s Float32 in value + param t Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fVertex3fvSUN(rc, tc, v) + return void + param rc ReplacementCodeSUN in array [1] + param tc Float32 in array [2] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(rc, s, t, nx, ny, nz, x, y, z) + return void + param rc ReplacementCodeSUN in value + param s Float32 in value + param t Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(rc, tc, n, v) + return void + param rc ReplacementCodeSUN in array [1] + param tc Float32 in array [2] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(rc, s, t, r, g, b, a, nx, ny, nz, x, y, z) + return void + param rc ReplacementCodeSUN in value + param s Float32 in value + param t Float32 in value + param r Float32 in value + param g Float32 in value + param b Float32 in value + param a Float32 in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(rc, tc, c, n, v) + return void + param rc ReplacementCodeSUN in array [1] + param tc Float32 in array [2] + param c Float32 in array [4] + param n Float32 in array [3] + param v Float32 in array [3] + category SUN_vertex + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #167 - WGL_EXT_display_color_table +# Extension #168 - WGL_EXT_extensions_string +# Extension #169 - WGL_EXT_make_current_read +# Extension #170 - WGL_EXT_pixel_format +# Extension #171 - WGL_EXT_pbuffer +# Extension #172 - WGL_EXT_swap_control +# +############################################################################### + +############################################################################### +# +# Extension #173 +# EXT_blend_func_separate commands (also INGR_blend_func_separate) +# +############################################################################### + +BlendFuncSeparateEXT(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + return void + param sfactorRGB BlendFuncSeparateParameterEXT in value + param dfactorRGB BlendFuncSeparateParameterEXT in value + param sfactorAlpha BlendFuncSeparateParameterEXT in value + param dfactorAlpha BlendFuncSeparateParameterEXT in value + category EXT_blend_func_separate + glxropcode 4134 + version 1.0 + extension + alias BlendFuncSeparate + +BlendFuncSeparateINGR(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + return void + param sfactorRGB BlendFuncSeparateParameterEXT in value + param dfactorRGB BlendFuncSeparateParameterEXT in value + param sfactorAlpha BlendFuncSeparateParameterEXT in value + param dfactorAlpha BlendFuncSeparateParameterEXT in value + category INGR_blend_func_separate + glxropcode 4134 + version 1.0 + extension + alias BlendFuncSeparateEXT + +############################################################################### +# +# Extension #174 +# INGR_color_clamp commands +# +############################################################################### + +# (none) +newcategory: INGR_color_clamp + +############################################################################### +# +# Extension #175 +# INGR_interlace_read commands +# +############################################################################### + +# (none) +newcategory: INGR_interlace_read + +############################################################################### +# +# Extension #176 +# EXT_stencil_wrap commands +# +############################################################################### + +# (none) +newcategory: EXT_stencil_wrap + +############################################################################### +# +# Extension #177 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #178 +# EXT_422_pixels commands +# +############################################################################### + +# (none) +newcategory: EXT_422_pixels + +############################################################################### +# +# Extension #179 +# NV_texgen_reflection commands +# +############################################################################### + +# (none) +newcategory: NV_texgen_reflection + +############################################################################### +# +# Extension #??? +# @ EXT_texture_cube_map commands +# +############################################################################### + +# (none) + +############################################################################### +# +# Extension #180 - skipped +# Extension #181 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #182 +# SUN_convolution_border_modes commands +# +############################################################################### + +# (none) +newcategory: SUN_convolution_border_modes + +############################################################################### +# +# Extension #183 - GLX_SUN_get_transparent_index +# Extension #184 - skipped +# +############################################################################### + +############################################################################### +# +# Extension #185 +# EXT_texture_env_add commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_env_add + +############################################################################### +# +# Extension #186 +# EXT_texture_lod_bias commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_lod_bias + +############################################################################### +# +# Extension #187 +# EXT_texture_filter_anisotropic commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_filter_anisotropic + +############################################################################### +# +# Extension #188 +# EXT_vertex_weighting commands +# +############################################################################### + +# GLX stuff to be written +VertexWeightfEXT(weight) + return void + param weight Float32 in value + category EXT_vertex_weighting + vectorequiv VertexWeightfvEXT + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset 494 + +VertexWeightfvEXT(weight) + return void + param weight Float32 in array [1] + category EXT_vertex_weighting + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4135 + glxflags ignore + offset 495 + +VertexWeightPointerEXT(size, type, stride, pointer) + return void + param size SizeI in value + param type VertexWeightPointerTypeEXT in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(type/stride)] retained + category EXT_vertex_weighting + version 1.1 + extension soft WINSOFT NV10 + dlflags notlistable + glxflags ignore + offset 496 + +############################################################################### +# +# Extension #189 +# NV_light_max_exponent commands +# +############################################################################### + +# (none) +newcategory: NV_light_max_exponent + +############################################################################### +# +# Extension #190 +# NV_vertex_array_range commands +# +############################################################################### + +FlushVertexArrayRangeNV() + return void + category NV_vertex_array_range + version 1.1 + extension soft WINSOFT NV10 + dlflags notlistable + glxflags client-handcode server-handcode ignore + offset 497 + +VertexArrayRangeNV(length, pointer) + return void + param length SizeI in value + param pointer Void in array [COMPSIZE(length)] retained + category NV_vertex_array_range + version 1.1 + extension soft WINSOFT NV10 + dlflags notlistable + glxflags client-handcode server-handcode ignore + offset 498 + +############################################################################### +# +# Extension #191 +# NV_register_combiners commands +# +############################################################################### + +CombinerParameterfvNV(pname, params) + return void + param pname CombinerParameterNV in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4137 + glxflags ignore + offset 499 + +CombinerParameterfNV(pname, param) + return void + param pname CombinerParameterNV in value + param param Float32 in value + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4136 + glxflags ignore + offset 500 + +CombinerParameterivNV(pname, params) + return void + param pname CombinerParameterNV in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4139 + glxflags ignore + offset 501 + +CombinerParameteriNV(pname, param) + return void + param pname CombinerParameterNV in value + param param Int32 in value + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4138 + glxflags ignore + offset 502 + +CombinerInputNV(stage, portion, variable, input, mapping, componentUsage) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param variable CombinerVariableNV in value + param input CombinerRegisterNV in value + param mapping CombinerMappingNV in value + param componentUsage CombinerComponentUsageNV in value + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4140 + glxflags ignore + offset 503 + +CombinerOutputNV(stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param abOutput CombinerRegisterNV in value + param cdOutput CombinerRegisterNV in value + param sumOutput CombinerRegisterNV in value + param scale CombinerScaleNV in value + param bias CombinerBiasNV in value + param abDotProduct Boolean in value + param cdDotProduct Boolean in value + param muxSum Boolean in value + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4141 + glxflags ignore + offset 504 + +FinalCombinerInputNV(variable, input, mapping, componentUsage) + return void + param variable CombinerVariableNV in value + param input CombinerRegisterNV in value + param mapping CombinerMappingNV in value + param componentUsage CombinerComponentUsageNV in value + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxropcode 4142 + glxflags ignore + offset 505 + +GetCombinerInputParameterfvNV(stage, portion, variable, pname, params) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param variable CombinerVariableNV in value + param pname CombinerParameterNV in value + param params Float32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1270 + glxflags ignore + offset 506 + +GetCombinerInputParameterivNV(stage, portion, variable, pname, params) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param variable CombinerVariableNV in value + param pname CombinerParameterNV in value + param params Int32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1271 + glxflags ignore + offset 507 + +GetCombinerOutputParameterfvNV(stage, portion, pname, params) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param pname CombinerParameterNV in value + param params Float32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1272 + glxflags ignore + offset 508 + +GetCombinerOutputParameterivNV(stage, portion, pname, params) + return void + param stage CombinerStageNV in value + param portion CombinerPortionNV in value + param pname CombinerParameterNV in value + param params Int32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1273 + glxflags ignore + offset 509 + +GetFinalCombinerInputParameterfvNV(variable, pname, params) + return void + param variable CombinerVariableNV in value + param pname CombinerParameterNV in value + param params Float32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1274 + glxflags ignore + offset 510 + +GetFinalCombinerInputParameterivNV(variable, pname, params) + return void + param variable CombinerVariableNV in value + param pname CombinerParameterNV in value + param params Int32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners + version 1.1 + extension soft WINSOFT NV10 + glxvendorpriv 1275 + glxflags ignore + offset 511 + +############################################################################### +# +# Extension #192 +# NV_fog_distance commands +# +############################################################################### + +# (none) +newcategory: NV_fog_distance + +############################################################################### +# +# Extension #193 +# NV_texgen_emboss commands +# +############################################################################### + +# (none) +newcategory: NV_texgen_emboss + +############################################################################### +# +# Extension #194 +# NV_blend_square commands +# +############################################################################### + +# (none) +newcategory: NV_blend_square + +############################################################################### +# +# Extension #195 +# NV_texture_env_combine4 commands +# +############################################################################### + +# (none) +newcategory: NV_texture_env_combine4 + +############################################################################### +# +# Extension #196 +# MESA_resize_buffers commands +# +############################################################################### + +ResizeBuffersMESA() + return void + category MESA_resize_buffers + version 1.0 + glxropcode ? + offset 512 + +############################################################################### +# +# Extension #197 +# MESA_window_pos commands +# +# Note that the 2- and 3-component versions are now aliases of ARB +# entry points. +# +############################################################################### + +WindowPos2dMESA(x, y) + return void + param x CoordD in value + param y CoordD in value + category MESA_window_pos + vectorequiv WindowPos2dvMESA + version 1.0 + alias WindowPos2dARB + +WindowPos2dvMESA(v) + return void + param v CoordD in array [2] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos2dvARB + +WindowPos2fMESA(x, y) + return void + param x CoordF in value + param y CoordF in value + category MESA_window_pos + vectorequiv WindowPos2fvMESA + version 1.0 + alias WindowPos2fARB + +WindowPos2fvMESA(v) + return void + param v CoordF in array [2] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos2fvARB + +WindowPos2iMESA(x, y) + return void + param x CoordI in value + param y CoordI in value + category MESA_window_pos + vectorequiv WindowPos2ivMESA + version 1.0 + alias WindowPos2iARB + +WindowPos2ivMESA(v) + return void + param v CoordI in array [2] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos2ivARB + +WindowPos2sMESA(x, y) + return void + param x CoordS in value + param y CoordS in value + category MESA_window_pos + vectorequiv WindowPos2svMESA + version 1.0 + alias WindowPos2sARB + +WindowPos2svMESA(v) + return void + param v CoordS in array [2] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos2svARB + +WindowPos3dMESA(x, y, z) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + vectorequiv WindowPos3dvMESA + category MESA_window_pos + version 1.0 + alias WindowPos3dARB + +WindowPos3dvMESA(v) + return void + param v CoordD in array [3] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos3dvARB + +WindowPos3fMESA(x, y, z) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + category MESA_window_pos + vectorequiv WindowPos3fvMESA + version 1.0 + alias WindowPos3fARB + +WindowPos3fvMESA(v) + return void + param v CoordF in array [3] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos3fvARB + +WindowPos3iMESA(x, y, z) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + category MESA_window_pos + vectorequiv WindowPos3ivMESA + version 1.0 + alias WindowPos3iARB + +WindowPos3ivMESA(v) + return void + param v CoordI in array [3] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos3ivARB + +WindowPos3sMESA(x, y, z) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + category MESA_window_pos + vectorequiv WindowPos3svMESA + version 1.0 + alias WindowPos3sARB + +WindowPos3svMESA(v) + return void + param v CoordS in array [3] + category MESA_window_pos + version 1.0 + glxropcode ? + alias WindowPos3svARB + +WindowPos4dMESA(x, y, z, w) + return void + param x CoordD in value + param y CoordD in value + param z CoordD in value + param w CoordD in value + vectorequiv WindowPos4dvMESA + category MESA_window_pos + version 1.0 + offset 529 + +WindowPos4dvMESA(v) + return void + param v CoordD in array [4] + category MESA_window_pos + version 1.0 + glxropcode ? + offset 530 + +WindowPos4fMESA(x, y, z, w) + return void + param x CoordF in value + param y CoordF in value + param z CoordF in value + param w CoordF in value + category MESA_window_pos + vectorequiv WindowPos4fvMESA + version 1.0 + offset 531 + +WindowPos4fvMESA(v) + return void + param v CoordF in array [4] + category MESA_window_pos + version 1.0 + glxropcode ? + offset 532 + +WindowPos4iMESA(x, y, z, w) + return void + param x CoordI in value + param y CoordI in value + param z CoordI in value + param w CoordI in value + category MESA_window_pos + vectorequiv WindowPos4ivMESA + version 1.0 + offset 533 + +WindowPos4ivMESA(v) + return void + param v CoordI in array [4] + category MESA_window_pos + version 1.0 + glxropcode ? + offset 534 + +WindowPos4sMESA(x, y, z, w) + return void + param x CoordS in value + param y CoordS in value + param z CoordS in value + param w CoordS in value + category MESA_window_pos + vectorequiv WindowPos4svMESA + version 1.0 + offset 535 + +WindowPos4svMESA(v) + return void + param v CoordS in array [4] + category MESA_window_pos + version 1.0 + glxropcode ? + offset 536 + +############################################################################### +# +# Extension #198 +# EXT_texture_compression_s3tc commands +# +############################################################################### + +#@@ (none yet) + +############################################################################### +# +# Extension #199 +# IBM_cull_vertex commands +# +############################################################################### + +# (none) +newcategory: IBM_cull_vertex + +############################################################################### +# +# Extension #200 +# IBM_multimode_draw_arrays commands +# +############################################################################### + +MultiModeDrawArraysIBM(mode, first, count, primcount, modestride) + return void + param mode BeginMode in array [COMPSIZE(primcount)] + param first Int32 in array [COMPSIZE(primcount)] + param count SizeI in array [COMPSIZE(primcount)] + param primcount SizeI in value + param modestride Int32 in value + category IBM_multimode_draw_arrays + version 1.1 + glxropcode ? + offset 708 + + +MultiModeDrawElementsIBM(mode, count, type, indices, primcount, modestride) + return void + param mode BeginMode in array [COMPSIZE(primcount)] + param count SizeI in array [COMPSIZE(primcount)] + param type DrawElementsType in value + param indices ConstVoidPointer in array [COMPSIZE(primcount)] + param primcount SizeI in value + param modestride Int32 in value + category IBM_multimode_draw_arrays + version 1.1 + glxropcode ? + offset 709 + +############################################################################### +# +# Extension #201 +# IBM_vertex_array_lists commands +# +############################################################################### + +ColorPointerListIBM(size, type, stride, pointer, ptrstride) + return void + param size Int32 in value + param type ColorPointerType in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +SecondaryColorPointerListIBM(size, type, stride, pointer, ptrstride) + return void + param size Int32 in value + param type SecondaryColorPointerTypeIBM in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +EdgeFlagPointerListIBM(stride, pointer, ptrstride) + return void + param stride Int32 in value + param pointer BooleanPointer in array [COMPSIZE(stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +FogCoordPointerListIBM(type, stride, pointer, ptrstride) + return void + param type FogPointerTypeIBM in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +IndexPointerListIBM(type, stride, pointer, ptrstride) + return void + param type IndexPointerType in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +NormalPointerListIBM(type, stride, pointer, ptrstride) + return void + param type NormalPointerType in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +TexCoordPointerListIBM(size, type, stride, pointer, ptrstride) + return void + param size Int32 in value + param type TexCoordPointerType in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +VertexPointerListIBM(size, type, stride, pointer, ptrstride) + return void + param size Int32 in value + param type VertexPointerType in value + param stride Int32 in value + param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained + param ptrstride Int32 in value + category IBM_vertex_array_lists + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #202 +# SGIX_subsample commands +# +############################################################################### + +# (none) +newcategory: SGIX_subsample + +############################################################################### +# +# Extension #203 +# SGIX_ycrcba commands +# +############################################################################### + +# (none) +newcategory: SGIX_ycrcba + +############################################################################### +# +# Extension #204 +# SGIX_ycrcb_subsample commands +# +############################################################################### + +# (none) +newcategory: SGIX_ycrcb_subsample + +############################################################################### +# +# Extension #205 +# SGIX_depth_pass_instrument commands +# +############################################################################### + +# (none) +newcategory: SGIX_depth_pass_instrument + +############################################################################### +# +# Extension #206 +# 3DFX_texture_compression_FXT1 commands +# +############################################################################### + +# (none) +newcategory: 3DFX_texture_compression_FXT1 + +############################################################################### +# +# Extension #207 +# 3DFX_multisample commands +# +############################################################################### + +# (none) +newcategory: 3DFX_multisample + +############################################################################### +# +# Extension #208 +# 3DFX_tbuffer commands +# +############################################################################### + +TbufferMask3DFX(mask) + return void + param mask UInt32 in value + category 3DFX_tbuffer + version 1.2 + glxropcode ? + offset 553 + +############################################################################### +# +# Extension #209 +# EXT_multisample commands +# +############################################################################### + +SampleMaskEXT(value, invert) + return void + param value ClampedFloat32 in value + param invert Boolean in value + category EXT_multisample + version 1.0 + glxropcode ? + extension + offset 446 + +SamplePatternEXT(pattern) + return void + param pattern SamplePatternEXT in value + category EXT_multisample + version 1.0 + glxropcode ? + glxflags + extension + offset 447 + +############################################################################### +# +# Extension #210 +# SGIX_vertex_preclip commands +# +############################################################################### + +# (none) +newcategory: SGIX_vertex_preclip + +############################################################################### +# +# Extension #211 +# SGIX_convolution_accuracy commands +# +############################################################################### + +# (none) +newcategory: SGIX_convolution_accuracy + +############################################################################### +# +# Extension #212 +# SGIX_resample commands +# +############################################################################### + +# (none) +newcategory: SGIX_resample + +############################################################################### +# +# Extension #213 +# SGIS_point_line_texgen commands +# +############################################################################### + +# (none) +newcategory: SGIS_point_line_texgen + +############################################################################### +# +# Extension #214 +# SGIS_texture_color_mask commands +# +############################################################################### + +TextureColorMaskSGIS(red, green, blue, alpha) + return void + param red Boolean in value + param green Boolean in value + param blue Boolean in value + param alpha Boolean in value + category SGIS_texture_color_mask + version 1.1 + glxropcode 2082 + extension + offset ? + +############################################################################### +# +# Extension #215 - GLX_MESA_copy_sub_buffer +# Extension #216 - GLX_MESA_pixmap_colormap +# Extension #217 - GLX_MESA_release_buffers +# Extension #218 - GLX_MESA_set_3dfx_mode +# +############################################################################### + +############################################################################### +# +# Extension #219 +# SGIX_igloo_interface commands +# +############################################################################### + +IglooInterfaceSGIX(pname, params) + return void + dlflags notlistable + param pname IglooFunctionSelectSGIX in value + param params IglooParameterSGIX in array [COMPSIZE(pname)] + category SGIX_igloo_interface + version 1.0 + glxflags SGI ignore + extension + glxropcode 200 + offset ? + +############################################################################### +# +# Extension #220 +# EXT_texture_env_dot3 commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_env_dot3 + +############################################################################### +# +# Extension #221 +# ATI_texture_mirror_once commands +# +############################################################################### +# (none) +newcategory: ATI_texture_mirror_once + +############################################################################### +# +# Extension #222 +# NV_fence commands +# +############################################################################### + +DeleteFencesNV(n, fences) + return void + param n SizeI in value + param fences FenceNV in array [n] + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1276 + glxflags ignore + offset 647 + +GenFencesNV(n, fences) + return void + param n SizeI in value + param fences FenceNV out array [n] + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1277 + glxflags ignore + offset 648 + +IsFenceNV(fence) + return Boolean + param fence FenceNV in value + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1278 + glxflags ignore + offset 649 + +TestFenceNV(fence) + return Boolean + param fence FenceNV in value + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1279 + glxflags ignore + offset 650 + +GetFenceivNV(fence, pname, params) + return void + param fence FenceNV in value + param pname FenceParameterNameNV in value + param params Int32 out array [COMPSIZE(pname)] + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1280 + glxflags ignore + offset 651 + +FinishFenceNV(fence) + return void + param fence FenceNV in value + category NV_fence + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1312 + glxflags ignore + offset 652 + +SetFenceNV(fence, condition) + return void + param fence FenceNV in value + param condition FenceConditionNV in value + category NV_fence + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + offset 653 + +############################################################################### +# +# Extension #225 +# NV_evaluators commands +# +############################################################################### + +MapControlPointsNV(target, index, type, ustride, vstride, uorder, vorder, packed, points) + return void + param target EvalTargetNV in value + param index UInt32 in value + param type MapTypeNV in value + param ustride SizeI in value + param vstride SizeI in value + param uorder CheckedInt32 in value + param vorder CheckedInt32 in value + param packed Boolean in value + param points Void in array [COMPSIZE(target/uorder/vorder)] + category NV_evaluators + dlflags handcode + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +MapParameterivNV(target, pname, params) + return void + param target EvalTargetNV in value + param pname MapParameterNV in value + param params CheckedInt32 in array [COMPSIZE(target/pname)] + category NV_evaluators + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +MapParameterfvNV(target, pname, params) + return void + param target EvalTargetNV in value + param pname MapParameterNV in value + param params CheckedFloat32 in array [COMPSIZE(target/pname)] + category NV_evaluators + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +GetMapControlPointsNV(target, index, type, ustride, vstride, packed, points) + return void + param target EvalTargetNV in value + param index UInt32 in value + param type MapTypeNV in value + param ustride SizeI in value + param vstride SizeI in value + param packed Boolean in value + param points Void out array [COMPSIZE(target)] + category NV_evaluators + dlflags notlistable + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +GetMapParameterivNV(target, pname, params) + return void + param target EvalTargetNV in value + param pname MapParameterNV in value + param params Int32 out array [COMPSIZE(target/pname)] + category NV_evaluators + dlflags notlistable + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +GetMapParameterfvNV(target, pname, params) + return void + param target EvalTargetNV in value + param pname MapParameterNV in value + param params Float32 out array [COMPSIZE(target/pname)] + category NV_evaluators + dlflags notlistable + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +GetMapAttribParameterivNV(target, index, pname, params) + return void + param target EvalTargetNV in value + param index UInt32 in value + param pname MapAttribParameterNV in value + param params Int32 out array [COMPSIZE(pname)] + category NV_evaluators + dlflags notlistable + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +GetMapAttribParameterfvNV(target, index, pname, params) + return void + param target EvalTargetNV in value + param index UInt32 in value + param pname MapAttribParameterNV in value + param params Float32 out array [COMPSIZE(pname)] + category NV_evaluators + dlflags notlistable + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +EvalMapsNV(target, mode) + return void + param target EvalTargetNV in value + param mode EvalMapsModeNV in value + category NV_evaluators + version 1.1 + extension soft WINSOFT NV10 + glxflags ignore + offset ? + +############################################################################### +# +# Extension #226 +# NV_packed_depth_stencil commands +# +############################################################################### + +# (none) +newcategory: NV_packed_depth_stencil + +############################################################################### +# +# Extension #227 +# NV_register_combiners2 commands +# +############################################################################### + +CombinerStageParameterfvNV(stage, pname, params) + return void + param stage CombinerStageNV in value + param pname CombinerParameterNV in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category NV_register_combiners2 + version 1.1 + extension + glxflags ignore + offset ? + +GetCombinerStageParameterfvNV(stage, pname, params) + return void + param stage CombinerStageNV in value + param pname CombinerParameterNV in value + param params Float32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_register_combiners2 + version 1.1 + extension + glxflags ignore + offset ? + +############################################################################### +# +# Extension #228 +# NV_texture_compression_vtc commands +# +############################################################################### + +# (none) +newcategory: NV_texture_compression_vtc + +############################################################################### +# +# Extension #229 +# NV_texture_rectangle commands +# +############################################################################### + +# (none) +newcategory: NV_texture_rectangle + +############################################################################### +# +# Extension #230 +# NV_texture_shader commands +# +############################################################################### + +# (none) +newcategory: NV_texture_shader + +############################################################################### +# +# Extension #231 +# NV_texture_shader2 commands +# +############################################################################### + +# (none) +newcategory: NV_texture_shader2 + +############################################################################### +# +# Extension #232 +# NV_vertex_array_range2 commands +# +############################################################################### + +# (none) +newcategory: NV_vertex_array_range2 + +############################################################################### +# +# Extension #233 +# NV_vertex_program commands +# +############################################################################### + +AreProgramsResidentNV(n, programs, residences) + return Boolean + param n SizeI in value + param programs UInt32 in array [n] + param residences Boolean out array [n] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1293 + offset 578 + +BindProgramNV(target, id) + return void + param target VertexAttribEnumNV in value + param id UInt32 in value + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4180 + alias BindProgramARB + +DeleteProgramsNV(n, programs) + return void + param n SizeI in value + param programs UInt32 in array [n] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1294 + alias DeleteProgramsARB + +ExecuteProgramNV(target, id, params) + return void + param target VertexAttribEnumNV in value + param id UInt32 in value + param params Float32 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxropcode 4181 + offset 581 + +GenProgramsNV(n, programs) + return void + param n SizeI in value + param programs UInt32 out array [n] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1295 + alias GenProgramsARB + +GetProgramParameterdvNV(target, index, pname, params) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param pname VertexAttribEnumNV in value + param params Float64 out array [4] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1297 + offset 583 + +GetProgramParameterfvNV(target, index, pname, params) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param pname VertexAttribEnumNV in value + param params Float32 out array [4] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1296 + offset 584 + +# GetProgramParameterSigneddvNV(target, index, pname, params) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param pname VertexAttribEnumNV in value +# param params Float64 out array [4] +# category NV_vertex_program1_1_dcc +# dlflags notlistable +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? +# +# GetProgramParameterSignedfvNV(target, index, pname, params) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param pname VertexAttribEnumNV in value +# param params Float32 out array [4] +# category NV_vertex_program1_1_dcc +# dlflags notlistable +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? + +GetProgramivNV(id, pname, params) + return void + param id UInt32 in value + param pname VertexAttribEnumNV in value + param params Int32 out array [4] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1298 + offset 585 + +GetProgramStringNV(id, pname, program) + return void + param id UInt32 in value + param pname VertexAttribEnumNV in value + param program ProgramCharacterNV out array [COMPSIZE(id/pname)] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1299 + offset 586 + +GetTrackMatrixivNV(target, address, pname, params) + return void + param target VertexAttribEnumNV in value + param address UInt32 in value + param pname VertexAttribEnumNV in value + param params Int32 out array [1] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + glxvendorpriv 1300 + offset 587 + +GetVertexAttribdvNV(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnumNV in value + param params Float64 out array [1] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1301 + alias GetVertexAttribdv + +GetVertexAttribfvNV(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnumNV in value + param params Float32 out array [1] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1302 + alias GetVertexAttribfv + +GetVertexAttribivNV(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnumNV in value + param params Int32 out array [1] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1303 + alias GetVertexAttribiv + +GetVertexAttribPointervNV(index, pname, pointer) + return void + param index UInt32 in value + param pname VertexAttribEnumNV in value + param pointer VoidPointer out array [1] + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + alias GetVertexAttribPointerv + +IsProgramNV(id) + return Boolean + param id UInt32 in value + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxvendorpriv 1304 + alias IsProgram + +LoadProgramNV(target, id, len, program) + return void + param target VertexAttribEnumNV in value + param id UInt32 in value + param len SizeI in value + param program UInt8 in array [len] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4183 + offset 593 + +ProgramParameter4dNV(target, index, x, y, z, w) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category NV_vertex_program + version 1.2 + vectorequiv ProgramParameter4dvNV + extension soft WINSOFT NV10 + offset 594 + +ProgramParameter4dvNV(target, index, v) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param v Float64 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4185 + offset 595 + +ProgramParameter4fNV(target, index, x, y, z, w) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category NV_vertex_program + version 1.2 + vectorequiv ProgramParameter4fvNV + extension soft WINSOFT NV10 + offset 596 + +ProgramParameter4fvNV(target, index, v) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param v Float32 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4184 + offset 597 + +#??? 'count' was SizeI in the latest NVIDIA gl.spec, but UInt32 in the +#??? extension specification in the registry. +ProgramParameters4dvNV(target, index, count, v) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param count UInt32 in value + param v Float64 in array [count*4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4187 + offset 598 + +#??? 'count' was SizeI in the latest NVIDIA gl.spec, but UInt32 in the +#??? extension specification in the registry. +ProgramParameters4fvNV(target, index, count, v) + return void + param target VertexAttribEnumNV in value + param index UInt32 in value + param count UInt32 in value + param v Float32 in array [count*4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4186 + offset 599 + +# ProgramParameterSigned4dNV(target, index, x, y, z, w) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param x Float64 in value +# param y Float64 in value +# param z Float64 in value +# param w Float64 in value +# category NV_vertex_program1_1_dcc +# version 1.2 +# vectorequiv ProgramParameterSigned4dvNV +# extension soft WINSOFT NV20 +# offset ? +# +# ProgramParameterSigned4dvNV(target, index, v) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param v Float64 in array [4] +# category NV_vertex_program1_1_dcc +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? +# +# ProgramParameterSigned4fNV(target, index, x, y, z, w) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param x Float32 in value +# param y Float32 in value +# param z Float32 in value +# param w Float32 in value +# category NV_vertex_program1_1_dcc +# version 1.2 +# vectorequiv ProgramParameterSigned4fvNV +# extension soft WINSOFT NV20 +# offset ? +# +# ProgramParameterSigned4fvNV(target, index, v) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param v Float32 in array [4] +# category NV_vertex_program1_1_dcc +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? +# +# ProgramParametersSigned4dvNV(target, index, count, v) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param count SizeI in value +# param v Float64 in array [count*4] +# category NV_vertex_program1_1_dcc +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? +# +# ProgramParametersSigned4fvNV(target, index, count, v) +# return void +# param target VertexAttribEnumNV in value +# param index Int32 in value +# param count SizeI in value +# param v Float32 in array [count*4] +# category NV_vertex_program1_1_dcc +# version 1.2 +# extension soft WINSOFT NV20 +# glxflags ignore +# offset ? + +RequestResidentProgramsNV(n, programs) + return void + param n SizeI in value + param programs UInt32 in array [n] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4182 + offset 600 + +TrackMatrixNV(target, address, matrix, transform) + return void + param target VertexAttribEnumNV in value + param address UInt32 in value + param matrix VertexAttribEnumNV in value + param transform VertexAttribEnumNV in value + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4188 + offset 601 + +VertexAttribPointerNV(index, fsize, type, stride, pointer) + return void + param index UInt32 in value + param fsize Int32 in value + param type VertexAttribEnumNV in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(fsize/type/stride)] retained + category NV_vertex_program + dlflags notlistable + version 1.2 + extension soft WINSOFT NV10 + glxflags ignore + offset 602 + +VertexAttrib1dNV(index, x) + return void + param index UInt32 in value + param x Float64 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib1dvNV + extension soft WINSOFT NV10 + alias VertexAttrib1d + +VertexAttrib1dvNV(index, v) + return void + param index UInt32 in value + param v Float64 in array [1] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4197 + alias VertexAttrib1dv + +VertexAttrib1fNV(index, x) + return void + param index UInt32 in value + param x Float32 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib1fvNV + extension soft WINSOFT NV10 + alias VertexAttrib1f + +VertexAttrib1fvNV(index, v) + return void + param index UInt32 in value + param v Float32 in array [1] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4193 + alias VertexAttrib1fv + +VertexAttrib1sNV(index, x) + return void + param index UInt32 in value + param x Int16 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib1svNV + extension soft WINSOFT NV10 + alias VertexAttrib1s + +VertexAttrib1svNV(index, v) + return void + param index UInt32 in value + param v Int16 in array [1] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4189 + alias VertexAttrib1sv + +VertexAttrib2dNV(index, x, y) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib2dvNV + extension soft WINSOFT NV10 + alias VertexAttrib2d + +VertexAttrib2dvNV(index, v) + return void + param index UInt32 in value + param v Float64 in array [2] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4198 + alias VertexAttrib2dv + +VertexAttrib2fNV(index, x, y) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib2fvNV + extension soft WINSOFT NV10 + alias VertexAttrib2f + +VertexAttrib2fvNV(index, v) + return void + param index UInt32 in value + param v Float32 in array [2] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4194 + alias VertexAttrib2fv + +VertexAttrib2sNV(index, x, y) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib2svNV + extension soft WINSOFT NV10 + alias VertexAttrib2s + +VertexAttrib2svNV(index, v) + return void + param index UInt32 in value + param v Int16 in array [2] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4190 + alias VertexAttrib2sv + +VertexAttrib3dNV(index, x, y, z) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib3dvNV + extension soft WINSOFT NV10 + alias VertexAttrib3d + +VertexAttrib3dvNV(index, v) + return void + param index UInt32 in value + param v Float64 in array [3] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4199 + alias VertexAttrib3dv + +VertexAttrib3fNV(index, x, y, z) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib3fvNV + extension soft WINSOFT NV10 + alias VertexAttrib3f + +VertexAttrib3fvNV(index, v) + return void + param index UInt32 in value + param v Float32 in array [3] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4195 + alias VertexAttrib3fv + +VertexAttrib3sNV(index, x, y, z) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib3svNV + extension soft WINSOFT NV10 + alias VertexAttrib3s + +VertexAttrib3svNV(index, v) + return void + param index UInt32 in value + param v Int16 in array [3] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4191 + alias VertexAttrib3sv + +VertexAttrib4dNV(index, x, y, z, w) + return void + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib4dvNV + extension soft WINSOFT NV10 + alias VertexAttrib4d + +VertexAttrib4dvNV(index, v) + return void + param index UInt32 in value + param v Float64 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4200 + alias VertexAttrib4dv + +VertexAttrib4fNV(index, x, y, z, w) + return void + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib4fvNV + extension soft WINSOFT NV10 + alias VertexAttrib4f + +VertexAttrib4fvNV(index, v) + return void + param index UInt32 in value + param v Float32 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4196 + alias VertexAttrib4fv + +VertexAttrib4sNV(index, x, y, z, w) + return void + param index UInt32 in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + param w Int16 in value + category NV_vertex_program + version 1.2 + vectorequiv VertexAttrib4svNV + extension soft WINSOFT NV10 + alias VertexAttrib4s + +VertexAttrib4svNV(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4192 + alias VertexAttrib4sv + +VertexAttrib4ubNV(index, x, y, z, w) + return void + param index UInt32 in value + param x ColorUB in value + param y ColorUB in value + param z ColorUB in value + param w ColorUB in value + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + vectorequiv VertexAttrib4ubvNV + alias VertexAttrib4Nub + +VertexAttrib4ubvNV(index, v) + return void + param index UInt32 in value + param v ColorUB in array [4] + category NV_vertex_program + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4201 + alias VertexAttrib4Nubv + +VertexAttribs1dvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float64 in array [count] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4210 + offset 629 + +VertexAttribs1fvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float32 in array [count] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4206 + offset 630 + +VertexAttribs1svNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Int16 in array [count] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4202 + offset 631 + +VertexAttribs2dvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float64 in array [count*2] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4211 + offset 632 + +VertexAttribs2fvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float32 in array [count*2] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4207 + offset 633 + +VertexAttribs2svNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Int16 in array [count*2] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4203 + offset 634 + +VertexAttribs3dvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float64 in array [count*3] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4212 + offset 635 + +VertexAttribs3fvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float32 in array [count*3] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4208 + offset 636 + +VertexAttribs3svNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Int16 in array [count*3] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4204 + offset 637 + +VertexAttribs4dvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float64 in array [count*4] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4213 + offset 638 + +VertexAttribs4fvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Float32 in array [count*4] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4209 + offset 639 + +VertexAttribs4svNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v Int16 in array [count*4] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4205 + offset 640 + +VertexAttribs4ubvNV(index, count, v) + return void + param index UInt32 in value + param count SizeI in value + param v ColorUB in array [count*4] + category NV_vertex_program + dlflags handcode + version 1.2 + extension soft WINSOFT NV10 + glxropcode 4214 + offset 641 + + +############################################################################### +# +# Extension #234 - GLX_SGIX_visual_select_group +# +############################################################################### + +############################################################################### +# +# Extension #235 +# SGIX_texture_coordinate_clamp commands +# +############################################################################### + +# (none) +newcategory: SGIX_texture_coordinate_clamp + +############################################################################### +# +# Extension #236 +# SGIX_scalebias_hint commands +# +############################################################################### + +# (none) +newcategory: SGIX_scalebias_hint + +############################################################################### +# +# Extension #237 - GLX_OML_swap_method commands +# Extension #238 - GLX_OML_sync_control commands +# +############################################################################### + +############################################################################### +# +# Extension #239 +# OML_interlace commands +# +############################################################################### + +# (none) +newcategory: OML_interlace + +############################################################################### +# +# Extension #240 +# OML_subsample commands +# +############################################################################### + +# (none) +newcategory: OML_subsample + +############################################################################### +# +# Extension #241 +# OML_resample commands +# +############################################################################### + +# (none) +newcategory: OML_resample + +############################################################################### +# +# Extension #242 - WGL_OML_sync_control commands +# +############################################################################### + +############################################################################### +# +# Extension #243 +# NV_copy_depth_to_color commands +# +############################################################################### + +# (none) +newcategory: NV_copy_depth_to_color + +############################################################################### +# +# Extension #244 +# ATI_envmap_bumpmap commands +# +############################################################################### + +TexBumpParameterivATI(pname, param) + return void + param pname TexBumpParameterATI in value + param param Int32 in array [COMPSIZE(pname)] + category ATI_envmap_bumpmap + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexBumpParameterfvATI(pname, param) + return void + param pname TexBumpParameterATI in value + param param Float32 in array [COMPSIZE(pname)] + category ATI_envmap_bumpmap + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetTexBumpParameterivATI(pname, param) + return void + param pname GetTexBumpParameterATI in value + param param Int32 out array [COMPSIZE(pname)] + category ATI_envmap_bumpmap + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetTexBumpParameterfvATI(pname, param) + return void + param pname GetTexBumpParameterATI in value + param param Float32 out array [COMPSIZE(pname)] + category ATI_envmap_bumpmap + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #245 +# ATI_fragment_shader commands +# +############################################################################### + +GenFragmentShadersATI(range) + return UInt32 + param range UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindFragmentShaderATI(id) + return void + param id UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteFragmentShaderATI(id) + return void + param id UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BeginFragmentShaderATI() + return void + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EndFragmentShaderATI() + return void + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +PassTexCoordATI(dst, coord, swizzle) + return void + param dst UInt32 in value + param coord UInt32 in value + param swizzle SwizzleOpATI in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SampleMapATI(dst, interp, swizzle) + return void + param dst UInt32 in value + param interp UInt32 in value + param swizzle SwizzleOpATI in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ColorFragmentOp1ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMask UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ColorFragmentOp2ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMask UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + param arg2 UInt32 in value + param arg2Rep UInt32 in value + param arg2Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ColorFragmentOp3ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMask UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + param arg2 UInt32 in value + param arg2Rep UInt32 in value + param arg2Mod UInt32 in value + param arg3 UInt32 in value + param arg3Rep UInt32 in value + param arg3Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +AlphaFragmentOp1ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +AlphaFragmentOp2ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + param arg2 UInt32 in value + param arg2Rep UInt32 in value + param arg2Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +AlphaFragmentOp3ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) + return void + param op FragmentOpATI in value + param dst UInt32 in value + param dstMod UInt32 in value + param arg1 UInt32 in value + param arg1Rep UInt32 in value + param arg1Mod UInt32 in value + param arg2 UInt32 in value + param arg2Rep UInt32 in value + param arg2Mod UInt32 in value + param arg3 UInt32 in value + param arg3Rep UInt32 in value + param arg3Mod UInt32 in value + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SetFragmentShaderConstantATI(dst, value) + return void + param dst UInt32 in value + param value ConstFloat32 in array [4] + category ATI_fragment_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #246 +# ATI_pn_triangles commands +# +############################################################################### + +PNTrianglesiATI(pname, param) + return void + param pname PNTrianglesPNameATI in value + param param Int32 in value + category ATI_pn_triangles + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +PNTrianglesfATI(pname, param) + return void + param pname PNTrianglesPNameATI in value + param param Float32 in value + category ATI_pn_triangles + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #247 +# ATI_vertex_array_object commands +# +############################################################################### + +NewObjectBufferATI(size, pointer, usage) + return UInt32 + param size SizeI in value + param pointer ConstVoid in array [size] + param usage ArrayObjectUsageATI in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsObjectBufferATI(buffer) + return Boolean + param buffer UInt32 in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +UpdateObjectBufferATI(buffer, offset, size, pointer, preserve) + return void + param buffer UInt32 in value + param offset UInt32 in value + param size SizeI in value + param pointer ConstVoid in array [size] + param preserve PreserveModeATI in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetObjectBufferfvATI(buffer, pname, params) + return void + param buffer UInt32 in value + param pname ArrayObjectPNameATI in value + param params Float32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetObjectBufferivATI(buffer, pname, params) + return void + param buffer UInt32 in value + param pname ArrayObjectPNameATI in value + param params Int32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +FreeObjectBufferATI(buffer) + return void + param buffer UInt32 in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ArrayObjectATI(array, size, type, stride, buffer, offset) + return void + param array EnableCap in value + param size Int32 in value + param type ScalarType in value + param stride SizeI in value + param buffer UInt32 in value + param offset UInt32 in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetArrayObjectfvATI(array, pname, params) + return void + param array EnableCap in value + param pname ArrayObjectPNameATI in value + param params Float32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetArrayObjectivATI(array, pname, params) + return void + param array EnableCap in value + param pname ArrayObjectPNameATI in value + param params Int32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +VariantArrayObjectATI(id, type, stride, buffer, offset) + return void + param id UInt32 in value + param type ScalarType in value + param stride SizeI in value + param buffer UInt32 in value + param offset UInt32 in value + category ATI_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetVariantArrayObjectfvATI(id, pname, params) + return void + param id UInt32 in value + param pname ArrayObjectPNameATI in value + param params Float32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVariantArrayObjectivATI(id, pname, params) + return void + param id UInt32 in value + param pname ArrayObjectPNameATI in value + param params Int32 out array [1] + category ATI_vertex_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #248 +# EXT_vertex_shader commands +# +############################################################################### + +BeginVertexShaderEXT() + return void + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EndVertexShaderEXT() + return void + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindVertexShaderEXT(id) + return void + param id UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GenVertexShadersEXT(range) + return UInt32 + param range UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteVertexShaderEXT(id) + return void + param id UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ShaderOp1EXT(op, res, arg1) + return void + param op VertexShaderOpEXT in value + param res UInt32 in value + param arg1 UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ShaderOp2EXT(op, res, arg1, arg2) + return void + param op VertexShaderOpEXT in value + param res UInt32 in value + param arg1 UInt32 in value + param arg2 UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ShaderOp3EXT(op, res, arg1, arg2, arg3) + return void + param op VertexShaderOpEXT in value + param res UInt32 in value + param arg1 UInt32 in value + param arg2 UInt32 in value + param arg3 UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SwizzleEXT(res, in, outX, outY, outZ, outW) + return void + param res UInt32 in value + param in UInt32 in value + param outX VertexShaderCoordOutEXT in value + param outY VertexShaderCoordOutEXT in value + param outZ VertexShaderCoordOutEXT in value + param outW VertexShaderCoordOutEXT in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +WriteMaskEXT(res, in, outX, outY, outZ, outW) + return void + param res UInt32 in value + param in UInt32 in value + param outX VertexShaderWriteMaskEXT in value + param outY VertexShaderWriteMaskEXT in value + param outZ VertexShaderWriteMaskEXT in value + param outW VertexShaderWriteMaskEXT in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +InsertComponentEXT(res, src, num) + return void + param res UInt32 in value + param src UInt32 in value + param num UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ExtractComponentEXT(res, src, num) + return void + param res UInt32 in value + param src UInt32 in value + param num UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GenSymbolsEXT(datatype, storagetype, range, components) + return UInt32 + param datatype DataTypeEXT in value + param storagetype VertexShaderStorageTypeEXT in value + param range ParameterRangeEXT in value + param components UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SetInvariantEXT(id, type, addr) + return void + param id UInt32 in value + param type ScalarType in value + param addr Void in array [COMPSIZE(id/type)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SetLocalConstantEXT(id, type, addr) + return void + param id UInt32 in value + param type ScalarType in value + param addr Void in array [COMPSIZE(id/type)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantbvEXT(id, addr) + return void + param id UInt32 in value + param addr Int8 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantsvEXT(id, addr) + return void + param id UInt32 in value + param addr Int16 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantivEXT(id, addr) + return void + param id UInt32 in value + param addr Int32 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantfvEXT(id, addr) + return void + param id UInt32 in value + param addr Float32 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantdvEXT(id, addr) + return void + param id UInt32 in value + param addr Float64 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantubvEXT(id, addr) + return void + param id UInt32 in value + param addr UInt8 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantusvEXT(id, addr) + return void + param id UInt32 in value + param addr UInt16 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantuivEXT(id, addr) + return void + param id UInt32 in value + param addr UInt32 in array [COMPSIZE(id)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VariantPointerEXT(id, type, stride, addr) + return void + param id UInt32 in value + param type ScalarType in value + param stride UInt32 in value + param addr Void in array [COMPSIZE(id/type/stride)] + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EnableVariantClientStateEXT(id) + return void + param id UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DisableVariantClientStateEXT(id) + return void + param id UInt32 in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindLightParameterEXT(light, value) + return UInt32 + param light LightName in value + param value LightParameter in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindMaterialParameterEXT(face, value) + return UInt32 + param face MaterialFace in value + param value MaterialParameter in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindTexGenParameterEXT(unit, coord, value) + return UInt32 + param unit TextureUnit in value + param coord TextureCoordName in value + param value TextureGenParameter in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindTextureUnitParameterEXT(unit, value) + return UInt32 + param unit TextureUnit in value + param value VertexShaderTextureUnitParameter in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindParameterEXT(value) + return UInt32 + param value VertexShaderParameterEXT in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsVariantEnabledEXT(id, cap) + return Boolean + param id UInt32 in value + param cap VariantCapEXT in value + category EXT_vertex_shader + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetVariantBooleanvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Boolean out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVariantIntegervEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Int32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVariantFloatvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Float32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVariantPointervEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data VoidPointer out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetInvariantBooleanvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Boolean out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetInvariantIntegervEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Int32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetInvariantFloatvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Float32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetLocalConstantBooleanvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Boolean out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetLocalConstantIntegervEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Int32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetLocalConstantFloatvEXT(id, value, data) + return void + param id UInt32 in value + param value GetVariantValueEXT in value + param data Float32 out array [COMPSIZE(id)] + category EXT_vertex_shader + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #249 +# ATI_vertex_streams commands +# +############################################################################### + +VertexStream1sATI(stream, x) + return void + param stream VertexStreamATI in value + param x Int16 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1svATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int16 in array [1] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1iATI(stream, x) + return void + param stream VertexStreamATI in value + param x Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1ivATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int32 in array [1] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1fATI(stream, x) + return void + param stream VertexStreamATI in value + param x Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1fvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float32 in array [1] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1dATI(stream, x) + return void + param stream VertexStreamATI in value + param x Float64 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream1dvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float64 in array [1] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2sATI(stream, x, y) + return void + param stream VertexStreamATI in value + param x Int16 in value + param y Int16 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2svATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int16 in array [2] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2iATI(stream, x, y) + return void + param stream VertexStreamATI in value + param x Int32 in value + param y Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2ivATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int32 in array [2] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2fATI(stream, x, y) + return void + param stream VertexStreamATI in value + param x Float32 in value + param y Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2fvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float32 in array [2] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2dATI(stream, x, y) + return void + param stream VertexStreamATI in value + param x Float64 in value + param y Float64 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream2dvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float64 in array [2] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3sATI(stream, x, y, z) + return void + param stream VertexStreamATI in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3svATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int16 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3iATI(stream, x, y, z) + return void + param stream VertexStreamATI in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3ivATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int32 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3fATI(stream, x, y, z) + return void + param stream VertexStreamATI in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3fvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float32 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3dATI(stream, x, y, z) + return void + param stream VertexStreamATI in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream3dvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float64 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4sATI(stream, x, y, z, w) + return void + param stream VertexStreamATI in value + param x Int16 in value + param y Int16 in value + param z Int16 in value + param w Int16 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4svATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int16 in array [4] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4iATI(stream, x, y, z, w) + return void + param stream VertexStreamATI in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4ivATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int32 in array [4] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4fATI(stream, x, y, z, w) + return void + param stream VertexStreamATI in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4fvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float32 in array [4] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4dATI(stream, x, y, z, w) + return void + param stream VertexStreamATI in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexStream4dvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float64 in array [4] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3bATI(stream, nx, ny, nz) + return void + param stream VertexStreamATI in value + param nx Int8 in value + param ny Int8 in value + param nz Int8 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3bvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int8 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3sATI(stream, nx, ny, nz) + return void + param stream VertexStreamATI in value + param nx Int16 in value + param ny Int16 in value + param nz Int16 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3svATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int16 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3iATI(stream, nx, ny, nz) + return void + param stream VertexStreamATI in value + param nx Int32 in value + param ny Int32 in value + param nz Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3ivATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Int32 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3fATI(stream, nx, ny, nz) + return void + param stream VertexStreamATI in value + param nx Float32 in value + param ny Float32 in value + param nz Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3fvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float32 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3dATI(stream, nx, ny, nz) + return void + param stream VertexStreamATI in value + param nx Float64 in value + param ny Float64 in value + param nz Float64 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalStream3dvATI(stream, coords) + return void + param stream VertexStreamATI in value + param coords Float64 in array [3] + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ClientActiveVertexStreamATI(stream) + return void + param stream VertexStreamATI in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexBlendEnviATI(pname, param) + return void + param pname VertexStreamATI in value + param param Int32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexBlendEnvfATI(pname, param) + return void + param pname VertexStreamATI in value + param param Float32 in value + category ATI_vertex_streams + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #250 - WGL_I3D_digital_video_control +# Extension #251 - WGL_I3D_gamma +# Extension #252 - WGL_I3D_genlock +# Extension #253 - WGL_I3D_image_buffer +# Extension #254 - WGL_I3D_swap_frame_lock +# Extension #255 - WGL_I3D_swap_frame_usage +# +############################################################################### + +############################################################################### +# +# Extension #256 +# ATI_element_array commands +# +############################################################################### + +ElementPointerATI(type, pointer) + return void + param type ElementPointerTypeATI in value + param pointer Void in array [COMPSIZE(type)] retained + category ATI_element_array + dlflags notlistable + glxflags client-handcode client-intercept server-handcode + version 1.2 + offset ? + +DrawElementArrayATI(mode, count) + return void + param mode BeginMode in value + param count SizeI in value + category ATI_element_array + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.2 + offset ? + +DrawRangeElementArrayATI(mode, start, end, count) + return void + param mode BeginMode in value + param start UInt32 in value + param end UInt32 in value + param count SizeI in value + category ATI_element_array + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.2 + offset ? + +############################################################################### +# +# Extension #257 +# SUN_mesh_array commands +# +############################################################################### + +DrawMeshArraysSUN(mode, first, count, width) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + param width SizeI in value + category SUN_mesh_array + dlflags handcode + glxflags client-handcode client-intercept server-handcode + version 1.1 + glxropcode ? + offset ? + +############################################################################### +# +# Extension #258 +# SUN_slice_accum commands +# +############################################################################### + +# (none) +newcategory: SUN_slice_accum + +############################################################################### +# +# Extension #259 +# NV_multisample_filter_hint commands +# +############################################################################### + +# (none) +newcategory: NV_multisample_filter_hint + +############################################################################### +# +# Extension #260 +# NV_depth_clamp commands +# +############################################################################### + +# (none) +newcategory: NV_depth_clamp + +############################################################################### +# +# Extension #261 +# NV_occlusion_query commands +# +############################################################################### + +GenOcclusionQueriesNV(n, ids) + return void + param n SizeI in value + param ids UInt32 out array [n] + dlflags notlistable + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +DeleteOcclusionQueriesNV(n, ids) + return void + param n SizeI in value + param ids UInt32 in array [n] + dlflags notlistable + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +IsOcclusionQueryNV(id) + return Boolean + param id UInt32 in value + dlflags notlistable + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +BeginOcclusionQueryNV(id) + return void + param id UInt32 in value + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +EndOcclusionQueryNV() + return void + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +GetOcclusionQueryivNV(id, pname, params) + return void + param id UInt32 in value + param pname OcclusionQueryParameterNameNV in value + param params Int32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +GetOcclusionQueryuivNV(id, pname, params) + return void + param id UInt32 in value + param pname OcclusionQueryParameterNameNV in value + param params UInt32 out array [COMPSIZE(pname)] + dlflags notlistable + category NV_occlusion_query + version 1.2 + extension soft WINSOFT NV20 + glxflags ignore + +############################################################################### +# +# Extension #262 +# NV_point_sprite commands +# +############################################################################### + +PointParameteriNV(pname, param) + return void + param pname PointParameterNameARB in value + param param Int32 in value + category NV_point_sprite + version 1.2 + extension soft WINSOFT NV20 + glxropcode 4221 + alias PointParameteri + +PointParameterivNV(pname, params) + return void + param pname PointParameterNameARB in value + param params Int32 in array [COMPSIZE(pname)] + category NV_point_sprite + version 1.2 + extension soft WINSOFT NV20 + glxropcode 4222 + alias PointParameteriv + +############################################################################### +# +# Extension #263 - WGL_NV_render_depth_texture +# Extension #264 - WGL_NV_render_texture_rectangle +# +############################################################################### + +############################################################################### +# +# Extension #265 +# NV_texture_shader3 commands +# +############################################################################### + +# (none) +newcategory: NV_texture_shader3 + +############################################################################### +# +# Extension #266 +# NV_vertex_program1_1 commands +# +############################################################################### + +# (none) +newcategory: NV_vertex_program1_1 + +############################################################################### +# +# Extension #267 +# EXT_shadow_funcs commands +# +############################################################################### + +# (none) +newcategory: EXT_shadow_funcs + +############################################################################### +# +# Extension #268 +# EXT_stencil_two_side commands +# +############################################################################### + +ActiveStencilFaceEXT(face) + return void + param face StencilFaceDirection in value + category EXT_stencil_two_side + version 1.3 + glxropcode 4220 + offset 646 + +############################################################################### +# +# Extension #269 +# ATI_text_fragment_shader commands +# +############################################################################### + +# Uses ARB_vertex_program entry points +newcategory: ATI_text_fragment_shader + +############################################################################### +# +# Extension #270 +# APPLE_client_storage commands +# +############################################################################### + +# (none) +newcategory: APPLE_client_storage + +############################################################################### +# +# Extension #271 +# APPLE_element_array commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +# @@@ like #256 ATI_element_array +ElementPointerAPPLE(type, pointer) + return void + param type ElementPointerTypeATI in value + param pointer Void in array [type] + category APPLE_element_array + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DrawElementArrayAPPLE(mode, first, count) + return void + param mode BeginMode in value + param first Int32 in value + param count SizeI in value + category APPLE_element_array + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DrawRangeElementArrayAPPLE(mode, start, end, first, count) + return void + param mode BeginMode in value + param start UInt32 in value + param end UInt32 in value + param first Int32 in value + param count SizeI in value + category APPLE_element_array + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiDrawElementArrayAPPLE(mode, first, count, primcount) + return void + param mode BeginMode in value + param first Int32 in array [primcount] + param count SizeI in array [primcount] + param primcount SizeI in value + category APPLE_element_array + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, primcount) + return void + param mode BeginMode in value + param start UInt32 in value + param end UInt32 in value + param first Int32 in array [primcount] + param count SizeI in array [primcount] + param primcount SizeI in value + category APPLE_element_array + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #272 +# APPLE_fence commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +# @@@ like #222 NV_fence +GenFencesAPPLE(n, fences) + return void + param n SizeI in value + param fences FenceNV out array [n] + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +DeleteFencesAPPLE(n, fences) + return void + param n SizeI in value + param fences FenceNV in array [n] + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SetFenceAPPLE(fence) + return void + param fence FenceNV in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsFenceAPPLE(fence) + return Boolean + param fence FenceNV in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TestFenceAPPLE(fence) + return Boolean + param fence FenceNV in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FinishFenceAPPLE(fence) + return void + param fence FenceNV in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TestObjectAPPLE(object, name) + return Boolean + param object ObjectTypeAPPLE in value + param name UInt32 in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FinishObjectAPPLE(object, name) + return void + param object ObjectTypeAPPLE in value + param name Int32 in value + category APPLE_fence + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #273 +# APPLE_vertex_array_object commands +# +############################################################################### + +BindVertexArrayAPPLE(array) + return void + param array UInt32 in value + category APPLE_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + alias BindVertexArray + +DeleteVertexArraysAPPLE(n, arrays) + return void + param n SizeI in value + param arrays UInt32 in array [n] + category APPLE_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + alias DeleteVertexArrays + +GenVertexArraysAPPLE(n, arrays) + return void + param n SizeI in value + param arrays UInt32 out array [n] + category APPLE_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + alias GenVertexArray + +IsVertexArrayAPPLE(array) + return Boolean + param array UInt32 in value + category APPLE_vertex_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + alias IsVertexArray + +############################################################################### +# +# Extension #274 +# APPLE_vertex_array_range commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +# @@@ like #190 NV_vertex_array_range, +VertexArrayRangeAPPLE(length, pointer) + return void + param length SizeI in value + param pointer Void out array [length] + category APPLE_vertex_array_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FlushVertexArrayRangeAPPLE(length, pointer) + return void + param length SizeI in value + param pointer Void out array [length] + category APPLE_vertex_array_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexArrayParameteriAPPLE(pname, param) + return void + param pname VertexArrayPNameAPPLE in value + param param Int32 in value + category APPLE_vertex_array_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #275 +# APPLE_ycbcr_422 commands +# +############################################################################### + +# (none) +newcategory: APPLE_ycbcr_422 + +############################################################################### +# +# Extension #276 +# S3_s3tc commands +# +############################################################################### + +# (none) +newcategory: S3_s3tc + +############################################################################### +# +# Extension #277 +# ATI_draw_buffers commands +# +############################################################################### + +DrawBuffersATI(n, bufs) + return void + param n SizeI in value + param bufs DrawBufferModeATI in array [n] + category ATI_draw_buffers + version 1.2 + extension + glxropcode 233 + alias DrawBuffers + +############################################################################### +# +# Extension #278 - WGL_ATI_pixel_format_float +# +############################################################################### +newcategory: ATI_pixel_format_float +passthru: /* This is really a WGL extension, but defines some associated GL enums. +passthru: * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. +passthru: */ + +############################################################################### +# +# Extension #279 +# ATI_texture_env_combine3 commands +# +############################################################################### + +# (none) +newcategory: ATI_texture_env_combine3 + +############################################################################### +# +# Extension #280 +# ATI_texture_float commands +# +############################################################################### + +# (none) +newcategory: ATI_texture_float + +############################################################################### +# +# Extension #281 (also WGL_NV_float_buffer) +# NV_float_buffer commands +# +############################################################################### + +# (none) +newcategory: NV_float_buffer + +############################################################################### +# +# Extension #282 +# NV_fragment_program commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +# Some NV_fragment_program entry points are shared with ARB_vertex_program, +# and are only included in that #define block, for now. +newcategory: NV_fragment_program +passthru: /* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ + +ProgramNamedParameter4fNV(id, len, name, x, y, z, w) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category NV_fragment_program + version 1.2 + extension + glxropcode ? + glxflags ignore + offset 682 + +ProgramNamedParameter4dNV(id, len, name, x, y, z, w) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category NV_fragment_program + version 1.2 + extension + glxropcode ? + glxflags ignore + offset 683 + +ProgramNamedParameter4fvNV(id, len, name, v) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param v Float32 in array [4] + category NV_fragment_program + version 1.2 + extension + glxropcode ? + glxflags ignore + offset 684 + +ProgramNamedParameter4dvNV(id, len, name, v) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param v Float64 in array [4] + category NV_fragment_program + version 1.2 + extension + glxropcode ? + glxflags ignore + offset 685 + +GetProgramNamedParameterfvNV(id, len, name, params) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param params Float32 out array [4] + category NV_fragment_program + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset 686 + +GetProgramNamedParameterdvNV(id, len, name, params) + return void + param id UInt32 in value + param len SizeI in value + param name UInt8 in array [1] + param params Float64 out array [4] + category NV_fragment_program + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset 687 + +############################################################################### +# +# Extension #283 +# NV_half_float commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +Vertex2hNV(x, y) + return void + param x Half16NV in value + param y Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Vertex2hvNV(v) + return void + param v Half16NV in array [2] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Vertex3hNV(x, y, z) + return void + param x Half16NV in value + param y Half16NV in value + param z Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Vertex3hvNV(v) + return void + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Vertex4hNV(x, y, z, w) + return void + param x Half16NV in value + param y Half16NV in value + param z Half16NV in value + param w Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Vertex4hvNV(v) + return void + param v Half16NV in array [4] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Normal3hNV(nx, ny, nz) + return void + param nx Half16NV in value + param ny Half16NV in value + param nz Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Normal3hvNV(v) + return void + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Color3hNV(red, green, blue) + return void + param red Half16NV in value + param green Half16NV in value + param blue Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Color3hvNV(v) + return void + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Color4hNV(red, green, blue, alpha) + return void + param red Half16NV in value + param green Half16NV in value + param blue Half16NV in value + param alpha Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Color4hvNV(v) + return void + param v Half16NV in array [4] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord1hNV(s) + return void + param s Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord1hvNV(v) + return void + param v Half16NV in array [1] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord2hNV(s, t) + return void + param s Half16NV in value + param t Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord2hvNV(v) + return void + param v Half16NV in array [2] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord3hNV(s, t, r) + return void + param s Half16NV in value + param t Half16NV in value + param r Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord3hvNV(v) + return void + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord4hNV(s, t, r, q) + return void + param s Half16NV in value + param t Half16NV in value + param r Half16NV in value + param q Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoord4hvNV(v) + return void + param v Half16NV in array [4] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord1hNV(target, s) + return void + param target TextureUnit in value + param s Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord1hvNV(target, v) + return void + param target TextureUnit in value + param v Half16NV in array [1] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord2hNV(target, s, t) + return void + param target TextureUnit in value + param s Half16NV in value + param t Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord2hvNV(target, v) + return void + param target TextureUnit in value + param v Half16NV in array [2] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord3hNV(target, s, t, r) + return void + param target TextureUnit in value + param s Half16NV in value + param t Half16NV in value + param r Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord3hvNV(target, v) + return void + param target TextureUnit in value + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord4hNV(target, s, t, r, q) + return void + param target TextureUnit in value + param s Half16NV in value + param t Half16NV in value + param r Half16NV in value + param q Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MultiTexCoord4hvNV(target, v) + return void + param target TextureUnit in value + param v Half16NV in array [4] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FogCoordhNV(fog) + return void + param fog Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FogCoordhvNV(fog) + return void + param fog Half16NV in array [1] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SecondaryColor3hNV(red, green, blue) + return void + param red Half16NV in value + param green Half16NV in value + param blue Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SecondaryColor3hvNV(v) + return void + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexWeighthNV(weight) + return void + param weight Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexWeighthvNV(weight) + return void + param weight Half16NV in array [1] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib1hNV(index, x) + return void + param index UInt32 in value + param x Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib1hvNV(index, v) + return void + param index UInt32 in value + param v Half16NV in array [1] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib2hNV(index, x, y) + return void + param index UInt32 in value + param x Half16NV in value + param y Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib2hvNV(index, v) + return void + param index UInt32 in value + param v Half16NV in array [2] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib3hNV(index, x, y, z) + return void + param index UInt32 in value + param x Half16NV in value + param y Half16NV in value + param z Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib3hvNV(index, v) + return void + param index UInt32 in value + param v Half16NV in array [3] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib4hNV(index, x, y, z, w) + return void + param index UInt32 in value + param x Half16NV in value + param y Half16NV in value + param z Half16NV in value + param w Half16NV in value + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttrib4hvNV(index, v) + return void + param index UInt32 in value + param v Half16NV in array [4] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribs1hvNV(index, n, v) + return void + param index UInt32 in value + param n SizeI in value + param v Half16NV in array [n] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribs2hvNV(index, n, v) + return void + param index UInt32 in value + param n SizeI in value + param v Half16NV in array [n] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribs3hvNV(index, n, v) + return void + param index UInt32 in value + param n SizeI in value + param v Half16NV in array [n] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribs4hvNV(index, n, v) + return void + param index UInt32 in value + param n SizeI in value + param v Half16NV in array [n] + category NV_half_float + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #284 +# NV_pixel_data_range commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +PixelDataRangeNV(target, length, pointer) + return void + param target PixelDataRangeTargetNV in value + param length SizeI in value + param pointer Void out array [length] + category NV_pixel_data_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FlushPixelDataRangeNV(target) + return void + param target PixelDataRangeTargetNV in value + category NV_pixel_data_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #285 +# NV_primitive_restart commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +PrimitiveRestartNV() + return void + category NV_primitive_restart + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +PrimitiveRestartIndexNV(index) + return void + param index UInt32 in value + category NV_primitive_restart + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + + +############################################################################### +# +# Extension #286 +# NV_texture_expand_normal commands +# +############################################################################### + +# (none) +newcategory: NV_texture_expand_normal + +############################################################################### +# +# Extension #287 +# NV_vertex_program2 commands +# +############################################################################### + +# (none) +newcategory: NV_vertex_program2 + +############################################################################### +# +# Extension #288 +# ATI_map_object_buffer commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +MapObjectBufferATI(buffer) + return VoidPointer + param buffer UInt32 in value + category ATI_map_object_buffer + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +UnmapObjectBufferATI(buffer) + return void + param buffer UInt32 in value + category ATI_map_object_buffer + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #289 +# ATI_separate_stencil commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +StencilOpSeparateATI(face, sfail, dpfail, dppass) + return void + param face StencilFaceDirection in value + param sfail StencilOp in value + param dpfail StencilOp in value + param dppass StencilOp in value + category ATI_separate_stencil + version 1.2 + extension + glxropcode ? + glxflags ignore + alias StencilOpSeparate + +StencilFuncSeparateATI(frontfunc, backfunc, ref, mask) + return void + param frontfunc StencilFunction in value + param backfunc StencilFunction in value + param ref ClampedStencilValue in value + param mask MaskedStencilValue in value + category ATI_separate_stencil + version 1.2 + extension + glxropcode ? + glxflags ignore + alias StencilFuncSeparate + +############################################################################### +# +# Extension #290 +# ATI_vertex_attrib_array_object commands +# +############################################################################### + +# @@ Need to verify/add GLX protocol + +VertexAttribArrayObjectATI(index, size, type, normalized, stride, buffer, offset) + return void + param index UInt32 in value + param size Int32 in value + param type VertexAttribPointerTypeARB in value + param normalized Boolean in value + param stride SizeI in value + param buffer UInt32 in value + param offset UInt32 in value + category ATI_vertex_attrib_array_object + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetVertexAttribArrayObjectfvATI(index, pname, params) + return void + param index UInt32 in value + param pname ArrayObjectPNameATI in value + param params Float32 out array [pname] + category ATI_vertex_attrib_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVertexAttribArrayObjectivATI(index, pname, params) + return void + param index UInt32 in value + param pname ArrayObjectPNameATI in value + param params Int32 out array [pname] + category ATI_vertex_attrib_array_object + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #291 - OpenGL ES only, not in glext.h +# OES_byte_coordinates commands +# +############################################################################### + +# void Vertex{234}bOES(T coords) +# void Vertex{234}bvOES(T *coords) +# void TexCoord{1234}bOES(T coords) +# void TexCoord{1234}bvOES(T *coords) +# void MultiTexCoord{1234}bOES(enum texture, T coords) +# void MultiTexCoord{1234}bvOES(enum texture, T *coords) +# All are handcode - mapped to non-byte GLX protocol on client side + +# newcategory: OES_byte_coordinates + +############################################################################### +# +# Extension #292 - OpenGL ES only, not in glext.h +# OES_fixed_point commands +# +############################################################################### + +# Too many to list in just a comment - see spec in the extension registry +# All are handcode - mapped to non-byte GLX protocol on client side + +# newcategory: OES_fixed_point + +############################################################################### +# +# Extension #293 - OpenGL ES only, not in glext.h +# OES_single_precision commands +# +############################################################################### + +# void DepthRangefOES(clampf n, clampf f) +# void FrustumfOES(float l, float r, float b, float t, float n, float f) +# void OrthofOES(float l, float r, float b, float t, float n, float f) +# void ClipPlanefOES(enum plane, const float* equation) +# void glClearDepthfOES(clampd depth) +# GLX ropcodes 4308-4312 (not respectively, see extension spec) +# void GetClipPlanefOES(enum plane, float* equation) +# GLX vendor private 1421 + +# newcategory: OES_single_precision + +############################################################################### +# +# Extension #294 - OpenGL ES only, not in glext.h +# OES_compressed_paletted_texture commands +# +############################################################################### + +# (none) +# newcategory: OES_compressed_paletted_texture + +############################################################################### +# +# Extension #295 - This is an OpenGL ES extension, but also implemented in Mesa +# OES_read_format commands +# +############################################################################### + +# (none) +newcategory: OES_read_format + +############################################################################### +# +# Extension #296 - OpenGL ES only, not in glext.h +# OES_query_matrix commands +# +############################################################################### + +# bitfield queryMatrixxOES(fixed mantissa[16], int exponent[16]) +# All are handcode - mapped to non-byte GLX protocol on client side + +# newcategory: OES_query_matrix + +############################################################################### +# +# Extension #297 +# EXT_depth_bounds_test commands +# +############################################################################### + +DepthBoundsEXT(zmin, zmax) + return void + param zmin ClampedFloat64 in value + param zmax ClampedFloat64 in value + category EXT_depth_bounds_test + version 1.2 + extension + glxropcode 4229 + offset 699 + +############################################################################### +# +# Extension #298 +# EXT_texture_mirror_clamp commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_mirror_clamp + +############################################################################### +# +# Extension #299 +# EXT_blend_equation_separate commands +# +############################################################################### + +BlendEquationSeparateEXT(modeRGB, modeAlpha) + return void + param modeRGB BlendEquationModeEXT in value + param modeAlpha BlendEquationModeEXT in value + category EXT_blend_equation_separate + version 1.2 + extension + glxropcode 4228 + alias BlendEquationSeparate + +############################################################################### +# +# Extension #300 +# MESA_pack_invert commands +# +############################################################################### + +# (none) +newcategory: MESA_pack_invert + +############################################################################### +# +# Extension #301 +# MESA_ycbcr_texture commands +# +############################################################################### + +# (none) +newcategory: MESA_ycbcr_texture + +############################################################################### +# +# Extension #301 +# MESA_ycbcr_texture commands +# +############################################################################### + +# (none) +newcategory: MESA_ycbcr_texture + +############################################################################### +# +# Extension #302 +# EXT_pixel_buffer_object commands +# +############################################################################### + +# (none) +newcategory: EXT_pixel_buffer_object + +############################################################################### +# +# Extension #303 +# NV_fragment_program_option commands +# +############################################################################### + +# (none) +newcategory: NV_fragment_program_option + +############################################################################### +# +# Extension #304 +# NV_fragment_program2 commands +# +############################################################################### + +# (none) +newcategory: NV_fragment_program2 + +############################################################################### +# +# Extension #305 +# NV_vertex_program2_option commands +# +############################################################################### + +# (none) +newcategory: NV_vertex_program2_option + +############################################################################### +# +# Extension #306 +# NV_vertex_program3 commands +# +############################################################################### + +# (none) +newcategory: NV_vertex_program3 + +############################################################################### +# +# Extension #307 - GLX_SGIX_hyperpipe commands +# Extension #308 - GLX_MESA_agp_offset commands +# Extension #309 - GL_EXT_texture_compression_dxt1 (OpenGL ES only, subset of _st3c version) +# +############################################################################### + +############################################################################### +# +# Extension #310 +# EXT_framebuffer_object commands +# +############################################################################### + +IsRenderbufferEXT(renderbuffer) + return Boolean + param renderbuffer UInt32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxvendorpriv 1422 + glxflags ignore + alias IsRenderbuffer + +BindRenderbufferEXT(target, renderbuffer) + return void + param target RenderbufferTarget in value + param renderbuffer UInt32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4316 + glxflags ignore + alias BindRenderbuffer + +DeleteRenderbuffersEXT(n, renderbuffers) + return void + param n SizeI in value + param renderbuffers UInt32 in array [n] + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4317 + glxflags ignore + alias DeleteRenderbuffers + +GenRenderbuffersEXT(n, renderbuffers) + return void + param n SizeI in value + param renderbuffers UInt32 out array [n] + category EXT_framebuffer_object + version 1.2 + extension + glxvendorpriv 1423 + glxflags ignore + alias GenRenderbuffers + +RenderbufferStorageEXT(target, internalformat, width, height) + return void + param target RenderbufferTarget in value + param internalformat GLenum in value + param width SizeI in value + param height SizeI in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4318 + glxflags ignore + alias RenderbufferStorage + +GetRenderbufferParameterivEXT(target, pname, params) + return void + param target RenderbufferTarget in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_framebuffer_object + dlflags notlistable + version 1.2 + extension + glxvendorpriv 1424 + glxflags ignore + alias GetRenderbufferParameteriv + +IsFramebufferEXT(framebuffer) + return Boolean + param framebuffer UInt32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxvendorpriv 1425 + glxflags ignore + alias IsFramebuffer + +BindFramebufferEXT(target, framebuffer) + return void + param target FramebufferTarget in value + param framebuffer UInt32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4319 + glxflags ignore + alias BindFramebuffer + +DeleteFramebuffersEXT(n, framebuffers) + return void + param n SizeI in value + param framebuffers UInt32 in array [n] + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4320 + glxflags ignore + alias DeleteFramebuffers + +GenFramebuffersEXT(n, framebuffers) + return void + param n SizeI in value + param framebuffers UInt32 out array [n] + category EXT_framebuffer_object + version 1.2 + extension + glxvendorpriv 1426 + glxflags ignore + alias GenFramebuffers + +CheckFramebufferStatusEXT(target) + return GLenum + param target FramebufferTarget in value + category EXT_framebuffer_object + version 1.2 + extension + glxvendorpriv 1427 + glxflags ignore + alias CheckFramebufferStatus + +FramebufferTexture1DEXT(target, attachment, textarget, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4321 + glxflags ignore + alias FramebufferTexture1D + +FramebufferTexture2DEXT(target, attachment, textarget, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4322 + glxflags ignore + alias FramebufferTexture2D + +FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param textarget GLenum in value + param texture UInt32 in value + param level Int32 in value + param zoffset Int32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4323 + glxflags ignore + alias FramebufferTexture3D + +FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param renderbuffertarget RenderbufferTarget in value + param renderbuffer UInt32 in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4324 + glxflags ignore + alias FramebufferRenderbuffer + +GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_framebuffer_object + dlflags notlistable + version 1.2 + extension + glxvendorpriv 1428 + glxflags ignore + alias GetFramebufferAttachmentParameteriv + +GenerateMipmapEXT(target) + return void + param target GLenum in value + category EXT_framebuffer_object + version 1.2 + extension + glxropcode 4325 + glxflags ignore + alias GenerateMipmap + + +############################################################################### +# +# Extension #311 +# GREMEDY_string_marker commands +# +############################################################################### + +StringMarkerGREMEDY(len, string) + return void + param len SizeI in value + param string Void in array [len] + category GREMEDY_string_marker + version 1.0 + extension + glxflags ignore + offset ? + +############################################################################### +# +# Extension #312 +# EXT_packed_depth_stencil commands +# +############################################################################### + +# (none) +newcategory: EXT_packed_depth_stencil + +############################################################################### +# +# Extension #313 - WGL_3DL_stereo_control +# +############################################################################### + +############################################################################### +# +# Extension #314 +# EXT_stencil_clear_tag commands +# +############################################################################### + +StencilClearTagEXT(stencilTagBits, stencilClearTag) + return void + param stencilTagBits SizeI in value + param stencilClearTag UInt32 in value + category EXT_stencil_clear_tag + version 1.5 + extension + glxropcode 4223 + glxflags ignore + offset ? + +############################################################################### +# +# Extension #315 +# EXT_texture_sRGB commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_sRGB + +############################################################################### +# +# Extension #316 +# EXT_framebuffer_blit commands +# +############################################################################### + +BlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + return void + param srcX0 Int32 in value + param srcY0 Int32 in value + param srcX1 Int32 in value + param srcY1 Int32 in value + param dstX0 Int32 in value + param dstY0 Int32 in value + param dstX1 Int32 in value + param dstY1 Int32 in value + param mask ClearBufferMask in value + param filter GLenum in value + category EXT_framebuffer_blit + version 1.5 + glxropcode 4330 + alias BlitFramebuffer + +############################################################################### +# +# Extension #317 +# EXT_framebuffer_multisample commands +# +############################################################################### + +RenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height) + return void + param target GLenum in value + param samples SizeI in value + param internalformat GLenum in value + param width SizeI in value + param height SizeI in value + category EXT_framebuffer_multisample + version 1.5 + glxropcode 4331 + alias RenderbufferStorageMultisample + +############################################################################### +# +# Extension #318 +# MESAX_texture_stack commands +# +############################################################################### + +# (none) +newcategory: MESAX_texture_stack + +############################################################################### +# +# Extension #319 +# EXT_timer_query commands +# +############################################################################### + +GetQueryObjecti64vEXT(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params Int64EXT out array [pname] + category EXT_timer_query + dlflags notlistable + version 1.5 + glxvendorpriv 1328 + glxflags ignore + offset ? + +GetQueryObjectui64vEXT(id, pname, params) + return void + param id UInt32 in value + param pname GLenum in value + param params UInt64EXT out array [pname] + category EXT_timer_query + dlflags notlistable + version 1.5 + glxvendorpriv 1329 + glxflags ignore + offset ? + +############################################################################### +# +# Extension #320 +# EXT_gpu_program_parameters commands +# +############################################################################### + +ProgramEnvParameters4fvEXT(target, index, count, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param count SizeI in value + param params Float32 in array [count*4] + category EXT_gpu_program_parameters + version 1.2 + glxropcode 4281 + offset ? + +ProgramLocalParameters4fvEXT(target, index, count, params) + return void + param target ProgramTargetARB in value + param index UInt32 in value + param count SizeI in value + param params Float32 in array [count*4] + category EXT_gpu_program_parameters + version 1.2 + glxropcode 4282 + offset ? + +############################################################################### +# +# Extension #321 +# APPLE_flush_buffer_range commands +# +############################################################################### + +BufferParameteriAPPLE(target, pname, param) + return void + param target GLenum in value + param pname GLenum in value + param param Int32 in value + category APPLE_flush_buffer_range + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +FlushMappedBufferRangeAPPLE(target, offset, size) + return void + param target GLenum in value + param offset BufferOffset in value + param size BufferSize in value + category APPLE_flush_buffer_range + version 1.5 + extension + glxropcode ? + glxflags ignore + alias FlushMappedBufferRange + +############################################################################### +# +# Extension #322 +# NV_gpu_program4 commands +# +############################################################################### + +ProgramLocalParameterI4iNV(target, index, x, y, z, w) + return void + param target ProgramTarget in value + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category NV_gpu_program4 + version 1.3 + vectorequiv ProgramLocalParameterI4ivNV + glxvectorequiv ProgramLocalParameterI4ivNV + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramLocalParameterI4ivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params Int32 in array [4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramLocalParametersI4ivNV(target, index, count, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params Int32 in array [count*4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramLocalParameterI4uiNV(target, index, x, y, z, w) + return void + param target ProgramTarget in value + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + param w UInt32 in value + category NV_gpu_program4 + version 1.3 + vectorequiv ProgramLocalParameterI4uivNV + glxvectorequiv ProgramLocalParameterI4uivNV + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramLocalParameterI4uivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 in array [4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramLocalParametersI4uivNV(target, index, count, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params UInt32 in array [count*4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParameterI4iNV(target, index, x, y, z, w) + return void + param target ProgramTarget in value + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category NV_gpu_program4 + version 1.3 + vectorequiv ProgramEnvParameterI4ivNV + glxvectorequiv ProgramEnvParameterI4ivNV + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParameterI4ivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params Int32 in array [4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParametersI4ivNV(target, index, count, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params Int32 in array [count*4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParameterI4uiNV(target, index, x, y, z, w) + return void + param target ProgramTarget in value + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + param w UInt32 in value + category NV_gpu_program4 + version 1.3 + vectorequiv ProgramEnvParameterI4uivNV + glxvectorequiv ProgramEnvParameterI4uivNV + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParameterI4uivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 in array [4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramEnvParametersI4uivNV(target, index, count, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params UInt32 in array [count*4] + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +GetProgramLocalParameterIivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params Int32 out array [4] + dlflags notlistable + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +GetProgramLocalParameterIuivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 out array [4] + dlflags notlistable + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +GetProgramEnvParameterIivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params Int32 out array [4] + dlflags notlistable + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +GetProgramEnvParameterIuivNV(target, index, params) + return void + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 out array [4] + dlflags notlistable + category NV_gpu_program4 + version 1.3 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #323 +# NV_geometry_program4 commands +# +############################################################################### + +ProgramVertexLimitNV(target, limit) + return void + param target ProgramTarget in value + param limit Int32 in value + category NV_geometry_program4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + +FramebufferTextureEXT(target, attachment, texture, level) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + category NV_geometry_program4 + version 2.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + alias FramebufferTextureARB + +FramebufferTextureLayerEXT(target, attachment, texture, level, layer) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param layer CheckedInt32 in value + category NV_geometry_program4 + version 2.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + alias FramebufferTextureLayer + +FramebufferTextureFaceEXT(target, attachment, texture, level, face) + return void + param target FramebufferTarget in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param face TextureTarget in value + category NV_geometry_program4 + version 2.0 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + alias FramebufferTextureFaceARB + +############################################################################### +# +# Extension #324 +# EXT_geometry_shader4 commands +# +############################################################################### + +ProgramParameteriEXT(program, pname, value) + return void + param program UInt32 in value + param pname ProgramParameterPName in value + param value Int32 in value + category EXT_geometry_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias ProgramParameteriARB + +############################################################################### +# +# Extension #325 +# NV_vertex_program4 commands +# +############################################################################### + +VertexAttribI1iEXT(index, x) + return void + param index UInt32 in value + param x Int32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI1ivEXT + glxvectorequiv VertexAttribI1ivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI1i + +VertexAttribI2iEXT(index, x, y) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI2ivEXT + glxvectorequiv VertexAttribI2ivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI2i + +VertexAttribI3iEXT(index, x, y, z) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI3ivEXT + glxvectorequiv VertexAttribI3ivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI3i + +VertexAttribI4iEXT(index, x, y, z, w) + return void + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI4ivEXT + glxvectorequiv VertexAttribI4ivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4i + +VertexAttribI1uiEXT(index, x) + return void + param index UInt32 in value + param x UInt32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI1uivEXT + glxvectorequiv VertexAttribI1uivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI1ui + +VertexAttribI2uiEXT(index, x, y) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI2uivEXT + glxvectorequiv VertexAttribI2uivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI2ui + +VertexAttribI3uiEXT(index, x, y, z) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI3uivEXT + glxvectorequiv VertexAttribI3uivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI3ui + +VertexAttribI4uiEXT(index, x, y, z, w) + return void + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + param w UInt32 in value + category NV_vertex_program4 + beginend allow-inside + vectorequiv VertexAttribI4uivEXT + glxvectorequiv VertexAttribI4uivEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4ui + +VertexAttribI1ivEXT(index, v) + return void + param index UInt32 in value + param v Int32 in array [1] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI1iv + +VertexAttribI2ivEXT(index, v) + return void + param index UInt32 in value + param v Int32 in array [2] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI2iv + +VertexAttribI3ivEXT(index, v) + return void + param index UInt32 in value + param v Int32 in array [3] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI3iv + +VertexAttribI4ivEXT(index, v) + return void + param index UInt32 in value + param v Int32 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4iv + +VertexAttribI1uivEXT(index, v) + return void + param index UInt32 in value + param v UInt32 in array [1] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI1uiv + +VertexAttribI2uivEXT(index, v) + return void + param index UInt32 in value + param v UInt32 in array [2] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI2uiv + +VertexAttribI3uivEXT(index, v) + return void + param index UInt32 in value + param v UInt32 in array [3] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI3uiv + +VertexAttribI4uivEXT(index, v) + return void + param index UInt32 in value + param v UInt32 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4uiv + +VertexAttribI4bvEXT(index, v) + return void + param index UInt32 in value + param v Int8 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4bv + +VertexAttribI4svEXT(index, v) + return void + param index UInt32 in value + param v Int16 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4sv + +VertexAttribI4ubvEXT(index, v) + return void + param index UInt32 in value + param v UInt8 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4ubv + +VertexAttribI4usvEXT(index, v) + return void + param index UInt32 in value + param v UInt16 in array [4] + category NV_vertex_program4 + beginend allow-inside + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribI4usv + +VertexAttribIPointerEXT(index, size, type, stride, pointer) + return void + param index UInt32 in value + param size Int32 in value + param type VertexAttribEnum in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category NV_vertex_program4 + dlflags notlistable + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias VertexAttribIPointer + +GetVertexAttribIivEXT(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnum in value + param params Int32 out array [1] + category NV_vertex_program4 + dlflags notlistable + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias GetVertexAttribIiv + +GetVertexAttribIuivEXT(index, pname, params) + return void + param index UInt32 in value + param pname VertexAttribEnum in value + param params UInt32 out array [1] + category NV_vertex_program4 + dlflags notlistable + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + alias GetVertexAttribIuiv + +############################################################################### +# +# Extension #326 +# EXT_gpu_shader4 commands +# +############################################################################### + +GetUniformuivEXT(program, location, params) + return void + param program UInt32 in value + param location Int32 in value + param params UInt32 out array [COMPSIZE(program/location)] + category EXT_gpu_shader4 + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias GetUniformuiv + +BindFragDataLocationEXT(program, color, name) + return void + param program UInt32 in value + param color UInt32 in value + param name Char in array [COMPSIZE(name)] + category EXT_gpu_shader4 + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias BindFragDataLocation + +GetFragDataLocationEXT(program, name) + return Int32 + param program UInt32 in value + param name Char in array [COMPSIZE(name)] + category EXT_gpu_shader4 + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias GetFragDataLocation + +Uniform1uiEXT(location, v0) + return void + param location Int32 in value + param v0 UInt32 in value + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform1ui + +Uniform2uiEXT(location, v0, v1) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform2ui + +Uniform3uiEXT(location, v0, v1, v2) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform3ui + +Uniform4uiEXT(location, v0, v1, v2, v3) + return void + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + param v3 UInt32 in value + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform4ui + +Uniform1uivEXT(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count] + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform1uiv + +Uniform2uivEXT(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*2] + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform2uiv + +Uniform3uivEXT(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*3] + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform3uiv + +Uniform4uivEXT(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*4] + category EXT_gpu_shader4 + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias Uniform4uiv + +############################################################################### +# +# Extension #327 +# EXT_draw_instanced commands +# +############################################################################### + +DrawArraysInstancedEXT(mode, start, count, primcount) + return void + param mode BeginMode in value + param start Int32 in value + param count SizeI in value + param primcount SizeI in value + category EXT_draw_instanced + version 2.0 + extension soft WINSOFT + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + alias DrawArraysInstancedARB + +DrawElementsInstancedEXT(mode, count, type, indices, primcount) + return void + param mode BeginMode in value + param count SizeI in value + param type DrawElementsType in value + param indices Void in array [COMPSIZE(count/type)] + param primcount SizeI in value + category EXT_draw_instanced + version 2.0 + extension soft WINSOFT + dlflags notlistable + vectorequiv ArrayElement + glfflags ignore + glxflags ignore + alias DrawElementsInstancedARB + +############################################################################### +# +# Extension #328 +# EXT_packed_float commands +# +############################################################################### + +# (none) +newcategory: EXT_packed_float + +############################################################################### +# +# Extension #329 +# EXT_texture_array commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_array + +############################################################################### +# +# Extension #330 +# EXT_texture_buffer_object commands +# +############################################################################### + +TexBufferEXT(target, internalformat, buffer) + return void + param target TextureTarget in value + param internalformat GLenum in value + param buffer UInt32 in value + category EXT_texture_buffer_object + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + alias TexBufferARB + +############################################################################### +# +# Extension #331 +# EXT_texture_compression_latc commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_compression_latc + +############################################################################### +# +# Extension #332 +# EXT_texture_compression_rgtc commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_compression_rgtc + +############################################################################### +# +# Extension #333 +# EXT_texture_shared_exponent commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_shared_exponent + +############################################################################### +# +# Extension #334 +# NV_depth_buffer_float commands +# +############################################################################### + +DepthRangedNV(zNear, zFar) + return void + param zNear Float64 in value + param zFar Float64 in value + category NV_depth_buffer_float + extension soft WINSOFT NV50 + version 2.0 + glfflags ignore + glxflags ignore + +ClearDepthdNV(depth) + return void + param depth Float64 in value + category NV_depth_buffer_float + extension soft WINSOFT NV50 + version 2.0 + glfflags ignore + glxflags ignore + +DepthBoundsdNV(zmin, zmax) + return void + param zmin Float64 in value + param zmax Float64 in value + category NV_depth_buffer_float + extension soft WINSOFT NV50 + version 2.0 + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #335 +# NV_fragment_program4 commands +# +############################################################################### + +# (none) +newcategory: NV_fragment_program4 + +############################################################################### +# +# Extension #336 +# NV_framebuffer_multisample_coverage commands +# +############################################################################### + +RenderbufferStorageMultisampleCoverageNV(target, coverageSamples, colorSamples, internalformat, width, height) + return void + param target RenderbufferTarget in value + param coverageSamples SizeI in value + param colorSamples SizeI in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + category NV_framebuffer_multisample_coverage + version 1.5 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #337 +# EXT_framebuffer_sRGB commands +# +############################################################################### + +# (none) +newcategory: EXT_framebuffer_sRGB + +############################################################################### +# +# Extension #338 +# NV_geometry_shader4 commands +# +############################################################################### + +# (none) +newcategory: NV_geometry_shader4 + +############################################################################### +# +# Extension #339 +# NV_parameter_buffer_object commands +# +############################################################################### + +ProgramBufferParametersfvNV(target, buffer, index, count, params) + return void + param target ProgramTarget in value + param buffer UInt32 in value + param index UInt32 in value + param count SizeI in value + param params Float32 in array [count] + category NV_parameter_buffer_object + version 1.2 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramBufferParametersIivNV(target, buffer, index, count, params) + return void + param target ProgramTarget in value + param buffer UInt32 in value + param index UInt32 in value + param count SizeI in value + param params Int32 in array [count] + category NV_parameter_buffer_object + version 1.2 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ProgramBufferParametersIuivNV(target, buffer, index, count, params) + return void + param target ProgramTarget in value + param buffer UInt32 in value + param index UInt32 in value + param count SizeI in value + param params UInt32 in array [count] + category NV_parameter_buffer_object + version 1.2 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #340 +# EXT_draw_buffers2 commands +# +############################################################################### + +ColorMaskIndexedEXT(index, r, g, b, a) + return void + param index UInt32 in value + param r Boolean in value + param g Boolean in value + param b Boolean in value + param a Boolean in value + category EXT_draw_buffers2 + version 2.0 + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias ColorMaski + +GetBooleanIndexedvEXT(target, index, data) + return void + param target GLenum in value + param index UInt32 in value + param data Boolean out array [COMPSIZE(target)] + category EXT_draw_buffers2 + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias GetBooleani_v + +GetIntegerIndexedvEXT(target, index, data) + return void + param target GLenum in value + param index UInt32 in value + param data Int32 out array [COMPSIZE(target)] + category EXT_draw_buffers2 + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias GetIntegeri_v + +EnableIndexedEXT(target, index) + return void + param target GLenum in value + param index UInt32 in value + category EXT_draw_buffers2 + version 2.0 + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias Enablei + +DisableIndexedEXT(target, index) + return void + param target GLenum in value + param index UInt32 in value + category EXT_draw_buffers2 + version 2.0 + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias Disablei + +IsEnabledIndexedEXT(target, index) + return Boolean + param target GLenum in value + param index UInt32 in value + category EXT_draw_buffers2 + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias IsEnabledi + +############################################################################### +# +# Extension #341 +# NV_transform_feedback commands +# +############################################################################### + +BeginTransformFeedbackNV(primitiveMode) + return void + param primitiveMode GLenum in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BeginTransformFeedback + +EndTransformFeedbackNV() + return void + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias EndTransformFeedback + +TransformFeedbackAttribsNV(count, attribs, bufferMode) + return void + param count UInt32 in value + param attribs Int32 in array [COMPSIZE(count)] + param bufferMode GLenum in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +BindBufferRangeNV(target, index, buffer, offset, size) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + param offset BufferOffset in value + param size BufferSize in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BindBufferRange + +BindBufferOffsetNV(target, index, buffer, offset) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + param offset BufferOffset in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BindBufferOffsetEXT + +BindBufferBaseNV(target, index, buffer) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BindBufferBase + +TransformFeedbackVaryingsNV(program, count, varyings, bufferMode) + return void + param program UInt32 in value + param count SizeI in value + param varyings CharPointer in array [count] + param bufferMode GLenum in value + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias TransformFeedbackVaryings + +ActiveVaryingNV(program, name) + return void + param program UInt32 in value + param name Char in array [COMPSIZE(name)] + category NV_transform_feedback + version 1.5 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +GetVaryingLocationNV(program, name) + return Int32 + param program UInt32 in value + param name Char in array [COMPSIZE(name)] + category NV_transform_feedback + dlflags notlistable + version 1.5 + glfflags ignore + glxflags ignore + extension soft WINSOFT + +GetActiveVaryingNV(program, index, bufSize, length, size, type, name) + return void + param program UInt32 in value + param index UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param size SizeI out array [1] + param type GLenum out array [1] + param name Char out array [COMPSIZE(program/index/bufSize)] + category NV_transform_feedback + dlflags notlistable + version 1.5 + extension soft WINSOFT + glfflags ignore + glxflags ignore + +GetTransformFeedbackVaryingNV(program, index, location) + return void + param program UInt32 in value + param index UInt32 in value + param location Int32 out array [1] + category NV_transform_feedback + dlflags notlistable + version 1.5 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias GetTransformFeedbackVarying + +############################################################################### +# +# Extension #342 +# EXT_bindable_uniform commands +# +############################################################################### + +UniformBufferEXT(program, location, buffer) + return void + param program UInt32 in value + param location Int32 in value + param buffer UInt32 in value + category EXT_bindable_uniform + version 2.0 + extension soft WINSOFT + glxflags ignore + glfflags ignore + +GetUniformBufferSizeEXT(program, location) + return Int32 + param program UInt32 in value + param location Int32 in value + category EXT_bindable_uniform + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + +GetUniformOffsetEXT(program, location) + return BufferOffset + param program UInt32 in value + param location Int32 in value + category EXT_bindable_uniform + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #343 +# EXT_texture_integer extension commands +# +############################################################################### + +TexParameterIivEXT(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params Int32 in array [COMPSIZE(pname)] + category EXT_texture_integer + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + alias TexParameterIiv + +TexParameterIuivEXT(target, pname, params) + return void + param target TextureTarget in value + param pname TextureParameterName in value + param params UInt32 in array [COMPSIZE(pname)] + category EXT_texture_integer + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + alias TexParameterIuiv + +GetTexParameterIivEXT(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_texture_integer + dlflags notlistable + version 1.0 + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + alias GetTexParameterIiv + +GetTexParameterIuivEXT(target, pname, params) + return void + param target TextureTarget in value + param pname GetTextureParameter in value + param params UInt32 out array [COMPSIZE(pname)] + category EXT_texture_integer + dlflags notlistable + version 1.0 + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + alias GetTexParameterIuiv + +ClearColorIiEXT(red, green, blue, alpha) + return void + param red Int32 in value + param green Int32 in value + param blue Int32 in value + param alpha Int32 in value + category EXT_texture_integer + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +ClearColorIuiEXT(red, green, blue, alpha) + return void + param red UInt32 in value + param green UInt32 in value + param blue UInt32 in value + param alpha UInt32 in value + category EXT_texture_integer + version 2.0 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #344 - GLX_EXT_texture_from_pixmap +# +############################################################################### + +############################################################################### +# +# Extension #345 +# GREMEDY_frame_terminator commands +# +############################################################################### + +FrameTerminatorGREMEDY() + return void + category GREMEDY_frame_terminator + version 1.0 + extension + glxflags ignore + offset ? + +############################################################################### +# +# Extension #346 +# NV_conditional_render commands +# +############################################################################### + +BeginConditionalRenderNV(id, mode) + return void + param id UInt32 in value + param mode TypeEnum in value + category NV_conditional_render + glfflags ignore + glxflags ignore + alias BeginConditionalRender + +EndConditionalRenderNV() + return void + category NV_conditional_render + glfflags ignore + glxflags ignore + alias EndConditionalRender + +############################################################################### +# +# Extension #347 +# NV_present_video commands +# +############################################################################### + +# TBD +# void PresentFrameKeyedNV(uint video_slot, uint64EXT minPresentTime, +# uint beginPresentTimeId, uint +# presentDurationId, enum type, enum target0, +# uint fill0, uint key0, enum target1, uint +# fill1, uint key1); +# +# void PresentFrameDualFillNV(uint video_slot, uint64EXT +# minPresentTime, uint beginPresentTimeId, +# uint presentDurationId, enum type, enum +# target0, uint fill0, enum target1, uint +# fill1, enum target2, uint fill2, enum +# target3, uint fill3); +# +# void GetVideoivNV(uint video_slot, enum pname, int *params); +# void GetVideouivNV(uint video_slot, enum pname, uint *params); +# void GetVideoi64vNV(uint video_slot, enum pname, int64EXT *params); +# void GetVideoui64vNV(uint video_slot, enum pname, uint64EXT *params); +# void VideoParameterivNV(uint video_slot, enum pname, const int *params); + +PresentFrameKeyedNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1) + return void + param video_slot UInt32 in value + param minPresentTime UInt64EXT in value + param beginPresentTimeId UInt32 in value + param presentDurationId UInt32 in value + param type GLenum in value + param target0 GLenum in value + param fill0 UInt32 in value + param key0 UInt32 in value + param target1 GLenum in value + param fill1 UInt32 in value + param key1 UInt32 in value + category NV_present_video + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +PresentFrameDualFillNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3) + return void + param video_slot UInt32 in value + param minPresentTime UInt64EXT in value + param beginPresentTimeId UInt32 in value + param presentDurationId UInt32 in value + param type GLenum in value + param target0 GLenum in value + param fill0 UInt32 in value + param target1 GLenum in value + param fill1 UInt32 in value + param target2 GLenum in value + param fill2 UInt32 in value + param target3 GLenum in value + param fill3 UInt32 in value + category NV_present_video + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetVideoivNV(video_slot, pname, params) + return void + param video_slot UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category NV_present_video + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideouivNV(video_slot, pname, params) + return void + param video_slot UInt32 in value + param pname GLenum in value + param params UInt32 out array [COMPSIZE(pname)] + category NV_present_video + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideoi64vNV(video_slot, pname, params) + return void + param video_slot UInt32 in value + param pname GLenum in value + param params Int64EXT out array [COMPSIZE(pname)] + category NV_present_video + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideoui64vNV(video_slot, pname, params) + return void + param video_slot UInt32 in value + param pname GLenum in value + param params UInt64EXT out array [COMPSIZE(pname)] + category NV_present_video + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #348 - GLX_NV_video_out +# Extension #349 - WGL_NV_video_out +# Extension #350 - GLX_NV_swap_group +# Extension #351 - WGL_NV_swap_group +# +############################################################################### + +############################################################################### +# +# Extension #352 +# EXT_transform_feedback commands +# +############################################################################### + +# From EXT_draw_buffers2: GetBooleanIndexedvEXT / GetIntegerIndexedvEXT + +BeginTransformFeedbackEXT(primitiveMode) + return void + param primitiveMode GLenum in value + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BeginTransformFeedback + +EndTransformFeedbackEXT() + return void + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias EndTransformFeedback + +BindBufferRangeEXT(target, index, buffer, offset, size) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + param offset BufferOffset in value + param size BufferSize in value + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BindBufferRange + +# Not promoted to the OpenGL 3.0 core +BindBufferOffsetEXT(target, index, buffer, offset) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + param offset BufferOffset in value + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +BindBufferBaseEXT(target, index, buffer) + return void + param target GLenum in value + param index UInt32 in value + param buffer UInt32 in value + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias BindBufferBase + +TransformFeedbackVaryingsEXT(program, count, varyings, bufferMode) + return void + param program UInt32 in value + param count SizeI in value + param varyings CharPointer in array [count] + param bufferMode GLenum in value + category EXT_transform_feedback + version 2.0 + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + alias TransformFeedbackVaryings + +GetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name) + return void + param program UInt32 in value + param index UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param size SizeI out array [1] + param type GLenum out array [1] + param name Char out array [COMPSIZE(length)] + category EXT_transform_feedback + dlflags notlistable + version 2.0 + extension soft WINSOFT + glfflags ignore + glxflags ignore + alias GetTransformFeedbackVarying + +############################################################################### +# +# Extension #353 +# EXT_direct_state_access commands +# +############################################################################### + +# New 1.1 client commands + +ClientAttribDefaultEXT(mask) + return void + param mask ClientAttribMask in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore ### client-handcode client-intercept server-handcode + +PushClientAttribDefaultEXT(mask) + return void + param mask ClientAttribMask in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore ### client-handcode client-intercept server-handcode + +# New 1.0 matrix commands + +MatrixLoadfEXT(mode, m) + return void + param mode MatrixMode in value + param m Float32 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixLoaddEXT(mode, m) + return void + param mode MatrixMode in value + param m Float64 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixMultfEXT(mode, m) + return void + param mode MatrixMode in value + param m Float32 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixMultdEXT(mode, m) + return void + param mode MatrixMode in value + param m Float64 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixLoadIdentityEXT(mode) + return void + param mode MatrixMode in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixRotatefEXT(mode, angle, x, y, z) + return void + param mode MatrixMode in value + param angle Float32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixRotatedEXT(mode, angle, x, y, z) + return void + param mode MatrixMode in value + param angle Float64 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixScalefEXT(mode, x, y, z) + return void + param mode MatrixMode in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixScaledEXT(mode, x, y, z) + return void + param mode MatrixMode in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixTranslatefEXT(mode, x, y, z) + return void + param mode MatrixMode in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixTranslatedEXT(mode, x, y, z) + return void + param mode MatrixMode in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixFrustumEXT(mode, left, right, bottom, top, zNear, zFar) + return void + param mode MatrixMode in value + param left Float64 in value + param right Float64 in value + param bottom Float64 in value + param top Float64 in value + param zNear Float64 in value + param zFar Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixOrthoEXT(mode, left, right, bottom, top, zNear, zFar) + return void + param mode MatrixMode in value + param left Float64 in value + param right Float64 in value + param bottom Float64 in value + param top Float64 in value + param zNear Float64 in value + param zFar Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixPopEXT(mode) + return void + param mode MatrixMode in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixPushEXT(mode) + return void + param mode MatrixMode in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +# New 1.3 matrix transpose commands + +MatrixLoadTransposefEXT(mode, m) + return void + param mode MatrixMode in value + param m Float32 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixLoadTransposedEXT(mode, m) + return void + param mode MatrixMode in value + param m Float64 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixMultTransposefEXT(mode, m) + return void + param mode MatrixMode in value + param m Float32 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MatrixMultTransposedEXT(mode, m) + return void + param mode MatrixMode in value + param m Float64 in array [16] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +# New 1.1 texture object commands + +TextureParameterfEXT(texture, target, pname, param) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedFloat32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + vectorequiv TextureParameterfvEXT + +TextureParameterfvEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +TextureParameteriEXT(texture, target, pname, param) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + vectorequiv TextureParameterivEXT + +TextureParameterivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +TextureImage1DEXT(texture, target, level, internalformat, width, border, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-handcode decode-handcode pixel-unpack + +TextureImage2DEXT(texture, target, level, internalformat, width, height, border, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-handcode decode-handcode pixel-unpack + +TextureSubImage1DEXT(texture, target, level, xoffset, width, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### EXT client-handcode server-handcode + glxflags ignore + extension soft WINSOFT + glfflags ignore + +TextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### EXT client-handcode server-handcode + extension soft WINSOFT + glfflags ignore + +CopyTextureImage1DEXT(texture, target, level, internalformat, x, y, width, border) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param border CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyTextureImage2DEXT(texture, target, level, internalformat, x, y, width, height, border) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyTextureSubImage1DEXT(texture, target, level, xoffset, x, y, width) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, x, y, width, height) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +# New 1.1 texture object queries + +GetTextureImageEXT(texture, target, level, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void out array [COMPSIZE(target/level/format/type)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-execute capture-handcode decode-handcode pixel-pack + +GetTextureParameterfvEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetTextureParameterivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetTextureLevelParameterfvEXT(texture, target, level, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetTextureLevelParameterivEXT(texture, target, level, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +# New 1.2 3D texture object commands + +TextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode EXT + extension soft WINSOFT + glfflags ignore + +TextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode EXT + extension soft WINSOFT + glfflags ignore + +CopyTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, x, y, width, height) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + glxflags ignore ### EXT + extension soft WINSOFT + glfflags ignore + +# New 1.1 multitexture commands + +MultiTexParameterfEXT(texunit, target, pname, param) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedFloat32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + vectorequiv MultiTexParameterfvEXT + +MultiTexParameterfvEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MultiTexParameteriEXT(texunit, target, pname, param) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param param CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + vectorequiv MultiTexParameterivEXT + +MultiTexParameterivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags ignore + +MultiTexImage1DEXT(texunit, target, level, internalformat, width, border, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-handcode decode-handcode pixel-unpack + +MultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-handcode decode-handcode pixel-unpack + +MultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### EXT client-handcode server-handcode + extension soft WINSOFT + glfflags ignore + +MultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### EXT client-handcode server-handcode + extension soft WINSOFT + glfflags ignore + +CopyMultiTexImage1DEXT(texunit, target, level, internalformat, x, y, width, border) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param border CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyMultiTexImage2DEXT(texunit, target, level, internalformat, x, y, width, height, border) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyMultiTexSubImage1DEXT(texunit, target, level, xoffset, x, y, width) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +CopyMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, x, y, width, height) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +# New 1.1 multitexture queries + +GetMultiTexImageEXT(texunit, target, level, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void out array [COMPSIZE(target/level/format/type)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### client-handcode server-handcode + extension soft WINSOFT + glfflags capture-execute capture-handcode decode-handcode pixel-pack + +GetMultiTexParameterfvEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexParameterivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexLevelParameterfvEXT(texunit, target, level, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexLevelParameterivEXT(texunit, target, level, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +# New 1.2 3D multitexture commands + +MultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode EXT + extension soft WINSOFT + glfflags ignore + +MultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param type PixelType in value + param pixels Void in array [COMPSIZE(format/type/width/height/depth)] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode EXT + extension soft WINSOFT + glfflags ignore + +CopyMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param x WinCoord in value + param y WinCoord in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + glxflags ignore ### EXT + extension soft WINSOFT + glfflags ignore + +# New 1.2.1 multitexture texture commands + +BindMultiTextureEXT(texunit, target, texture) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param texture Texture in value + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore ### EXT + +EnableClientStateIndexedEXT(array, index) + return void + param array EnableCap in value + param index UInt32 in value + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### client-handcode client-intercept server-handcode + extension soft WINSOFT + +DisableClientStateIndexedEXT(array, index) + return void + param array EnableCap in value + param index UInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore ### client-handcode client-intercept server-handcode + +MultiTexCoordPointerEXT(texunit, size, type, stride, pointer) + return void + param texunit TextureUnit in value + param size Int32 in value + param type TexCoordPointerType in value + param stride SizeI in value + param pointer Void in array [COMPSIZE(size/type/stride)] retained + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### client-handcode client-intercept server-handcode + extension soft WINSOFT + glfflags ignore + +MultiTexEnvfEXT(texunit, target, pname, param) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param param CheckedFloat32 in value + category EXT_direct_state_access + extension soft WINSOFT + vectorequiv MultiTexEnvfvEXT + glxflags ignore + glfflags gl-enum + +MultiTexEnvfvEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags gl-enum + +MultiTexEnviEXT(texunit, target, pname, param) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param param CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + vectorequiv MultiTexEnvivEXT + glxflags ignore + glfflags gl-enum + +MultiTexEnvivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags gl-enum + +MultiTexGendEXT(texunit, coord, pname, param) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param Float64 in value + category EXT_direct_state_access + extension soft WINSOFT + vectorequiv MultiTexGendvEXT + glxflags ignore + glfflags gl-enum + +MultiTexGendvEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float64 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags gl-enum + +MultiTexGenfEXT(texunit, coord, pname, param) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param CheckedFloat32 in value + category EXT_direct_state_access + extension soft WINSOFT + vectorequiv MultiTexGenfvEXT + glxflags ignore + glfflags gl-enum + +MultiTexGenfvEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params CheckedFloat32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags gl-enum + +MultiTexGeniEXT(texunit, coord, pname, param) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param param CheckedInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + vectorequiv MultiTexGenivEXT + glxflags ignore + glfflags gl-enum + +MultiTexGenivEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + glxflags ignore + glfflags gl-enum + +# New 1.2.1 multitexture texture queries + +GetMultiTexEnvfvEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexEnvivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureEnvTarget in value + param pname TextureEnvParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexGendvEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float64 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexGenfvEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Float32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +GetMultiTexGenivEXT(texunit, coord, pname, params) + return void + param texunit TextureUnit in value + param coord TextureCoordName in value + param pname TextureGenParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +# From EXT_draw_buffers2 +# EnableIndexedEXT +# DisableIndexedEXT +# IsEnabledIndexedEXT + +GetFloatIndexedvEXT(target, index, data) + return void + param target TypeEnum in value + param index UInt32 in value + param data Float32 out array [COMPSIZE(target)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +GetDoubleIndexedvEXT(target, index, data) + return void + param target TypeEnum in value + param index UInt32 in value + param data Float64 out array [COMPSIZE(target)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +GetPointerIndexedvEXT(target, index, data) + return void + param target TypeEnum in value + param index UInt32 in value + param data VoidPointer out array [COMPSIZE(target)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore + glfflags ignore + extension soft WINSOFT + +# New compressed texture commands + +CompressedTextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedTextureImage2DEXT(texture, target, level, internalformat, width, height, border, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedTextureImage1DEXT(texture, target, level, internalformat, width, border, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedTextureSubImage1DEXT(texture, target, level, xoffset, width, format, imageSize, bits) + return void + param texture Texture in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +# New compressed texture query + +GetCompressedTextureImageEXT(texture, target, lod, img) + return void + param texture Texture in value + param target TextureTarget in value + param lod CheckedInt32 in value + param img Void out array [COMPSIZE(target/lod)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### server-handcode + extension soft WINSOFT + +# New compressed multitexture commands + +CompressedMultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedMultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param height SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedMultiTexImage1DEXT(texunit, target, level, internalformat, width, border, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param internalformat TextureInternalFormat in value + param width SizeI in value + param border CheckedInt32 in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param zoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param yoffset CheckedInt32 in value + param width SizeI in value + param height SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +CompressedMultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, imageSize, bits) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param level CheckedInt32 in value + param xoffset CheckedInt32 in value + param width SizeI in value + param format PixelFormat in value + param imageSize SizeI in value + param bits Void in array [imageSize] + category EXT_direct_state_access + dlflags handcode + glxflags ignore ### client-handcode server-handcode + glfflags ignore + extension soft WINSOFT + +# New compressed multitexture query + +GetCompressedMultiTexImageEXT(texunit, target, lod, img) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param lod CheckedInt32 in value + param img Void out array [COMPSIZE(target/lod)] + category EXT_direct_state_access + dlflags notlistable + glxflags ignore ### server-handcode + extension soft WINSOFT + +# New ARB assembly program named commands + +NamedProgramStringEXT(program, target, format, len, string) + return void + param program UInt32 in value + param target ProgramTarget in value + param format ProgramFormat in value + param len SizeI in value + param string Void in array [len] + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT + glfflags ignore + glxflags ignore ### client-handcode server-handcode EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +NamedProgramLocalParameter4dEXT(program, target, index, x, y, z, w) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param x Float64 in value + param y Float64 in value + param z Float64 in value + param w Float64 in value + category EXT_direct_state_access + subcategory ARB_vertex_program + vectorequiv NamedProgramLocalParameter4dvEXT + glxvectorequiv NamedProgramLocalParameter4dvEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +NamedProgramLocalParameter4dvEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Float64 in array [4] + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +NamedProgramLocalParameter4fEXT(program, target, index, x, y, z, w) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param x Float32 in value + param y Float32 in value + param z Float32 in value + param w Float32 in value + category EXT_direct_state_access + subcategory ARB_vertex_program + vectorequiv NamedProgramLocalParameter4fvEXT + glxvectorequiv NamedProgramLocalParameter4fvEXT + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +NamedProgramLocalParameter4fvEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Float32 in array [4] + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +# New ARB assembly program named queries + +GetNamedProgramLocalParameterdvEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Float64 out array [4] + dlflags notlistable + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### client-handcode server-handcode EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +GetNamedProgramLocalParameterfvEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Float32 out array [4] + dlflags notlistable + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### client-handcode server-handcode EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +GetNamedProgramivEXT(program, target, pname, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param pname ProgramProperty in value + param params Int32 out array [1] + dlflags notlistable + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### client-handcode server-handcode EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +GetNamedProgramStringEXT(program, target, pname, string) + return void + param program UInt32 in value + param target ProgramTarget in value + param pname ProgramStringProperty in value + param string Void out array [COMPSIZE(program,pname)] + dlflags notlistable + category EXT_direct_state_access + subcategory ARB_vertex_program + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore ### client-handcode server-handcode EXT + glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program + +# New EXT_gpu_program_parameters command + +NamedProgramLocalParameters4fvEXT(program, target, index, count, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params Float32 in array [count*4] + category EXT_direct_state_access + subcategory EXT_gpu_program_parameters + extension soft WINSOFT NV10 + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_gpu_program_parameters + +# New NV_gpu_program4 commands + +NamedProgramLocalParameterI4iEXT(program, target, index, x, y, z, w) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param x Int32 in value + param y Int32 in value + param z Int32 in value + param w Int32 in value + category EXT_direct_state_access + subcategory NV_gpu_program4 + vectorequiv NamedProgramLocalParameterI4ivEXT + glxvectorequiv NamedProgramLocalParameterI4ivEXT + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedProgramLocalParameterI4ivEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Int32 in array [4] + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedProgramLocalParametersI4ivEXT(program, target, index, count, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params Int32 in array [count*4] + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedProgramLocalParameterI4uiEXT(program, target, index, x, y, z, w) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param x UInt32 in value + param y UInt32 in value + param z UInt32 in value + param w UInt32 in value + category EXT_direct_state_access + subcategory NV_gpu_program4 + vectorequiv NamedProgramLocalParameterI4uivEXT + glxvectorequiv NamedProgramLocalParameterI4uivEXT + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedProgramLocalParameterI4uivEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 in array [4] + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedProgramLocalParametersI4uivEXT(program, target, index, count, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param count SizeI in value + param params UInt32 in array [count*4] + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +GetNamedProgramLocalParameterIivEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params Int32 out array [4] + dlflags notlistable + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +GetNamedProgramLocalParameterIuivEXT(program, target, index, params) + return void + param program UInt32 in value + param target ProgramTarget in value + param index UInt32 in value + param params UInt32 out array [4] + dlflags notlistable + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +# New EXT_texture_integer texture object commands + +TextureParameterIivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + extension soft WINSOFT + glxflags ignore + glfflags ignore + glextmask GL_MASK_EXT_texture_integer + +TextureParameterIuivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname TextureParameterName in value + param params UInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + extension soft WINSOFT + glxflags ignore + glfflags ignore + glextmask GL_MASK_EXT_texture_integer + +# New EXT_texture_integer texture object queries + +GetTextureParameterIivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + glextmask GL_MASK_EXT_texture_integer + +GetTextureParameterIuivEXT(texture, target, pname, params) + return void + param texture Texture in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params UInt32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + glextmask GL_MASK_EXT_texture_integer + +# New EXT_texture_integer multitexture commands + +MultiTexParameterIivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param params CheckedInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + extension soft WINSOFT + glxflags ignore + glfflags ignore + glextmask GL_MASK_EXT_texture_integer + +MultiTexParameterIuivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname TextureParameterName in value + param params UInt32 in array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + extension soft WINSOFT + glxflags ignore + glfflags ignore + glextmask GL_MASK_EXT_texture_integer + +# New EXT_texture_integer multitexture queries + +GetMultiTexParameterIivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + dlflags notlistable + extension soft WINSOFT + glfflags capture-execute gl-enum + glxflags ignore + glextmask GL_MASK_EXT_texture_integer + +GetMultiTexParameterIuivEXT(texunit, target, pname, params) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param pname GetTextureParameter in value + param params UInt32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_texture_integer + dlflags notlistable + extension soft WINSOFT + glfflags capture-execute gl-enum + glxflags ignore + glextmask GL_MASK_EXT_texture_integer + +# New GLSL 2.0 uniform commands + +ProgramUniform1fEXT(program, location, v0) + return void + param program UInt32 in value + param location Int32 in value + param v0 Float32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2fEXT(program, location, v0, v1) + return void + param program UInt32 in value + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3fEXT(program, location, v0, v1, v2) + return void + param program UInt32 in value + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4fEXT(program, location, v0, v1, v2, v3) + return void + param program UInt32 in value + param location Int32 in value + param v0 Float32 in value + param v1 Float32 in value + param v2 Float32 in value + param v3 Float32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform1iEXT(program, location, v0) + return void + param program UInt32 in value + param location Int32 in value + param v0 Int32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2iEXT(program, location, v0, v1) + return void + param program UInt32 in value + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3iEXT(program, location, v0, v1, v2) + return void + param program UInt32 in value + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4iEXT(program, location, v0, v1, v2, v3) + return void + param program UInt32 in value + param location Int32 in value + param v0 Int32 in value + param v1 Int32 in value + param v2 Int32 in value + param v3 Int32 in value + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform1fvEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Float32 in array [count] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2fvEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Float32 in array [count*2] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3fvEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Float32 in array [count*3] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4fvEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Float32 in array [count*4] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform1ivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Int32 in array [count] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2ivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Int32 in array [count*2] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3ivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Int32 in array [count*3] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4ivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value Int32 in array [count*4] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix2fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*4] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix3fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*9] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix4fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*16] + category EXT_direct_state_access + subcategory VERSION_2_0 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +# New GLSL 2.1 uniform commands + +ProgramUniformMatrix2x3fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*6] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix3x2fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*6] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix2x4fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*8] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix4x2fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*8] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix3x4fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*12] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniformMatrix4x3fvEXT(program, location, count, transpose, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param transpose Boolean in value + param value Float32 in array [count*12] + category EXT_direct_state_access + subcategory VERSION_2_1 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +# New EXT_gpu_shader4 commands + +ProgramUniform1uiEXT(program, location, v0) + return void + param program UInt32 in value + param location Int32 in value + param v0 UInt32 in value + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2uiEXT(program, location, v0, v1) + return void + param program UInt32 in value + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3uiEXT(program, location, v0, v1, v2) + return void + param program UInt32 in value + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4uiEXT(program, location, v0, v1, v2, v3) + return void + param program UInt32 in value + param location Int32 in value + param v0 UInt32 in value + param v1 UInt32 in value + param v2 UInt32 in value + param v3 UInt32 in value + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform1uivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count] + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform2uivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*2] + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform3uivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*3] + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +ProgramUniform4uivEXT(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value UInt32 in array [count*4] + category EXT_direct_state_access + subcategory EXT_gpu_shader4 + glfflags ignore + glxflags ignore + extension soft WINSOFT + glextmask GL_MASK_OpenGL_2_0 + +# New named buffer commands + +NamedBufferDataEXT(buffer, size, data, usage) + return void + param buffer UInt32 in value + param size Sizeiptr in value + param data Void in array [COMPSIZE(size)] + param usage VertexBufferObjectUsage in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +NamedBufferSubDataEXT(buffer, offset, size, data) + return void + param buffer UInt32 in value + param offset Intptr in value + param size Sizeiptr in value + param data Void in array [COMPSIZE(size)] + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +MapNamedBufferEXT(buffer, access) + return VoidPointer + param buffer UInt32 in value + param access VertexBufferObjectAccess in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +UnmapNamedBufferEXT(buffer) + return Boolean + param buffer UInt32 in value + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +# New named buffer queries + +GetNamedBufferParameterivEXT(buffer, pname, params) + return void + param buffer UInt32 in value + param pname VertexBufferObjectParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +GetNamedBufferPointervEXT(buffer, pname, params) + return void + param buffer UInt32 in value + param pname VertexBufferObjectParameter in value + param params VoidPointer out array [COMPSIZE(pname)] + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +GetNamedBufferSubDataEXT(buffer, offset, size, data) + return void + param buffer UInt32 in value + param offset Intptr in value + param size Sizeiptr in value + param data Void out array [COMPSIZE(size)] + category EXT_direct_state_access + extension soft WINSOFT + dlflags notlistable + glxflags ignore + glfflags ignore + +# New named texture buffer texture object command + +TextureBufferEXT(texture, target, internalformat, buffer) + return void + param texture Texture in value + param target TextureTarget in value + param internalformat TypeEnum in value + param buffer UInt32 in value + category EXT_direct_state_access + subcategory EXT_texture_buffer_object + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_texture_buffer_object + dlflags notlistable + +# New named texture buffer multitexture command + +MultiTexBufferEXT(texunit, target, internalformat, buffer) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param internalformat TypeEnum in value + param buffer UInt32 in value + category EXT_direct_state_access + subcategory EXT_texture_buffer_object + extension soft WINSOFT NV50 + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_texture_buffer_object + dlflags notlistable + +# New named frame buffer object commands + +NamedRenderbufferStorageEXT(renderbuffer, internalformat, width, height) + return void + param renderbuffer Renderbuffer in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +GetNamedRenderbufferParameterivEXT(renderbuffer, pname, params) + return void + param renderbuffer Renderbuffer in value + param pname RenderbufferParameterName in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +CheckNamedFramebufferStatusEXT(framebuffer, target) + return FramebufferStatus + param framebuffer Framebuffer in value + param target FramebufferTarget in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +NamedFramebufferTexture1DEXT(framebuffer, attachment, textarget, texture, level) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param textarget TextureTarget in value + param texture Texture in value + param level CheckedInt32 in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +NamedFramebufferTexture2DEXT(framebuffer, attachment, textarget, texture, level) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param textarget TextureTarget in value + param texture Texture in value + param level CheckedInt32 in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +NamedFramebufferTexture3DEXT(framebuffer, attachment, textarget, texture, level, zoffset) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param textarget TextureTarget in value + param texture Texture in value + param level CheckedInt32 in value + param zoffset CheckedInt32 in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +NamedFramebufferRenderbufferEXT(framebuffer, attachment, renderbuffertarget, renderbuffer) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param renderbuffertarget RenderbufferTarget in value + param renderbuffer Renderbuffer in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +GetNamedFramebufferAttachmentParameterivEXT(framebuffer, attachment, pname, params) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param pname FramebufferAttachmentParameterName in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +GenerateTextureMipmapEXT(texture, target) + return void + param texture Texture in value + param target TextureTarget in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +GenerateMultiTexMipmapEXT(texunit, target) + return void + param texunit TextureUnit in value + param target TextureTarget in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +FramebufferDrawBufferEXT(framebuffer, mode) + return void + param framebuffer Framebuffer in value + param mode DrawBufferMode in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +FramebufferDrawBuffersEXT(framebuffer, n, bufs) + return void + param framebuffer Framebuffer in value + param n SizeI in value + param bufs DrawBufferMode in array [n] + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +FramebufferReadBufferEXT(framebuffer, mode) + return void + param framebuffer Framebuffer in value + param mode ReadBufferMode in value + category EXT_direct_state_access + subcategory EXT_framebuffer_object + extension soft WINSOFT + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_object + +GetFramebufferParameterivEXT(framebuffer, pname, params) + return void + param framebuffer Framebuffer in value + param pname GetFramebufferParameter in value + param params Int32 out array [COMPSIZE(pname)] + category EXT_direct_state_access + subcategory EXT_framebuffer_object + dlflags notlistable + extension soft WINSOFT + glxflags ignore + glfflags capture-execute gl-enum + +# New named framebuffer multisample object commands + +NamedRenderbufferStorageMultisampleEXT(renderbuffer, samples, internalformat, width, height) + return void + param renderbuffer Renderbuffer in value + param samples SizeI in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + subcategory EXT_framebuffer_multisample + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_EXT_framebuffer_multisample + +# New named framebuffer multisample coverage object commands + +NamedRenderbufferStorageMultisampleCoverageEXT(renderbuffer, coverageSamples, colorSamples, internalformat, width, height) + return void + param renderbuffer Renderbuffer in value + param coverageSamples SizeI in value + param colorSamples SizeI in value + param internalformat PixelInternalFormat in value + param width SizeI in value + param height SizeI in value + category EXT_direct_state_access + subcategory NV_framebuffer_multisample_coverage + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_framebuffer_multisample_coverage + +# New named geometry program/shader frame buffer object commands + +NamedFramebufferTextureEXT(framebuffer, attachment, texture, level) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedFramebufferTextureLayerEXT(framebuffer, attachment, texture, level, layer) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param layer CheckedInt32 in value + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +NamedFramebufferTextureFaceEXT(framebuffer, attachment, texture, level, face) + return void + param framebuffer Framebuffer in value + param attachment FramebufferAttachment in value + param texture Texture in value + param level CheckedInt32 in value + param face TextureTarget in value + category EXT_direct_state_access + subcategory NV_gpu_program4 + extension soft WINSOFT + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_gpu_program4 + +# New explicit multisample query and commands + +TextureRenderbufferEXT(texture, target, renderbuffer) + return void + param texture Texture in value + param target TextureTarget in value + param renderbuffer UInt32 in value + category EXT_direct_state_access + subcategory NV_explicit_multisample + extension soft WINSOFT NV50 + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_explicit_multisample + +MultiTexRenderbufferEXT(texunit, target, renderbuffer) + return void + param texunit TextureUnit in value + param target TextureTarget in value + param renderbuffer UInt32 in value + category EXT_direct_state_access + subcategory NV_explicit_multisample + extension soft WINSOFT NV50 + dlflags notlistable + glfflags ignore + glxflags ignore + glextmask GL_MASK_NV_explicit_multisample + +############################################################################### +# +# Extension #354 +# EXT_vertex_array_bgra commands +# +############################################################################### + +# (none) +newcategory: EXT_vertex_array_bgra + +############################################################################### +# +# Extension #355 - WGL_NV_gpu_affinity +# +############################################################################### + +############################################################################### +# +# Extension #356 +# EXT_texture_swizzle commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_swizzle + +############################################################################### +# +# Extension #357 +# NV_explicit_multisample commands +# +############################################################################### + +# From EXT_draw_buffers2: GetBooleanIndexedvEXT / GetIntegerIndexedvEXT + +GetMultisamplefvNV(pname, index, val) + return void + param pname GetMultisamplePNameNV in value + param index UInt32 in value + param val Float32 out array [2] + category NV_explicit_multisample + dlflags notlistable + glfflags ignore + glxflags ignore + +SampleMaskIndexedNV(index, mask) + return void + param index UInt32 in value + param mask SampleMaskNV in value + category NV_explicit_multisample + glfflags ignore + glxflags ignore + +TexRenderbufferNV(target, renderbuffer) + return void + param target TextureTarget in value + param renderbuffer UInt32 in value + category NV_explicit_multisample + dlflags notlistable + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #358 +# NV_transform_feedback2 commands +# +############################################################################### + +BindTransformFeedbackNV(target, id) + return void + param target BufferTargetARB in value + param id UInt32 in value + category NV_transform_feedback2 + glfflags ignore + glxflags ignore + +DeleteTransformFeedbacksNV(n, ids) + return void + param n SizeI in value + param ids UInt32 in array [n] + category NV_transform_feedback2 + dlflags notlistable + glfflags ignore + glxflags ignore + +GenTransformFeedbacksNV(n, ids) + return void + param n SizeI in value + param ids UInt32 out array [n] + category NV_transform_feedback2 + dlflags notlistable + glfflags ignore + glxflags ignore + +IsTransformFeedbackNV(id) + return Boolean + param id UInt32 in value + category NV_transform_feedback2 + dlflags notlistable + glfflags ignore + glxflags ignore + +PauseTransformFeedbackNV() + return void + category NV_transform_feedback2 + glfflags ignore + glxflags ignore + +ResumeTransformFeedbackNV() + return void + category NV_transform_feedback2 + glfflags ignore + glxflags ignore + +DrawTransformFeedbackNV(mode, id) + return void + param mode GLenum in value + param id UInt32 in value + category NV_transform_feedback2 + glfflags ignore + glxflags ignore + +############################################################################### +# +# Extension #359 +# ATI_meminfo commands +# +############################################################################### + +# (none) +newcategory: ATI_meminfo + +############################################################################### +# +# Extension #360 +# AMD_performance_monitor commands +# +############################################################################### + +GetPerfMonitorGroupsAMD(numGroups, groupsSize, groups) + return void + param numGroups Int32 out array [1] + param groupsSize SizeI in value + param groups UInt32 out array [groupsSize] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters) + return void + param group UInt32 in value + param numCounters Int32 out array [1] + param maxActiveCounters Int32 out array [1] + param counterSize SizeI in value + param counters UInt32 out array [counterSize] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetPerfMonitorGroupStringAMD(group, bufSize, length, groupString) + return void + param group UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param groupString Char out array [bufSize] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString) + return void + param group UInt32 in value + param counter UInt32 in value + param bufSize SizeI in value + param length SizeI out array [1] + param counterString Char out array [bufSize] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetPerfMonitorCounterInfoAMD(group, counter, pname, data) + return void + param group UInt32 in value + param counter UInt32 in value + param pname GLenum in value + param data void out array [COMPSIZE(pname)] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GenPerfMonitorsAMD(n, monitors) + return void + param n SizeI in value + param monitors UInt32 out array [n] + category AMD_performance_monitor + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +# 'monitors' is actually in, not out, but extension spec doesn't use const +DeletePerfMonitorsAMD(n, monitors) + return void + param n SizeI in value + param monitors UInt32 out array [n] + category AMD_performance_monitor + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +# 'counterList' is actually in, not out, but extension spec doesn't use const +SelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, counterList) + return void + param monitor UInt32 in value + param enable Boolean in value + param group UInt32 in value + param numCounters Int32 in value + param counterList UInt32 out array [numCounters] + category AMD_performance_monitor + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BeginPerfMonitorAMD(monitor) + return void + param monitor UInt32 in value + category AMD_performance_monitor + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EndPerfMonitorAMD(monitor) + return void + param monitor UInt32 in value + category AMD_performance_monitor + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten) + return void + param monitor UInt32 in value + param pname GLenum in value + param dataSize SizeI in value + param data UInt32 out array [dataSize] + param bytesWritten Int32 out array [1] + category AMD_performance_monitor + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #361 - WGL_AMD_gpu_association +# +############################################################################### + +############################################################################### +# +# Extension #362 +# AMD_texture_texture4 commands +# +############################################################################### + +# (none) +newcategory: AMD_texture_texture4 + +############################################################################### +# +# Extension #363 +# AMD_vertex_shader_tesselator commands +# +############################################################################### + +TessellationFactorAMD(factor) + return void + param factor Float32 in value + category AMD_vertex_shader_tesselator + version 2.0 + glxsingle ? + glxflags ignore + offset ? + +TessellationModeAMD(mode) + return void + param mode GLenum in value + category AMD_vertex_shader_tesselator + version 2.0 + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #364 +# EXT_provoking_vertex commands +# +############################################################################### + +ProvokingVertexEXT(mode) + return void + param mode GLenum in value + category EXT_provoking_vertex + version 2.1 + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #365 +# EXT_texture_snorm commands +# +############################################################################### + +# (none) +newcategory: EXT_texture_snorm + +############################################################################### +# +# Extension #366 +# AMD_draw_buffers_blend commands +# +############################################################################### + +# void BlendFuncIndexedAMD(uint buf, enum src, enum dst) +# void BlendFuncSeparateIndexedAMD(uint buf, enum srcRGB, enum dstRGB, enum srcAlpha, enum dstAlpha) +# void BlendEquationIndexedAMD(uint buf, enum mode) +# void BlendEquationSeparateIndexedAMD(uint buf, enum modeRGB, enum modeAlpha) + +BlendFuncIndexedAMD(buf, src, dst) + return void + param buf UInt32 in value + param src GLenum in value + param dst GLenum in value + category AMD_draw_buffers_blend + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendFuncSeparateIndexedAMD(buf, srcRGB, dstRGB, srcAlpha, dstAlpha) + return void + param buf UInt32 in value + param srcRGB GLenum in value + param dstRGB GLenum in value + param srcAlpha GLenum in value + param dstAlpha GLenum in value + category AMD_draw_buffers_blend + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendEquationIndexedAMD(buf, mode) + return void + param buf UInt32 in value + param mode GLenum in value + category AMD_draw_buffers_blend + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +BlendEquationSeparateIndexedAMD(buf, modeRGB, modeAlpha) + return void + param buf UInt32 in value + param modeRGB GLenum in value + param modeAlpha GLenum in value + category AMD_draw_buffers_blend + version 2.0 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #367 +# APPLE_texture_range commands +# +############################################################################### + +TextureRangeAPPLE(target, length, pointer) + return void + param target GLenum in value + param length SizeI in value + param pointer Void in array [length] + category APPLE_texture_range + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetTexParameterPointervAPPLE(target, pname, params) + return void + param target GLenum in value + param pname GLenum in value + param params VoidPointer out array [1] + category APPLE_texture_range + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #368 +# APPLE_float_pixels commands +# +############################################################################### + +# (none) +newcategory: APPLE_float_pixels + +############################################################################### +# +# Extension #369 +# APPLE_vertex_program_evaluators commands +# +############################################################################### + +EnableVertexAttribAPPLE(index, pname) + return void + param index UInt32 in value + param pname GLenum in value + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +DisableVertexAttribAPPLE(index, pname) + return void + param index UInt32 in value + param pname GLenum in value + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +IsVertexAttribEnabledAPPLE(index, pname) + return Boolean + param index UInt32 in value + param pname GLenum in value + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +MapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points) + return void + param index UInt32 in value + param size UInt32 in value + param u1 CoordD in value + param u2 CoordD in value + param stride Int32 in value + param order CheckedInt32 in value + param points CoordD in array [COMPSIZE(size/stride/order)] + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +MapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points) + return void + param index UInt32 in value + param size UInt32 in value + param u1 CoordF in value + param u2 CoordF in value + param stride Int32 in value + param order CheckedInt32 in value + param points CoordF in array [COMPSIZE(size/stride/order)] + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +MapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + return void + param index UInt32 in value + param size UInt32 in value + param u1 CoordD in value + param u2 CoordD in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordD in value + param v2 CoordD in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param points CoordD in array [COMPSIZE(size/ustride/uorder/vstride/vorder)] + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +MapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + return void + param index UInt32 in value + param size UInt32 in value + param u1 CoordF in value + param u2 CoordF in value + param ustride Int32 in value + param uorder CheckedInt32 in value + param v1 CoordF in value + param v2 CoordF in value + param vstride Int32 in value + param vorder CheckedInt32 in value + param points CoordF in array [COMPSIZE(size/ustride/uorder/vstride/vorder)] + category APPLE_vertex_program_evaluators + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #370 +# APPLE_aux_depth_stencil commands +# +############################################################################### + +# (none) +newcategory: APPLE_aux_depth_stencil + +############################################################################### +# +# Extension #371 +# APPLE_object_purgeable commands +# +############################################################################### + +ObjectPurgeableAPPLE(objectType, name, option) + return GLenum + param objectType GLenum in value + param name UInt32 in value + param option GLenum in value + category APPLE_object_purgeable + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +ObjectUnpurgeableAPPLE(objectType, name, option) + return GLenum + param objectType GLenum in value + param name UInt32 in value + param option GLenum in value + category APPLE_object_purgeable + version 1.5 + extension + glxropcode ? + glxflags ignore + offset ? + +GetObjectParameterivAPPLE(objectType, name, pname, params) + return void + param objectType GLenum in value + param name UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category APPLE_object_purgeable + dlflags notlistable + version 1.5 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #372 +# APPLE_row_bytes commands +# +############################################################################### + +# (none) +newcategory: APPLE_row_bytes + +############################################################################### +# +# Extension #373 +# APPLE_rgb_422 commands +# +############################################################################### + +# (none) +newcategory: APPLE_rgb_422 + +############################################################################### +# +# Extension #374 +# NV_video_capture commands +# +############################################################################### + +BeginVideoCaptureNV(video_capture_slot) + return void + param video_capture_slot UInt32 in value + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindVideoCaptureStreamBufferNV(video_capture_slot, stream, frame_region, offset) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param frame_region GLenum in value + param offset BufferOffsetARB in value + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +BindVideoCaptureStreamTextureNV(video_capture_slot, stream, frame_region, target, texture) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param frame_region GLenum in value + param target GLenum in value + param texture UInt32 in value + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EndVideoCaptureNV(video_capture_slot) + return void + param video_capture_slot UInt32 in value + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetVideoCaptureivNV(video_capture_slot, pname, params) + return void + param video_capture_slot UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category NV_video_capture + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideoCaptureStreamivNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Int32 out array [COMPSIZE(pname)] + category NV_video_capture + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideoCaptureStreamfvNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Float32 out array [COMPSIZE(pname)] + category NV_video_capture + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetVideoCaptureStreamdvNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Float64 out array [COMPSIZE(pname)] + category NV_video_capture + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +VideoCaptureNV(video_capture_slot, sequence_num, capture_time) + return GLenum + param video_capture_slot UInt32 in value + param sequence_num UInt32 out reference + param capture_time UInt64EXT out reference + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VideoCaptureStreamParameterivNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Int32 in array [COMPSIZE(pname)] + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VideoCaptureStreamParameterfvNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Float32 in array [COMPSIZE(pname)] + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VideoCaptureStreamParameterdvNV(video_capture_slot, stream, pname, params) + return void + param video_capture_slot UInt32 in value + param stream UInt32 in value + param pname GLenum in value + param params Float64 in array [COMPSIZE(pname)] + category NV_video_capture + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #375 - GLX_EXT_swap_control +# +############################################################################### + +############################################################################### +# +# Extension #376 - also GLX_NV_copy_image, WGL_NV_copy_image +# NV_copy_image commands +# +############################################################################### + +CopyImageSubDataNV(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth) + return void + param srcName UInt32 in value + param srcTarget GLenum in value + param srcLevel Int32 in value + param srcX Int32 in value + param srcY Int32 in value + param srcZ Int32 in value + param dstName UInt32 in value + param dstTarget GLenum in value + param dstLevel Int32 in value + param dstX Int32 in value + param dstY Int32 in value + param dstZ Int32 in value + param width SizeI in value + param height SizeI in value + param depth SizeI in value + category NV_copy_image + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #377 +# EXT_separate_shader_objects commands +# +############################################################################### + +UseShaderProgramEXT(type, program) + return void + param type GLenum in value + param program UInt32 in value + category EXT_separate_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ActiveProgramEXT(program) + return void + param program UInt32 in value + category EXT_separate_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +CreateShaderProgramEXT(type, string) + return UInt32 + param type GLenum in value + param string Char in array [] + category EXT_separate_shader_objects + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #378 +# NV_parameter_buffer_object2 commands +# +############################################################################### + +newcategory: NV_parameter_buffer_object2 + +############################################################################### +# +# Extension #379 +# NV_shader_buffer_load commands +# +############################################################################### + +MakeBufferResidentNV(target, access) + return void + param target GLenum in value + param access GLenum in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +MakeBufferNonResidentNV(target) + return void + param target GLenum in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsBufferResidentNV(target) + return Boolean + param target GLenum in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NamedMakeBufferResidentNV(buffer, access) + return void + param buffer UInt32 in value + param access GLenum in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NamedMakeBufferNonResidentNV(buffer) + return void + param buffer UInt32 in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IsNamedBufferResidentNV(buffer) + return Boolean + param buffer UInt32 in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetBufferParameterui64vNV(target, pname, params) + return void + param target GLenum in value + param pname GLenum in value + param params UInt64EXT out array [COMPSIZE(pname)] + category NV_shader_buffer_load + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetNamedBufferParameterui64vNV(buffer, pname, params) + return void + param buffer UInt32 in value + param pname GLenum in value + param params UInt64EXT out array [COMPSIZE(pname)] + category NV_shader_buffer_load + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +GetIntegerui64vNV(value, result) + return void + param value GLenum in value + param result UInt64EXT out array [COMPSIZE(value)] + category NV_shader_buffer_load + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +Uniformui64NV(location, value) + return void + param location Int32 in value + param value UInt64EXT in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +Uniformui64vNV(location, count, value) + return void + param location Int32 in value + param count SizeI in value + param value UInt64EXT in array [count] + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetUniformui64vNV(program, location, params) + return void + param program UInt32 in value + param location Int32 in value + param params UInt64EXT out array [COMPSIZE(program/location)] + category NV_shader_buffer_load + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +ProgramUniformui64NV(program, location, value) + return void + param program UInt32 in value + param location Int32 in value + param value UInt64EXT in value + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ProgramUniformui64vNV(program, location, count, value) + return void + param program UInt32 in value + param location Int32 in value + param count SizeI in value + param value UInt64EXT in array [count] + category NV_shader_buffer_load + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #380 +# NV_vertex_buffer_unified_memory commands +# +############################################################################### + +BufferAddressRangeNV(pname, index, address, length) + return void + param pname GLenum in value + param index UInt32 in value + param address UInt64EXT in value + param length BufferSize in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexFormatNV(size, type, stride) + return void + param size Int32 in value + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +NormalFormatNV(type, stride) + return void + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +ColorFormatNV(size, type, stride) + return void + param size Int32 in value + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +IndexFormatNV(type, stride) + return void + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +TexCoordFormatNV(size, type, stride) + return void + param size Int32 in value + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +EdgeFlagFormatNV(stride) + return void + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +SecondaryColorFormatNV(size, type, stride) + return void + param size Int32 in value + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +FogCoordFormatNV(type, stride) + return void + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribFormatNV(index, size, type, normalized, stride) + return void + param index UInt32 in value + param size Int32 in value + param type GLenum in value + param normalized Boolean in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +VertexAttribIFormatNV(index, size, type, stride) + return void + param index UInt32 in value + param size Int32 in value + param type GLenum in value + param stride SizeI in value + category NV_vertex_buffer_unified_memory + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + +GetIntegerui64i_vNV(value, index, result) + return void + param value GLenum in value + param index UInt32 in value + param result UInt64EXT out array [COMPSIZE(value)] + category NV_vertex_buffer_unified_memory + dlflags notlistable + version 1.2 + extension + glxsingle ? + glxflags ignore + offset ? + +############################################################################### +# +# Extension #381 +# NV_texture_barrier commands +# +############################################################################### + +TextureBarrierNV() + return void + category NV_texture_barrier + version 1.2 + extension + glxropcode ? + glxflags ignore + offset ? + diff --git a/src/glx/apple/specs/gl.tm b/src/glx/apple/specs/gl.tm new file mode 100644 index 0000000000..8c8a851d9f --- /dev/null +++ b/src/glx/apple/specs/gl.tm @@ -0,0 +1,317 @@ +AccumOp,*,*, GLenum,*,* +AlphaFunction,*,*, GLenum,*,* +AttribMask,*,*, GLbitfield,*,* +BeginMode,*,*, GLenum,*,* +BinormalPointerTypeEXT,*,*, GLenum,*,* +BlendEquationMode,*,*, GLenum,*,* +BlendEquationModeEXT,*,*, GLenum,*,* +BlendFuncSeparateParameterEXT,*,*, GLenum,*,* +BlendingFactorDest,*,*, GLenum,*,* +BlendingFactorSrc,*,*, GLenum,*,* +Boolean,*,*, GLboolean,*,* +BooleanPointer,*,*, GLboolean*,*,* +Char,*,*, GLchar,*,* +CharPointer,*,*, GLchar*,*,* +CheckedFloat32,*,*, GLfloat,*,* +CheckedInt32,*,*, GLint,*,* +ClampColorTargetARB,*,*, GLenum,*,* +ClampColorModeARB,*,*, GLenum,*,* +ClampedColorF,*,*, GLclampf,*,* +ClampedFloat32,*,*, GLclampf,*,* +ClampedFloat64,*,*, GLclampd,*,* +ClampedStencilValue,*,*, GLint,*,* +ClearBufferMask,*,*, GLbitfield,*,* +ClientAttribMask,*,*, GLbitfield,*,* +ClipPlaneName,*,*, GLenum,*,* +ColorB,*,*, GLbyte,*,* +ColorD,*,*, GLdouble,*,* +ColorF,*,*, GLfloat,*,* +ColorI,*,*, GLint,*,* +ColorIndexValueD,*,*, GLdouble,*,* +ColorIndexValueF,*,*, GLfloat,*,* +ColorIndexValueI,*,*, GLint,*,* +ColorIndexValueS,*,*, GLshort,*,* +ColorIndexValueUB,*,*, GLubyte,*,* +ColorMaterialParameter,*,*, GLenum,*,* +ColorPointerType,*,*, GLenum,*,* +ColorS,*,*, GLshort,*,* +ColorTableParameterPName,*,*, GLenum,*,* +ColorTableParameterPNameSGI,*,*, GLenum,*,* +ColorTableTarget,*,*, GLenum,*,* +ColorTableTargetSGI,*,*, GLenum,*,* +ColorUB,*,*, GLubyte,*,* +ColorUI,*,*, GLuint,*,* +ColorUS,*,*, GLushort,*,* +CombinerBiasNV,*,*, GLenum,*,* +CombinerComponentUsageNV,*,*, GLenum,*,* +CombinerMappingNV,*,*, GLenum,*,* +CombinerParameterNV,*,*, GLenum,*,* +CombinerPortionNV,*,*, GLenum,*,* +CombinerRegisterNV,*,*, GLenum,*,* +CombinerScaleNV,*,*, GLenum,*,* +CombinerStageNV,*,*, GLenum,*,* +CombinerVariableNV,*,*, GLenum,*,* +CompressedTextureARB,*,*, GLvoid,*,* +ControlPointNV,*,*, GLvoid,*,* +ControlPointTypeNV,*,*, GLenum,*,* +ConvolutionParameter,*,*, GLenum,*,* +ConvolutionParameterEXT,*,*, GLenum,*,* +ConvolutionTarget,*,*, GLenum,*,* +ConvolutionTargetEXT,*,*, GLenum,*,* +CoordD,*,*, GLdouble,*,* +CoordF,*,*, GLfloat,*,* +CoordI,*,*, GLint,*,* +CoordS,*,*, GLshort,*,* +CullFaceMode,*,*, GLenum,*,* +CullParameterEXT,*,*, GLenum,*,* +DepthFunction,*,*, GLenum,*,* +DrawBufferMode,*,*, GLenum,*,* +DrawBufferName,*,*, GLint,*,* +DrawElementsType,*,*, GLenum,*,* +ElementPointerTypeATI,*,*, GLenum,*,* +EnableCap,*,*, GLenum,*,* +ErrorCode,*,*, GLenum,*,* +EvalMapsModeNV,*,*, GLenum,*,* +EvalTargetNV,*,*, GLenum,*,* +FeedbackElement,*,*, GLfloat,*,* +FeedbackType,*,*, GLenum,*,* +FenceNV,*,*, GLuint,*,* +FenceConditionNV,*,*, GLenum,*,* +FenceParameterNameNV,*,*, GLenum,*,* +FfdMaskSGIX,*,*, GLbitfield,*,* +FfdTargetSGIX,*,*, GLenum,*,* +Float32,*,*, GLfloat,*,* +Float32Pointer,*,*, GLfloat*,*,* +Float64,*,*, GLdouble,*,* +Float64Pointer,*,*, GLdouble*,*,* +FogParameter,*,*, GLenum,*,* +FogPointerTypeEXT,*,*, GLenum,*,* +FogPointerTypeIBM,*,*, GLenum,*,* +FragmentLightModelParameterSGIX,*,*,GLenum,*,* +FragmentLightNameSGIX,*,*, GLenum,*,* +FragmentLightParameterSGIX,*,*, GLenum,*,* +FramebufferAttachment,*,*, GLenum,*,* +FramebufferTarget,*,*, GLenum,*,* +FrontFaceDirection,*,*, GLenum,*,* +FunctionPointer,*,*, _GLfuncptr,*,* +GetColorTableParameterPName,*,*, GLenum,*,* +GetColorTableParameterPNameSGI,*,*, GLenum,*,* +GetConvolutionParameterPName,*,*, GLenum,*,* +GetHistogramParameterPName,*,*, GLenum,*,* +GetHistogramParameterPNameEXT,*,*, GLenum,*,* +GetMapQuery,*,*, GLenum,*,* +GetMinmaxParameterPName,*,*, GLenum,*,* +GetMinmaxParameterPNameEXT,*,*, GLenum,*,* +GetPName,*,*, GLenum,*,* +GetPointervPName,*,*, GLenum,*,* +GetTextureParameter,*,*, GLenum,*,* +HintMode,*,*, GLenum,*,* +HintTarget,*,*, GLenum,*,* +HintTargetPGI,*,*, GLenum,*,* +HistogramTarget,*,*, GLenum,*,* +HistogramTargetEXT,*,*, GLenum,*,* +IglooFunctionSelectSGIX,*,*, GLenum,*,* +IglooParameterSGIX,*,*, GLvoid,*,* +ImageTransformPNameHP,*,*, GLenum,*,* +ImageTransformTargetHP,*,*, GLenum,*,* +IndexFunctionEXT,*,*, GLenum,*,* +IndexMaterialParameterEXT,*,*, GLenum,*,* +IndexPointerType,*,*, GLenum,*,* +Int16,*,*, GLshort,*,* +Int32,*,*, GLint,*,* +Int8,*,*, GLbyte,*,* +InterleavedArrayFormat,*,*, GLenum,*,* +LightEnvParameterSGIX,*,*, GLenum,*,* +LightModelParameter,*,*, GLenum,*,* +LightName,*,*, GLenum,*,* +LightParameter,*,*, GLenum,*,* +LightTextureModeEXT,*,*, GLenum,*,* +LightTexturePNameEXT,*,*, GLenum,*,* +LineStipple,*,*, GLushort,*,* +List,*,*, GLuint,*,* +ListMode,*,*, GLenum,*,* +ListNameType,*,*, GLenum,*,* +ListParameterName,*,*, GLenum,*,* +LogicOp,*,*, GLenum,*,* +MapAttribParameterNV,*,*, GLenum,*,* +MapParameterNV,*,*, GLenum,*,* +MapTarget,*,*, GLenum,*,* +MapTargetNV,*,*, GLenum,*,* +MapTypeNV,*,*, GLenum,*,* +MaskedColorIndexValueF,*,*, GLfloat,*,* +MaskedColorIndexValueI,*,*, GLuint,*,* +MaskedStencilValue,*,*, GLuint,*,* +MaterialFace,*,*, GLenum,*,* +MaterialParameter,*,*, GLenum,*,* +MatrixIndexPointerTypeARB,*,*, GLenum,*,* +MatrixMode,*,*, GLenum,*,* +MatrixTransformNV,*,*, GLenum,*,* +MeshMode1,*,*, GLenum,*,* +MeshMode2,*,*, GLenum,*,* +MinmaxTarget,*,*, GLenum,*,* +MinmaxTargetEXT,*,*, GLenum,*,* +NormalPointerType,*,*, GLenum,*,* +NurbsCallback,*,*, GLenum,*,* +NurbsObj,*,*, GLUnurbs*,*,* +NurbsProperty,*,*, GLenum,*,* +NurbsTrim,*,*, GLenum,*,* +OcclusionQueryParameterNameNV,*,*, GLenum,*,* +PixelCopyType,*,*, GLenum,*,* +PixelFormat,*,*, GLenum,*,* +PixelInternalFormat,*,*, GLenum,*,* +PixelMap,*,*, GLenum,*,* +PixelStoreParameter,*,*, GLenum,*,* +PixelTexGenModeSGIX,*,*, GLenum,*,* +PixelTexGenParameterNameSGIS,*,*, GLenum,*,* +PixelTransferParameter,*,*, GLenum,*,* +PixelTransformPNameEXT,*,*, GLenum,*,* +PixelTransformTargetEXT,*,*, GLenum,*,* +PixelType,*,*, GLenum,*,* +PointParameterNameARB,*,*, GLenum,*,* +PolygonMode,*,*, GLenum,*,* +ProgramNV,*,*, GLuint,*,* +ProgramCharacterNV,*,*, GLubyte,*,* +ProgramParameterNV,*,*, GLenum,*,* +ProgramParameterPName,*,*, GLenum,*,* +QuadricCallback,*,*, GLenum,*,* +QuadricDrawStyle,*,*, GLenum,*,* +QuadricNormal,*,*, GLenum,*,* +QuadricObj,*,*, GLUquadric*,*,* +QuadricOrientation,*,*, GLenum,*,* +ReadBufferMode,*,*, GLenum,*,* +RenderbufferTarget,*,*, GLenum,*,* +RenderingMode,*,*, GLenum,*,* +ReplacementCodeSUN,*,*, GLuint,*,* +ReplacementCodeTypeSUN,*,*, GLenum,*,* +SamplePassARB,*,*, GLenum,*,* +SamplePatternEXT,*,*, GLenum,*,* +SamplePatternSGIS,*,*, GLenum,*,* +SecondaryColorPointerTypeIBM,*,*, GLenum,*,* +SelectName,*,*, GLuint,*,* +SeparableTarget,*,*, GLenum,*,* +SeparableTargetEXT,*,*, GLenum,*,* +ShadingModel,*,*, GLenum,*,* +SizeI,*,*, GLsizei,*,* +SpriteParameterNameSGIX,*,*, GLenum,*,* +StencilFunction,*,*, GLenum,*,* +StencilFaceDirection,*,*, GLenum,*,* +StencilOp,*,*, GLenum,*,* +StencilValue,*,*, GLint,*,* +String,*,*, const GLubyte *,*,* +StringName,*,*, GLenum,*,* +TangentPointerTypeEXT,*,*, GLenum,*,* +TessCallback,*,*, GLenum,*,* +TessContour,*,*, GLenum,*,* +TessProperty,*,*, GLenum,*,* +TesselatorObj,*,*, GLUtesselator*,*,* +TexCoordPointerType,*,*, GLenum,*,* +Texture,*,*, GLuint,*,* +TextureComponentCount,*,*, GLint,*,* +TextureCoordName,*,*, GLenum,*,* +TextureEnvParameter,*,*, GLenum,*,* +TextureEnvTarget,*,*, GLenum,*,* +TextureFilterSGIS,*,*, GLenum,*,* +TextureGenParameter,*,*, GLenum,*,* +TextureNormalModeEXT,*,*, GLenum,*,* +TextureParameterName,*,*, GLenum,*,* +TextureTarget,*,*, GLenum,*,* +TextureUnit,*,*, GLenum,*,* +UInt16,*,*, GLushort,*,* +UInt32,*,*, GLuint,*,* +UInt8,*,*, GLubyte,*,* +VertexAttribEnum,*,*, GLenum,*,* +VertexAttribEnumNV,*,*, GLenum,*,* +VertexAttribPointerTypeNV,*,*, GLenum,*,* +VertexPointerType,*,*, GLenum,*,* +VertexWeightPointerTypeEXT,*,*, GLenum,*,* +Void,*,*, GLvoid,*,* +VoidPointer,*,*, GLvoid*,*,* +ConstVoidPointer,*,*, GLvoid* const,*,* +WeightPointerTypeARB,*,*, GLenum,*,* +WinCoord,*,*, GLint,*,* +void,*,*, *,*,* +ArrayObjectPNameATI,*,*, GLenum,*,* +ArrayObjectUsageATI,*,*, GLenum,*,*, +ConstFloat32,*,*, GLfloat,*,* +ConstInt32,*,*, GLint,*,* +ConstUInt32,*,*, GLuint,*,* +ConstVoid,*,*, GLvoid,*,* +DataTypeEXT,*,*, GLenum,*,* +FragmentOpATI,*,*, GLenum,*,* +GetTexBumpParameterATI,*,*, GLenum,*,* +GetVariantValueEXT,*,*, GLenum,*,* +ParameterRangeEXT,*,*, GLenum,*,* +PreserveModeATI,*,*, GLenum,*,* +ProgramFormatARB,*,*, GLenum,*,* +ProgramTargetARB,*,*, GLenum,*,* +ProgramTarget,*,*, GLenum,*,* +ProgramPropertyARB,*,*, GLenum,*,* +ProgramStringPropertyARB,*,*, GLenum,*,* +ScalarType,*,*, GLenum,*,* +SwizzleOpATI,*,*, GLenum,*,* +TexBumpParameterATI,*,*, GLenum,*,* +VariantCapEXT,*,*, GLenum,*,* +VertexAttribPointerPropertyARB,*,*, GLenum,*,* +VertexAttribPointerTypeARB,*,*, GLenum,*,* +VertexAttribPropertyARB,*,*, GLenum,*,* +VertexShaderCoordOutEXT,*,*, GLenum,*,* +VertexShaderOpEXT,*,*, GLenum,*,* +VertexShaderParameterEXT,*,*, GLenum,*,* +VertexShaderStorageTypeEXT,*,*, GLenum,*,* +VertexShaderTextureUnitParameter,*,*, GLenum,*,* +VertexShaderWriteMaskEXT,*,*, GLenum,*,* +VertexStreamATI,*,*, GLenum,*,* +PNTrianglesPNameATI,*,*, GLenum,*,* +# ARB_vertex_buffer_object types and core equivalents for new types +BufferOffset,*,*, GLintptr,*,* +BufferSize,*,*, GLsizeiptr,*,* +BufferAccessARB,*,*, GLenum,*,* +BufferOffsetARB,*,*, GLintptrARB,*,* +BufferPNameARB,*,*, GLenum,*,* +BufferPointerNameARB,*,*, GLenum,*,* +BufferSizeARB,*,*, GLsizeiptrARB,*,* +BufferTargetARB,*,*, GLenum,*,* +BufferUsageARB,*,*, GLenum,*,* +# APPLE_fence +ObjectTypeAPPLE,*,*, GLenum,*,* +# APPLE_vertex_array_range +VertexArrayPNameAPPLE,*,*, GLenum,*,* +# ATI_draw_buffers +DrawBufferModeATI,*,*, GLenum,*,* +# NV_half +Half16NV,*,*, GLhalfNV,*,* +# NV_pixel_data_range +PixelDataRangeTargetNV,*,*, GLenum,*,* +# Generic types for as-yet-unspecified enums +TypeEnum,*,*, GLenum,*,* +GLenum,*,*, GLenum,*,* +handleARB,*,*, GLhandleARB,*,* +charARB,*,*, GLcharARB,*,* +charPointerARB,*,*, GLcharARB*,*,* +# EXT_timer_query +Int64EXT,*,*, GLint64EXT,*,* +UInt64EXT,*,*, GLuint64EXT,*,* +# EXT_direct_state_access +FramebufferAttachment,*,*, GLenum,*,* +FramebufferAttachmentParameterName,*,*, GLenum,*,* +Framebuffer,*,*, GLuint,*,* +FramebufferStatus,*,*, GLenum,*,* +FramebufferTarget,*,*, GLenum,*,* +GetFramebufferParameter,*,*, GLenum,*,* +Intptr,*,*, GLintptr,*,* +ProgramFormat,*,*, GLenum,*,* +ProgramProperty,*,*, GLenum,*,* +ProgramStringProperty,*,*, GLenum,*,* +ProgramTarget,*,*, GLenum,*,* +Renderbuffer,*,*, GLuint,*,* +RenderbufferParameterName,*,*, GLenum,*,* +Sizeiptr,*,*, GLsizeiptr,*,* +TextureInternalFormat,*,*, GLenum,*,* +VertexBufferObjectAccess,*,*, GLenum,*,* +VertexBufferObjectParameter,*,*, GLenum,*,* +VertexBufferObjectUsage,*,*, GLenum,*,* +# ARB_map_buffer_range +BufferAccessMask,*,*, GLbitfield,*,* +# NV_explicit_multisample +GetMultisamplePNameNV,*,*, GLenum,*,* +SampleMaskNV,*,*, GLbitfield,*,* diff --git a/src/glx/apple/specs/glx.spec b/src/glx/apple/specs/glx.spec new file mode 100644 index 0000000000..b7ff63bb8e --- /dev/null +++ b/src/glx/apple/specs/glx.spec @@ -0,0 +1,599 @@ +# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# +# This document is licensed under the SGI Free Software B License Version +# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + +required-props: +param: retval retained +dlflags: notlistable handcode nop +glxflags: client-handcode server-handcode +glxvendorglx: * +vectorequiv: * +category: pixel-rw bgn-end display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform glx glxopcode +glxopcode: * + +############################################################################### +# +# GLX1.0 commands +# +############################################################################### +Render() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 1 + + +RenderLarge() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 2 + + +CreateContext(gc_id, screen, visual, share_list) + return void + param gc_id Int32 in value + param screen Int32 in value + param visual Int32 in value + param share_list Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 3 + + +DestroyContext(context) + return void + param context Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 4 + + +MakeCurrent(drawable, context) + return void + param drawable Int32 in value + param context Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 5 + + +IsDirect(dpy, context) + return void + param dpy Int32 in value + param context Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 6 + + +QueryVersion(major, minor) + return void + param major Int32 out reference + param minor Int32 out reference + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 7 + + +WaitGL(context) + return void + param context Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 8 + + +WaitX() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 9 + + +CopyContext(source, dest, mask) + return void + param source Int32 in value + param dest Int32 in value + param mask Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 10 + + +SwapBuffers(drawable) + return void + param drawable Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 11 + + +UseXFont(font, first, count, list_base) + return void + param font Int32 in value + param first Int32 in value + param count Int32 in value + param list_base Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 12 + + +CreateGLXPixmap(visual, pixmap, glxpixmap) + return void + param visual Int32 in value + param pixmap Int32 in value + param glxpixmap Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 13 + +GetVisualConfigs() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 14 + + +DestroyGLXPixmap(pixmap) + return void + param pixmap Int32 in value + glxflags client-handcode + category glx + dlflags notlistable + glxopcode 15 + + +VendorPrivate() + return void + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 16 + + +VendorPrivateWithReply() + return void + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 17 + +############################################################################### +# +# GLX1.1 commands +# +############################################################################### +QueryExtensionsString(screen) + return void + param screen Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 18 + +QueryServerString(screen, name) + return void + param screen Int32 in value + param name Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 19 + +ClientInfo() + return void + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxopcode 20 + +############################################################################### +# +# GLX1.3 commands +# +############################################################################### +GetFBConfigs() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxopcode 21 + +CreatePixmap(config, pixmap, glxpixmap) + return void + param config Int32 in value + param pixmap Int32 in value + param glxpixmap Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 22 + +DestroyPixmap(glxpixmap) + return void + param glxpixmap Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 23 + +CreateNewContext(config, render_type, share_list, direct) + return void + param config Int32 in value + param render_type Int32 in value + param share_list Int32 in value + param direct Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 24 + +QueryContext() + return void + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 25 + +MakeContextCurrent(drawable, readdrawable, context) + return void + param drawable Int32 in value + param readdrawable Int32 in value + param context Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 26 + +CreatePbuffer(config, pbuffer) + return void + param config Int32 in value + param pbuffer Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 27 + +DestroyPbuffer(pbuffer) + return void + param pbuffer Int32 in value + dlflags notlistable + glxflags client-handcode + category glx + glxopcode 28 + +GetDrawableAttributes(drawable) + return void + param drawable Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 29 + +ChangeDrawableAttributes(drawable) + return void + param drawable Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 30 + +CreateWindow(config, window, glxwindow) + return void + param config Int32 in value + param window Int32 in value + param glxwindow Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 31 + +DestroyWindow(glxwindow) + return void + param glxwindow Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxopcode 32 + +############################################################################### +# +# IRIX5.3 extension commands +# +############################################################################### + +############################################################################### +# +# SGI_swap_control extension commands +# +############################################################################### +SwapIntervalSGI() + return void + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65536 + +############################################################################### +# +# IRIX5.3-PATCH154 extension commands +# +############################################################################### + +############################################################################### +# +# SGI_make_current_read extension commands +# +############################################################################### +MakeCurrentReadSGI(drawable, readdrawable, context) + return void + param drawable Int32 in value + param readdrawable Int32 in value + param context Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65537 + +############################################################################### +# +# SGIX_video_source extension commands +# +############################################################################### +CreateGLXVideoSourceSGIX(dpy, screen, server, path, class, node) + return void + param dpy Int32 in value + param screen Int32 in value + param server Int32 in value + param path Int32 in value + param class Int32 in value + param node Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65538 + +DestroyGLXVideoSourceSGIX(dpy, glxvideosource) + return void + param dpy Int32 in value + param glxvideosource Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65539 + +############################################################################### +# +# IRIX6.2 extension commands +# +############################################################################### + +############################################################################### +# +# EXT_import_context extension commands +# +############################################################################### +QueryContextInfoEXT() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxvendorglx 1024 + +############################################################################### +# +# SGIX_fbconfig extension commands +# +############################################################################### +GetFBConfigsSGIX() + return void + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxvendorglx 65540 + +CreateContextWithConfigSGIX(gc_id, screen, config, share_list) + return void + param gc_id Int32 in value + param screen Int32 in value + param config Int32 in value + param share_list Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65541 + +CreateGLXPixmapWithConfigSGIX(config, pixmap, glxpixmap) + return void + param config Int32 in value + param pixmap Int32 in value + param glxpixmap Int32 in value + category glx + dlflags notlistable + glxflags client-handcode server-handcode + glxvendorglx 65542 + +############################################################################### +# +# SGIX_pbuffer extension commands +# +############################################################################### + +CreateGLXPbufferSGIX(config, pbuffer) + return void + param config Int32 in value + param pbuffer Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxvendorglx 65543 + +DestroyGLXPbufferSGIX(pbuffer) + return void + param pbuffer Int32 in value + dlflags notlistable + glxflags client-handcode + category glx + glxvendorglx 65544 + +ChangeDrawableAttributesSGIX(drawable) + return void + param drawable Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxvendorglx 65545 + +GetDrawableAttributesSGIX(drawable) + return void + param drawable Int32 in value + dlflags notlistable + glxflags client-handcode server-handcode + category glx + glxvendorglx 65546 + +############################################################################### +# +# SGIX_swap_group extension commands +# +############################################################################### + +JoinSwapGroupSGIX(window,group) + return void + param window Int32 in value + param group Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65547 + +############################################################################### +# +# SGIX_swap_barrier extension commands +# +############################################################################### + +BindSwapBarrierSGIX(window,barrier) + return void + param window Int32 in value + param barrier Int32 in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65548 + +QueryMaxSwapBarriersSGIX() + return void + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65549 + +############################################################################### +# +# SGIX_hyperpipe extension commands +# +############################################################################### + +QueryHyperpipeNetworkSGIX(dpy, npipes) + return GLXHyperpipeNetworkPointer + param dpy Display out reference + param npipes int out reference + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65550 + +HyperpipeConfigSGIX(dpy, networkId, npipes, cfg, hpId) + return int + param dpy Display out reference + param networkId int in value + param npipes int in value + param cfg GLXHyperpipeConfig in array[npipes] + param hpId int out reference + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65552 + +QueryHyperpipeConfigSGIX(dpy, hpId, npipes) + return GLXHyperpipeConfigPointer + param dpy Display out reference + param hpId int in value + param npipes int out reference + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65551 + +DestroyHyperpipeConfigSGIX(dpy, hpId) + return int + param dpy Display out reference + param hpId int in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx 65553 + +BindHyperpipeSGIX(dpy, hpId) + return int + param dpy Display out reference + param hpId int in value + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx ??? + +QueryHyperpipeBestAttribSGIX(dpy, timeSlice, attrib, size, attribList, returnAttribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param attribList Void in array[size] + param returnAttribList Void out array[size] + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx ??? + +HyperpipeAttribSGIX(dpy, timeSlice, attrib, size, attribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param attribList void in array[size] + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx ??? + +QueryHyperpipeAttribSGIX(dpy, timeSlice, attrib, size, returnAttribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param returnAttribList void in array[size] + glxflags client-handcode server-handcode + category glx + dlflags notlistable + glxvendorglx ??? diff --git a/src/glx/apple/specs/glxenum.spec b/src/glx/apple/specs/glxenum.spec new file mode 100644 index 0000000000..fb25ddf9da --- /dev/null +++ b/src/glx/apple/specs/glxenum.spec @@ -0,0 +1,414 @@ +# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# +# This document is licensed under the SGI Free Software B License Version +# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + +# This is the GLX enumerant registry. +# +# It is an extremely important file. Do not mess with it unless +# you know what you're doing and have permission to do so. +# +# Rules for modification are the same as the rules for the OpenGL +# enumerant registry (gl.spec). Basically, don't modify this +# file unless you're the Khronos API Registrar. + +Extensions define: + VERSION_1_1 = 1 + VERSION_1_2 = 1 + VERSION_1_3 = 1 + VERSION_1_4 = 1 + SGIS_multisample = 1 + EXT_visual_info = 1 + SGI_swap_control = 1 + SGI_video_sync = 1 + SGI_make_current_read = 1 + SGIX_video_source = 1 + EXT_visual_rating = 1 + EXT_import_context = 1 + SGIX_fbconfig = 1 + SGIX_pbuffer = 1 + SGI_cushion = 1 + SGIX_video_resize = 1 + SGIX_dmbuffer = 1 + SGIX_swap_group = 1 + SGIX_swap_barrier = 1 + SGIS_blended_overlay = 1 + SGIS_shared_multisample = 1 + SUN_get_transparent_index = 1 + 3DFX_multisample = 1 + MESA_copy_sub_buffer = 1 + MESA_pixmap_colormap = 1 + MESA_release_buffers = 1 + MESA_set_3dfx_mode = 1 + SGIX_visual_select_group = 1 + SGIX_hyperpipe = 1 + +GLXStringName enum: + VENDOR = 0x1 + VERSION = 0x2 + EXTENSIONS = 0x3 + +GLXErrorCode enum: + BAD_SCREEN = 1 + BAD_ATTRIBUTE = 2 + NO_EXTENSION = 3 + BAD_VISUAL = 4 + BAD_CONTEXT = 5 + BAD_VALUE = 6 + BAD_ENUM = 7 + BAD_HYPERPIPE_CONFIG_SGIX = 91 # SGIX_hyperpipe + BAD_HYPERPIPE_SGIX = 92 # " + +# Reserved bits in bitfields of various purposes + +GLXDrawableTypeMask enum: + WINDOW_BIT = 0x00000001 # DRAWABLE_TYPE value + PIXMAP_BIT = 0x00000002 # " + PBUFFER_BIT = 0x00000004 # " + WINDOW_BIT_SGIX = 0x00000001 # DRAWABLE_TYPE_SGIX value + PIXMAP_BIT_SGIX = 0x00000002 # " + PBUFFER_BIT_SGIX = 0x00000004 # " + +GLXRenderTypeMask enum: + RGBA_BIT = 0x00000001 # RENDER_TYPE value + COLOR_INDEX_BIT = 0x00000002 # " + RGBA_BIT_SGIX = 0x00000001 # RENDER_TYPE_SGIX value + COLOR_INDEX_BIT_SGIX = 0x00000002 # " + RGBA_FLOAT_BIT_ARB = 0x00000004 # RENDER_TYPE value (from ARB_fbconfig_float) + RGBA_UNSIGNED_FLOAT_BIT_EXT = 0x00000008 # RENDER_TYPE value (from EXT_fbconfig_packed_float) + +GLXSyncType enum: + SYNC_FRAME_SGIX = 0x00000000 # ChannelRectSyncSGIX synctype + SYNC_SWAP_SGIX = 0x00000001 # " + +GLXEventMask enum: + PBUFFER_CLOBBER_MASK = 0x08000000 # SelectEvent mask + BUFFER_CLOBBER_MASK_SGIX = 0x08000000 # SelectEventSGIX mask +# INTEL_future_use = 0x04000000 # SelectEvent mask (for GLX_INTEL_swap_event) + +GLXPbufferClobberMask enum: + FRONT_LEFT_BUFFER_BIT = 0x00000001 # PbufferClobberEvent mask + FRONT_RIGHT_BUFFER_BIT = 0x00000002 # " + BACK_LEFT_BUFFER_BIT = 0x00000004 # " + BACK_RIGHT_BUFFER_BIT = 0x00000008 # " + AUX_BUFFERS_BIT = 0x00000010 # " + DEPTH_BUFFER_BIT = 0x00000020 # " + STENCIL_BUFFER_BIT = 0x00000040 # " + ACCUM_BUFFER_BIT = 0x00000080 # " + FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001 # BufferClobberEventSGIX mask + FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002 # " + BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004 # " + BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008 # " + AUX_BUFFERS_BIT_SGIX = 0x00000010 # " + DEPTH_BUFFER_BIT_SGIX = 0x00000020 # " + STENCIL_BUFFER_BIT_SGIX = 0x00000040 # " + ACCUM_BUFFER_BIT_SGIX = 0x00000080 # " + SAMPLE_BUFFERS_BIT_SGIX = 0x00000100 # " + +GLXHyperpipeTypeMask enum: + HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001 # SGIX_hyperpipe + HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002 # " + +GLXHyperpipeAttrib enum: + PIPE_RECT_SGIX = 0x00000001 # SGIX_hyperpipe + PIPE_RECT_LIMITS_SGIX = 0x00000002 # " + HYPERPIPE_STEREO_SGIX = 0x00000003 # " + HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004 # " + +GLXHyperpipeMisc enum: + HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80 # SGIX_hyperpipe + +GLXBindToTextureTargetMask enum: + TEXTURE_1D_BIT_EXT = 0x00000001 # EXT_texture_from_pixmap + TEXTURE_2D_BIT_EXT = 0x00000002 + TEXTURE_RECTANGLE_BIT_EXT = 0x00000004 + +# CONTEXT_FLAGS_ARB bits +GLXContextFlags enum: + CONTEXT_DEBUG_BIT_ARB = 0x00000001 # ARB_create_context + CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 # ARB_create_context + +# CONTEXT_PROFILE_MASK_ARB bits +GLXContextProfileMask enum: + CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 # ARB_create_context_profile + CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 # ARB_create_context_profile + +GLXAttribute enum: + USE_GL = 1 # Visual attributes + BUFFER_SIZE = 2 # " + LEVEL = 3 # " + RGBA = 4 # " + DOUBLEBUFFER = 5 # " + STEREO = 6 # " + AUX_BUFFERS = 7 # " + RED_SIZE = 8 # " + GREEN_SIZE = 9 # " + BLUE_SIZE = 10 # " + ALPHA_SIZE = 11 # " + DEPTH_SIZE = 12 # " + STENCIL_SIZE = 13 # " + ACCUM_RED_SIZE = 14 # " + ACCUM_GREEN_SIZE = 15 # " + ACCUM_BLUE_SIZE = 16 # " + ACCUM_ALPHA_SIZE = 17 # " + CONFIG_CAVEAT = 0x20 # " + X_VISUAL_TYPE = 0x22 # " + TRANSPARENT_TYPE = 0x23 # " + TRANSPARENT_INDEX_VALUE = 0x24 # " + TRANSPARENT_RED_VALUE = 0x25 # " + TRANSPARENT_GREEN_VALUE = 0x26 # " + TRANSPARENT_BLUE_VALUE = 0x27 # " + TRANSPARENT_ALPHA_VALUE = 0x28 # " + DONT_CARE = 0xFFFFFFFF # may be specified for ChooseFBConfig attributes + NONE = 0x8000 # several attribute values + SLOW_CONFIG = 0x8001 # CONFIG_CAVEAT attribute value + TRUE_COLOR = 0x8002 # X_VISUAL_TYPE attribute value + DIRECT_COLOR = 0x8003 # " + PSEUDO_COLOR = 0x8004 # " + STATIC_COLOR = 0x8005 # " + GRAY_SCALE = 0x8006 # " + STATIC_GRAY = 0x8007 # " + TRANSPARENT_RGB = 0x8008 # TRANSPARENT_TYPE attribute value + TRANSPARENT_INDEX = 0x8009 # " + VISUAL_ID = 0x800B # Context attribute + SCREEN = 0x800C # " + NON_CONFORMANT_CONFIG = 0x800D # CONFIG_CAVEAT attribute value + DRAWABLE_TYPE = 0x8010 # FBConfig attribute + RENDER_TYPE = 0x8011 # " + X_RENDERABLE = 0x8012 # " + FBCONFIG_ID = 0x8013 # " + RGBA_TYPE = 0x8014 # CreateNewContext render_type value + COLOR_INDEX_TYPE = 0x8015 # " + MAX_PBUFFER_WIDTH = 0x8016 # FBConfig attribute + MAX_PBUFFER_HEIGHT = 0x8017 # " + MAX_PBUFFER_PIXELS = 0x8018 # " + PRESERVED_CONTENTS = 0x801B # CreateGLXPbuffer attribute + LARGEST_PBUFFER = 0x801C # " + WIDTH = 0x801D # Drawable attribute + HEIGHT = 0x801E # " + EVENT_MASK = 0x801F # " + DAMAGED = 0x8020 # PbufferClobber event_type value + SAVED = 0x8021 # " + WINDOW = 0x8022 # PbufferClobber draw_type value + PBUFFER = 0x8023 # " + PBUFFER_HEIGHT = 0x8040 # CreateGLXPbuffer attribute + PBUFFER_WIDTH = 0x8041 # " + VISUAL_CAVEAT_EXT = 0x20 # Visual attribute + X_VISUAL_TYPE_EXT = 0x22 # " + TRANSPARENT_TYPE_EXT = 0x23 # " + TRANSPARENT_INDEX_VALUE_EXT = 0x24 # " + TRANSPARENT_RED_VALUE_EXT = 0x25 # " + TRANSPARENT_GREEN_VALUE_EXT = 0x26 # " + TRANSPARENT_BLUE_VALUE_EXT = 0x27 # " + TRANSPARENT_ALPHA_VALUE_EXT = 0x28 # " + NONE_EXT = 0x8000 # several EXT attribute values + SLOW_VISUAL_EXT = 0x8001 # VISUAL_CAVEAT_EXT attribute value + TRUE_COLOR_EXT = 0x8002 # X_VISUAL_TYPE_EXT attribute value + DIRECT_COLOR_EXT = 0x8003 # " + PSEUDO_COLOR_EXT = 0x8004 # " + STATIC_COLOR_EXT = 0x8005 # " + GRAY_SCALE_EXT = 0x8006 # " + STATIC_GRAY_EXT = 0x8007 # " + TRANSPARENT_RGB_EXT = 0x8008 # TRANSPARENT_TYPE_EXT attribute value + TRANSPARENT_INDEX_EXT = 0x8009 # " + SHARE_CONTEXT_EXT = 0x800A # QueryContextInfoEXT attribute + VISUAL_ID_EXT = 0x800B # " + SCREEN_EXT = 0x800C # " + NON_CONFORMANT_VISUAL_EXT = 0x800D # VISUAL_CAVEAT_EXT attribute value + DRAWABLE_TYPE_SGIX = 0x8010 # FBConfigSGIX attribute + RENDER_TYPE_SGIX = 0x8011 # " + X_RENDERABLE_SGIX = 0x8012 # " + FBCONFIG_ID_SGIX = 0x8013 # " + RGBA_TYPE_SGIX = 0x8014 # CreateContextWithConfigSGIX render_type value + COLOR_INDEX_TYPE_SGIX = 0x8015 # " + MAX_PBUFFER_WIDTH_SGIX = 0x8016 # FBConfigSGIX attribute + MAX_PBUFFER_HEIGHT_SGIX = 0x8017 # " + MAX_PBUFFER_PIXELS_SGIX = 0x8018 # " + OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019 # " + OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A # " + PRESERVED_CONTENTS_SGIX = 0x801B # PbufferSGIX attribute + LARGEST_PBUFFER_SGIX = 0x801C # " + WIDTH_SGIX = 0x801D # " + HEIGHT_SGIX = 0x801E # " + EVENT_MASK_SGIX = 0x801F # " + DAMAGED_SGIX = 0x8020 # BufferClobberSGIX event_type value + SAVED_SGIX = 0x8021 # " + WINDOW_SGIX = 0x8022 # BufferClobberSGIX draw_type value + PBUFFER_SGIX = 0x8023 # " + DIGITAL_MEDIA_PBUFFER_SGIX = 0x8024 # PbufferSGIX attribute + BLENDED_RGBA_SGIS = 0x8025 # TRANSPARENT_TYPE_EXT attribute value + MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026 # Visual attribute (shared_multisample) + MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027 # " + VISUAL_SELECT_GROUP_SGIX = 0x8028 # Visual attribute (visual_select_group) + HYPERPIPE_ID_SGIX = 0x8030 # Associated hyperpipe ID (SGIX_hyperpipe) + SAMPLE_BUFFERS_SGIS = 100000 # Visual attribute (SGIS_multisample) + SAMPLES_SGIS = 100001 # " + SAMPLE_BUFFERS_ARB = 100000 # Visual attribute (ARB_multisample - alias of SGIS_multisample) + SAMPLES_ARB = 100001 # " + SAMPLE_BUFFERS = 100000 # Visual attribute (GLX 1.4 core - alias of SGIS_multisample) + SAMPLES = 100001 # " + +############################################################################### + +# ARB: 0x2070-0x209F (shared with WGL) + +# Also includes a bitmask - see ContextFlags above +# ARB_create_context enum: + CONTEXT_MAJOR_VERSION_ARB = 0x2091 + CONTEXT_MINOR_VERSION_ARB = 0x2092 + CONTEXT_FLAGS_ARB = 0x2094 + +############################################################################### + +# NVIDIA: 0x20A0 - 0x219F (shared with WGL) + +# NV_float_buffer enum: + FLOAT_COMPONENTS_NV = 0x20B0 +# EXT_fbconfig_packed_float enum: + RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1 +# EXT_framebuffer_sRGB enum: + FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2 + +# NV_future_use: 0x20B3-0x20B8 + +# ARB_fbconfig_float enum: + RGBA_FLOAT_TYPE_ARB = 0x20B9 + +# NV_future_use: 0x20BA-0x20C2 + +# NV_video_out enum: + VIDEO_OUT_COLOR_NV = 0x20C3 + VIDEO_OUT_ALPHA_NV = 0x20C4 + VIDEO_OUT_DEPTH_NV = 0x20C5 + VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6 + VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7 + VIDEO_OUT_FRAME_NV = 0x20C8 + VIDEO_OUT_FIELD_1_NV = 0x20C9 + VIDEO_OUT_FIELD_2_NV = 0x20CA + VIDEO_OUT_STACKED_FIELDS_1_2_NV = 0x20CB + VIDEO_OUT_STACKED_FIELDS_2_1_NV = 0x20CC + +# NV_video_capture enum: + DEVICE_ID_NV = 0x20CD + UNIQUE_ID_NV = 0x20CE + NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF + +# EXT_texture_from_pixmap enum: + BIND_TO_TEXTURE_RGB_EXT = 0x20D0 + BIND_TO_TEXTURE_RGBA_EXT = 0x20D1 + BIND_TO_MIPMAP_TEXTURE_EXT = 0x20D2 + BIND_TO_TEXTURE_TARGETS_EXT = 0x20D3 + Y_INVERTED_EXT = 0x20D4 + TEXTURE_FORMAT_EXT = 0x20D5 + TEXTURE_TARGET_EXT = 0x20D6 + MIPMAP_TEXTURE_EXT = 0x20D7 + TEXTURE_FORMAT_NONE_EXT = 0x20D8 + TEXTURE_FORMAT_RGB_EXT = 0x20D9 + TEXTURE_FORMAT_RGBA_EXT = 0x20DA + TEXTURE_1D_EXT = 0x20DB + TEXTURE_2D_EXT = 0x20DC + TEXTURE_RECTANGLE_EXT = 0x20DD + FRONT_LEFT_EXT = 0x20DE + FRONT_RIGHT_EXT = 0x20DF + BACK_LEFT_EXT = 0x20E0 + BACK_RIGHT_EXT = 0x20E1 + FRONT_EXT = GLX_FRONT_LEFT_EXT + BACK_EXT = GLX_BACK_LEFT_EXT + AUX0_EXT = 0x20E2 + AUX1_EXT = 0x20E3 + AUX2_EXT = 0x20E4 + AUX3_EXT = 0x20E5 + AUX4_EXT = 0x20E6 + AUX5_EXT = 0x20E7 + AUX6_EXT = 0x20E8 + AUX7_EXT = 0x20E9 + AUX8_EXT = 0x20EA + AUX9_EXT = 0x20EB + +# NV_future_use: 0x20EC-0x20EF + +NV_present_video enum: + NUM_VIDEO_SLOTS_NV = 0x20F0 + +EXT_swap_control enum: + SWAP_INTERVAL_EXT = 0x20F1 + MAX_SWAP_INTERVAL_EXT = 0x20F2 + +# NV_future_use: 0x20F3-0x219F + +############################################################################### + +# MESA (not in a reserved block) + +# MESA_set_3dfx_mode enum: +# 3DFX_WINDOW_MODE_MESA = 0x1 +# 3DFX_FULLSCREEN_MODE_MESA = 0x2 + +############################################################################### + +# SGI_future_use: 0x8029-0x802F +# SGIX_hyperpipe adds attribute name HYPERPIPE_ID_SGIX = 0x8030 +# SGI_future_use: 0x8031-0x803F + +############################################################################### + +# ARB_future_use: 0x8042-0x804F + +############################################################################### + +# 3DFX: 0x8050-0x805F + +# 3DFX_multisample enum: +# SAMPLE_BUFFERS_3DFX = 0x8050 +# SAMPLES_3DFX = 0x8051 + +############################################################################### + +# OML: 0x8060-0x806F + +# OML_swap_method enum: +# SWAP_METHOD_OML = 0x8060 +# SWAP_EXCHANGE_OML = 0x8061 +# SWAP_COPY_OML = 0x8062 +# SWAP_UNDEFINED_OML = 0x8063 + +# OML_future_use: 0x8064-0x806F + +############################################################################### + +# NVIDIA: 0x8070 - 0x816F + +NVIDIA_future_use: 0x8070-0x816F + +############################################################################### + +# SUN: 0x8170 - 0x817F + +SUN_future_use: 0x8170-0x817F + +############################################################################### + +# INTEL: 0x8180 - 0x818F + +# INTEL_swap_event: 0x8180-??? (in process, see Khronos bug 5752) + +INTEL_future_use: 0x8180-0x818F + +############################################################################### +### Please remember that new GLX enum allocations must be obtained by request +### to the Khronos API Registrar (see comments at the top of this file) +### File requests in the Khronos Bugzilla, OpenGL project, Registry component. +############################################################################### + +# Any_vendor_future_use: 0x8180-0x9125 + +# Also includes a bitmask - see ContextProfileMask above +# ARB_create_context_profile enum: (equivalent to corresponding GL token) + CONTEXT_PROFILE_MASK_ARB = 0x9126 + +# Any_vendor_future_use: 0x9127-0xFFFF +# +# This range must be the last range in the file. To generate a new +# range, allocate multiples of 16 from the beginning of the +# Any_vendor_future_use range and update glxenum.spec, glxenumext.spec, +# and extensions.reserved. diff --git a/src/glx/apple/specs/glxenumext.spec b/src/glx/apple/specs/glxenumext.spec new file mode 100644 index 0000000000..762a19abef --- /dev/null +++ b/src/glx/apple/specs/glxenumext.spec @@ -0,0 +1,503 @@ +# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# +# This document is licensed under the SGI Free Software B License Version +# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + +# List of GLX enumerants for glxext.h header +# +# This is NOT the master GLX enumerant registry (glxenum.spec). +# +# Unlike glxenum.spec, glxenumext.spec is +# (1) In order by extension number. +# (2) Includes only GLX extensions and GLX 1.3/1.4 core enumerants, +# since it's assumed all today support at least GLX 1.2. +# (3) Has no 'Extensions' section, since enums are always +# conditionally protected against multiple definition +# by glextenum.pl. +# (4) Is processed by glextenum.pl, which has evolved +# from enum.pl - should merge back into one script. + +# glxext.h version number - this should be automatically updated, +# when changing either enum or template spec files. + +passthru: +passthru: /* Header file version number, required by OpenGL ABI for Linux */ +passthru: /* glxext.h last updated 2009/10/08 */ +passthru: /* Current version at http://www.opengl.org/registry/ */ +passthru: #define GLX_GLXEXT_VERSION 25 + +############################################################################### +# +# GLX 1.3 enums +# +############################################################################### + +VERSION_1_3 enum: + WINDOW_BIT = 0x00000001 # DRAWABLE_TYPE value + PIXMAP_BIT = 0x00000002 # " + PBUFFER_BIT = 0x00000004 # " + RGBA_BIT = 0x00000001 # RENDER_TYPE value + COLOR_INDEX_BIT = 0x00000002 # " + PBUFFER_CLOBBER_MASK = 0x08000000 # SelectEvent mask + FRONT_LEFT_BUFFER_BIT = 0x00000001 # PbufferClobberEvent mask + FRONT_RIGHT_BUFFER_BIT = 0x00000002 # " + BACK_LEFT_BUFFER_BIT = 0x00000004 # " + BACK_RIGHT_BUFFER_BIT = 0x00000008 # " + AUX_BUFFERS_BIT = 0x00000010 # " + DEPTH_BUFFER_BIT = 0x00000020 # " + STENCIL_BUFFER_BIT = 0x00000040 # " + ACCUM_BUFFER_BIT = 0x00000080 # " + CONFIG_CAVEAT = 0x20 # " + X_VISUAL_TYPE = 0x22 # " + TRANSPARENT_TYPE = 0x23 # " + TRANSPARENT_INDEX_VALUE = 0x24 # " + TRANSPARENT_RED_VALUE = 0x25 # " + TRANSPARENT_GREEN_VALUE = 0x26 # " + TRANSPARENT_BLUE_VALUE = 0x27 # " + TRANSPARENT_ALPHA_VALUE = 0x28 # " + DONT_CARE = 0xFFFFFFFF # may be specified for ChooseFBConfig attributes + NONE = 0x8000 # several attribute values + SLOW_CONFIG = 0x8001 # CONFIG_CAVEAT attribute value + TRUE_COLOR = 0x8002 # X_VISUAL_TYPE attribute value + DIRECT_COLOR = 0x8003 # " + PSEUDO_COLOR = 0x8004 # " + STATIC_COLOR = 0x8005 # " + GRAY_SCALE = 0x8006 # " + STATIC_GRAY = 0x8007 # " + TRANSPARENT_RGB = 0x8008 # TRANSPARENT_TYPE attribute value + TRANSPARENT_INDEX = 0x8009 # " + VISUAL_ID = 0x800B # Context attribute + SCREEN = 0x800C # " + NON_CONFORMANT_CONFIG = 0x800D # CONFIG_CAVEAT attribute value + DRAWABLE_TYPE = 0x8010 # FBConfig attribute + RENDER_TYPE = 0x8011 # " + X_RENDERABLE = 0x8012 # " + FBCONFIG_ID = 0x8013 # " + RGBA_TYPE = 0x8014 # CreateNewContext render_type value + COLOR_INDEX_TYPE = 0x8015 # " + MAX_PBUFFER_WIDTH = 0x8016 # FBConfig attribute + MAX_PBUFFER_HEIGHT = 0x8017 # " + MAX_PBUFFER_PIXELS = 0x8018 # " + PRESERVED_CONTENTS = 0x801B # CreateGLXPbuffer attribute + LARGEST_PBUFFER = 0x801C # " + WIDTH = 0x801D # Drawable attribute + HEIGHT = 0x801E # " + EVENT_MASK = 0x801F # " + DAMAGED = 0x8020 # PbufferClobber event_type value + SAVED = 0x8021 # " + WINDOW = 0x8022 # PbufferClobber draw_type value + PBUFFER = 0x8023 # " + PBUFFER_HEIGHT = 0x8040 # CreateGLXPbuffer attribute + PBUFFER_WIDTH = 0x8041 # " + +############################################################################### +# +# GLX 1.4 enums +# +############################################################################### + +VERSION_1_4 enum: + SAMPLE_BUFFERS = 100000 + SAMPLES = 100001 + +############################################################################### +# +# ARB GLX extensions, in ARB extension order +# +############################################################################### + +############################################################################### + +# No new tokens +# ARB Extension #2 +ARB_get_proc_address enum: + +############################################################################### + +# ARB Extension #5 +ARB_multisample enum: + SAMPLE_BUFFERS_ARB = 100000 + SAMPLES_ARB = 100001 + +############################################################################### + +# ARB Extension #39 +ARB_fbconfig_float enum: + RGBA_FLOAT_TYPE_ARB = 0x20B9 + RGBA_FLOAT_BIT_ARB = 0x00000004 + +############################################################################### + +# ARB Extension #56 +ARB_create_context enum: + CONTEXT_DEBUG_BIT_ARB = 0x00000001 + CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 + CONTEXT_MAJOR_VERSION_ARB = 0x2091 + CONTEXT_MINOR_VERSION_ARB = 0x2092 + CONTEXT_FLAGS_ARB = 0x2094 + +############################################################################### + +# ARB Extension #75 +ARB_create_context_profile enum: + CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 + CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 + CONTEXT_PROFILE_MASK_ARB = 0x9126 + + +############################################################################### +# +# non-ARB GLX extensions, in registry order +# +############################################################################### + +############################################################################### + +# Unfortunately, the SGIS_multisample specification and the IRIX +# implementation are inconsistent; the spec assigns enums as follows. +# ARB_multisample reuses these enums with ARB suffixes, and it can't +# be changed at this point. So in the interest of supporting both +# extensions on non-IRIX platforms, the SGIS enums will be defined +# here as originally specified. + +# Extension #25 +SGIS_multisample enum: + SAMPLE_BUFFERS_SGIS = 100000 + SAMPLES_SGIS = 100001 + +############################################################################### + +# Extension #28 +EXT_visual_info enum: + X_VISUAL_TYPE_EXT = 0x22 + TRANSPARENT_TYPE_EXT = 0x23 + TRANSPARENT_INDEX_VALUE_EXT = 0x24 + TRANSPARENT_RED_VALUE_EXT = 0x25 + TRANSPARENT_GREEN_VALUE_EXT = 0x26 + TRANSPARENT_BLUE_VALUE_EXT = 0x27 + TRANSPARENT_ALPHA_VALUE_EXT = 0x28 + NONE_EXT = 0x8000 + TRUE_COLOR_EXT = 0x8002 + DIRECT_COLOR_EXT = 0x8003 + PSEUDO_COLOR_EXT = 0x8004 + STATIC_COLOR_EXT = 0x8005 + GRAY_SCALE_EXT = 0x8006 + STATIC_GRAY_EXT = 0x8007 + TRANSPARENT_RGB_EXT = 0x8008 + TRANSPARENT_INDEX_EXT = 0x8009 + +############################################################################### + +# No new tokens +# Extension #40 +SGI_swap_control enum: + +############################################################################### + +# No new tokens +# Extension #41 +SGI_video_sync enum: + +############################################################################### + +# No new tokens +# Extension #42 +SGI_make_current_read enum: + +############################################################################### + +# No new tokens +# Extension #43 +SGIX_video_source enum: + +############################################################################### + +# Extension #44 +EXT_visual_rating enum: + VISUAL_CAVEAT_EXT = 0x20 + SLOW_VISUAL_EXT = 0x8001 + NON_CONFORMANT_VISUAL_EXT = 0x800D + use EXT_visual_info NONE_EXT + +############################################################################### + +# Extension #47 +EXT_import_context enum: + SHARE_CONTEXT_EXT = 0x800A + VISUAL_ID_EXT = 0x800B + SCREEN_EXT = 0x800C + +############################################################################### + +# Extension #49 +SGIX_fbconfig enum: + WINDOW_BIT_SGIX = 0x00000001 + PIXMAP_BIT_SGIX = 0x00000002 + RGBA_BIT_SGIX = 0x00000001 + COLOR_INDEX_BIT_SGIX = 0x00000002 + DRAWABLE_TYPE_SGIX = 0x8010 + RENDER_TYPE_SGIX = 0x8011 + X_RENDERABLE_SGIX = 0x8012 + FBCONFIG_ID_SGIX = 0x8013 + RGBA_TYPE_SGIX = 0x8014 + COLOR_INDEX_TYPE_SGIX = 0x8015 + use EXT_import_context SCREEN_EXT + +############################################################################### + +# Extension #50 +SGIX_pbuffer enum: + PBUFFER_BIT_SGIX = 0x00000004 + BUFFER_CLOBBER_MASK_SGIX = 0x08000000 + FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001 + FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002 + BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004 + BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008 + AUX_BUFFERS_BIT_SGIX = 0x00000010 + DEPTH_BUFFER_BIT_SGIX = 0x00000020 + STENCIL_BUFFER_BIT_SGIX = 0x00000040 + ACCUM_BUFFER_BIT_SGIX = 0x00000080 + SAMPLE_BUFFERS_BIT_SGIX = 0x00000100 + MAX_PBUFFER_WIDTH_SGIX = 0x8016 + MAX_PBUFFER_HEIGHT_SGIX = 0x8017 + MAX_PBUFFER_PIXELS_SGIX = 0x8018 + OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019 + OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A + PRESERVED_CONTENTS_SGIX = 0x801B + LARGEST_PBUFFER_SGIX = 0x801C + WIDTH_SGIX = 0x801D + HEIGHT_SGIX = 0x801E + EVENT_MASK_SGIX = 0x801F + DAMAGED_SGIX = 0x8020 + SAVED_SGIX = 0x8021 + WINDOW_SGIX = 0x8022 + PBUFFER_SGIX = 0x8023 + +############################################################################### + +# Extension #62 +SGI_cushion enum: +# CUSHION_BUFFERS_SGI ???? + +############################################################################### + +# Extension #83 +SGIX_video_resize enum: + SYNC_FRAME_SGIX = 0x00000000 + SYNC_SWAP_SGIX = 0x00000001 + +############################################################################### + +# Extension #86 +SGIX_dmbuffer enum: + DIGITAL_MEDIA_PBUFFER_SGIX = 0x8024 + +############################################################################### + +# No new tokens +# Extension #91 +SGIX_swap_group enum: + +############################################################################### + +# No new tokens +# Extension #92 +SGIX_swap_barrier enum: + +############################################################################### + +# Extension #142 +SGIS_blended_overlay enum: + BLENDED_RGBA_SGIS = 0x8025 + +############################################################################### + +# Extension #143 +SGIS_shared_multisample enum: + MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026 + MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027 + +############################################################################### + +# No new tokens +# Extension #183 +SUN_get_transparent_index enum: + +############################################################################### + +# Extension #207 +3DFX_multisample enum: + SAMPLE_BUFFERS_3DFX = 0x8050 + SAMPLES_3DFX = 0x8051 + +############################################################################### + +# No new tokens +# Extension #215 +MESA_copy_sub_buffer enum: + +############################################################################### + +# No new tokens +# Extension #216 +MESA_pixmap_colormap enum: + +############################################################################### + +# No new tokens +# Extension #217 +MESA_release_buffers enum: + +############################################################################### + +# Extension #218 +MESA_set_3dfx_mode enum: + 3DFX_WINDOW_MODE_MESA = 0x1 + 3DFX_FULLSCREEN_MODE_MESA = 0x2 + +############################################################################### + +# Extension #234 +SGIX_visual_select_group enum: + VISUAL_SELECT_GROUP_SGIX = 0x8028 + +############################################################################### + +# Extension #237 +OML_swap_method enum: + SWAP_METHOD_OML = 0x8060 + SWAP_EXCHANGE_OML = 0x8061 + SWAP_COPY_OML = 0x8062 + SWAP_UNDEFINED_OML = 0x8063 + +############################################################################### + +# No new tokens +# Extension #238 +OML_sync_control enum: + +############################################################################### + +# Extension #281 +NV_float_buffer enum: + FLOAT_COMPONENTS_NV = 0x20B0 + +############################################################################### + +# Extension #307 +SGIX_hyperpipe enum: + HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80 + BAD_HYPERPIPE_CONFIG_SGIX = 91 + BAD_HYPERPIPE_SGIX = 92 + HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001 + HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002 + PIPE_RECT_SGIX = 0x00000001 + PIPE_RECT_LIMITS_SGIX = 0x00000002 + HYPERPIPE_STEREO_SGIX = 0x00000003 + HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004 + HYPERPIPE_ID_SGIX = 0x8030 + +############################################################################### + +# No new tokens +# Extension #308 +MESA_agp_offset enum: + +############################################################################### + +# Extension #328 +EXT_fbconfig_packed_float enum: + RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1 + RGBA_UNSIGNED_FLOAT_BIT_EXT = 0x00000008 + +############################################################################### + +# Extension #337 +EXT_framebuffer_sRGB enum: + FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2 + +############################################################################### + +# Extension #344 +EXT_texture_from_pixmap enum: + TEXTURE_1D_BIT_EXT = 0x00000001 + TEXTURE_2D_BIT_EXT = 0x00000002 + TEXTURE_RECTANGLE_BIT_EXT = 0x00000004 + BIND_TO_TEXTURE_RGB_EXT = 0x20D0 + BIND_TO_TEXTURE_RGBA_EXT = 0x20D1 + BIND_TO_MIPMAP_TEXTURE_EXT = 0x20D2 + BIND_TO_TEXTURE_TARGETS_EXT = 0x20D3 + Y_INVERTED_EXT = 0x20D4 + TEXTURE_FORMAT_EXT = 0x20D5 + TEXTURE_TARGET_EXT = 0x20D6 + MIPMAP_TEXTURE_EXT = 0x20D7 + TEXTURE_FORMAT_NONE_EXT = 0x20D8 + TEXTURE_FORMAT_RGB_EXT = 0x20D9 + TEXTURE_FORMAT_RGBA_EXT = 0x20DA + TEXTURE_1D_EXT = 0x20DB + TEXTURE_2D_EXT = 0x20DC + TEXTURE_RECTANGLE_EXT = 0x20DD + FRONT_LEFT_EXT = 0x20DE + FRONT_RIGHT_EXT = 0x20DF + BACK_LEFT_EXT = 0x20E0 + BACK_RIGHT_EXT = 0x20E1 + FRONT_EXT = GLX_FRONT_LEFT_EXT + BACK_EXT = GLX_BACK_LEFT_EXT + AUX0_EXT = 0x20E2 + AUX1_EXT = 0x20E3 + AUX2_EXT = 0x20E4 + AUX3_EXT = 0x20E5 + AUX4_EXT = 0x20E6 + AUX5_EXT = 0x20E7 + AUX6_EXT = 0x20E8 + AUX7_EXT = 0x20E9 + AUX8_EXT = 0x20EA + AUX9_EXT = 0x20EB + +############################################################################### + +# Extension #347 +NV_present_video enum: + NUM_VIDEO_SLOTS_NV = 0x20F0 + +############################################################################### + +# Extension #348 +NV_video_out enum: + VIDEO_OUT_COLOR_NV = 0x20C3 + VIDEO_OUT_ALPHA_NV = 0x20C4 + VIDEO_OUT_DEPTH_NV = 0x20C5 + VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6 + VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7 + VIDEO_OUT_FRAME_NV = 0x20C8 + VIDEO_OUT_FIELD_1_NV = 0x20C9 + VIDEO_OUT_FIELD_2_NV = 0x20CA + VIDEO_OUT_STACKED_FIELDS_1_2_NV = 0x20CB + VIDEO_OUT_STACKED_FIELDS_2_1_NV = 0x20CC + +############################################################################### + +# No new tokens +# Extension #350 +NV_swap_group enum: + +############################################################################### + +# Extension #374 +NV_video_capture enum: + DEVICE_ID_NV = 0x20CD + UNIQUE_ID_NV = 0x20CE + NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF + +############################################################################### + +# Extension #375 +EXT_swap_control enum: + SWAP_INTERVAL_EXT = 0x20F1 + MAX_SWAP_INTERVAL_EXT = 0x20F2 + +############################################################################### + +# No new tokens +# Extension #376 +NV_copy_image enum: diff --git a/src/glx/apple/specs/glxext.spec b/src/glx/apple/specs/glxext.spec new file mode 100644 index 0000000000..c953adbb1b --- /dev/null +++ b/src/glx/apple/specs/glxext.spec @@ -0,0 +1,1318 @@ +# glxext.spec file +# DON'T REMOVE PREVIOUS LINE!!! libspec depends on it! +# +# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. +# +# This document is licensed under the SGI Free Software B License Version +# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + +required-props: +param: retval retained +glxflags: client-handcode client-intercept server-handcode +glxvendorglx: * +vectorequiv: * +category: VERSION_1_3 VERSION_1_4 ARB_get_proc_address ARB_multisample ARB_fbconfig_float EXT_import_context SGIX_dmbuffer SGIX_fbconfig SGIX_pbuffer SGIX_swap_barrier SGIX_swap_group SGIX_video_resize SGIX_video_source SGI_cushion SGI_make_current_read SGI_swap_control SGI_video_sync SUN_get_transparent_index MESA_agp_offset MESA_copy_sub_buffer MESA_pixmap_colormap MESA_release_buffers MESA_set_3dfx_mode SGIX_visual_select_group OML_sync_control SGIX_hyperpipe EXT_texture_from_pixmap NV_swap_group NV_video_output NV_present_video ARB_create_context NV_video_capture NV_copy_image EXT_swap_control +glxopcode: * + +# +# Boilerplate to define types used by some extensions. This is done +# up front, since it involves some complexities in protecting +# the declarations whether or not the -protect flag is given to +# the generator scripts. +# + +passthru: #ifndef GLX_ARB_get_proc_address +passthru: typedef void (*__GLXextFuncPtr)(void); +passthru: #endif +passthru: +passthru: #ifndef GLX_SGIX_video_source +passthru: typedef XID GLXVideoSourceSGIX; +passthru: #endif +passthru: +passthru: #ifndef GLX_SGIX_fbconfig +passthru: typedef XID GLXFBConfigIDSGIX; +passthru: typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; +passthru: #endif +passthru: +passthru: #ifndef GLX_SGIX_pbuffer +passthru: typedef XID GLXPbufferSGIX; +passthru: typedef struct { +passthru: int type; +passthru: unsigned long serial; /* # of last request processed by server */ +passthru: Bool send_event; /* true if this came for SendEvent request */ +passthru: Display *display; /* display the event was read from */ +passthru: GLXDrawable drawable; /* i.d. of Drawable */ +passthru: int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ +passthru: int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ +passthru: unsigned int mask; /* mask indicating which buffers are affected*/ +passthru: int x, y; +passthru: int width, height; +passthru: int count; /* if nonzero, at least this many more */ +passthru: } GLXBufferClobberEventSGIX; +passthru: #endif +passthru: +passthru: #ifndef GLX_NV_video_output +passthru: typedef unsigned int GLXVideoDeviceNV; +passthru: #endif +passthru: +passthru: #ifndef GLX_NV_video_capture +passthru: typedef XID GLXVideoCaptureDeviceNV; +passthru: #endif +passthru: +passthru: #ifndef GLEXT_64_TYPES_DEFINED +passthru: /* This code block is duplicated in glext.h, so must be protected */ +passthru: #define GLEXT_64_TYPES_DEFINED +passthru: /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +passthru: /* (as used in the GLX_OML_sync_control extension). */ +passthru: #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +passthru: #include +passthru: #elif defined(__sun__) || defined(__digital__) +passthru: #include +passthru: #if defined(__STDC__) +passthru: #if defined(__arch64__) || defined(_LP64) +passthru: typedef long int int64_t; +passthru: typedef unsigned long int uint64_t; +passthru: #else +passthru: typedef long long int int64_t; +passthru: typedef unsigned long long int uint64_t; +passthru: #endif /* __arch64__ */ +passthru: #endif /* __STDC__ */ +passthru: #elif defined( __VMS ) || defined(__sgi) +passthru: #include +passthru: #elif defined(__SCO__) || defined(__USLC__) +passthru: #include +passthru: #elif defined(__UNIXOS2__) || defined(__SOL64__) +passthru: typedef long int int32_t; +passthru: typedef long long int int64_t; +passthru: typedef unsigned long long int uint64_t; +passthru: #elif defined(_WIN32) && defined(__GNUC__) +passthru: #include +passthru: #elif defined(_WIN32) +passthru: typedef __int32 int32_t; +passthru: typedef __int64 int64_t; +passthru: typedef unsigned __int64 uint64_t; +passthru: #else +passthru: #include /* Fallback option */ +passthru: #endif +passthru: #endif +passthru: + +############################################################################### +# +# GLX 1.3 commands +# +############################################################################### + +GetFBConfigs(dpy, screen, nelements) + return GLXFBConfigPointer + param dpy Display out reference + param screen int in value + param nelements int out reference + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 21 + +ChooseFBConfig(dpy, screen, attrib_list, nelements) + return GLXFBConfigPointer + param dpy Display out reference + param screen int in value + param attrib_list int in reference + param nelements int out reference + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +GetFBConfigAttrib(dpy, config, attribute, value) + return int + param dpy Display out reference + param config GLXFBConfig in value + param attribute int in value + param value int out reference + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +GetVisualFromFBConfig(dpy, config) + return XVisualInfoPointer + param dpy Display out reference + param config GLXFBConfig in value + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +CreateWindow(dpy, config, win, attrib_list) + return GLXWindow + param dpy Display out reference + param config GLXFBConfig in value + param win Window in value + param attrib_list int in reference + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 31 + +DestroyWindow(dpy, win) + return void + param dpy Display out reference + param win GLXWindow in value + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 32 + +CreatePixmap(dpy, config, pixmap, attrib_list) + return GLXPixmap + param dpy Display out reference + param config GLXFBConfig in value + param pixmap Pixmap in value + param attrib_list int in reference + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 22 + +DestroyPixmap(dpy, pixmap) + return void + param dpy Display out reference + param pixmap GLXPixmap in value + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 23 + +CreatePbuffer(dpy, config, attrib_list) + return GLXPbuffer + param dpy Display out reference + param config GLXFBConfig in value + param attrib_list int in reference + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 27 + +DestroyPbuffer(dpy, pbuf) + return void + param dpy Display out reference + param pbuf GLXPbuffer in value + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 28 + +# glXGetDrawableAttributes -> GLX opcode 29 +# glXChangeDrawableAttributes -> GLX opcode 30 + +# Uses glXGetDrawableAttributes protocol +QueryDrawable(dpy, draw, attribute, value) + return void + param dpy Display out reference + param draw GLXDrawable in value + param attribute int in value + param value uint out reference + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +CreateNewContext(dpy, config, render_type, share_list, direct) + return GLXContext + param dpy Display out reference + param config GLXFBConfig in value + param render_type int in value + param share_list GLXContext in value + param direct Bool in value + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 24 + +MakeContextCurrent(dpy, draw, read, ctx) + return Bool + param dpy Display out reference + param draw GLXDrawable in value + param read GLXDrawable in value + param ctx GLXContext in value + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 26 + +GetCurrentReadDrawable() + return GLXDrawable + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +GetCurrentDisplay() + return DisplayPointer + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +QueryContext(dpy, ctx, attribute, value) + return int + param dpy Display out reference + param ctx GLXContext in value + param attribute int in value + param value int out reference + category VERSION_1_3 + glxflags client-handcode server-handcode + glxopcode 25 + +# Uses glXChangeDrawableAttributes protocol +SelectEvent(dpy, draw, event_mask) + return void + param dpy Display out reference + param draw GLXDrawable in value + param event_mask ulong in value + category VERSION_1_3 + glxflags client-handcode server-handcode + +# Uses glXGetDrawableAttributes protocol +GetSelectedEvent(dpy, draw, event_mask) + return void + param dpy Display out reference + param draw GLXDrawable in value + param event_mask ulong out reference + category VERSION_1_3 + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# GLX 1.4 commands +# +############################################################################### + +GetProcAddress(procName) + return FunctionPointer + param procName GLubyte in reference + category VERSION_1_4 + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# ARB Extension #2 +# ARB_get_proc_address commands +# @promoted to core in GLX 1.4, but there's no provision for aliasing +# @in GLX spec files, yet +# +############################################################################### + +GetProcAddressARB(procName) + return FunctionPointer + param procName GLubyte in reference + category ARB_get_proc_address + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# ARB Extension #5 +# ARB_multisample commands +# +############################################################################### + +# (none) +newcategory: ARB_multisample + +############################################################################### +# +# ARB Extension #39 +# ARB_fbconfig_float commands +# +############################################################################### + +# (none) +newcategory: ARB_fbconfig_float + +############################################################################### +# +# ARB Extension #56 +# ARB_create_context commands +# +############################################################################### + +CreateContextAttribsARB(dpy, config, share_context, direct, attrib_list) + return GLXContext + param dpy Display out reference + param config GLXFBConfig in value + param share_context GLXContext in value + param direct Bool in value + param attrib_list int in reference + category ARB_create_context + glxflags client-handcode client-intercept server-handcode + glxopcode 34 + +############################################################################### +# +# ARB Extension #75 +# ARB_create_context_profile commands +# +############################################################################### + +# (none) +newcategory: ARB_create_context_profile + + +############################################################################### +# +# Extension #25 +# SGIS_multisample commands +# +############################################################################### + +# (none) +newcategory: SGIS_multisample + +############################################################################### +# +# Extension #28 +# EXT_visual_info commands +# +############################################################################### + +# (none) +newcategory: EXT_visual_info + +############################################################################### +# +# Extension #40 +# SGI_swap_control commands +# +############################################################################### + +SwapIntervalSGI(interval) + return int + param interval int in value + category SGI_swap_control + glxflags client-handcode server-handcode + glxvendorglx 65536 + +############################################################################### +# +# Extension #41 +# SGI_video_sync commands +# +############################################################################### + +GetVideoSyncSGI(count) + return int + param count uint out reference + category SGI_video_sync + glxflags client-handcode client-intercept server-handcode + +WaitVideoSyncSGI(divisor, remainder, count) + return int + param divisor int in value + param remainder int in value + param count uint out reference + category SGI_video_sync + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #42 +# SGI_make_current_read commands +# +############################################################################### + +MakeCurrentReadSGI(dpy, draw, read, ctx) + return Bool + param dpy Display out reference + param draw GLXDrawable in value + param read GLXDrawable in value + param ctx GLXContext in value + category SGI_make_current_read + glxflags client-handcode server-handcode + glxvendorglx 65537 + +GetCurrentReadDrawableSGI() + return GLXDrawable + category SGI_make_current_read + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #43 +# SGIX_video_source commands +# +############################################################################### + +newcategory: SGIX_video_source +passthru: #ifdef _VL_H + +CreateGLXVideoSourceSGIX(display, screen, server, path, nodeClass, drainNode) + return GLXVideoSourceSGIX + param display Display out reference + param screen int in value + param server VLServer in value + param path VLPath in value + param nodeClass int in value + param drainNode VLNode in value + category SGIX_video_source + glxflags client-handcode server-handcode + glxvendorglx 65538 + +DestroyGLXVideoSourceSGIX(dpy, glxvideosource) + return void + param dpy Display out reference + param glxvideosource GLXVideoSourceSGIX in value + category SGIX_video_source + glxflags client-handcode server-handcode + glxvendorglx 65539 + +passend: #endif /* _VL_H */ +endcategory: + +############################################################################### +# +# Extension #44 +# EXT_visual_rating commands +# +############################################################################### + +# (none) +newcategory: EXT_visual_rating + +############################################################################### +# +# Extension #47 +# EXT_import_context commands +# +############################################################################### + +GetCurrentDisplayEXT() + return DisplayPointer + category EXT_import_context + glxflags client-handcode client-intercept server-handcode + +QueryContextInfoEXT(dpy, context, attribute, value) + return int + param dpy Display out reference + param context GLXContext in value + param attribute int in value + param value int out reference + category EXT_import_context + glxflags client-handcode server-handcode + glxvendorglx 1024 + +# 'constGLXContext' is a hack; the extension specification and glx.h +# should be fixed instead. +GetContextIDEXT(context) + return GLXContextID + param context constGLXContext in value + category EXT_import_context + glxflags client-handcode client-intercept server-handcode + +ImportContextEXT(dpy, contextID) + return GLXContext + param dpy Display out reference + param contextID GLXContextID in value + category EXT_import_context + glxflags client-handcode client-intercept server-handcode + +FreeContextEXT(dpy, context) + return void + param dpy Display out reference + param context GLXContext in value + category EXT_import_context + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #49 +# SGIX_fbconfig commands +# +############################################################################### + +# GetFBConfigsSGIX protocol -> VendorPrivate opcode 65540 + +GetFBConfigAttribSGIX(dpy, config, attribute, value) + return int + param dpy Display out reference + param config GLXFBConfigSGIX in value + param attribute int in value + param value int out reference + category SGIX_fbconfig + glxflags client-handcode client-intercept server-handcode + +ChooseFBConfigSGIX(dpy, screen, attrib_list, nelements) + return GLXFBConfigSGIXPointer + param dpy Display out reference + param screen int in value + param attrib_list int out reference + param nelements int out reference + category SGIX_fbconfig + glxflags client-handcode client-intercept server-handcode + +CreateGLXPixmapWithConfigSGIX(dpy, config, pixmap) + return GLXPixmap + param dpy Display out reference + param config GLXFBConfigSGIX in value + param pixmap Pixmap in value + category SGIX_fbconfig + glxflags client-handcode server-handcode + glxvendorglx 65542 + +CreateContextWithConfigSGIX(dpy, config, render_type, share_list, direct) + return GLXContext + param dpy Display out reference + param config GLXFBConfigSGIX in value + param render_type int in value + param share_list GLXContext in value + param direct Bool in value + category SGIX_fbconfig + glxflags client-handcode server-handcode + glxvendorglx 65541 + +GetVisualFromFBConfigSGIX(dpy, config) + return XVisualInfoPointer + param dpy Display out reference + param config GLXFBConfigSGIX in value + category SGIX_fbconfig + glxflags client-handcode client-intercept server-handcode + +GetFBConfigFromVisualSGIX(dpy, vis) + return GLXFBConfigSGIX + param dpy Display out reference + param vis XVisualInfo out reference + category SGIX_fbconfig + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #50 +# SGIX_pbuffer commands +# +############################################################################### + +# ChangeDrawableAttributesSGIX protocol -> VendorPrivate opcode 65545 +# GetDrawableAttributesSGIX protocol -> VendorPrivate opcode 65546 + +CreateGLXPbufferSGIX(dpy, config, width, height, attrib_list) + return GLXPbufferSGIX + param dpy Display out reference + param config GLXFBConfigSGIX in value + param width uint in value + param height uint in value + param attrib_list int out reference + category SGIX_pbuffer + glxflags client-handcode server-handcode + glxvendorglx 65543 + +DestroyGLXPbufferSGIX(dpy, pbuf) + return void + param dpy Display out reference + param pbuf GLXPbufferSGIX in value + category SGIX_pbuffer + glxflags client-handcode + glxvendorglx 65544 + +QueryGLXPbufferSGIX(dpy, pbuf, attribute, value) + return int + param dpy Display out reference + param pbuf GLXPbufferSGIX in value + param attribute int in value + param value uint out reference + category SGIX_pbuffer + +SelectEventSGIX(dpy, drawable, mask) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param mask ulong in value + category SGIX_pbuffer + +GetSelectedEventSGIX(dpy, drawable, mask) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param mask ulong out reference + category SGIX_pbuffer + +############################################################################### +# +# Extension #62 +# SGI_cushion commands +# +############################################################################### + +CushionSGI(dpy, window, cushion) + return void + param dpy Display out reference + param window Window in value + param cushion float in value + category SGI_cushion + +############################################################################### +# +# Extension #83 +# SGIX_video_resize commands +# +############################################################################### + +BindChannelToWindowSGIX(display, screen, channel, window) + return int + param display Display out reference + param screen int in value + param channel int in value + param window Window in value + category SGIX_video_resize + +ChannelRectSGIX(display, screen, channel, x, y, w, h) + return int + param display Display out reference + param screen int in value + param channel int in value + param x int in value + param y int in value + param w int in value + param h int in value + category SGIX_video_resize + +QueryChannelRectSGIX(display, screen, channel, dx, dy, dw, dh) + return int + param display Display out reference + param screen int in value + param channel int in value + param dx int out reference + param dy int out reference + param dw int out reference + param dh int out reference + category SGIX_video_resize + +QueryChannelDeltasSGIX(display, screen, channel, x, y, w, h) + return int + param display Display out reference + param screen int in value + param channel int in value + param x int out reference + param y int out reference + param w int out reference + param h int out reference + category SGIX_video_resize + +# @@@ Not in man page - this entry point may not be shipping? +ChannelRectSyncSGIX(display, screen, channel, synctype) + return int + param display Display out reference + param screen int in value + param channel int in value + param synctype GLenum in value + category SGIX_video_resize + +############################################################################### +# +# Extension #86 +# SGIX_dmbuffer commands +# +############################################################################### + +newcategory: SGIX_dmbuffer +passthru: #ifdef _DM_BUFFER_H_ + +AssociateDMPbufferSGIX(dpy, pbuffer, params, dmbuffer) + return Bool + param dpy Display out reference + param pbuffer GLXPbufferSGIX in value + param params DMparams out reference + param dmbuffer DMbuffer in value + category SGIX_dmbuffer + +passend: #endif /* _DM_BUFFER_H_ */ +endcategory: + +############################################################################### +# +# Extension #91 +# SGIX_swap_group commands +# +############################################################################### + +JoinSwapGroupSGIX(dpy, drawable, member) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param member GLXDrawable in value + category SGIX_swap_group + glxflags client-handcode server-handcode + glxvendorglx 65547 + +############################################################################### +# +# Extension #92 +# SGIX_swap_barrier commands +# +############################################################################### + +BindSwapBarrierSGIX(dpy, drawable, barrier) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param barrier int in value + category SGIX_swap_barrier + glxflags client-handcode server-handcode + glxvendorglx 65548 + +QueryMaxSwapBarriersSGIX(dpy, screen, max) + return Bool + param dpy Display out reference + param screen int in value + param max int out reference + category SGIX_swap_barrier + glxflags client-handcode server-handcode + glxvendorglx 65549 + +############################################################################### +# +# Extension #183 +# SUN_get_transparent_index commands +# +############################################################################### + +GetTransparentIndexSUN(dpy, overlay, underlay, pTransparentIndex) + return Status + param dpy Display out reference + param overlay Window in value + param underlay Window in value + param pTransparentIndex long out reference + category SUN_get_transparent_index + +############################################################################### +# +# Extension #215 +# MESA_copy_sub_buffer commands +# +############################################################################### + +CopySubBufferMESA(dpy, drawable, x, y, width, height) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param x int in value + param y int in value + param width int in value + param height int in value + category MESA_copy_sub_buffer + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #216 +# MESA_pixmap_colormap commands +# +############################################################################### + +CreateGLXPixmapMESA(dpy, visual, pixmap, cmap) + return GLXPixmap + param dpy Display out reference + param visual XVisualInfo out reference + param pixmap Pixmap in value + param cmap Colormap in value + category MESA_pixmap_colormap + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #217 +# MESA_release_buffers commands +# +############################################################################### + +ReleaseBuffersMESA(dpy, drawable) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + category MESA_release_buffers + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #218 +# MESA_set_3dfx_mode commands +# +############################################################################### + +# Brian's spec has this as returning 'GLboolean' and taking 'GLint mode' +Set3DfxModeMESA(mode) + return Bool + param mode int in value + category MESA_set_3dfx_mode + glxflags client-handcode client-intercept server-handcode + +############################################################################### +# +# Extension #234 +# SGIX_visual_select_group commands +# +############################################################################### + +# (none) +newcategory: SGIX_visual_select_group + +############################################################################### +# +# Extension #237 +# OML_swap_method commands +# +############################################################################### + +# (none) +newcategory: OML_swap_method + +############################################################################### +# +# Extension #238 +# OML_sync_control commands +# +############################################################################### + +GetSyncValuesOML(dpy, drawable, ust, msc, sbc) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param ust int64_t out reference + param msc int64_t out reference + param sbc int64_t out reference + category OML_sync_control + glxflags client-handcode server-handcode + +GetMscRateOML(dpy, drawable, numerator, denominator) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param numerator int32_t out reference + param denominator int32_t out reference + category OML_sync_control + glxflags client-handcode server-handcode + +SwapBuffersMscOML(dpy, drawable, target_msc, divisor, remainder) + return int64_t + param dpy Display out reference + param drawable GLXDrawable in value + param target_msc int64_t in value + param divisor int64_t in value + param remainder int64_t in value + category OML_sync_control + glxflags client-handcode server-handcode + +WaitForMscOML(dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param target_msc int64_t in value + param divisor int64_t in value + param remainder int64_t in value + param ust int64_t out reference + param msc int64_t out reference + param sbc int64_t out reference + category OML_sync_control + glxflags client-handcode server-handcode + +WaitForSbcOML(dpy, drawable, target_sbc, ust, msc, sbc) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param target_sbc int64_t in value + param ust int64_t out reference + param msc int64_t out reference + param sbc int64_t out reference + category OML_sync_control + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #281 +# NV_float_buffer commands +# +############################################################################### + +# (none) +newcategory: NV_float_buffer + +############################################################################### +# +# Extension #307 +# SGIX_hyperpipe commands +# +############################################################################### + +newcategory: SGIX_hyperpipe +passthru: +passthru: typedef struct { +passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; +passthru: int networkId; +passthru: } GLXHyperpipeNetworkSGIX; +passthru: +passthru: typedef struct { +passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; +passthru: int channel; +passthru: unsigned int +passthru: participationType; +passthru: int timeSlice; +passthru: } GLXHyperpipeConfigSGIX; +passthru: +passthru: typedef struct { +passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; +passthru: int srcXOrigin, srcYOrigin, srcWidth, srcHeight; +passthru: int destXOrigin, destYOrigin, destWidth, destHeight; +passthru: } GLXPipeRect; +passthru: +passthru: typedef struct { +passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; +passthru: int XOrigin, YOrigin, maxHeight, maxWidth; +passthru: } GLXPipeRectLimits; +passthru: + +QueryHyperpipeNetworkSGIX(dpy, npipes) + return GLXHyperpipeNetworkSGIXPointer + param dpy Display out reference + param npipes int out reference + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx 65550 + +HyperpipeConfigSGIX(dpy, networkId, npipes, cfg, hpId) + return int + param dpy Display out reference + param networkId int in value + param npipes int in value + param cfg GLXHyperpipeConfigSGIX out array [COMPSIZE(npipes)] + param hpId int out reference + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx 65552 + +QueryHyperpipeConfigSGIX(dpy, hpId, npipes) + return GLXHyperpipeConfigSGIXPointer + param dpy Display out reference + param hpId int in value + param npipes int out reference + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx 65551 + +DestroyHyperpipeConfigSGIX(dpy, hpId) + return int + param dpy Display out reference + param hpId int in value + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx 65553 + +BindHyperpipeSGIX(dpy, hpId) + return int + param dpy Display out reference + param hpId int in value + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx ??? + +QueryHyperpipeBestAttribSGIX(dpy, timeSlice, attrib, size, attribList, returnAttribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param attribList void out array [COMPSIZE(size)] + param returnAttribList void out array [COMPSIZE(size)] + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx ??? + +HyperpipeAttribSGIX(dpy, timeSlice, attrib, size, attribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param attribList void out array [COMPSIZE(size)] + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx ??? + +QueryHyperpipeAttribSGIX(dpy, timeSlice, attrib, size, returnAttribList) + return int + param dpy Display out reference + param timeSlice int in value + param attrib int in value + param size int in value + param returnAttribList void out array [COMPSIZE(size)] + glxflags client-handcode server-handcode + category SGIX_hyperpipe + glxvendorglx ??? + +############################################################################### +# +# Extension #308 +# MESA_agp_offset commands +# +############################################################################### + +GetAGPOffsetMESA(pointer) + return uint + param pointer void in reference + glxflags client-handcode client-intercept server-handcode + category MESA_agp_offset + +############################################################################### +# +# Extension #328 +# EXT_fbconfig_packed_float commands +# +############################################################################### + +# (none) +newcategory: EXT_fbconfig_packed_float + +############################################################################### +# +# Extension #337 +# EXT_framebuffer_sRGB commands +# +############################################################################### + +# (none) +newcategory: EXT_framebuffer_sRGB + +############################################################################### +# +# Extension #344 +# EXT_texture_from_pixmap commands +# +############################################################################### + +BindTexImageEXT(dpy, drawable, buffer, attrib_list) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param buffer int in value + param attrib_list int in reference + category EXT_texture_from_pixmap + glxflags client-handcode server-handcode + glxvendorglx 1330 + +ReleaseTexImageEXT(dpy, drawable, buffer) + return void + param dpy Display out reference + param drawable GLXDrawable in value + param buffer int in value + category EXT_texture_from_pixmap + glxflags client-handcode server-handcode + glxvendorglx 1331 + +############################################################################### +# +# Extension #347 +# NV_present_video commands +# +############################################################################### + +EnumerateVideoDevicesNV(dpy, screen, nelements) + return uintPointer + param dpy Display out reference + param screen int in value + param nelements int out reference + category NV_present_video + glxflags client-handcode server-handcode + +BindVideoDeviceNV(dpy, video_slot, video_device, attrib_list) + return int + param dpy Display out reference + param video_slot uint in value + param video_device uint in value + param attrib_list int in reference + category NV_present_video + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #348 +# NV_video_output commands +# +############################################################################### + +GetVideoDeviceNV(dpy, screen, numVideoDevices, pVideoDevice) + return int + param dpy Display out reference + param screen int in value + param numVideoDevices int in value + param pVideoDevice GLXVideoDeviceNV out array [COMPSIZE(numVideoDevices)] + category NV_video_output + glxflags client-handcode server-handcode + +ReleaseVideoDeviceNV(dpy, screen, VideoDevice) + return int + param dpy Display out reference + param screen int in value + param VideoDevice GLXVideoDeviceNV in value + category NV_video_output + glxflags client-handcode server-handcode + +BindVideoImageNV(dpy, VideoDevice, pbuf, iVideoBuffer) + return int + param dpy Display out reference + param VideoDevice GLXVideoDeviceNV in value + param pbuf GLXPbuffer in value + param iVideoBuffer int in value + category NV_video_output + glxflags client-handcode server-handcode + +ReleaseVideoImageNV(dpy, pbuf) + return int + param dpy Display out reference + param pbuf GLXPbuffer in value + category NV_video_output + glxflags client-handcode server-handcode + +SendPbufferToVideoNV(dpy, pbuf, iBufferType, pulCounterPbuffer, bBlock) + return int + param dpy Display out reference + param pbuf GLXPbuffer in value + param iBufferType int in value + param pulCounterPbuffer ulong out reference + param bBlock GLboolean in value + category NV_video_output + glxflags client-handcode server-handcode + +GetVideoInfoNV(dpy, screen, VideoDevice, pulCounterOutputPbuffer, pulCounterOutputVideo) + return int + param dpy Display out reference + param screen int in value + param VideoDevice GLXVideoDeviceNV in value + param pulCounterOutputPbuffer ulong out reference + param pulCounterOutputVideo ulong out reference + category NV_video_output + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #350 +# NV_swap_group commands +# +############################################################################### + +JoinSwapGroupNV(dpy, drawable, group) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param group GLuint in value + category NV_swap_group + glxflags client-handcode server-handcode + +BindSwapBarrierNV(dpy, group, barrier) + return Bool + param dpy Display out reference + param group GLuint in value + param barrier GLuint in value + category NV_swap_group + glxflags client-handcode server-handcode + +QuerySwapGroupNV(dpy, drawable, group, barrier) + return Bool + param dpy Display out reference + param drawable GLXDrawable in value + param group GLuint out reference + param barrier GLuint out reference + category NV_swap_group + glxflags client-handcode server-handcode + +QueryMaxSwapGroupsNV(dpy, screen, maxGroups, maxBarriers) + return Bool + param dpy Display out reference + param screen int in value + param maxGroups GLuint out reference + param maxBarriers GLuint out reference + category NV_swap_group + glxflags client-handcode server-handcode + +QueryFrameCountNV(dpy, screen, count) + return Bool + param dpy Display out reference + param screen int in value + param count GLuint out reference + category NV_swap_group + glxflags client-handcode server-handcode + +ResetFrameCountNV(dpy, screen) + return Bool + param dpy Display out reference + param screen int in value + category NV_swap_group + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #374 +# NV_video_capture commands +# +############################################################################### + +BindVideoCaptureDeviceNV(dpy, video_capture_slot, device) + return int + param dpy Display out reference + param video_capture_slot uint in value + param device GLXVideoCaptureDeviceNV in value + category NV_video_capture + glxflags client-handcode server-handcode + +EnumerateVideoCaptureDevicesNV(dpy, screen, nelements) + return GLXVideoCaptureDeviceNVPointer + param dpy Display out reference + param screen int in value + param nelements int out reference + category NV_video_capture + glxflags client-handcode server-handcode + +LockVideoCaptureDeviceNV(dpy, device) + return void + param dpy Display out reference + param device GLXVideoCaptureDeviceNV in value + category NV_video_capture + glxflags client-handcode server-handcode + +QueryVideoCaptureDeviceNV(dpy, device, attribute, value) + return int + param dpy Display out reference + param device GLXVideoCaptureDeviceNV in value + param attribute int in value + param value int out array [COMPSIZE(attribute)] + category NV_video_capture + glxflags client-handcode server-handcode + +ReleaseVideoCaptureDeviceNV(dpy, device) + return void + param dpy Display out reference + param device GLXVideoCaptureDeviceNV in value + category NV_video_capture + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #375 +# EXT_swap_control commands +# +############################################################################### + +SwapIntervalEXT(dpy, drawable, interval) + return int + param dpy Display out reference + param drawable GLXDrawable in value + param interval int in value + category EXT_swap_control + glxflags client-handcode server-handcode + +############################################################################### +# +# Extension #376 +# GLX_NV_copy_image commands +# +############################################################################### + +CopyImageSubDataNV(dpy, srcCtx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstCtx, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth) + return void + param dpy Display out reference + param srcCtx GLXContext in value + param srcName GLuint in value + param srcTarget GLenum in value + param srcLevel GLint in value + param srcX GLint in value + param srcY GLint in value + param srcZ GLint in value + param dstCtx GLXContext in value + param dstName GLuint in value + param dstTarget GLenum in value + param dstLevel GLint in value + param dstX GLint in value + param dstY GLint in value + param dstZ GLint in value + param width GLsizei in value + param height GLsizei in value + param depth GLsizei in value + category NV_copy_image + glxflags client-handcode server-handcode + diff --git a/src/glx/glcontextmodes.c b/src/glx/glcontextmodes.c index eb9037907f..cdc16f8330 100644 --- a/src/glx/glcontextmodes.c +++ b/src/glx/glcontextmodes.c @@ -237,9 +237,11 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_LEVEL: *value_return = mode->level; return 0; +#ifndef GLX_USE_APPLEGL /* This isn't supported by CGL. */ case GLX_TRANSPARENT_TYPE_EXT: *value_return = mode->transparentPixel; return 0; +#endif case GLX_TRANSPARENT_RED_VALUE: *value_return = mode->transparentRed; return 0; @@ -285,6 +287,7 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_MAX_PBUFFER_PIXELS: *value_return = mode->maxPbufferPixels; return 0; +#ifndef GLX_USE_APPLEGL /* These aren't supported by CGL. */ case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: *value_return = mode->optimalPbufferWidth; return 0; @@ -294,6 +297,7 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_SWAP_METHOD_OML: *value_return = mode->swapMethod; return 0; +#endif case GLX_SAMPLE_BUFFERS_SGIS: *value_return = mode->sampleBuffers; return 0; diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 52e067165c..143cf87766 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -37,6 +37,12 @@ #include #include "glxextensions.h" +#ifdef GLX_USE_APPLEGL +#include +#include "apple_glx_drawable.h" +#include "glx_error.h" +#endif + #define WARN_ONCE_GLX_1_3(a, b) { \ static int warned=1; \ if(warned) { \ @@ -49,19 +55,19 @@ * Emit a warning when clients use GLX 1.3 functions on pre-1.3 systems. */ static void -warn_GLX_1_3(Display *dpy, const char *function_name) +warn_GLX_1_3(Display * dpy, const char *function_name) { __GLXdisplayPrivate *priv = __glXInitialize(dpy); if (priv->minorVersion < 3) { - fprintf(stderr, - "WARNING: Application calling GLX 1.3 function \"%s\" " - "when GLX 1.3 is not supported! This is an application bug!\n", - function_name); + fprintf(stderr, + "WARNING: Application calling GLX 1.3 function \"%s\" " + "when GLX 1.3 is not supported! This is an application bug!\n", + function_name); } } - +#ifndef GLX_USE_APPLEGL /** * Change a drawable's attribute. * @@ -552,7 +558,6 @@ CreatePbuffer(Display * dpy, const __GLcontextModes * fbconfig, return id; } - /** * Create a new pbuffer. */ @@ -566,6 +571,7 @@ glXCreateGLXPbufferSGIX(Display * dpy, GLXFBConfigSGIX config, attrib_list, GL_FALSE); } +#endif /* GLX_USE_APPLEGL */ /** * Create a new pbuffer. @@ -574,12 +580,57 @@ PUBLIC GLXPbuffer glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) { int i, width, height; +#ifdef GLX_USE_APPLEGL + GLXPbuffer result; + int errorcode; +#endif width = 0; height = 0; WARN_ONCE_GLX_1_3(dpy, __func__); +#ifdef GLX_USE_APPLEGL + for (i = 0; attrib_list[i]; ++i) { + switch (attrib_list[i]) { + case GLX_PBUFFER_WIDTH: + width = attrib_list[i + 1]; + ++i; + break; + + case GLX_PBUFFER_HEIGHT: + height = attrib_list[i + 1]; + ++i; + break; + + case GLX_LARGEST_PBUFFER: + /* This is a hint we should probably handle, but how? */ + ++i; + break; + + case GLX_PRESERVED_CONTENTS: + /* The contents are always preserved with AppleSGLX with CGL. */ + ++i; + break; + + default: + return None; + } + } + + if (apple_glx_pbuffer_create(dpy, config, width, height, &errorcode, + &result)) { + /* + * apple_glx_pbuffer_create only sets the errorcode to core X11 + * errors. + */ + __glXSendError(dpy, errorcode, 0, X_GLXCreatePbuffer, true); + + return None; + } + + return result; +#else for (i = 0; attrib_list[i * 2]; i++) { switch (attrib_list[i * 2]) { case GLX_PBUFFER_WIDTH: @@ -593,6 +644,7 @@ glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) return (GLXPbuffer) CreatePbuffer(dpy, (__GLcontextModes *) config, width, height, attrib_list, GL_TRUE); +#endif } @@ -602,7 +654,13 @@ glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) PUBLIC void glXDestroyPbuffer(Display * dpy, GLXPbuffer pbuf) { +#ifdef GLX_USE_APPLEGL + if (apple_glx_pbuffer_destroy(dpy, pbuf)) { + __glXSendError(dpy, GLXBadPbuffer, pbuf, X_GLXDestroyPbuffer, false); + } +#else DestroyPbuffer(dpy, pbuf); +#endif } @@ -614,10 +672,47 @@ glXQueryDrawable(Display * dpy, GLXDrawable drawable, int attribute, unsigned int *value) { WARN_ONCE_GLX_1_3(dpy, __func__); +#ifdef GLX_USE_APPLEGL + Window root; + int x, y; + unsigned int width, height, bd, depth; + + if (apple_glx_pixmap_query(drawable, attribute, value)) + return; /*done */ + + if (apple_glx_pbuffer_query(drawable, attribute, value)) + return; /*done */ + + /* + * The OpenGL spec states that we should report GLXBadDrawable if + * the drawable is invalid, however doing so would require that we + * use XSetErrorHandler(), which is known to not be thread safe. + * If we use a round-trip call to validate the drawable, there could + * be a race, so instead we just opt in favor of letting the + * XGetGeometry request fail with a GetGeometry request X error + * rather than GLXBadDrawable, in what is hoped to be a rare + * case of an invalid drawable. In practice most and possibly all + * X11 apps using GLX shouldn't notice a difference. + */ + if (XGetGeometry + (dpy, drawable, &root, &x, &y, &width, &height, &bd, &depth)) { + switch (attribute) { + case GLX_WIDTH: + *value = width; + break; + + case GLX_HEIGHT: + *value = height; + break; + } + } +#else GetDrawableAttribute(dpy, drawable, attribute, value); +#endif } +#ifndef GLX_USE_APPLEGL /** * Query an attribute of a pbuffer. */ @@ -627,7 +722,7 @@ glXQueryGLXPbufferSGIX(Display * dpy, GLXPbufferSGIX drawable, { return GetDrawableAttribute(dpy, drawable, attribute, value); } - +#endif /** * Select the event mask for a drawable. @@ -635,12 +730,30 @@ glXQueryGLXPbufferSGIX(Display * dpy, GLXPbufferSGIX drawable, PUBLIC void glXSelectEvent(Display * dpy, GLXDrawable drawable, unsigned long mask) { +#ifdef GLX_USE_APPLEGL + XWindowAttributes xwattr; + + if (apple_glx_pbuffer_set_event_mask(drawable, mask)) + return; /*done */ + + /* + * The spec allows a window, but currently there are no valid + * events for a window, so do nothing. + */ + if (XGetWindowAttributes(dpy, drawable, &xwattr)) + return; /*done */ + /* The drawable seems to be invalid. Report an error. */ + + __glXSendError(dpy, GLXBadDrawable, drawable, + X_GLXChangeDrawableAttributes, false); +#else CARD32 attribs[2]; attribs[0] = (CARD32) GLX_EVENT_MASK; attribs[1] = (CARD32) mask; ChangeDrawableAttribute(dpy, drawable, attribs, 1); +#endif } @@ -650,6 +763,26 @@ glXSelectEvent(Display * dpy, GLXDrawable drawable, unsigned long mask) PUBLIC void glXGetSelectedEvent(Display * dpy, GLXDrawable drawable, unsigned long *mask) { +#ifdef GLX_USE_APPLEGL + XWindowAttributes xwattr; + + if (apple_glx_pbuffer_get_event_mask(drawable, mask)) + return; /*done */ + + /* + * The spec allows a window, but currently there are no valid + * events for a window, so do nothing, but set the mask to 0. + */ + if (XGetWindowAttributes(dpy, drawable, &xwattr)) { + /* The window is valid, so set the mask to 0. */ + *mask = 0; + return; /*done */ + } + /* The drawable seems to be invalid. Report an error. */ + + __glXSendError(dpy, GLXBadDrawable, drawable, X_GLXGetDrawableAttributes, + true); +#else unsigned int value; @@ -660,6 +793,7 @@ glXGetSelectedEvent(Display * dpy, GLXDrawable drawable, unsigned long *mask) GetDrawableAttribute(dpy, drawable, GLX_EVENT_MASK_SGIX, &value); *mask = value; +#endif } @@ -669,8 +803,17 @@ glXCreatePixmap(Display * dpy, GLXFBConfig config, Pixmap pixmap, { WARN_ONCE_GLX_1_3(dpy, __func__); +#ifdef GLX_USE_APPLEGL + const __GLcontextModes *modes = (const __GLcontextModes *) config; + + if (apple_glx_pixmap_create(dpy, modes->screen, pixmap, modes)) + return None; + + return pixmap; +#else return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) pixmap, attrib_list, X_GLXCreatePixmap); +#endif } @@ -679,9 +822,33 @@ glXCreateWindow(Display * dpy, GLXFBConfig config, Window win, const int *attrib_list) { WARN_ONCE_GLX_1_3(dpy, __func__); +#ifdef GLX_USE_APPLEGL + XWindowAttributes xwattr; + XVisualInfo *visinfo; + + (void) attrib_list; /*unused according to GLX 1.4 */ + + XGetWindowAttributes(dpy, win, &xwattr); + visinfo = glXGetVisualFromFBConfig(dpy, config); + + if (NULL == visinfo) { + __glXSendError(dpy, GLXBadFBConfig, 0, X_GLXCreateWindow, false); + return None; + } + + if (visinfo->visualid != XVisualIDFromVisual(xwattr.visual)) { + __glXSendError(dpy, BadMatch, 0, X_GLXCreateWindow, true); + return None; + } + + XFree(visinfo); + + return win; +#else return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) win, attrib_list, X_GLXCreateWindow); +#endif } @@ -689,8 +856,12 @@ PUBLIC void glXDestroyPixmap(Display * dpy, GLXPixmap pixmap) { WARN_ONCE_GLX_1_3(dpy, __func__); - +#ifdef GLX_USE_APPLEGL + if (apple_glx_pixmap_destroy(dpy, pixmap)) + __glXSendError(dpy, GLXBadPixmap, pixmap, X_GLXDestroyPixmap, false); +#else DestroyDrawable(dpy, (GLXDrawable) pixmap, X_GLXDestroyPixmap); +#endif } @@ -698,11 +869,12 @@ PUBLIC void glXDestroyWindow(Display * dpy, GLXWindow win) { WARN_ONCE_GLX_1_3(dpy, __func__); - +#ifndef GLX_USE_APPLEGL DestroyDrawable(dpy, (GLXDrawable) win, X_GLXDestroyWindow); +#endif } - +#ifndef GLX_USE_APPLEGL PUBLIC GLX_ALIAS_VOID(glXDestroyGLXPbufferSGIX, (Display * dpy, GLXPbufferSGIX pbuf), @@ -718,4 +890,4 @@ GLX_ALIAS_VOID(glXGetSelectedEventSGIX, (Display * dpy, GLXDrawable drawable, unsigned long *mask), (dpy, drawable, mask), glXGetSelectedEvent) - +#endif diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 8e5dc785dd..3519c20a7f 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -54,7 +54,9 @@ #include "GL/glxint.h" #include "GL/glxproto.h" #include "GL/internal/glcore.h" +#ifndef GLX_USE_APPLEGL #include "glapi/glapitable.h" +#endif #include "glxhash.h" #if defined( PTHREADS ) # include @@ -197,6 +199,10 @@ extern const char *glXGetDriverConfig(const char *driverName); #endif +#ifdef GLX_USE_APPLEGL +extern void DRI_glXUseXFont( Font font, int first, int count, int listbase ); +#endif + /************************************************************************/ #define __GL_CLIENT_ATTRIB_STACK_DEPTH 16 @@ -449,6 +455,11 @@ struct __GLXcontextRec unsigned long thread_id; char gl_extension_bits[__GL_EXT_BYTES]; + +#ifdef GLX_USE_APPLEGL + void *apple; + Bool do_destroy; +#endif }; #define __glXSetError(gc,code) \ @@ -627,12 +638,14 @@ struct __GLXdisplayPrivateRec extern GLubyte *__glXFlushRenderBuffer(__GLXcontext *, GLubyte *); +#ifndef GLX_USE_APPLEGL extern void __glXSendLargeChunk(__GLXcontext * gc, GLint requestNumber, GLint totalRequests, const GLvoid * data, GLint dataLen); extern void __glXSendLargeCommand(__GLXcontext *, const GLvoid *, GLint, const GLvoid *, GLint); +#endif /* Initialize the GLX extension for dpy */ extern __GLXdisplayPrivate *__glXInitialize(Display *); diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 8f809dc525..4e5243c1fc 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -34,11 +34,17 @@ */ #include "glxclient.h" +#ifdef GLX_USE_APPLEGL +#include "apple_glx_context.h" +#include "apple_glx.h" +#include "glx_error.h" +#else #include "glapi.h" +#endif #include "glxextensions.h" #include "glcontextmodes.h" -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include #include "xf86dri.h" @@ -344,6 +350,12 @@ AllocateGLXContext(Display * dpy) bufSize = __GLX_MAX_RENDER_CMD_SIZE; } gc->maxSmallRenderCommandSize = bufSize; + +#ifdef GLX_USE_APPLEGL + gc->apple = NULL; + gc->do_destroy = False; +#endif + return gc; } @@ -365,10 +377,15 @@ CreateContext(Display * dpy, int generic_id, unsigned code, int renderType, int screen) { GLXContext gc; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); #endif - +#ifdef GLX_USE_APPLEGL + const __GLcontextModes *mode; + int errorcode; + bool x11error; +#endif + if (dpy == NULL) return NULL; @@ -379,6 +396,7 @@ CreateContext(Display * dpy, int generic_id, if (!gc) return NULL; +#ifndef GLX_USE_APPLEGL #ifdef GLX_DIRECT_RENDERING if (allowDirect && psc->driScreen) { gc->driContext = psc->driScreen->createContext(psc, fbconfig, gc, @@ -455,9 +473,34 @@ CreateContext(Display * dpy, int generic_id, UnlockDisplay(dpy); SyncHandle(); +#endif gc->imported = GL_FALSE; +#ifdef GLX_USE_APPLEGL + mode = _gl_context_modes_find_fbconfig(psc->configs, + fbconfig->fbconfigID); + + if(NULL == mode) { + __glXSendError(dpy, BadValue, fbconfig->fbconfigID, X_GLXCreateContext, + true); + __glXFreeContext(gc); + return NULL; + } + + if(apple_glx_create_context(&gc->apple, dpy, screen, mode, + shareList ? shareList->apple : NULL, + &errorcode, &x11error)) { + __glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error); + __glXFreeContext(gc); + return NULL; + } + + gc->currentContextTag = -1; + gc->mode = mode; + gc->isDirect = allowDirect; +#else gc->renderType = renderType; +#endif return gc; } @@ -504,7 +547,9 @@ __glXFreeContext(__GLXcontext * gc) XFree((char *) gc->version); if (gc->extensions) XFree((char *) gc->extensions); +#ifndef GLX_USE_APPLEGL __glFreeAttributeState(gc); +#endif XFree((char *) gc->buf); Xfree((char *) gc->client_state_private); XFree((char *) gc); @@ -517,6 +562,7 @@ __glXFreeContext(__GLXcontext * gc) static void DestroyContext(Display * dpy, GLXContext gc) { +#ifndef GLX_USE_APPLEGL xGLXDestroyContextReq *req; GLXContextID xid; CARD8 opcode; @@ -552,17 +598,31 @@ DestroyContext(Display * dpy, GLXContext gc) #endif __glXFreeVertexArrayState(gc); +#else + __glXLock(); +#endif /* GLX_USE_APPLEGL */ if (gc->currentDpy) { +#ifdef GLX_USE_APPLEGL + /* + * Set the Bool that indicates that we should destroy this GLX context + * when the context is no longer current. + */ + gc->do_destroy = True; +#endif /* Have to free later cuz it's in use now */ __glXUnlock(); } else { /* Destroy the handle if not current to anybody */ __glXUnlock(); +#ifdef GLX_USE_APPLEGL + if(gc->apple) + apple_glx_destroy_context(&gc->apple, dpy); +#endif __glXFreeContext(gc); } - +#ifndef GLX_USE_APPLEGL if (!imported) { /* ** This dpy also created the server side part of the context. @@ -576,6 +636,7 @@ DestroyContext(Display * dpy, GLXContext gc) UnlockDisplay(dpy); SyncHandle(); } +#endif } PUBLIC void @@ -630,7 +691,9 @@ glXQueryExtension(Display * dpy, int *errorBase, int *eventBase) PUBLIC void glXWaitGL(void) { +#ifndef GLX_USE_APPLEGL xGLXWaitGLReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -639,7 +702,9 @@ glXWaitGL(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); - +#ifdef GLX_USE_APPLEGL + glFinish(); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; @@ -664,6 +729,7 @@ glXWaitGL(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } /* @@ -673,7 +739,9 @@ glXWaitGL(void) PUBLIC void glXWaitX(void) { +#ifndef GLX_USE_APPLEGL xGLXWaitXReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -683,6 +751,9 @@ glXWaitX(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); +#ifdef GLX_USE_APPLEGL + apple_glx_waitx(dpy, gc->apple); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; @@ -710,12 +781,15 @@ glXWaitX(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXUseXFont(Font font, int first, int count, int listBase) { +#ifndef GLX_USE_APPLEGL xGLXUseXFontReq *req; +#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -724,7 +798,9 @@ glXUseXFont(Font font, int first, int count, int listBase) /* Flush any pending commands out */ (void) __glXFlushRenderBuffer(gc, gc->pc); - +#ifdef GLX_USE_APPLEGL + DRI_glXUseXFont(font, first, count, listBase); +#else #ifdef GLX_DIRECT_RENDERING if (gc->driContext) { DRI_glXUseXFont(font, first, count, listBase); @@ -744,6 +820,7 @@ glXUseXFont(Font font, int first, int count, int listBase) req->listBase = listBase; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } /************************************************************************/ @@ -756,6 +833,17 @@ PUBLIC void glXCopyContext(Display * dpy, GLXContext source, GLXContext dest, unsigned long mask) { +#ifdef GLX_USE_APPLEGL + GLXContext gc = __glXGetCurrentContext(); + int errorcode; + bool x11error; + + if(apple_glx_copy_context(gc->apple, source->apple, dest->apple, + mask, &errorcode, &x11error)) { + __glXSendError(dpy, errorcode, 0, X_GLXCopyContext, x11error); + } + +#else xGLXCopyContextReq *req; GLXContext gc = __glXGetCurrentContext(); GLXContextTag tag; @@ -794,9 +882,11 @@ glXCopyContext(Display * dpy, GLXContext source, req->contextTag = tag; UnlockDisplay(dpy); SyncHandle(); +#endif /* GLX_USE_APPLEGL */ } +#ifndef GLX_USE_APPLEGL /** * Determine if a context uses direct rendering. * @@ -844,6 +934,7 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) return reply.isDirect; #endif /* USE_XCB */ } +#endif /* GLX_USE_APPLEGL */ /** * \todo @@ -854,6 +945,17 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) PUBLIC Bool glXIsDirect(Display * dpy, GLXContext gc) { +#ifdef GLX_USE_APPLEGL + /* + * This isn't an ideal test. + * glXIsDirect should probably search a list of contexts. + */ + if(NULL == gc) { + __glXSendError(dpy, GLXBadContext, 0, X_GLXIsDirect, false); + return False; + } + return gc->isDirect; +#else if (!gc) { return GL_FALSE; } @@ -861,11 +963,24 @@ glXIsDirect(Display * dpy, GLXContext gc) return GL_TRUE; } return __glXIsDirect(dpy, gc->xid); +#endif /* GLX_USE_APPLEGL */ } PUBLIC GLXPixmap glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) { +#ifdef GLX_USE_APPLEGL + int screen = vis->screen; + __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); + const __GLcontextModes *modes; + + modes = _gl_context_modes_find_visual(psc->visuals, vis->visualid); + + if(apple_glx_pixmap_create(dpy, vis->screen, pixmap, modes)) + return None; + + return pixmap; +#else xGLXCreateGLXPixmapReq *req; GLXPixmap xid; CARD8 opcode; @@ -915,6 +1030,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) #endif return xid; +#endif } /* @@ -923,6 +1039,10 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) PUBLIC void glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) { +#ifdef GLX_USE_APPLEGL + if(apple_glx_pixmap_destroy(dpy, glxpixmap)) + __glXSendError(dpy, GLXBadPixmap, glxpixmap, X_GLXDestroyPixmap, false); +#else xGLXDestroyGLXPixmapReq *req; CARD8 opcode; @@ -953,11 +1073,20 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) } } #endif +#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXSwapBuffers(Display * dpy, GLXDrawable drawable) { +#ifdef GLX_USE_APPLEGL + GLXContext gc = glXGetCurrentContext(); + if(gc && apple_glx_is_current_drawable(dpy, gc->apple, drawable)) { + apple_glx_swap_buffers(gc->apple); + } else { + __glXSendError(dpy, GLXBadCurrentWindow, 0, X_GLXSwapBuffers, false); + } +#else GLXContext gc; GLXContextTag tag; CARD8 opcode; @@ -1012,6 +1141,7 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) SyncHandle(); XFlush(dpy); #endif /* USE_XCB */ +#endif /* GLX_USE_APPLEGL */ } @@ -1436,6 +1566,12 @@ glXChooseVisual(Display * dpy, int screen, int *attribList) } } +#ifdef GLX_USE_APPLEGL + if(visualList && getenv("LIBGL_DUMP_VISUALID")) { + printf("visualid 0x%lx\n", visualList[0].visualid); + } +#endif + return visualList; } @@ -1569,6 +1705,7 @@ PUBLIC GLX_ALIAS(Display *, glXGetCurrentDisplayEXT, (void), (), glXGetCurrentDisplay) +#ifndef GLX_USE_APPLEGL /** * Used internally by libGL to send \c xGLXQueryContextinfoExtReq requests * to the X-server. @@ -1680,9 +1817,12 @@ static int __glXQueryContextInfo(Display * dpy, GLXContext ctx) return retval; } +#endif + PUBLIC int glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) { +#ifndef GLX_USE_APPLEGL int retVal; /* get the information from the server if we don't have it already */ @@ -1695,13 +1835,17 @@ glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) if (Success != retVal) return retVal; } +#endif + switch (attribute) { - case GLX_SHARE_CONTEXT_EXT: +#ifndef GLX_USE_APPLEGL + case GLX_SHARE_CONTEXT_EXT: *value = (int) (ctx->share_xid); break; case GLX_VISUAL_ID_EXT: *value = ctx->mode ? ctx->mode->visualID : None; break; +#endif case GLX_SCREEN: *value = (int) (ctx->screen); break; @@ -1730,6 +1874,9 @@ PUBLIC GLXContextID glXGetContextIDEXT(const GLXContext ctx) PUBLIC GLXContext glXImportContextEXT(Display * dpy, GLXContextID contextID) { +#ifdef GLX_USE_APPLEGL + return NULL; +#else GLXContext ctx; if (contextID == None) { @@ -1750,6 +1897,7 @@ glXImportContextEXT(Display * dpy, GLXContextID contextID) } } return ctx; +#endif } PUBLIC void @@ -1877,7 +2025,7 @@ glXGetVisualFromFBConfig(Display * dpy, GLXFBConfig config) return XGetVisualInfo(dpy, VisualIDMask, &visualTemplate, &count); } - +#ifndef GLX_USE_APPLEGL /* ** GLX_SGI_swap_control */ @@ -2215,6 +2363,7 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) return GLX_BAD_CONTEXT; } +#endif /* GLX_USE_APPLEGL */ /* ** GLX_SGIX_fbconfig @@ -2241,17 +2390,24 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap) { +#ifndef GLX_USE_APPLEGL xGLXVendorPrivateWithReplyReq *vpreq; xGLXCreateGLXPixmapWithConfigSGIXReq *req; GLXPixmap xid = None; CARD8 opcode; - const __GLcontextModes *const fbconfig = (__GLcontextModes *) config; __GLXscreenConfigs *psc; +#endif + const __GLcontextModes *const fbconfig = (__GLcontextModes *) config; if ((dpy == NULL) || (config == NULL)) { return None; } +#ifdef GLX_USE_APPLEGL + if(apple_glx_pixmap_create(dpy, fbconfig->screen, pixmap, fbconfig)) + return None; + return pixmap; +#else psc = GetGLXScreenConfigs(dpy, fbconfig->screen); if ((psc != NULL) @@ -2279,6 +2435,7 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, } return xid; +#endif } PUBLIC GLXContext @@ -2324,7 +2481,7 @@ glXGetFBConfigFromVisualSGIX(Display * dpy, XVisualInfo * vis) return NULL; } - +#ifndef GLX_USE_APPLEGL /* ** GLX_SGIX_swap_group */ @@ -2922,6 +3079,8 @@ __glXReleaseTexImageEXT(Display * dpy, GLXDrawable drawable, int buffer) /*@}*/ +#endif /* GLX_USE_APPLEGL */ + /** * \c strdup is actually not a standard ANSI C or POSIX routine. * Irix will not define it if ANSI mode is in effect. @@ -2999,6 +3158,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION(glXQueryDrawable), GLX_FUNCTION(glXSelectEvent), +#ifndef GLX_USE_APPLEGL /*** GLX_SGI_swap_control ***/ GLX_FUNCTION2(glXSwapIntervalSGI, __glXSwapIntervalSGI), @@ -3016,6 +3176,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetCurrentDisplayEXT, glXGetCurrentDisplay), GLX_FUNCTION(glXImportContextEXT), GLX_FUNCTION2(glXQueryContextInfoEXT, glXQueryContext), +#endif /*** GLX_SGIX_fbconfig ***/ GLX_FUNCTION2(glXGetFBConfigAttribSGIX, glXGetFBConfigAttrib), @@ -3025,6 +3186,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetVisualFromFBConfigSGIX, glXGetVisualFromFBConfig), GLX_FUNCTION(glXGetFBConfigFromVisualSGIX), +#ifndef GLX_USE_APPLEGL /*** GLX_SGIX_pbuffer ***/ GLX_FUNCTION(glXCreateGLXPbufferSGIX), GLX_FUNCTION(glXDestroyGLXPbufferSGIX), @@ -3062,6 +3224,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXEndFrameTrackingMESA, __glXEndFrameTrackingMESA), GLX_FUNCTION2(glXGetFrameUsageMESA, __glXGetFrameUsageMESA), GLX_FUNCTION2(glXQueryFrameTrackingMESA, __glXQueryFrameTrackingMESA), +#endif /*** GLX_ARB_get_proc_address ***/ GLX_FUNCTION(glXGetProcAddressARB), @@ -3069,6 +3232,7 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX 1.4 ***/ GLX_FUNCTION2(glXGetProcAddress, glXGetProcAddressARB), +#ifndef GLX_USE_APPLEGL /*** GLX_OML_sync_control ***/ GLX_FUNCTION2(glXWaitForSbcOML, __glXWaitForSbcOML), GLX_FUNCTION2(glXWaitForMscOML, __glXWaitForMscOML), @@ -3079,6 +3243,7 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX_EXT_texture_from_pixmap ***/ GLX_FUNCTION2(glXBindTexImageEXT, __glXBindTexImageEXT), GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), +#endif #ifdef GLX_DIRECT_RENDERING /*** DRI configuration ***/ @@ -3089,7 +3254,7 @@ static const struct name_address_pair GLX_functions[] = { {NULL, NULL} /* end of list */ }; - +#ifndef GLX_USE_APPLEGL static const GLvoid * get_glx_proc_address(const char *funcName) { @@ -3103,7 +3268,7 @@ get_glx_proc_address(const char *funcName) return NULL; } - +#endif /** * Get the address of a named GL function. This is the pre-GLX 1.4 name for @@ -3126,13 +3291,15 @@ PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void) * DRI based drivers from searching the core GL function table for * internal API functions. */ - +#ifdef GLX_USE_APPLEGL + f = (gl_function) apple_glx_get_proc_address(procName); +#else f = (gl_function) get_glx_proc_address((const char *) procName); if ((f == NULL) && (procName[0] == 'g') && (procName[1] == 'l') && (procName[2] != 'X')) { f = (gl_function) _glapi_get_proc_address((const char *) procName); } - +#endif return f; } diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c index c28360bdde..115fab4012 100644 --- a/src/glx/glxcurrent.c +++ b/src/glx/glxcurrent.c @@ -33,9 +33,20 @@ * Client-side GLX interface for current context management. */ +#ifdef PTHREADS +#include +#endif + #include "glxclient.h" +#ifdef GLX_USE_APPLEGL +#include + +#include "apple_glx.h" +#include "apple_glx_context.h" +#else #include "glapi.h" #include "indirect_init.h" +#endif /* ** We setup some dummy structures here so that the API can be used @@ -59,11 +70,12 @@ static __GLXcontext dummyContext = { }; +#ifndef GLX_USE_APPLEGL /* ** All indirect rendering contexts will share the same indirect dispatch table. */ static __GLapi *IndirectAPI = NULL; - +#endif /* * Current context management and locking @@ -156,10 +168,12 @@ _X_HIDDEN void __glXSetCurrentContextNull(void) { __glXSetCurrentContext(&dummyContext); +#ifndef GLX_USE_APPLEGL #ifdef GLX_DIRECT_RENDERING _glapi_set_dispatch(NULL); /* no-op functions */ _glapi_set_context(NULL); #endif +#endif } @@ -186,6 +200,7 @@ glXGetCurrentDrawable(void) } +#ifndef GLX_USE_APPLEGL /************************************************************************/ /** @@ -313,6 +328,8 @@ __glXGenerateError(Display * dpy, GLXContext gc, XID resource, _XError(dpy, &error); } +#endif /* GLX_USE_APPLEGL */ + /** * Make a particular context current. * @@ -322,8 +339,17 @@ static Bool MakeContextCurrent(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext gc) { - xGLXMakeCurrentReply reply; const GLXContext oldGC = __glXGetCurrentContext(); +#ifdef GLX_USE_APPLEGL + bool error = apple_glx_make_current_context(dpy, + (oldGC && oldGC != &dummyContext) ? oldGC->apple : NULL, + gc ? gc->apple : NULL, draw); + + apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO"); + if(error) + return GL_FALSE; +#else + xGLXMakeCurrentReply reply; const CARD8 opcode = __glXSetupForCommand(dpy); const CARD8 oldOpcode = ((gc == oldGC) || (oldGC == &dummyContext)) ? opcode : __glXSetupForCommand(oldGC->currentDpy); @@ -419,6 +445,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, } #endif +#endif /* GLX_USE_APPLEGL */ /* Update our notion of what is current */ __glXLock(); @@ -428,8 +455,10 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, * cannot be NULL, therefore if they are the same, gc is not * NULL and not the dummy. */ - gc->currentDrawable = draw; - gc->currentReadable = read; + if(gc) { + gc->currentDrawable = draw; + gc->currentReadable = read; + } } else { if (oldGC != &dummyContext) { @@ -439,7 +468,18 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, oldGC->currentReadable = None; oldGC->currentContextTag = 0; oldGC->thread_id = 0; - +#ifdef GLX_USE_APPLEGL + + /* + * At this point we should check if the context has been + * through glXDestroyContext, and redestroy it if so. + */ + if(oldGC->do_destroy) { + __glXUnlock(); + /* glXDestroyContext uses the same global lock. */ + glXDestroyContext(dpy, oldGC); + __glXLock(); +#else if (oldGC->xid == None) { /* We are switching away from a context that was * previously destroyed, so we need to free the memory @@ -455,6 +495,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, } #endif __glXFreeContext(oldGC); +#endif /* GLX_USE_APPLEGL */ } } if (gc) { @@ -463,6 +504,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, gc->currentDpy = dpy; gc->currentDrawable = draw; gc->currentReadable = read; +#ifndef GLX_USE_APPLEGL gc->thread_id = _glthread_GetID(); #ifdef GLX_DIRECT_RENDERING @@ -486,6 +528,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, gc->currentContextTag = -1; } #endif +#endif /* GLX_USE_APPLEGL */ } else { __glXSetCurrentContextNull(); diff --git a/src/glx/glxext.c b/src/glx/glxext.c index b5657baf2e..42635ebaa9 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -42,6 +42,10 @@ #include #include #include +#ifdef GLX_USE_APPLEGL +#include "apple_glx.h" +#include "apple_visual.h" +#endif #include "glxextensions.h" #include "glcontextmodes.h" @@ -65,7 +69,12 @@ _X_HIDDEN int __glXDebug = 0; /* Extension required boiler plate */ static char *__glXExtensionName = GLX_EXTENSION_NAME; +#ifdef GLX_USE_APPLEGL +static XExtensionInfo __glXExtensionInfo_data; +XExtensionInfo *__glXExtensionInfo = &__glXExtensionInfo_data; +#else XExtensionInfo *__glXExtensionInfo = NULL; +#endif static /* const */ char *error_list[] = { "GLXBadContext", @@ -98,6 +107,11 @@ __glXCloseDisplay(Display * dpy, XExtCodes * codes) } +#ifdef GLX_USE_APPLEGL +static char *__glXErrorString(Display *dpy, int code, XExtCodes *codes, + char *buf, int n); +#endif + static XEXT_GENERATE_ERROR_STRING(__glXErrorString, __glXExtensionName, __GLX_NUMBER_ERRORS, error_list) @@ -358,7 +372,20 @@ QueryVersion(Display * dpy, int opcode, int *major, int *minor) #endif /* USE_XCB */ } +/* + * We don't want to enable this GLX_OML_swap_method in glxext.h, + * because we can't support it. The X server writes it out though, + * so we should handle it somehow, to avoid false warnings. + */ +enum { + IGNORE_GLX_SWAP_METHOD_OML = 0x8060 +}; + +/* + * getVisualConfigs uses the !tagged_only path. + * getFBConfigs uses the tagged_only path. + */ _X_HIDDEN void __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, const INT32 * bp, Bool tagged_only, @@ -392,7 +419,14 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, config->numAuxBuffers = *bp++; config->level = *bp++; +#ifdef GLX_USE_APPLEGL + /* AppleSGLX supports pixmap and pbuffers with all config. */ + config->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; + /* Unfortunately this can create an ABI compatibility problem. */ + count -= 18; +#else count -= __GLX_MIN_CONFIG_PROPS; +#endif } /* @@ -405,7 +439,9 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, config-> tag = ( fbconfig_style_tags ) ? *bp++ : 1 for (i = 0; i < count; i += 2) { - switch (*bp++) { + long int tag = *bp++; + + switch (tag) { case GLX_RGBA: FETCH_OR_SET(rgbMode); break; @@ -483,6 +519,10 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, break; case GLX_DRAWABLE_TYPE: config->drawableType = *bp++; +#ifdef GLX_USE_APPLEGL + /* AppleSGLX supports pixmap and pbuffers with all config. */ + config->drawableType |= GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; +#endif break; case GLX_RENDER_TYPE: config->renderType = *bp++; @@ -502,6 +542,7 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_MAX_PBUFFER_PIXELS: config->maxPbufferPixels = *bp++; break; +#ifndef GLX_USE_APPLEGL case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: config->optimalPbufferWidth = *bp++; break; @@ -514,12 +555,19 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_SWAP_METHOD_OML: config->swapMethod = *bp++; break; +#endif case GLX_SAMPLE_BUFFERS_SGIS: config->sampleBuffers = *bp++; break; case GLX_SAMPLES_SGIS: config->samples = *bp++; break; +#ifdef GLX_USE_APPLEGL + case IGNORE_GLX_SWAP_METHOD_OML: + /* We ignore this tag. See the comment above this function. */ + ++bp; + break; +#else case GLX_BIND_TO_TEXTURE_RGB_EXT: config->bindToTextureRgb = *bp++; break; @@ -535,11 +583,17 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_Y_INVERTED_EXT: config->yInverted = *bp++; break; +#endif case None: i = count; break; default: - break; + if(getenv("LIBGL_DIAGNOSTIC")) { + long int tagvalue = *bp++; + fprintf(stderr, "WARNING: unknown GLX tag from server: " + "tag 0x%lx value 0x%lx\n", tag, tagvalue); + } + break; } } @@ -587,9 +641,18 @@ createConfigsFromProperties(Display * dpy, int nvisuals, int nprops, m = modes; for (i = 0; i < nvisuals; i++) { _XRead(dpy, (char *) props, prop_size); - /* Older X servers don't send this so we default it here. */ +#ifdef GLX_USE_APPLEGL + /* Older X servers don't send this so we default it here. */ m->drawableType = GLX_WINDOW_BIT; - __glXInitializeVisualConfigFromTags(m, nprops, props, +#else + /* + * The XQuartz 2.3.2.1 X server doesn't set this properly, so + * set the proper bits here. + * AppleSGLX supports windows, pixmaps, and pbuffers with all config. + */ + m->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; +#endif + __glXInitializeVisualConfigFromTags(m, nprops, props, tagged_only, GL_TRUE); m->screen = screen; m = m->next; @@ -823,8 +886,11 @@ __glXInitialize(Display * dpy) if (glx_direct) dpyPriv->driswDisplay = driswCreateDisplay(dpy); #endif - +#ifdef GLX_USE_APPLEGL + if (apple_init_glx(dpy) || !AllocAndFetchScreenConfigs(dpy, dpyPriv)) { +#else if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) { +#endif __glXUnlock(); Xfree((char *) dpyPriv); Xfree((char *) private); diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c index 56c69cbfcb..e58c296b30 100644 --- a/src/glx/glxextensions.c +++ b/src/glx/glxextensions.c @@ -75,34 +75,72 @@ static const struct extension_info known_glx_extensions[] = { { GLX(ARB_multisample), VER(1,4), Y, Y, N, N }, { GLX(ARB_render_texture), VER(0,0), N, N, N, N }, { GLX(ATI_pixel_format_float), VER(0,0), N, N, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(EXT_import_context), VER(0,0), N, N, N, N }, + { GLX(EXT_visual_info), VER(0,0), N, N, N, N }, +#else { GLX(EXT_import_context), VER(0,0), Y, Y, N, N }, { GLX(EXT_visual_info), VER(0,0), Y, Y, N, N }, +#endif { GLX(EXT_visual_rating), VER(0,0), Y, Y, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(MESA_agp_offset), VER(0,0), N, N, N, N }, /* Deprecated */ + { GLX(MESA_allocate_memory), VER(0,0), N, N, N, N }, + { GLX(MESA_copy_sub_buffer), VER(0,0), N, N, N, N }, +#else { GLX(MESA_agp_offset), VER(0,0), N, N, N, Y }, /* Deprecated */ { GLX(MESA_allocate_memory), VER(0,0), Y, N, N, Y }, { GLX(MESA_copy_sub_buffer), VER(0,0), Y, N, N, N }, +#endif { GLX(MESA_pixmap_colormap), VER(0,0), N, N, N, N }, /* Deprecated */ { GLX(MESA_release_buffers), VER(0,0), N, N, N, N }, /* Deprecated */ +#ifdef GLX_USE_APPLEGL + { GLX(MESA_swap_control), VER(0,0), N, N, N, N }, + { GLX(MESA_swap_frame_usage), VER(0,0), N, N, N, N }, +#else { GLX(MESA_swap_control), VER(0,0), Y, N, N, Y }, { GLX(MESA_swap_frame_usage), VER(0,0), Y, N, N, Y }, +#endif { GLX(NV_float_buffer), VER(0,0), N, N, N, N }, { GLX(NV_render_depth_texture), VER(0,0), N, N, N, N }, { GLX(NV_render_texture_rectangle), VER(0,0), N, N, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(NV_vertex_array_range), VER(0,0), N, N, N, N }, /* Deprecated */ + { GLX(OML_swap_method), VER(0,0), N, N, N, N }, + { GLX(OML_sync_control), VER(0,0), N, N, N, N }, + { GLX(SGI_make_current_read), VER(1,3), N, N, N, N }, + { GLX(SGI_swap_control), VER(0,0), N, N, N, N }, + { GLX(SGI_video_sync), VER(0,0), N, N, N, N }, +#else { GLX(NV_vertex_array_range), VER(0,0), N, N, N, Y }, /* Deprecated */ { GLX(OML_swap_method), VER(0,0), Y, Y, N, N }, { GLX(OML_sync_control), VER(0,0), Y, N, N, Y }, { GLX(SGI_make_current_read), VER(1,3), Y, N, N, N }, { GLX(SGI_swap_control), VER(0,0), Y, N, N, N }, { GLX(SGI_video_sync), VER(0,0), Y, N, N, Y }, +#endif { GLX(SGIS_blended_overlay), VER(0,0), N, N, N, N }, { GLX(SGIS_color_range), VER(0,0), N, N, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(SGIS_multisample), VER(0,0), N, N, N, N }, +#else { GLX(SGIS_multisample), VER(0,0), Y, Y, N, N }, +#endif { GLX(SGIX_fbconfig), VER(1,3), Y, Y, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(SGIX_pbuffer), VER(1,3), N, N, N, N }, +#else { GLX(SGIX_pbuffer), VER(1,3), Y, Y, N, N }, +#endif { GLX(SGIX_swap_barrier), VER(0,0), N, N, N, N }, { GLX(SGIX_swap_group), VER(0,0), N, N, N, N }, +#ifdef GLX_USE_APPLEGL + { GLX(SGIX_visual_select_group), VER(0,0), N, N, N, N }, + { GLX(EXT_texture_from_pixmap), VER(0,0), N, N, N, N }, +#else { GLX(SGIX_visual_select_group), VER(0,0), Y, Y, N, N }, { GLX(EXT_texture_from_pixmap), VER(0,0), Y, N, N, N }, +#endif { GLX(INTEL_swap_event), VER(1,4), Y, Y, N, N }, { NULL } }; diff --git a/src/glx/indirect_size.c b/src/glx/indirect_size.c index 0c136d26cd..411a0e42c5 100644 --- a/src/glx/indirect_size.c +++ b/src/glx/indirect_size.c @@ -48,7 +48,7 @@ # endif -#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__APPLE__) +#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL) # undef HAVE_ALIAS #endif #ifdef HAVE_ALIAS diff --git a/src/glx/xfont.c b/src/glx/xfont.c index 797fd7a490..6b55a6085b 100644 --- a/src/glx/xfont.c +++ b/src/glx/xfont.c @@ -33,7 +33,7 @@ called by that routine when direct rendering is enabled. */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) #include "glxclient.h" -- cgit v1.2.3 From 9495e3703062d1ddaf3161f4efc23f0b51284d9b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 24 Dec 2009 09:51:17 -0800 Subject: apple: Remove duplicate headers that already exist in mesa. Signed-off-by: Jeremy Huddleston --- src/glx/apple/include/GL/gl.hMESA | 2285 -------- src/glx/apple/include/GL/glext.h | 8459 ---------------------------- src/glx/apple/include/GL/glext.hMESA | 7649 ------------------------- src/glx/apple/include/GL/glx.h | 519 -- src/glx/apple/include/GL/glxext.h | 933 --- src/glx/apple/include/GL/internal/glcore.h | 189 - src/glx/apple/include/simple_list.h | 197 - 7 files changed, 20231 deletions(-) delete mode 100644 src/glx/apple/include/GL/gl.hMESA delete mode 100644 src/glx/apple/include/GL/glext.h delete mode 100644 src/glx/apple/include/GL/glext.hMESA delete mode 100644 src/glx/apple/include/GL/glx.h delete mode 100644 src/glx/apple/include/GL/glxext.h delete mode 100644 src/glx/apple/include/GL/internal/glcore.h delete mode 100644 src/glx/apple/include/simple_list.h diff --git a/src/glx/apple/include/GL/gl.hMESA b/src/glx/apple/include/GL/gl.hMESA deleted file mode 100644 index 3891a71875..0000000000 --- a/src/glx/apple/include/GL/gl.hMESA +++ /dev/null @@ -1,2285 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5.1 - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef __gl_h_ -#define __gl_h_ - -#if defined(USE_MGL_NAMESPACE) -#include "gl_mangle.h" -#endif - - -/********************************************************************** - * Begin system-specific stuff. Do not do any of this when building - * for SciTech SNAP, as this is all done before this header file is - * included. - */ -#if !defined(__SCITECH_SNAP__) - -#if defined(__BEOS__) -#include /* to get some BeOS-isms */ -#endif - -#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) -#define OPENSTEP -#endif - -#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) -#define __WIN32__ -#endif - -#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define GLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define GLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -# endif /* _STATIC_MESA support */ -# define GLAPIENTRY __stdcall -#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ -# define GLAPI extern -# define GLAPIENTRY __stdcall -#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 -# define GLAPI __attribute__((visibility("default"))) -# define GLAPIENTRY -#endif /* WIN32 && !CYGWIN */ - -#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) -# define PRAGMA_EXPORT_SUPPORTED 1 -#endif - -/* - * WINDOWS: Include windows.h here to define APIENTRY. - * It is also useful when applications include this file by - * including only glut.h, since glut.h depends on windows.h. - * Applications needing to include windows.h with parms other - * than "WIN32_LEAN_AND_MEAN" may include windows.h before - * glut.h or gl.h. - */ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \ - && !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__) -#include -#endif - -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import on -#endif - -#ifndef GLAPI -#define GLAPI extern -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef APIENTRY -#define APIENTRY GLAPIENTRY -#endif - -/* "P" suffix to be used for a pointer to a function */ -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#ifdef CENTERLINE_CLPP -#define signed -#endif - -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export on -#endif - -#endif /* !__SCITECH_SNAP__ */ -/* - * End system-specific stuff. - **********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_ARB_imaging 1 - - -/* - * Datatypes - */ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef signed char GLbyte; /* 1-byte signed */ -typedef short GLshort; /* 2-byte signed */ -typedef int GLint; /* 4-byte signed */ -typedef unsigned char GLubyte; /* 1-byte unsigned */ -typedef unsigned short GLushort; /* 2-byte unsigned */ -typedef unsigned int GLuint; /* 4-byte unsigned */ -typedef int GLsizei; /* 4-byte signed */ -typedef float GLfloat; /* single precision float */ -typedef float GLclampf; /* single precision float in [0,1] */ -typedef double GLdouble; /* double precision float */ -typedef double GLclampd; /* double precision float in [0,1] */ - - - -/* - * Constants - */ - -/* Boolean values */ -#define GL_FALSE 0x0 -#define GL_TRUE 0x1 - -/* Data types */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* Primitives */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* Vertex Arrays */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Matrix Mode */ -#define GL_MATRIX_MODE 0x0BA0 -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* Points */ -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_RANGE 0x0B12 - -/* Lines */ -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE 0x0B22 - -/* Polygons */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* Display Lists */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_LIST_MODE 0x0B30 - -/* Depth buffer */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_BITS 0x0D56 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_COMPONENT 0x1902 - -/* Lighting */ -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_SHININESS 0x1601 -#define GL_EMISSION 0x1600 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_SHADE_MODEL 0x0B54 -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_NORMALIZE 0x0BA1 - -/* User clipping planes */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* Accumulation buffer */ -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_ACCUM 0x0100 -#define GL_ADD 0x0104 -#define GL_LOAD 0x0101 -#define GL_MULT 0x0103 -#define GL_RETURN 0x0102 - -/* Alpha testing */ -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_ALPHA_TEST_FUNC 0x0BC1 - -/* Blending */ -#define GL_BLEND 0x0BE2 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND_DST 0x0BE0 -#define GL_ZERO 0x0 -#define GL_ONE 0x1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 - -/* Render Mode */ -#define GL_FEEDBACK 0x1C01 -#define GL_RENDER 0x1C00 -#define GL_SELECT 0x1C02 - -/* Feedback */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 - -/* Selection */ -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 - -/* Fog */ -#define GL_FOG 0x0B60 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_COLOR 0x0B66 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_LINEAR 0x2601 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* Logic Ops */ -#define GL_LOGIC_OP 0x0BF1 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_CLEAR 0x1500 -#define GL_SET 0x150F -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_NOOP 0x1505 -#define GL_INVERT 0x150A -#define GL_AND 0x1501 -#define GL_NAND 0x150E -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_XOR 0x1506 -#define GL_EQUIV 0x1509 -#define GL_AND_REVERSE 0x1502 -#define GL_AND_INVERTED 0x1504 -#define GL_OR_REVERSE 0x150B -#define GL_OR_INVERTED 0x150D - -/* Stencil */ -#define GL_STENCIL_BITS 0x0D57 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STENCIL_INDEX 0x1901 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 - -/* Buffers, Pixel Drawing/Reading */ -#define GL_NONE 0x0 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -/*GL_FRONT 0x0404 */ -/*GL_BACK 0x0405 */ -/*GL_FRONT_AND_BACK 0x0408 */ -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_COLOR_INDEX 0x1900 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_ALPHA_BITS 0x0D55 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_INDEX_BITS 0x0D51 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_READ_BUFFER 0x0C02 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_BITMAP 0x1A00 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_DITHER 0x0BD0 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 - -/* Implementation limits */ -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B - -/* Gets */ -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_MODE 0x0C30 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_RENDER_MODE 0x0C40 -#define GL_RGBA_MODE 0x0C31 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_VIEWPORT 0x0BA2 - -/* Evaluators */ -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* Hints */ -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* Scissor box */ -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 - -/* Pixel Mode / Transfer */ -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 - -/* Texture mapping */ -#define GL_TEXTURE_ENV 0x2300 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_LINEAR 0x2400 -#define GL_EYE_PLANE 0x2502 -#define GL_SPHERE_MAP 0x2402 -#define GL_DECAL 0x2101 -#define GL_MODULATE 0x2100 -#define GL_NEAREST 0x2600 -#define GL_REPEAT 0x2901 -#define GL_CLAMP 0x2900 -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 - -/* Utility */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* Errors */ -#define GL_NO_ERROR 0x0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* glPush/PopAttrib bits */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000FFFFF - - -/* OpenGL 1.1 */ -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF - - - -/* - * Miscellaneous - */ - -GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); - -GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glClear( GLbitfield mask ); - -GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); - -GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); - -GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); - -GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); - -GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); - -GLAPI void GLAPIENTRY glCullFace( GLenum mode ); - -GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); - -GLAPI void GLAPIENTRY glPointSize( GLfloat size ); - -GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); - -GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); - -GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); - -GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); - -GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); - -GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); - -GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); - -GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); - -GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); - -GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); - -GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); - -GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); - -GLAPI void GLAPIENTRY glEnable( GLenum cap ); - -GLAPI void GLAPIENTRY glDisable( GLenum cap ); - -GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); - - -GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ - -GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ - - -GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); - -GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); - -GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); - -GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); - -GLAPI void GLAPIENTRY glPopAttrib( void ); - - -GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ - -GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ - - -GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); - -GLAPI GLenum GLAPIENTRY glGetError( void ); - -GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); - -GLAPI void GLAPIENTRY glFinish( void ); - -GLAPI void GLAPIENTRY glFlush( void ); - -GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); - - -/* - * Depth Buffer - */ - -GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); - -GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); - -GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); - -GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); - - -/* - * Accumulation Buffer - */ - -GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); - -GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); - - -/* - * Transformation - */ - -GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); - -GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, - GLdouble bottom, GLdouble top, - GLdouble near_val, GLdouble far_val ); - -GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, - GLsizei width, GLsizei height ); - -GLAPI void GLAPIENTRY glPushMatrix( void ); - -GLAPI void GLAPIENTRY glPopMatrix( void ); - -GLAPI void GLAPIENTRY glLoadIdentity( void ); - -GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); -GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); - -GLAPI void GLAPIENTRY glRotated( GLdouble angle, - GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRotatef( GLfloat angle, - GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); - -GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); - - -/* - * Display Lists - */ - -GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); - -GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); - -GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); - -GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); - -GLAPI void GLAPIENTRY glEndList( void ); - -GLAPI void GLAPIENTRY glCallList( GLuint list ); - -GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, - const GLvoid *lists ); - -GLAPI void GLAPIENTRY glListBase( GLuint base ); - - -/* - * Drawing Functions - */ - -GLAPI void GLAPIENTRY glBegin( GLenum mode ); - -GLAPI void GLAPIENTRY glEnd( void ); - - -GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); -GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); -GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); -GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); -GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); -GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); - -GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); -GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glIndexd( GLdouble c ); -GLAPI void GLAPIENTRY glIndexf( GLfloat c ); -GLAPI void GLAPIENTRY glIndexi( GLint c ); -GLAPI void GLAPIENTRY glIndexs( GLshort c ); -GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); -GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); -GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); -GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); -GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ - -GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); -GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); -GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); -GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); -GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); -GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); -GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); -GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); - -GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, - GLbyte blue, GLbyte alpha ); -GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, - GLdouble blue, GLdouble alpha ); -GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, - GLfloat blue, GLfloat alpha ); -GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, - GLint blue, GLint alpha ); -GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, - GLshort blue, GLshort alpha ); -GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, - GLubyte blue, GLubyte alpha ); -GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, - GLuint blue, GLuint alpha ); -GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, - GLushort blue, GLushort alpha ); - - -GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); - -GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); -GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); -GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); -GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); -GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); -GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); - - -GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); -GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); -GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); -GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); - -GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); -GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); -GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); -GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); -GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); -GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); -GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); -GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); -GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); -GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); -GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); -GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); -GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); - -GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); -GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); -GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); -GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); - -GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); -GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); -GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); - -GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); - -GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); -GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); -GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); -GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); - - -GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); -GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); -GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); -GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); - - -GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); -GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); -GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); -GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); - - -/* - * Vertex Arrays (1.1) - */ - -GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, - const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, - GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); - -GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); - -GLAPI void GLAPIENTRY glArrayElement( GLint i ); - -GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); - -GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, - GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, - const GLvoid *pointer ); - -/* - * Lighting - */ - -GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); - -GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, - GLfloat *params ); -GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); -GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); - - -/* - * Raster functions - */ - -GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); - -GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, - const GLfloat *values ); -GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, - const GLuint *values ); -GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, - const GLushort *values ); - -GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); -GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); -GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); - -GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, - GLfloat xorig, GLfloat yorig, - GLfloat xmove, GLfloat ymove, - const GLubyte *bitmap ); - -GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - GLvoid *pixels ); - -GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, - GLsizei width, GLsizei height, - GLenum type ); - -/* - * Stenciling - */ - -GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); - -GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); - -GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); - -GLAPI void GLAPIENTRY glClearStencil( GLint s ); - - - -/* - * Texture mapping - */ - -GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); -GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); -GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); -GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); -GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); -GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); -GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, - GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, - GLenum pname, GLint *params ); - -GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, - GLenum pname, GLfloat *params ); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, - GLenum pname, GLint *params ); - - -GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, - GLenum format, GLenum type, - GLvoid *pixels ); - - -/* 1.1 functions */ - -GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); - -GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); - -GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); - -GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, - const GLuint *textures, - const GLclampf *priorities ); - -GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, - const GLuint *textures, - GLboolean *residences ); - -GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); - - -GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, - GLint xoffset, - GLsizei width, GLenum format, - GLenum type, const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLsizei width, GLsizei height, - GLenum format, GLenum type, - const GLvoid *pixels ); - - -GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, - GLenum internalformat, - GLint x, GLint y, - GLsizei width, GLsizei height, - GLint border ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, - GLint xoffset, GLint x, GLint y, - GLsizei width ); - - -GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint x, GLint y, - GLsizei width, GLsizei height ); - - -/* - * Evaluators - */ - -GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, - GLint stride, - GLint order, const GLdouble *points ); -GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, - GLint stride, - GLint order, const GLfloat *points ); - -GLAPI void GLAPIENTRY glMap2d( GLenum target, - GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, - GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, - const GLdouble *points ); -GLAPI void GLAPIENTRY glMap2f( GLenum target, - GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, - GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, - const GLfloat *points ); - -GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); -GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); -GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); - -GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); -GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); - -GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); -GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); - -GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); -GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); - -GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); -GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); - -GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, - GLint vn, GLdouble v1, GLdouble v2 ); -GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, - GLint vn, GLfloat v1, GLfloat v2 ); - -GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); - -GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); - -GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); - -GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); - - -/* - * Fog - */ - -GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); - -GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); - -GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); - -GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); - - -/* - * Selection and Feedback - */ - -GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); - -GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); - -GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); - -GLAPI void GLAPIENTRY glInitNames( void ); - -GLAPI void GLAPIENTRY glLoadName( GLuint name ); - -GLAPI void GLAPIENTRY glPushName( GLuint name ); - -GLAPI void GLAPIENTRY glPopName( void ); - - - -/* - * OpenGL 1.2 - */ - -#define GL_RESCALE_NORMAL 0x803A -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_TEXTURE_BINDING_3D 0x806A - -GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, - GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); - -GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, - GLint internalFormat, - GLsizei width, GLsizei height, - GLsizei depth, GLint border, - GLenum format, GLenum type, - const GLvoid *pixels ); - -GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLsizei width, - GLsizei height, GLsizei depth, - GLenum format, - GLenum type, const GLvoid *pixels); - -GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint zoffset, GLint x, - GLint y, GLsizei width, - GLsizei height ); - -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - - -/* - * GL_ARB_imaging - */ - -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_BLEND_EQUATION 0x8009 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_BLEND_COLOR 0x8005 - - -GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, - GLsizei width, GLenum format, - GLenum type, const GLvoid *table ); - -GLAPI void GLAPIENTRY glColorSubTable( GLenum target, - GLsizei start, GLsizei count, - GLenum format, GLenum type, - const GLvoid *data ); - -GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, - const GLint *params); - -GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, - const GLfloat *params); - -GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, - GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, - GLenum type, GLvoid *table ); - -GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); - -GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, - GLclampf blue, GLclampf alpha ); - -GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, - GLenum internalformat, GLboolean sink ); - -GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); - -GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, - GLenum format, GLenum type, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, - GLboolean sink ); - -GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); - -GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, - GLenum format, GLenum types, - GLvoid *values ); - -GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, - GLenum internalformat, GLsizei width, GLenum format, GLenum type, - const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *image ); - -GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, - GLfloat params ); - -GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, - const GLfloat *params ); - -GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, - GLint params ); - -GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, - const GLint *params ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width ); - -GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, - GLenum internalformat, GLint x, GLint y, GLsizei width, - GLsizei height); - -GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, - GLenum type, GLvoid *image ); - -GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, - GLfloat *params ); - -GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, - GLint *params ); - -GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, - GLenum internalformat, GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *row, const GLvoid *column ); - -GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, - GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); - -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); - - - -/* - * OpenGL 1.3 - */ - -/* multitexture */ -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -/* texture_cube_map */ -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -/* texture_compression */ -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -/* multisample */ -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -/* transpose_matrix */ -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -/* texture_env_combine */ -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -/* texture_env_dot3 */ -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -/* texture_border_clamp */ -#define GL_CLAMP_TO_BORDER 0x812D - -GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); - -GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); - -GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); - -GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); - -GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); - -GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); - -GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); - -GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); - -GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); - - -GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); - -GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); - -GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); - -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); - - -/* - * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) - */ -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 - -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 - -GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); -GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); -GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); -GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); -GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); -GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); -GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); -GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); -GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); -GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); - -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); - -#endif /* GL_ARB_multitexture */ - - - -/* - * Define this token if you want "old-style" header file behaviour (extensions - * defined in gl.h). Otherwise, extensions will be included from glext.h. - */ -#if defined(GL_GLEXT_LEGACY) - -/* All extensions that used to be here are now found in glext.h */ - -#else /* GL_GLEXT_LEGACY */ - -#include - -#endif /* GL_GLEXT_LEGACY */ - - - -#if GL_ARB_shader_objects - -#ifndef GL_MESA_shader_debug -#define GL_MESA_shader_debug 1 - -#define GL_DEBUG_OBJECT_MESA 0x8759 -#define GL_DEBUG_PRINT_MESA 0x875A -#define GL_DEBUG_ASSERT_MESA 0x875B - -GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); -GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); -GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, - GLsizei *length, GLcharARB *debugLog); -GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); - -#endif /* GL_MESA_shader_debug */ - -#endif /* GL_ARB_shader_objects */ - - -/* - * ???. GL_MESA_packed_depth_stencil - * XXX obsolete - */ -#ifndef GL_MESA_packed_depth_stencil -#define GL_MESA_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_MESA 0x8750 -#define GL_UNSIGNED_INT_24_8_MESA 0x8751 -#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 -#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 -#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -#endif /* GL_MESA_packed_depth_stencil */ - - -#ifndef GL_MESA_program_debug -#define GL_MESA_program_debug 1 - -#define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 -#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 -#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 -#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 -#define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 -#define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 -#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 -#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 - -typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); - -GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); - -GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); - -#endif /* GL_MESA_program_debug */ - - -#ifndef GL_MESA_texture_array -#define GL_MESA_texture_array 1 - -/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. - */ -#ifndef GL_EXT_texture_array - -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, - GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif /* GL_GLEXT_PROTOTYPES */ - -#if 0 -/* (temporarily) disabled because of collision with typedef in glext.h - * that happens if apps include both gl.h and glext.h - */ -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, - GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#endif - -#endif - - -#ifndef GL_ATI_blend_equation_separate -#define GL_ATI_blend_equation_separate 1 - -#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D - -GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); - -#endif /* GL_ATI_blend_equation_separate */ - - - -/** - ** NOTE!!!!! If you add new functions to this file, or update - ** glext.h be sure to regenerate the gl_mangle.h file. See comments - ** in that file for details. - **/ - - - -/********************************************************************** - * Begin system-specific stuff - */ -#if defined(PRAGMA_EXPORT_SUPPORTED) -#pragma export off -#endif - -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import off -#endif -/* - * End system-specific stuff - **********************************************************************/ - - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ diff --git a/src/glx/apple/include/GL/glext.h b/src/glx/apple/include/GL/glext.h deleted file mode 100644 index c0941aa804..0000000000 --- a/src/glx/apple/include/GL/glext.h +++ /dev/null @@ -1,8459 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated 2008/11/14 */ -/* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 44 - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#endif - -#ifndef GL_VERSION_2_0 -#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#endif - -#ifndef GL_VERSION_2_1 -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#endif - -#ifndef GL_VERSION_3_0 -#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB -#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 -#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 -#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 -#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 -#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 -#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 -#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -/* Reuse tokens from ARB_depth_buffer_float */ -/* reuse GL_DEPTH_COMPONENT32F */ -/* reuse GL_DEPTH32F_STENCIL8 */ -/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_DEFAULT */ -/* reuse GL_FRAMEBUFFER_UNDEFINED */ -/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ -/* reuse GL_INDEX */ -/* reuse GL_MAX_RENDERBUFFER_SIZE */ -/* reuse GL_DEPTH_STENCIL */ -/* reuse GL_UNSIGNED_INT_24_8 */ -/* reuse GL_DEPTH24_STENCIL8 */ -/* reuse GL_TEXTURE_STENCIL_SIZE */ -/* reuse GL_TEXTURE_RED_TYPE */ -/* reuse GL_TEXTURE_GREEN_TYPE */ -/* reuse GL_TEXTURE_BLUE_TYPE */ -/* reuse GL_TEXTURE_ALPHA_TYPE */ -/* reuse GL_TEXTURE_LUMINANCE_TYPE */ -/* reuse GL_TEXTURE_INTENSITY_TYPE */ -/* reuse GL_TEXTURE_DEPTH_TYPE */ -/* reuse GL_UNSIGNED_NORMALIZED */ -/* reuse GL_FRAMEBUFFER_BINDING */ -/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_BINDING */ -/* reuse GL_READ_FRAMEBUFFER */ -/* reuse GL_DRAW_FRAMEBUFFER */ -/* reuse GL_READ_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_SAMPLES */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* reuse GL_FRAMEBUFFER_COMPLETE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ -/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ -/* reuse GL_MAX_COLOR_ATTACHMENTS */ -/* reuse GL_COLOR_ATTACHMENT0 */ -/* reuse GL_COLOR_ATTACHMENT1 */ -/* reuse GL_COLOR_ATTACHMENT2 */ -/* reuse GL_COLOR_ATTACHMENT3 */ -/* reuse GL_COLOR_ATTACHMENT4 */ -/* reuse GL_COLOR_ATTACHMENT5 */ -/* reuse GL_COLOR_ATTACHMENT6 */ -/* reuse GL_COLOR_ATTACHMENT7 */ -/* reuse GL_COLOR_ATTACHMENT8 */ -/* reuse GL_COLOR_ATTACHMENT9 */ -/* reuse GL_COLOR_ATTACHMENT10 */ -/* reuse GL_COLOR_ATTACHMENT11 */ -/* reuse GL_COLOR_ATTACHMENT12 */ -/* reuse GL_COLOR_ATTACHMENT13 */ -/* reuse GL_COLOR_ATTACHMENT14 */ -/* reuse GL_COLOR_ATTACHMENT15 */ -/* reuse GL_DEPTH_ATTACHMENT */ -/* reuse GL_STENCIL_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER */ -/* reuse GL_RENDERBUFFER */ -/* reuse GL_RENDERBUFFER_WIDTH */ -/* reuse GL_RENDERBUFFER_HEIGHT */ -/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ -/* reuse GL_STENCIL_INDEX1 */ -/* reuse GL_STENCIL_INDEX4 */ -/* reuse GL_STENCIL_INDEX8 */ -/* reuse GL_STENCIL_INDEX16 */ -/* reuse GL_RENDERBUFFER_RED_SIZE */ -/* reuse GL_RENDERBUFFER_GREEN_SIZE */ -/* reuse GL_RENDERBUFFER_BLUE_SIZE */ -/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ -/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ -/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ -/* reuse GL_MAX_SAMPLES */ -/* Reuse tokens from ARB_framebuffer_sRGB */ -/* reuse GL_FRAMEBUFFER_SRGB */ -/* Reuse tokens from ARB_half_float_vertex */ -/* reuse GL_HALF_FLOAT */ -/* Reuse tokens from ARB_map_buffer_range */ -/* reuse GL_MAP_READ_BIT */ -/* reuse GL_MAP_WRITE_BIT */ -/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ -/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ -/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ -/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ -/* Reuse tokens from ARB_texture_compression_rgtc */ -/* reuse GL_COMPRESSED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_RG_RGTC2 */ -/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ -/* Reuse tokens from ARB_texture_rg */ -/* reuse GL_RG */ -/* reuse GL_RG_INTEGER */ -/* reuse GL_R8 */ -/* reuse GL_R16 */ -/* reuse GL_RG8 */ -/* reuse GL_RG16 */ -/* reuse GL_R16F */ -/* reuse GL_R32F */ -/* reuse GL_RG16F */ -/* reuse GL_RG32F */ -/* reuse GL_R8I */ -/* reuse GL_R8UI */ -/* reuse GL_R16I */ -/* reuse GL_R16UI */ -/* reuse GL_R32I */ -/* reuse GL_R32UI */ -/* reuse GL_RG8I */ -/* reuse GL_RG8UI */ -/* reuse GL_RG16I */ -/* reuse GL_RG16UI */ -/* reuse GL_RG32I */ -/* reuse GL_RG32UI */ -/* Reuse tokens from ARB_vertex_array_object */ -/* reuse GL_VERTEX_ARRAY_BINDING */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_ARB_texture_float -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#endif - -#ifndef GL_ARB_draw_instanced -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_INDEX 0x8222 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_HALF_FLOAT 0x140B -#endif - -#ifndef GL_ARB_instanced_arrays -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#endif - -#ifndef GL_ARB_texture_rg -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_OES_read_format -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#endif - -#ifndef GL_GREMEDY_string_marker -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif - -#ifndef GL_EXT_timer_query -#define GL_TIME_ELAPSED_EXT 0x88BF -#endif - -#ifndef GL_EXT_gpu_program_parameters -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ -/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ -/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ -/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -/* reuse GL_LINES_ADJACENCY_EXT */ -/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ -/* reuse GL_TRIANGLES_ADJACENCY_EXT */ -/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -/* reuse GL_PROGRAM_POINT_SIZE_EXT */ -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#endif - -#ifndef GL_EXT_draw_instanced -#endif - -#ifndef GL_EXT_packed_float -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif - -#ifndef GL_EXT_texture_array -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -#endif - -#ifndef GL_NV_fragment_program4 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif - -#ifndef GL_NV_geometry_shader4 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -#endif - -#ifndef GL_EXT_draw_buffers2 -#endif - -#ifndef GL_NV_transform_feedback -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -#endif - -#ifndef GL_EXT_texture_integer -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -#endif - -#ifndef GL_GREMEDY_frame_terminator -#endif - -#ifndef GL_NV_conditional_render -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -#endif - -#ifndef GL_NV_present_video -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -#endif - -#ifndef GL_EXT_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -#endif - - -/*************************************************************/ - -#include -#ifndef GL_VERSION_2_0 -/* GL type for program/shader text */ -typedef char GLchar; /* native character */ -#endif - -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for handling shader object handles and program/shader text */ -typedef char GLcharARB; /* native character */ -typedef unsigned int GLhandleARB; /* shader object handle */ -#endif - -/* GL types for "half" precision (s10e5) float data in host memory */ -#ifndef GL_ARB_half_float_pixel -typedef unsigned short GLhalfARB; -#endif - -#ifndef GL_NV_half_float -typedef unsigned short GLhalfNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include /* Fallback option */ -#endif -#endif - -#ifndef GL_EXT_timer_query -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); -GLAPI void APIENTRY glBlendEquation (GLenum); -GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogram (GLenum); -GLAPI void APIENTRY glResetMinmax (GLenum); -GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum); -GLAPI void APIENTRY glClientActiveTexture (GLenum); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glFogCoordf (GLfloat); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *); -GLAPI void APIENTRY glFogCoordd (GLdouble); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); -GLAPI void APIENTRY glPointParameteri (GLenum, GLint); -GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); -GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos2i (GLint, GLint); -GLAPI void APIENTRY glWindowPos2iv (const GLint *); -GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *); -GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3iv (const GLint *); -GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQuery (GLuint); -GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); -GLAPI void APIENTRY glEndQuery (GLenum); -GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); -GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint); -GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum); -GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *); -GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint); -GLAPI void APIENTRY glAttachShader (GLuint, GLuint); -GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *); -GLAPI void APIENTRY glCompileShader (GLuint); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum); -GLAPI void APIENTRY glDeleteProgram (GLuint); -GLAPI void APIENTRY glDeleteShader (GLuint); -GLAPI void APIENTRY glDetachShader (GLuint, GLuint); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint); -GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *); -GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *); -GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *); -GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgram (GLuint); -GLAPI GLboolean APIENTRY glIsShader (GLuint); -GLAPI void APIENTRY glLinkProgram (GLuint); -GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *); -GLAPI void APIENTRY glUseProgram (GLuint); -GLAPI void APIENTRY glUniform1f (GLint, GLfloat); -GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform1i (GLint, GLint); -GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint); -GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glValidateProgram (GLuint); -GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -/* OpenGL 3.0 also reuses entry points from these extensions: */ -/* ARB_framebuffer_object */ -/* ARB_map_buffer_range */ -/* ARB_vertex_array_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glGetBooleani_v (GLenum, GLuint, GLboolean *); -GLAPI void APIENTRY glGetIntegeri_v (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glEnablei (GLenum, GLuint); -GLAPI void APIENTRY glDisablei (GLenum, GLuint); -GLAPI GLboolean APIENTRY glIsEnabledi (GLenum, GLuint); -GLAPI void APIENTRY glBeginTransformFeedback (GLenum); -GLAPI void APIENTRY glEndTransformFeedback (void); -GLAPI void APIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); -GLAPI void APIENTRY glBindBufferBase (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLint *, GLenum); -GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLint *); -GLAPI void APIENTRY glClampColor (GLenum, GLenum); -GLAPI void APIENTRY glBeginConditionalRender (GLuint, GLenum); -GLAPI void APIENTRY glEndConditionalRender (void); -GLAPI void APIENTRY glVertexAttribI1i (GLuint, GLint); -GLAPI void APIENTRY glVertexAttribI2i (GLuint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI3i (GLuint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI4i (GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *); -GLAPI void APIENTRY glGetUniformuiv (GLuint, GLint, GLuint *); -GLAPI void APIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *); -GLAPI GLint APIENTRY glGetFragDataLocation (GLuint, const GLchar *); -GLAPI void APIENTRY glUniform1ui (GLint, GLuint); -GLAPI void APIENTRY glUniform2ui (GLint, GLuint, GLuint); -GLAPI void APIENTRY glUniform3ui (GLint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform4ui (GLint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform1uiv (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform2uiv (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform3uiv (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform4uiv (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glTexParameterIiv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glTexParameterIuiv (GLenum, GLenum, const GLuint *); -GLAPI void APIENTRY glGetTexParameterIiv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetTexParameterIuiv (GLenum, GLenum, GLuint *); -GLAPI void APIENTRY glClearBufferiv (GLenum, GLint, const GLint *); -GLAPI void APIENTRY glClearBufferuiv (GLenum, GLint, const GLuint *); -GLAPI void APIENTRY glClearBufferfv (GLenum, GLint, const GLfloat *); -GLAPI void APIENTRY glClearBufferfi (GLenum, GLint, GLfloat, GLint); -GLAPI const GLubyte * APIENTRY glGetStringi (GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); -GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); -GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); -GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); -GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); -GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexBlendARB (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); -GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); -GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); -GLAPI void APIENTRY glEndQueryARB (GLenum); -GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); -GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); -GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform1iARB (GLint, GLint); -GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -#endif - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint); -GLAPI void APIENTRY glBindRenderbuffer (GLenum, GLuint); -GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenRenderbuffers (GLsizei, GLuint *); -GLAPI void APIENTRY glRenderbufferStorage (GLenum, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum, GLenum, GLint *); -GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint); -GLAPI void APIENTRY glBindFramebuffer (GLenum, GLuint); -GLAPI void APIENTRY glDeleteFramebuffers (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFramebuffers (GLsizei, GLuint *); -GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum); -GLAPI void APIENTRY glFramebufferTexture1D (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture3D (GLenum, GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGenerateMipmap (GLenum); -GLAPI void APIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); -GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glFramebufferTextureLayer (GLenum, GLenum, GLuint, GLint, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint); -GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisor (GLuint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield); -GLAPI void APIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB (GLenum, GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArray (GLuint); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenVertexArrays (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsVertexArray (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogramEXT (GLenum); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint); -GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); -GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); -GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); -GLAPI void APIENTRY glDeformSGIX (GLbitfield); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); -GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); -GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum); -GLAPI void APIENTRY glTextureLightEXT (GLenum); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); -GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); -GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); -GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); -GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *); -GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); -GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); -GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); -GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); -GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFinishFenceNV (GLuint); -GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); -GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); -GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); -GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); -GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); -GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); -GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); -GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); -GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); -GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); -GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); -GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); -GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -/* This is really a WGL extension, but defines some associated GL enums. - * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. - */ -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#endif - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#endif - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *); -GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint); -GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint); -GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -#endif - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#endif - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble); -GLAPI void APIENTRY glClearDepthdNV (GLdouble); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#endif - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -#endif - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); -GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#endif - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *); -GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#endif - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint, GLenum); -GLAPI void APIENTRY glEndConditionalRenderNV (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#endif - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum); -GLAPI void APIENTRY glEndTransformFeedbackEXT (void); -GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); -GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr); -GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLint *, GLenum); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLint *location); -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield); -GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield); -GLAPI void APIENTRY glMatrixLoadfEXT (GLenum, const GLfloat *); -GLAPI void APIENTRY glMatrixLoaddEXT (GLenum, const GLdouble *); -GLAPI void APIENTRY glMatrixMultfEXT (GLenum, const GLfloat *); -GLAPI void APIENTRY glMatrixMultdEXT (GLenum, const GLdouble *); -GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum); -GLAPI void APIENTRY glMatrixRotatefEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMatrixRotatedEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMatrixScalefEXT (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMatrixScaledEXT (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMatrixFrustumEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMatrixOrthoEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMatrixPopEXT (GLenum); -GLAPI void APIENTRY glMatrixPushEXT (GLenum); -GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum, const GLfloat *); -GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum, const GLdouble *); -GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum, const GLfloat *); -GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum, const GLdouble *); -GLAPI void APIENTRY glTextureParameterfEXT (GLuint, GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glTextureParameterfvEXT (GLuint, GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glTextureParameteriEXT (GLuint, GLenum, GLenum, GLint); -GLAPI void APIENTRY glTextureParameterivEXT (GLuint, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetTextureImageEXT (GLuint, GLenum, GLint, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint, GLenum, GLint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint, GLenum, GLint, GLenum, GLint *); -GLAPI void APIENTRY glTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum, GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum, GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum, GLenum, GLenum, GLint); -GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum, GLenum, GLint, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum, GLenum, GLint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum, GLenum, GLint, GLenum, GLint *); -GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glBindMultiTextureEXT (GLenum, GLenum, GLuint); -GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum, GLuint); -GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum, GLuint); -GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum, GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum, GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexEnviEXT (GLenum, GLenum, GLenum, GLint); -GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexGendEXT (GLenum, GLenum, GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexGendvEXT (GLenum, GLenum, GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexGenfEXT (GLenum, GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum, GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexGeniEXT (GLenum, GLenum, GLenum, GLint); -GLAPI void APIENTRY glMultiTexGenivEXT (GLenum, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum, GLenum, GLenum, GLdouble *); -GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum, GLuint, GLvoid* *); -GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint, GLenum, GLint, GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum, GLenum, GLint, GLvoid *); -GLAPI void APIENTRY glNamedProgramStringEXT (GLuint, GLenum, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint, GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint, GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint, GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint, GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint, GLenum, GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint, GLenum, GLuint, const GLint *); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint, GLenum, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint, GLenum, GLuint, const GLuint *); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint, GLenum, GLuint, GLsizei, const GLuint *); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint, GLenum, GLuint, GLint *); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint, GLenum, GLuint, GLuint *); -GLAPI void APIENTRY glTextureParameterIivEXT (GLuint, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint, GLenum, GLenum, const GLuint *); -GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint, GLenum, GLenum, GLuint *); -GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum, GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, const GLuint *); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, GLuint *); -GLAPI void APIENTRY glProgramUniform1fEXT (GLuint, GLint, GLfloat); -GLAPI void APIENTRY glProgramUniform2fEXT (GLuint, GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramUniform3fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramUniform4fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramUniform1iEXT (GLuint, GLint, GLint); -GLAPI void APIENTRY glProgramUniform2iEXT (GLuint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramUniform3iEXT (GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramUniform4iEXT (GLuint, GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint, GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint, GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint, GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint, GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint, GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint, GLint, GLuint); -GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint, GLint, GLuint, GLuint); -GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint, GLint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint, GLint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint, GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint, GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint, GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint, GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glNamedBufferDataEXT (GLuint, GLsizeiptr, const GLvoid *, GLenum); -GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, const GLvoid *); -GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint, GLenum); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint, GLenum, GLvoid* *); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, GLvoid *); -GLAPI void APIENTRY glTextureBufferEXT (GLuint, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glMultiTexBufferEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint, GLenum, GLint *); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint, GLenum); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint, GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint, GLenum); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum, GLenum); -GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint, GLenum); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint, GLsizei, const GLenum *); -GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint, GLenum); -GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint, GLenum, GLuint, GLint); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint, GLenum, GLuint, GLint, GLenum); -GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint, GLenum, GLuint); -GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum, GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); -typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -#endif - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint, GLbitfield); -GLAPI void APIENTRY glTexRenderbufferNV (GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum, GLuint); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint); -GLAPI void APIENTRY glPauseTransformFeedbackNV (void); -GLAPI void APIENTRY glResumeTransformFeedbackNV (void); -GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/glx/apple/include/GL/glext.hMESA b/src/glx/apple/include/GL/glext.hMESA deleted file mode 100644 index 17db4b69eb..0000000000 --- a/src/glx/apple/include/GL/glext.hMESA +++ /dev/null @@ -1,7649 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated 2008/08/10 */ -/* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 41 - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#endif - -#ifndef GL_VERSION_2_0 -#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#endif - -#ifndef GL_VERSION_2_1 -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#endif - -#ifndef GL_VERSION_3_0 -#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB -#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 -#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 -#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 -#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 -#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 -#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 -#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_DEPTH_BUFFER 0x8223 -#define GL_STENCIL_BUFFER 0x8224 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_ARB_texture_float -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#endif - -#ifndef GL_ARB_draw_instanced -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_INDEX 0x8222 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_HALF_FLOAT 0x140B -#endif - -#ifndef GL_ARB_instanced_arrays -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#endif - -#ifndef GL_ARB_texture_rg -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_OES_read_format -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#endif - -#ifndef GL_GREMEDY_string_marker -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif - -#ifndef GL_EXT_timer_query -#define GL_TIME_ELAPSED_EXT 0x88BF -#endif - -#ifndef GL_EXT_gpu_program_parameters -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ -/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ -/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ -/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -/* reuse GL_LINES_ADJACENCY_EXT */ -/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ -/* reuse GL_TRIANGLES_ADJACENCY_EXT */ -/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -/* reuse GL_PROGRAM_POINT_SIZE_EXT */ -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#endif - -#ifndef GL_EXT_draw_instanced -#endif - -#ifndef GL_EXT_packed_float -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif - -#ifndef GL_EXT_texture_array -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -#endif - -#ifndef GL_NV_fragment_program4 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif - -#ifndef GL_NV_geometry_shader4 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -#endif - -#ifndef GL_EXT_draw_buffers2 -#endif - -#ifndef GL_NV_transform_feedback -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -#endif - -#ifndef GL_EXT_texture_integer -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -#endif - -#ifndef GL_GREMEDY_frame_terminator -#endif - -#ifndef GL_NV_conditional_render -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -#endif - -#ifndef GL_NV_present_video -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - - -/*************************************************************/ - -#include -#ifndef GL_VERSION_2_0 -/* GL type for program/shader text */ -typedef char GLchar; /* native character */ -#endif - -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for handling shader object handles and program/shader text */ -typedef char GLcharARB; /* native character */ -typedef unsigned int GLhandleARB; /* shader object handle */ -#endif - -/* GL types for "half" precision (s10e5) float data in host memory */ -#ifndef GL_ARB_half_float_pixel -typedef unsigned short GLhalfARB; -#endif - -#ifndef GL_NV_half_float -typedef unsigned short GLhalfNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include /* Fallback option */ -#endif -#endif - -#ifndef GL_EXT_timer_query -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); -GLAPI void APIENTRY glBlendEquation (GLenum); -GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogram (GLenum); -GLAPI void APIENTRY glResetMinmax (GLenum); -GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum); -GLAPI void APIENTRY glClientActiveTexture (GLenum); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glFogCoordf (GLfloat); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *); -GLAPI void APIENTRY glFogCoordd (GLdouble); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); -GLAPI void APIENTRY glPointParameteri (GLenum, GLint); -GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); -GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos2i (GLint, GLint); -GLAPI void APIENTRY glWindowPos2iv (const GLint *); -GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *); -GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3iv (const GLint *); -GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQuery (GLuint); -GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); -GLAPI void APIENTRY glEndQuery (GLenum); -GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); -GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint); -GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum); -GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *); -GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint); -GLAPI void APIENTRY glAttachShader (GLuint, GLuint); -GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *); -GLAPI void APIENTRY glCompileShader (GLuint); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum); -GLAPI void APIENTRY glDeleteProgram (GLuint); -GLAPI void APIENTRY glDeleteShader (GLuint); -GLAPI void APIENTRY glDetachShader (GLuint, GLuint); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint); -GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *); -GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *); -GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *); -GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgram (GLuint); -GLAPI GLboolean APIENTRY glIsShader (GLuint); -GLAPI void APIENTRY glLinkProgram (GLuint); -GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *); -GLAPI void APIENTRY glUseProgram (GLuint); -GLAPI void APIENTRY glUniform1f (GLint, GLfloat); -GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform1i (GLint, GLint); -GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint); -GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glValidateProgram (GLuint); -GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); -GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); -GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); -GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); -GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); -GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexBlendARB (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); -GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); -GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); -GLAPI void APIENTRY glEndQueryARB (GLenum); -GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); -GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); -GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform1iARB (GLint, GLint); -GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -#endif - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogramEXT (GLenum); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint); -GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); -GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); -GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); -GLAPI void APIENTRY glDeformSGIX (GLbitfield); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); -GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); -GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum); -GLAPI void APIENTRY glTextureLightEXT (GLenum); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); -GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); -GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); -GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); -GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *); -GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); -GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); -GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); -GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); -GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFinishFenceNV (GLuint); -GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); -GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); -GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); -GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); -GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); -GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); -GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); -GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); -GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); -GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); -GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); -GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); -GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -/* This is really a WGL extension, but defines some associated GL enums. - * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. - */ -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#endif - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#endif - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint); -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *); -GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint); -GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint); -GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *); -GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -#endif - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#endif - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble); -GLAPI void APIENTRY glClearDepthdNV (GLdouble); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#endif - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -#endif - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); -GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#endif - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *); -GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#endif - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#endif - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/glx/apple/include/GL/glx.h b/src/glx/apple/include/GL/glx.h deleted file mode 100644 index 2884401406..0000000000 --- a/src/glx/apple/include/GL/glx.h +++ /dev/null @@ -1,519 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.5 - * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef GLX_H -#define GLX_H - - -#ifdef __VMS -#include -# ifdef __cplusplus -/* VMS Xlib.h gives problems with C++. - * this avoids a bunch of trivial warnings */ -#pragma message disable nosimpint -#endif -#endif -#include -#include -#ifdef __VMS -# ifdef __cplusplus -#pragma message enable nosimpint -#endif -#endif -#include - - -#if defined(USE_MGL_NAMESPACE) -#include "glx_mangle.h" -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#define GLX_VERSION_1_1 1 -#define GLX_VERSION_1_2 1 -#define GLX_VERSION_1_3 1 -#define GLX_VERSION_1_4 1 - -#define GLX_EXTENSION_NAME "GLX" - - - -/* - * Tokens for glXChooseVisual and glXGetConfig: - */ -#define GLX_USE_GL 1 -#define GLX_BUFFER_SIZE 2 -#define GLX_LEVEL 3 -#define GLX_RGBA 4 -#define GLX_DOUBLEBUFFER 5 -#define GLX_STEREO 6 -#define GLX_AUX_BUFFERS 7 -#define GLX_RED_SIZE 8 -#define GLX_GREEN_SIZE 9 -#define GLX_BLUE_SIZE 10 -#define GLX_ALPHA_SIZE 11 -#define GLX_DEPTH_SIZE 12 -#define GLX_STENCIL_SIZE 13 -#define GLX_ACCUM_RED_SIZE 14 -#define GLX_ACCUM_GREEN_SIZE 15 -#define GLX_ACCUM_BLUE_SIZE 16 -#define GLX_ACCUM_ALPHA_SIZE 17 - - -/* - * Error codes returned by glXGetConfig: - */ -#define GLX_BAD_SCREEN 1 -#define GLX_BAD_ATTRIBUTE 2 -#define GLX_NO_EXTENSION 3 -#define GLX_BAD_VISUAL 4 -#define GLX_BAD_CONTEXT 5 -#define GLX_BAD_VALUE 6 -#define GLX_BAD_ENUM 7 - - -/* - * GLX 1.1 and later: - */ -#define GLX_VENDOR 1 -#define GLX_VERSION 2 -#define GLX_EXTENSIONS 3 - - -/* - * GLX 1.3 and later: - */ -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_DONT_CARE 0xFFFFFFFF -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#define GLX_RGBA_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 - - -/* - * GLX 1.4 and later: - */ -#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ -#define GLX_SAMPLES 0x186a1 /*100001*/ - - - -typedef struct __GLXcontextRec *GLXContext; -typedef XID GLXPixmap; -typedef XID GLXDrawable; -/* GLX 1.3 and later */ -typedef struct __GLXFBConfigRec *GLXFBConfig; -typedef XID GLXFBConfigID; -typedef XID GLXContextID; -typedef XID GLXWindow; -typedef XID GLXPbuffer; - - - -extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, - int *attribList ); - -extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, - GLXContext shareList, Bool direct ); - -extern void glXDestroyContext( Display *dpy, GLXContext ctx ); - -extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, - GLXContext ctx); - -extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, - unsigned long mask ); - -extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); - -extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, - Pixmap pixmap ); - -extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); - -extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); - -extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); - -extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); - -extern int glXGetConfig( Display *dpy, XVisualInfo *visual, - int attrib, int *value ); - -extern GLXContext glXGetCurrentContext( void ); - -extern GLXDrawable glXGetCurrentDrawable( void ); - -extern void glXWaitGL( void ); - -extern void glXWaitX( void ); - -extern void glXUseXFont( Font font, int first, int count, int list ); - - - -/* GLX 1.1 and later */ -extern const char *glXQueryExtensionsString( Display *dpy, int screen ); - -extern const char *glXQueryServerString( Display *dpy, int screen, int name ); - -extern const char *glXGetClientString( Display *dpy, int name ); - - -/* GLX 1.2 and later */ -extern Display *glXGetCurrentDisplay( void ); - - -/* GLX 1.3 and later */ -extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, - const int *attribList, int *nitems ); - -extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, - int attribute, int *value ); - -extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, - int *nelements ); - -extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, - GLXFBConfig config ); - -extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, - Window win, const int *attribList ); - -extern void glXDestroyWindow( Display *dpy, GLXWindow window ); - -extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, - Pixmap pixmap, const int *attribList ); - -extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); - -extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, - const int *attribList ); - -extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); - -extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, - unsigned int *value ); - -extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, - int renderType, GLXContext shareList, - Bool direct ); - -extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, - GLXDrawable read, GLXContext ctx ); - -extern GLXDrawable glXGetCurrentReadDrawable( void ); - -extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, - int *value ); - -extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, - unsigned long mask ); - -extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, - unsigned long *mask ); - -/* GLX 1.3 function pointer typedefs */ -typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); -typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); -typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); - - -/* - * ARB 2. GLX_ARB_get_proc_address - */ -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -typedef void (*__GLXextFuncPtr)(void); -extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); - -#endif /* GLX_ARB_get_proc_address */ - - - -/* GLX 1.4 and later */ -extern void (*glXGetProcAddress(const GLubyte *procname))( void ); - -/* GLX 1.4 function pointer typedefs */ -typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); - - -#ifndef GLX_GLXEXT_LEGACY - -#include - -#endif /* GLX_GLXEXT_LEGACY */ - - -/** - ** The following aren't in glxext.h yet. - **/ - - -/* - * ???. GLX_NV_vertex_array_range - */ -#ifndef GLX_NV_vertex_array_range -#define GLX_NV_vertex_array_range - -extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -extern void glXFreeMemoryNV(GLvoid *pointer); -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); - -#endif /* GLX_NV_vertex_array_range */ - - -/* - * ???. GLX_MESA_allocate_memory - */ -#ifndef GLX_MESA_allocate_memory -#define GLX_MESA_allocate_memory 1 - -extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); -extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer); -extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer); -typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); -typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer); -typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer); - -#endif /* GLX_MESA_allocate_memory */ - - -/* - * ARB ?. GLX_ARB_render_texture - * XXX This was never finalized! - */ -#ifndef GLX_ARB_render_texture -#define GLX_ARB_render_texture 1 - -extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); -extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); -extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); - -#endif /* GLX_ARB_render_texture */ - - -/* - * Remove this when glxext.h is updated. - */ -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 - -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 - -#endif /* GLX_NV_float_buffer */ - - - -/* - * #?. GLX_MESA_swap_frame_usage - */ -#ifndef GLX_MESA_swap_frame_usage -#define GLX_MESA_swap_frame_usage 1 - -extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); -extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); -extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); -extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); - -typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); -typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); -typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); -typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); - -#endif /* GLX_MESA_swap_frame_usage */ - - - -/* - * #?. GLX_MESA_swap_control - */ -#ifndef GLX_MESA_swap_control -#define GLX_MESA_swap_control 1 - -extern int glXSwapIntervalMESA(unsigned int interval); -extern int glXGetSwapIntervalMESA(void); - -typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); -typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); - -#endif /* GLX_MESA_swap_control */ - - - -/* - * #?. GLX_EXT_texture_from_pixmap - * XXX not finished? - */ -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 - -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 - -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 - -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 - -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD - -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT -#define GLX_BACK_EXT GLX_BACK_LEFT_EXT -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB - -extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); -extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); - -#endif /* GLX_EXT_texture_from_pixmap */ - - - - -/*** Should these go here, or in another header? */ -/* -** GLX Events -*/ -typedef struct { - int event_type; /* GLX_DAMAGED or GLX_SAVED */ - int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* XID of Drawable */ - unsigned int buffer_mask; /* mask indicating which buffers are affected */ - unsigned int aux_buffer; /* which aux buffer was affected */ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ -} GLXPbufferClobberEvent; - -typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; -} GLXEvent; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/glx/apple/include/GL/glxext.h b/src/glx/apple/include/GL/glxext.h deleted file mode 100644 index 9ac0592e05..0000000000 --- a/src/glx/apple/include/GL/glxext.h +++ /dev/null @@ -1,933 +0,0 @@ -#ifndef __glxext_h_ -#define __glxext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2009 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glxext.h last updated 2009/10/08 */ -/* Current version at http://www.opengl.org/registry/ */ -#define GLX_GLXEXT_VERSION 25 - -#ifndef GLX_VERSION_1_3 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_PBUFFER_BIT 0x00000004 -#define GLX_RGBA_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 -#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 -#define GLX_AUX_BUFFERS_BIT 0x00000010 -#define GLX_DEPTH_BUFFER_BIT 0x00000020 -#define GLX_STENCIL_BUFFER_BIT 0x00000040 -#define GLX_ACCUM_BUFFER_BIT 0x00000080 -#define GLX_CONFIG_CAVEAT 0x20 -#define GLX_X_VISUAL_TYPE 0x22 -#define GLX_TRANSPARENT_TYPE 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE 0x24 -#define GLX_TRANSPARENT_RED_VALUE 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 -#define GLX_DONT_CARE 0xFFFFFFFF -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_VISUAL_ID 0x800B -#define GLX_SCREEN 0x800C -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_DRAWABLE_TYPE 0x8010 -#define GLX_RENDER_TYPE 0x8011 -#define GLX_X_RENDERABLE 0x8012 -#define GLX_FBCONFIG_ID 0x8013 -#define GLX_RGBA_TYPE 0x8014 -#define GLX_COLOR_INDEX_TYPE 0x8015 -#define GLX_MAX_PBUFFER_WIDTH 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT 0x8017 -#define GLX_MAX_PBUFFER_PIXELS 0x8018 -#define GLX_PRESERVED_CONTENTS 0x801B -#define GLX_LARGEST_PBUFFER 0x801C -#define GLX_WIDTH 0x801D -#define GLX_HEIGHT 0x801E -#define GLX_EVENT_MASK 0x801F -#define GLX_DAMAGED 0x8020 -#define GLX_SAVED 0x8021 -#define GLX_WINDOW 0x8022 -#define GLX_PBUFFER 0x8023 -#define GLX_PBUFFER_HEIGHT 0x8040 -#define GLX_PBUFFER_WIDTH 0x8041 -#endif - -#ifndef GLX_VERSION_1_4 -#define GLX_SAMPLE_BUFFERS 100000 -#define GLX_SAMPLES 100001 -#endif - -#ifndef GLX_ARB_get_proc_address -#endif - -#ifndef GLX_ARB_multisample -#define GLX_SAMPLE_BUFFERS_ARB 100000 -#define GLX_SAMPLES_ARB 100001 -#endif - -#ifndef GLX_ARB_fbconfig_float -#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 -#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 -#endif - -#ifndef GLX_ARB_create_context -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define GLX_CONTEXT_FLAGS_ARB 0x2094 -#endif - -#ifndef GLX_ARB_create_context_profile -#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 -#endif - -#ifndef GLX_SGIS_multisample -#define GLX_SAMPLE_BUFFERS_SGIS 100000 -#define GLX_SAMPLES_SGIS 100001 -#endif - -#ifndef GLX_EXT_visual_info -#define GLX_X_VISUAL_TYPE_EXT 0x22 -#define GLX_TRANSPARENT_TYPE_EXT 0x23 -#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 -#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 -#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 -#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 -#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 -#define GLX_NONE_EXT 0x8000 -#define GLX_TRUE_COLOR_EXT 0x8002 -#define GLX_DIRECT_COLOR_EXT 0x8003 -#define GLX_PSEUDO_COLOR_EXT 0x8004 -#define GLX_STATIC_COLOR_EXT 0x8005 -#define GLX_GRAY_SCALE_EXT 0x8006 -#define GLX_STATIC_GRAY_EXT 0x8007 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 -#endif - -#ifndef GLX_SGI_swap_control -#endif - -#ifndef GLX_SGI_video_sync -#endif - -#ifndef GLX_SGI_make_current_read -#endif - -#ifndef GLX_SGIX_video_source -#endif - -#ifndef GLX_EXT_visual_rating -#define GLX_VISUAL_CAVEAT_EXT 0x20 -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D -/* reuse GLX_NONE_EXT */ -#endif - -#ifndef GLX_EXT_import_context -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C -#endif - -#ifndef GLX_SGIX_fbconfig -#define GLX_WINDOW_BIT_SGIX 0x00000001 -#define GLX_PIXMAP_BIT_SGIX 0x00000002 -#define GLX_RGBA_BIT_SGIX 0x00000001 -#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 -#define GLX_DRAWABLE_TYPE_SGIX 0x8010 -#define GLX_RENDER_TYPE_SGIX 0x8011 -#define GLX_X_RENDERABLE_SGIX 0x8012 -#define GLX_FBCONFIG_ID_SGIX 0x8013 -#define GLX_RGBA_TYPE_SGIX 0x8014 -#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 -/* reuse GLX_SCREEN_EXT */ -#endif - -#ifndef GLX_SGIX_pbuffer -#define GLX_PBUFFER_BIT_SGIX 0x00000004 -#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 -#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 -#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 -#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 -#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 -#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 -#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 -#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 -#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 -#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 -#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 -#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 -#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 -#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 -#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A -#define GLX_PRESERVED_CONTENTS_SGIX 0x801B -#define GLX_LARGEST_PBUFFER_SGIX 0x801C -#define GLX_WIDTH_SGIX 0x801D -#define GLX_HEIGHT_SGIX 0x801E -#define GLX_EVENT_MASK_SGIX 0x801F -#define GLX_DAMAGED_SGIX 0x8020 -#define GLX_SAVED_SGIX 0x8021 -#define GLX_WINDOW_SGIX 0x8022 -#define GLX_PBUFFER_SGIX 0x8023 -#endif - -#ifndef GLX_SGI_cushion -#endif - -#ifndef GLX_SGIX_video_resize -#define GLX_SYNC_FRAME_SGIX 0x00000000 -#define GLX_SYNC_SWAP_SGIX 0x00000001 -#endif - -#ifndef GLX_SGIX_dmbuffer -#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 -#endif - -#ifndef GLX_SGIX_swap_group -#endif - -#ifndef GLX_SGIX_swap_barrier -#endif - -#ifndef GLX_SGIS_blended_overlay -#define GLX_BLENDED_RGBA_SGIS 0x8025 -#endif - -#ifndef GLX_SGIS_shared_multisample -#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 -#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 -#endif - -#ifndef GLX_SUN_get_transparent_index -#endif - -#ifndef GLX_3DFX_multisample -#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 -#define GLX_SAMPLES_3DFX 0x8051 -#endif - -#ifndef GLX_MESA_copy_sub_buffer -#endif - -#ifndef GLX_MESA_pixmap_colormap -#endif - -#ifndef GLX_MESA_release_buffers -#endif - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_3DFX_WINDOW_MODE_MESA 0x1 -#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 -#endif - -#ifndef GLX_SGIX_visual_select_group -#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 -#endif - -#ifndef GLX_OML_swap_method -#define GLX_SWAP_METHOD_OML 0x8060 -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 -#endif - -#ifndef GLX_OML_sync_control -#endif - -#ifndef GLX_NV_float_buffer -#define GLX_FLOAT_COMPONENTS_NV 0x20B0 -#endif - -#ifndef GLX_SGIX_hyperpipe -#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 -#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 -#define GLX_BAD_HYPERPIPE_SGIX 92 -#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 -#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 -#define GLX_PIPE_RECT_SGIX 0x00000001 -#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 -#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 -#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 -#define GLX_HYPERPIPE_ID_SGIX 0x8030 -#endif - -#ifndef GLX_MESA_agp_offset -#endif - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 -#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 -#endif - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 -#endif - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 -#define GLX_TEXTURE_FORMAT_EXT 0x20D5 -#define GLX_TEXTURE_TARGET_EXT 0x20D6 -#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA -#define GLX_TEXTURE_1D_EXT 0x20DB -#define GLX_TEXTURE_2D_EXT 0x20DC -#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD -#define GLX_FRONT_LEFT_EXT 0x20DE -#define GLX_FRONT_RIGHT_EXT 0x20DF -#define GLX_BACK_LEFT_EXT 0x20E0 -#define GLX_BACK_RIGHT_EXT 0x20E1 -#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT -#define GLX_BACK_EXT GLX_BACK_LEFT_EXT -#define GLX_AUX0_EXT 0x20E2 -#define GLX_AUX1_EXT 0x20E3 -#define GLX_AUX2_EXT 0x20E4 -#define GLX_AUX3_EXT 0x20E5 -#define GLX_AUX4_EXT 0x20E6 -#define GLX_AUX5_EXT 0x20E7 -#define GLX_AUX6_EXT 0x20E8 -#define GLX_AUX7_EXT 0x20E9 -#define GLX_AUX8_EXT 0x20EA -#define GLX_AUX9_EXT 0x20EB -#endif - -#ifndef GLX_NV_present_video -#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 -#endif - -#ifndef GLX_NV_video_out -#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 -#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 -#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 -#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 -#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 -#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA -#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB -#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC -#endif - -#ifndef GLX_NV_swap_group -#endif - -#ifndef GLX_NV_video_capture -#define GLX_DEVICE_ID_NV 0x20CD -#define GLX_UNIQUE_ID_NV 0x20CE -#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF -#endif - -#ifndef GLX_EXT_swap_control -#define GLX_SWAP_INTERVAL_EXT 0x20F1 -#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 -#endif - -#ifndef GLX_NV_copy_image -#endif - - -/*************************************************************/ - -#ifndef GLX_ARB_get_proc_address -typedef void (*__GLXextFuncPtr)(void); -#endif - -#ifndef GLX_SGIX_video_source -typedef XID GLXVideoSourceSGIX; -#endif - -#ifndef GLX_SGIX_fbconfig -typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; -#endif - -#ifndef GLX_SGIX_pbuffer -typedef XID GLXPbufferSGIX; -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* i.d. of Drawable */ - int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ - int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ - unsigned int mask; /* mask indicating which buffers are affected*/ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ -} GLXBufferClobberEventSGIX; -#endif - -#ifndef GLX_NV_video_output -typedef unsigned int GLXVideoDeviceNV; -#endif - -#ifndef GLX_NV_video_capture -typedef XID GLXVideoCaptureDeviceNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GLX_OML_sync_control extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include /* Fallback option */ -#endif -#endif - -#ifndef GLX_VERSION_1_3 -#define GLX_VERSION_1_3 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); -extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); -extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); -extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); -extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); -extern void glXDestroyWindow (Display *, GLXWindow); -extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); -extern void glXDestroyPixmap (Display *, GLXPixmap); -extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); -extern void glXDestroyPbuffer (Display *, GLXPbuffer); -extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); -extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); -extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); -extern GLXDrawable glXGetCurrentReadDrawable (void); -extern Display * glXGetCurrentDisplay (void); -extern int glXQueryContext (Display *, GLXContext, int, int *); -extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); -extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -#endif - -#ifndef GLX_VERSION_1_4 -#define GLX_VERSION_1_4 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); -#endif - -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); -#endif - -#ifndef GLX_ARB_multisample -#define GLX_ARB_multisample 1 -#endif - -#ifndef GLX_ARB_fbconfig_float -#define GLX_ARB_fbconfig_float 1 -#endif - -#ifndef GLX_ARB_create_context -#define GLX_ARB_create_context 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXContext glXCreateContextAttribsARB (Display *, GLXFBConfig, GLXContext, Bool, const int *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); -#endif - -#ifndef GLX_ARB_create_context_profile -#define GLX_ARB_create_context_profile 1 -#endif - -#ifndef GLX_SGIS_multisample -#define GLX_SGIS_multisample 1 -#endif - -#ifndef GLX_EXT_visual_info -#define GLX_EXT_visual_info 1 -#endif - -#ifndef GLX_SGI_swap_control -#define GLX_SGI_swap_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalSGI (int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); -#endif - -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoSyncSGI (unsigned int *); -extern int glXWaitVideoSyncSGI (int, int, unsigned int *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); -#endif - -#ifndef GLX_SGI_make_current_read -#define GLX_SGI_make_current_read 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); -extern GLXDrawable glXGetCurrentReadDrawableSGI (void); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -#endif - -#ifndef GLX_SGIX_video_source -#define GLX_SGIX_video_source 1 -#ifdef _VL_H -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); -extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); -typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); -#endif /* _VL_H */ -#endif - -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 -#endif - -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Display * glXGetCurrentDisplayEXT (void); -extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); -extern GLXContextID glXGetContextIDEXT (const GLXContext); -extern GLXContext glXImportContextEXT (Display *, GLXContextID); -extern void glXFreeContextEXT (Display *, GLXContext); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); -#endif - -#ifndef GLX_SGIX_fbconfig -#define GLX_SGIX_fbconfig 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); -extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); -extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); -extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); -extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); -extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); -typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); -#endif - -#ifndef GLX_SGIX_pbuffer -#define GLX_SGIX_pbuffer 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); -extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); -extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); -extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); -extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); -typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); -#endif - -#ifndef GLX_SGI_cushion -#define GLX_SGI_cushion 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCushionSGI (Display *, Window, float); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); -#endif - -#ifndef GLX_SGIX_video_resize -#define GLX_SGIX_video_resize 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); -extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); -extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); -extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); -extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); -#endif - -#ifndef GLX_SGIX_dmbuffer -#define GLX_SGIX_dmbuffer 1 -#ifdef _DM_BUFFER_H_ -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); -#endif /* _DM_BUFFER_H_ */ -#endif - -#ifndef GLX_SGIX_swap_group -#define GLX_SGIX_swap_group 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); -#endif - -#ifndef GLX_SGIX_swap_barrier -#define GLX_SGIX_swap_barrier 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); -extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); -#endif - -#ifndef GLX_SUN_get_transparent_index -#define GLX_SUN_get_transparent_index 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); -#endif - -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); -#endif - -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); -#endif - -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); -#endif - -#ifndef GLX_MESA_set_3dfx_mode -#define GLX_MESA_set_3dfx_mode 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXSet3DfxModeMESA (int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); -#endif - -#ifndef GLX_SGIX_visual_select_group -#define GLX_SGIX_visual_select_group 1 -#endif - -#ifndef GLX_OML_swap_method -#define GLX_OML_swap_method 1 -#endif - -#ifndef GLX_OML_sync_control -#define GLX_OML_sync_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); -extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); -extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); -extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); -extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); -#endif - -#ifndef GLX_NV_float_buffer -#define GLX_NV_float_buffer 1 -#endif - -#ifndef GLX_SGIX_hyperpipe -#define GLX_SGIX_hyperpipe 1 - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; -} GLXHyperpipeNetworkSGIX; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int - participationType; - int timeSlice; -} GLXHyperpipeConfigSGIX; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin, srcYOrigin, srcWidth, srcHeight; - int destXOrigin, destYOrigin, destWidth, destHeight; -} GLXPipeRect; - -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin, YOrigin, maxHeight, maxWidth; -} GLXPipeRectLimits; - -#ifdef GLX_GLXEXT_PROTOTYPES -extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *); -extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *); -extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *); -extern int glXDestroyHyperpipeConfigSGIX (Display *, int); -extern int glXBindHyperpipeSGIX (Display *, int); -extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *); -extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *); -extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -#endif - -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int glXGetAGPOffsetMESA (const void *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); -#endif - -#ifndef GLX_EXT_fbconfig_packed_float -#define GLX_EXT_fbconfig_packed_float 1 -#endif - -#ifndef GLX_EXT_framebuffer_sRGB -#define GLX_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GLX_EXT_texture_from_pixmap -#define GLX_EXT_texture_from_pixmap 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *); -extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); -#endif - -#ifndef GLX_NV_present_video -#define GLX_NV_present_video 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int * glXEnumerateVideoDevicesNV (Display *, int, int *); -extern int glXBindVideoDeviceNV (Display *, unsigned int, unsigned int, const int *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef unsigned int * ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -#endif - -#ifndef GLX_NV_video_output -#define GLX_NV_video_output 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoDeviceNV (Display *, int, int, GLXVideoDeviceNV *); -extern int glXReleaseVideoDeviceNV (Display *, int, GLXVideoDeviceNV); -extern int glXBindVideoImageNV (Display *, GLXVideoDeviceNV, GLXPbuffer, int); -extern int glXReleaseVideoImageNV (Display *, GLXPbuffer); -extern int glXSendPbufferToVideoNV (Display *, GLXPbuffer, int, unsigned long *, GLboolean); -extern int glXGetVideoInfoNV (Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif - -#ifndef GLX_NV_swap_group -#define GLX_NV_swap_group 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXJoinSwapGroupNV (Display *, GLXDrawable, GLuint); -extern Bool glXBindSwapBarrierNV (Display *, GLuint, GLuint); -extern Bool glXQuerySwapGroupNV (Display *, GLXDrawable, GLuint *, GLuint *); -extern Bool glXQueryMaxSwapGroupsNV (Display *, int, GLuint *, GLuint *); -extern Bool glXQueryFrameCountNV (Display *, int, GLuint *); -extern Bool glXResetFrameCountNV (Display *, int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); -#endif - -#ifndef GLX_NV_video_capture -#define GLX_NV_video_capture 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindVideoCaptureDeviceNV (Display *, unsigned int, GLXVideoCaptureDeviceNV); -extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *, int, int *); -extern void glXLockVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); -extern int glXQueryVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV, int, int *); -extern void glXReleaseVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device); -#endif - -#ifndef GLX_EXT_swap_control -#define GLX_EXT_swap_control 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalEXT (Display *, GLXDrawable, int); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval); -#endif - -#ifndef GLX_NV_copy_image -#define GLX_NV_copy_image 1 -#ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopyImageSubDataNV (Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); -#endif /* GLX_GLXEXT_PROTOTYPES */ -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/glx/apple/include/GL/internal/glcore.h b/src/glx/apple/include/GL/internal/glcore.h deleted file mode 100644 index 9247f89403..0000000000 --- a/src/glx/apple/include/GL/internal/glcore.h +++ /dev/null @@ -1,189 +0,0 @@ -#ifndef __gl_core_h_ -#define __gl_core_h_ - -/* - * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) - * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice including the dates of first publication and - * either this permission notice or a reference to - * http://oss.sgi.com/projects/FreeB/ - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the name of Silicon Graphics, Inc. - * shall not be used in advertising or otherwise to promote the sale, use or - * other dealings in this Software without prior written authorization from - * Silicon Graphics, Inc. - */ - -#if !defined(_WIN32_WCE) -#include -#endif - -#define GL_CORE_SGI 1 -#define GL_CORE_MESA 2 -#define GL_CORE_APPLE 4 -#define GL_CORE_WINDOWS 8 - -typedef struct __GLcontextRec __GLcontext; - -/* -** This file defines the interface between the GL core and the surrounding -** "operating system" that supports it (currently the GLX or WGL extensions). -** -** Members (data and function pointers) are documented as imported or -** exported according to how they are used by the core rendering functions. -** Imported members are initialized by the "operating system" and used by -** the core functions. Exported members are initialized by the core functions -** and used by the "operating system". -*/ - -/** - * Mode and limit information for a context. This information is - * kept around in the context so that values can be used during - * command execution, and for returning information about the - * context to the application. - * - * Instances of this structure are shared by the driver and the loader. To - * maintain binary compatability, new fields \b must be added only to the - * end of the structure. - * - * \sa _gl_context_modes_create - */ -typedef struct __GLcontextModesRec { - struct __GLcontextModesRec * next; - - GLboolean rgbMode; - GLboolean floatMode; - GLboolean colorIndexMode; - GLuint doubleBufferMode; - GLuint stereoMode; - - GLboolean haveAccumBuffer; - GLboolean haveDepthBuffer; - GLboolean haveStencilBuffer; - - GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ - GLuint redMask, greenMask, blueMask, alphaMask; - GLint rgbBits; /* total bits for rgb */ - GLint indexBits; /* total bits for colorindex */ - - GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; - GLint depthBits; - GLint stencilBits; - - GLint numAuxBuffers; - - GLint level; - - GLint pixmapMode; - - /* GLX */ - GLint visualID; - GLint visualType; /**< One of the GLX X visual types. (i.e., - * \c GLX_TRUE_COLOR, etc.) - */ - - /* EXT_visual_rating / GLX 1.2 */ - GLint visualRating; - - /* EXT_visual_info / GLX 1.2 */ - GLint transparentPixel; - /* colors are floats scaled to ints */ - GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; - GLint transparentIndex; - - /* ARB_multisample / SGIS_multisample */ - GLint sampleBuffers; - GLint samples; - - /* SGIX_fbconfig / GLX 1.3 */ - GLint drawableType; - GLint renderType; - GLint xRenderable; - GLint fbconfigID; - - /* SGIX_pbuffer / GLX 1.3 */ - GLint maxPbufferWidth; - GLint maxPbufferHeight; - GLint maxPbufferPixels; - GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ - GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ - - /* SGIX_visual_select_group */ - GLint visualSelectGroup; - - /* OML_swap_method */ - GLint swapMethod; - - GLint screen; - - /* EXT_texture_from_pixmap */ - GLint bindToTextureRgb; - GLint bindToTextureRgba; - GLint bindToMipmapTexture; - GLint bindToTextureTargets; - GLint yInverted; - -#ifdef __APPLE__ - void *apple; -#endif -} __GLcontextModes; - -/* Several fields of __GLcontextModes can take these as values. Since - * GLX header files may not be available everywhere they need to be used, - * redefine them here. - */ -#define GLX_NONE 0x8000 -#define GLX_SLOW_CONFIG 0x8001 -#define GLX_TRUE_COLOR 0x8002 -#define GLX_DIRECT_COLOR 0x8003 -#define GLX_PSEUDO_COLOR 0x8004 -#define GLX_STATIC_COLOR 0x8005 -#define GLX_GRAY_SCALE 0x8006 -#define GLX_STATIC_GRAY 0x8007 -#define GLX_TRANSPARENT_RGB 0x8008 -#define GLX_TRANSPARENT_INDEX 0x8009 -#define GLX_NON_CONFORMANT_CONFIG 0x800D -#define GLX_SWAP_EXCHANGE_OML 0x8061 -#define GLX_SWAP_COPY_OML 0x8062 -#define GLX_SWAP_UNDEFINED_OML 0x8063 - -#define GLX_DONT_CARE 0xFFFFFFFF - -#define GLX_RGBA_BIT 0x00000001 -#define GLX_COLOR_INDEX_BIT 0x00000002 -#define GLX_WINDOW_BIT 0x00000001 -#define GLX_PIXMAP_BIT 0x00000002 -#define GLX_PBUFFER_BIT 0x00000004 - -#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 -#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 -#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 -#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 -#define GLX_Y_INVERTED_EXT 0x20D4 - -#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 -#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 -#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 - -#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 -#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 -#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA - -#endif /* __gl_core_h_ */ diff --git a/src/glx/apple/include/simple_list.h b/src/glx/apple/include/simple_list.h deleted file mode 100644 index 63475f6f74..0000000000 --- a/src/glx/apple/include/simple_list.h +++ /dev/null @@ -1,197 +0,0 @@ -/** - * \file simple_list.h - * Simple macros for type-safe, intrusive lists. - * - * Intended to work with a list sentinal which is created as an empty - * list. Insert & delete are O(1). - * - * \author - * (C) 1997, Keith Whitwell - */ - -/* - * Mesa 3-D graphics library - * Version: 3.5 - * - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#ifndef _SIMPLE_LIST_H -#define _SIMPLE_LIST_H - -/** - * Remove an element from list. - * - * \param elem element to remove. - */ -#define remove_from_list(elem) \ -do { \ - (elem)->next->prev = (elem)->prev; \ - (elem)->prev->next = (elem)->next; \ -} while (0) - -/** - * Insert an element to the list head. - * - * \param list list. - * \param elem element to insert. - */ -#define insert_at_head(list, elem) \ -do { \ - (elem)->prev = list; \ - (elem)->next = (list)->next; \ - (list)->next->prev = elem; \ - (list)->next = elem; \ -} while(0) - -/** - * Insert an element to the list tail. - * - * \param list list. - * \param elem element to insert. - */ -#define insert_at_tail(list, elem) \ -do { \ - (elem)->next = list; \ - (elem)->prev = (list)->prev; \ - (list)->prev->next = elem; \ - (list)->prev = elem; \ -} while(0) - -/** - * Move an element to the list head. - * - * \param list list. - * \param elem element to move. - */ -#define move_to_head(list, elem) \ -do { \ - remove_from_list(elem); \ - insert_at_head(list, elem); \ -} while (0) - -/** - * Move an element to the list tail. - * - * \param list list. - * \param elem element to move. - */ -#define move_to_tail(list, elem) \ -do { \ - remove_from_list(elem); \ - insert_at_tail(list, elem); \ -} while (0) - -/** - * Make a empty list empty. - * - * \param sentinal list (sentinal element). - */ -#define make_empty_list(sentinal) \ -do { \ - (sentinal)->next = sentinal; \ - (sentinal)->prev = sentinal; \ -} while (0) - -/** - * Get list first element. - * - * \param list list. - * - * \return pointer to first element. - */ -#define first_elem(list) ((list)->next) - -/** - * Get list last element. - * - * \param list list. - * - * \return pointer to last element. - */ -#define last_elem(list) ((list)->prev) - -/** - * Get next element. - * - * \param elem element. - * - * \return pointer to next element. - */ -#define next_elem(elem) ((elem)->next) - -/** - * Get previous element. - * - * \param elem element. - * - * \return pointer to previous element. - */ -#define prev_elem(elem) ((elem)->prev) - -/** - * Test whether element is at end of the list. - * - * \param list list. - * \param elem element. - * - * \return non-zero if element is at end of list, or zero otherwise. - */ -#define at_end(list, elem) ((elem) == (list)) - -/** - * Test if a list is empty. - * - * \param list list. - * - * \return non-zero if list empty, or zero otherwise. - */ -#define is_empty_list(list) ((list)->next == (list)) - -/** - * Walk through the elements of a list. - * - * \param ptr pointer to the current element. - * \param list list. - * - * \note It should be followed by a { } block or a single statement, as in a \c - * for loop. - */ -#define foreach(ptr, list) \ - for( ptr=(list)->next ; ptr!=list ; ptr=(ptr)->next ) - -/** - * Walk through the elements of a list. - * - * Same as #foreach but lets you unlink the current value during a list - * traversal. Useful for freeing a list, element by element. - * - * \param ptr pointer to the current element. - * \param t temporary pointer. - * \param list list. - * - * \note It should be followed by a { } block or a single statement, as in a \c - * for loop. - */ -#define foreach_s(ptr, t, list) \ - for(ptr=(list)->next,t=(ptr)->next; list != ptr; ptr=t, t=(t)->next) - -#endif -- cgit v1.2.3 From 23215ef4d60a86d9f3b3fdc08e3fdadc59e98890 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 11:17:04 -0700 Subject: apple: Change ifdefs for DRI to be DRI && !APPLE Signed-off-by: Jeremy Huddleston --- src/glx/XF86dri.c | 2 +- src/glx/apple/apple_xgl_api_read.c | 6 +- src/glx/apple/apple_xgl_api_stereo.c | 4 +- src/glx/apple/apple_xgl_api_viewport.c | 4 +- src/glx/dri2_glx.c | 2 +- src/glx/dri_common.c | 2 +- src/glx/dri_glx.c | 2 +- src/glx/drisw_glx.c | 2 +- src/glx/glx_pbuffer.c | 6 +- src/glx/glxclient.h | 33 +++++------ src/glx/glxcmds.c | 100 +++++++++++++++------------------ src/glx/glxcurrent.c | 20 +++---- src/glx/glxext.c | 10 ++-- src/glx/indirect.c | 30 +++++----- src/glx/singlepix.c | 2 +- src/glx/xfont.c | 2 +- 16 files changed, 106 insertions(+), 121 deletions(-) diff --git a/src/glx/XF86dri.c b/src/glx/XF86dri.c index fdbdd43000..d0e88805bc 100644 --- a/src/glx/XF86dri.c +++ b/src/glx/XF86dri.c @@ -36,7 +36,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* THIS IS NOT AN X CONSORTIUM STANDARD */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #define NEED_REPLIES #include diff --git a/src/glx/apple/apple_xgl_api_read.c b/src/glx/apple/apple_xgl_api_read.c index 3dcb31b71a..36357c7fc2 100644 --- a/src/glx/apple/apple_xgl_api_read.c +++ b/src/glx/apple/apple_xgl_api_read.c @@ -68,10 +68,10 @@ SetRead(struct apple_xgl_saved_state *saved) saved->swapped = true; - if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentReadable)) { /* An error occurred, so try to restore the old context state. */ - (void) apple_glx_make_current_context(dpy, gc->apple, gc->apple, + (void) apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentDrawable); saved->swapped = false; } @@ -85,7 +85,7 @@ UnsetRead(struct apple_xgl_saved_state *saved) GLXContext gc = __glXGetCurrentContext(); Display *dpy = glXGetCurrentDisplay(); - if (apple_glx_make_current_context(dpy, gc->apple, gc->apple, + if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, gc->currentDrawable)) { /* * An error occurred restoring the drawable. diff --git a/src/glx/apple/apple_xgl_api_stereo.c b/src/glx/apple/apple_xgl_api_stereo.c index b50e3119cd..7dd946f764 100644 --- a/src/glx/apple/apple_xgl_api_stereo.c +++ b/src/glx/apple/apple_xgl_api_stereo.c @@ -42,7 +42,7 @@ glDrawBuffer(GLenum mode) { GLXContext gc = glXGetCurrentContext(); - if (gc && apple_glx_context_uses_stereo(gc->apple)) { + if (gc && apple_glx_context_uses_stereo(gc->driContext)) { GLenum buf[2]; GLsizei n = 0; @@ -77,7 +77,7 @@ glDrawBuffers(GLsizei n, const GLenum * bufs) { GLXContext gc = glXGetCurrentContext(); - if (gc && apple_glx_context_uses_stereo(gc->apple)) { + if (gc && apple_glx_context_uses_stereo(gc->driContext)) { GLenum newbuf[n + 2]; GLsizei i, outi = 0; bool have_back = false; diff --git a/src/glx/apple/apple_xgl_api_viewport.c b/src/glx/apple/apple_xgl_api_viewport.c index d3fbc7c41e..f556eefa22 100644 --- a/src/glx/apple/apple_xgl_api_viewport.c +++ b/src/glx/apple/apple_xgl_api_viewport.c @@ -38,8 +38,8 @@ glViewport(GLint x, GLint y, GLsizei width, GLsizei height) GLXContext gc = __glXGetCurrentContext(); Display *dpy = glXGetCurrentDisplay(); - if (gc && gc->apple) - apple_glx_context_update(dpy, gc->apple); + if (gc && gc->driContext) + apple_glx_context_update(dpy, gc->driContext); __gl_api.Viewport(x, y, width, height); } diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 14788b89be..81fb0ddc88 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -30,7 +30,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index e4034161bb..d6ce681d70 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -33,7 +33,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c index e47db82b70..74afa60301 100644 --- a/src/glx/dri_glx.c +++ b/src/glx/dri_glx.c @@ -32,7 +32,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 1b94a56fd1..d8027cc96d 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -21,7 +21,7 @@ * SOFTWARE. */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include "glxclient.h" diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 143cf87766..6c34cda154 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -325,7 +325,7 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable, } } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -391,7 +391,7 @@ CreateDrawable(Display * dpy, const __GLcontextModes * fbconfig, UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -455,7 +455,7 @@ DestroyDrawable(Display * dpy, GLXDrawable drawable, CARD32 glxCode) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 3519c20a7f..958e1526c9 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -54,9 +54,7 @@ #include "GL/glxint.h" #include "GL/glxproto.h" #include "GL/internal/glcore.h" -#ifndef GLX_USE_APPLEGL #include "glapi/glapitable.h" -#endif #include "glxhash.h" #if defined( PTHREADS ) # include @@ -99,8 +97,13 @@ typedef struct _glapi_table __GLapi; #define containerOf(ptr, type, member) \ (type *)( (char *)ptr - offsetof(type,member) ) -#include +extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); + +#endif + +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#include /** * Display dependent methods. This structure is initialized during the @@ -187,8 +190,6 @@ extern __GLXDRIdisplay *dri2CreateDisplay(Display * dpy); extern void dri2InvalidateBuffers(Display *dpy, XID drawable); -extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); - /* ** Functions to obtain driver configuration information from a direct ** rendering client application @@ -199,10 +200,6 @@ extern const char *glXGetDriverConfig(const char *driverName); #endif -#ifdef GLX_USE_APPLEGL -extern void DRI_glXUseXFont( Font font, int first, int count, int listbase ); -#endif - /************************************************************************/ #define __GL_CLIENT_ATTRIB_STACK_DEPTH 16 @@ -411,8 +408,13 @@ struct __GLXcontextRec const __GLcontextModes *mode; #ifdef GLX_DIRECT_RENDERING +#ifdef GLX_USE_APPLEGL + void *driContext; + Bool do_destroy; +#else __GLXDRIcontext *driContext; __DRIcontext *__driContext; +#endif #endif /** @@ -455,11 +457,6 @@ struct __GLXcontextRec unsigned long thread_id; char gl_extension_bits[__GL_EXT_BYTES]; - -#ifdef GLX_USE_APPLEGL - void *apple; - Bool do_destroy; -#endif }; #define __glXSetError(gc,code) \ @@ -514,7 +511,7 @@ struct __GLXscreenConfigsRec */ char *effectiveGLXexts; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Per screen direct rendering interface functions and data. */ @@ -625,7 +622,7 @@ struct __GLXdisplayPrivateRec */ __GLXscreenConfigs *screenConfigs; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Per display direct rendering interface functions and data. */ @@ -638,14 +635,12 @@ struct __GLXdisplayPrivateRec extern GLubyte *__glXFlushRenderBuffer(__GLXcontext *, GLubyte *); -#ifndef GLX_USE_APPLEGL extern void __glXSendLargeChunk(__GLXcontext * gc, GLint requestNumber, GLint totalRequests, const GLvoid * data, GLint dataLen); extern void __glXSendLargeCommand(__GLXcontext *, const GLvoid *, GLint, const GLvoid *, GLint); -#endif /* Initialize the GLX extension for dpy */ extern __GLXdisplayPrivate *__glXInitialize(Display *); @@ -805,7 +800,7 @@ extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private); diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 4e5243c1fc..ef8674f4e0 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -34,21 +34,22 @@ */ #include "glxclient.h" +#include "glapi.h" +#include "glxextensions.h" +#include "glcontextmodes.h" + +#ifdef GLX_DIRECT_RENDERING #ifdef GLX_USE_APPLEGL #include "apple_glx_context.h" #include "apple_glx.h" #include "glx_error.h" +#define GC_IS_DIRECT(gc) ((gc)->isDirect) #else -#include "glapi.h" -#endif -#include "glxextensions.h" -#include "glcontextmodes.h" - -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) #include #include #include "xf86dri.h" #define GC_IS_DIRECT(gc) ((gc)->driContext != NULL) +#endif #else #define GC_IS_DIRECT(gc) (0) #endif @@ -65,7 +66,7 @@ static const char __glXGLXClientVersion[] = "1.4"; /****************************************************************************/ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) static Bool windowExistsFlag; static int @@ -352,7 +353,7 @@ AllocateGLXContext(Display * dpy) gc->maxSmallRenderCommandSize = bufSize; #ifdef GLX_USE_APPLEGL - gc->apple = NULL; + gc->driContext = NULL; gc->do_destroy = False; #endif @@ -377,13 +378,13 @@ CreateContext(Display * dpy, int generic_id, unsigned code, int renderType, int screen) { GLXContext gc; -#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); -#endif #ifdef GLX_USE_APPLEGL - const __GLcontextModes *mode; - int errorcode; - bool x11error; + const __GLcontextModes *mode; + int errorcode; + bool x11error; +#endif #endif if (dpy == NULL) @@ -396,7 +397,7 @@ CreateContext(Display * dpy, int generic_id, if (!gc) return NULL; -#ifndef GLX_USE_APPLEGL +#ifndef GLX_USE_APPLEGL /* TODO: darwin indirect */ #ifdef GLX_DIRECT_RENDERING if (allowDirect && psc->driScreen) { gc->driContext = psc->driScreen->createContext(psc, fbconfig, gc, @@ -476,6 +477,9 @@ CreateContext(Display * dpy, int generic_id, #endif gc->imported = GL_FALSE; + gc->renderType = renderType; + + /* TODO: darwin: Integrate with above to do indirect */ #ifdef GLX_USE_APPLEGL mode = _gl_context_modes_find_fbconfig(psc->configs, fbconfig->fbconfigID); @@ -487,8 +491,8 @@ CreateContext(Display * dpy, int generic_id, return NULL; } - if(apple_glx_create_context(&gc->apple, dpy, screen, mode, - shareList ? shareList->apple : NULL, + if(apple_glx_create_context(&gc->driContext, dpy, screen, mode, + shareList ? shareList->driContext : NULL, &errorcode, &x11error)) { __glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error); __glXFreeContext(gc); @@ -498,8 +502,6 @@ CreateContext(Display * dpy, int generic_id, gc->currentContextTag = -1; gc->mode = mode; gc->isDirect = allowDirect; -#else - gc->renderType = renderType; #endif return gc; @@ -547,9 +549,7 @@ __glXFreeContext(__GLXcontext * gc) XFree((char *) gc->version); if (gc->extensions) XFree((char *) gc->extensions); -#ifndef GLX_USE_APPLEGL __glFreeAttributeState(gc); -#endif XFree((char *) gc->buf); Xfree((char *) gc->client_state_private); XFree((char *) gc); @@ -562,7 +562,7 @@ __glXFreeContext(__GLXcontext * gc) static void DestroyContext(Display * dpy, GLXContext gc) { -#ifndef GLX_USE_APPLEGL +#ifndef GLX_USE_APPLEGL /* TODO: darwin: indirect */ xGLXDestroyContextReq *req; GLXContextID xid; CARD8 opcode; @@ -588,7 +588,7 @@ DestroyContext(Display * dpy, GLXContext gc) return; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Destroy the direct rendering context */ if (gc->driContext) { (*gc->driContext->destroyContext) (gc->driContext, gc->psc, dpy); @@ -617,8 +617,8 @@ DestroyContext(Display * dpy, GLXContext gc) /* Destroy the handle if not current to anybody */ __glXUnlock(); #ifdef GLX_USE_APPLEGL - if(gc->apple) - apple_glx_destroy_context(&gc->apple, dpy); + if(gc->driContext) + apple_glx_destroy_context(&gc->driContext, dpy); #endif __glXFreeContext(gc); } @@ -705,7 +705,7 @@ glXWaitGL(void) #ifdef GLX_USE_APPLEGL glFinish(); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -752,9 +752,9 @@ glXWaitX(void) __glXFlushRenderBuffer(gc, gc->pc); #ifdef GLX_USE_APPLEGL - apple_glx_waitx(dpy, gc->apple); + apple_glx_waitx(dpy, gc->driContext); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -801,7 +801,7 @@ glXUseXFont(Font font, int first, int count, int listBase) #ifdef GLX_USE_APPLEGL DRI_glXUseXFont(font, first, count, listBase); #else -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { DRI_glXUseXFont(font, first, count, listBase); return; @@ -838,7 +838,7 @@ glXCopyContext(Display * dpy, GLXContext source, int errorcode; bool x11error; - if(apple_glx_copy_context(gc->apple, source->apple, dest->apple, + if(apple_glx_copy_context(gc->driContext, source->driContext, dest->driContext, mask, &errorcode, &x11error)) { __glXSendError(dpy, errorcode, 0, X_GLXCopyContext, x11error); } @@ -854,7 +854,7 @@ glXCopyContext(Display * dpy, GLXContext source, return; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { /* NOT_DONE: This does not work yet */ } @@ -886,7 +886,6 @@ glXCopyContext(Display * dpy, GLXContext source, } -#ifndef GLX_USE_APPLEGL /** * Determine if a context uses direct rendering. * @@ -898,6 +897,9 @@ glXCopyContext(Display * dpy, GLXContext source, static Bool __glXIsDirect(Display * dpy, GLXContextID contextID) { +#ifndef GLX_USE_APPLEGL /* TODO: apple indirect */ + return GC_IS_DIRECT(gc); +#else #if !defined(USE_XCB) xGLXIsDirectReq *req; xGLXIsDirectReply reply; @@ -933,8 +935,8 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) return reply.isDirect; #endif /* USE_XCB */ -} #endif /* GLX_USE_APPLEGL */ +} /** * \todo @@ -945,17 +947,6 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) PUBLIC Bool glXIsDirect(Display * dpy, GLXContext gc) { -#ifdef GLX_USE_APPLEGL - /* - * This isn't an ideal test. - * glXIsDirect should probably search a list of contexts. - */ - if(NULL == gc) { - __glXSendError(dpy, GLXBadContext, 0, X_GLXIsDirect, false); - return False; - } - return gc->isDirect; -#else if (!gc) { return GL_FALSE; } @@ -963,7 +954,6 @@ glXIsDirect(Display * dpy, GLXContext gc) return GL_TRUE; } return __glXIsDirect(dpy, gc->xid); -#endif /* GLX_USE_APPLEGL */ } PUBLIC GLXPixmap @@ -1002,7 +992,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -1060,7 +1050,7 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) UnlockDisplay(dpy); SyncHandle(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); @@ -1081,8 +1071,8 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) { #ifdef GLX_USE_APPLEGL GLXContext gc = glXGetCurrentContext(); - if(gc && apple_glx_is_current_drawable(dpy, gc->apple, drawable)) { - apple_glx_swap_buffers(gc->apple); + if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) { + apple_glx_swap_buffers(gc->driContext); } else { __glXSendError(dpy, GLXBadCurrentWindow, 0, X_GLXSwapBuffers, false); } @@ -1096,7 +1086,7 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) xGLXSwapBuffersReq *req; #endif -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); if (pdraw != NULL) { @@ -1594,7 +1584,7 @@ glXQueryExtensionsString(Display * dpy, int screen) } __glXCalculateUsableExtensions(psc, -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) (psc->driScreen != NULL), #else GL_FALSE, @@ -1826,7 +1816,7 @@ glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) int retVal; /* get the information from the server if we don't have it already */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (!ctx->driContext && (ctx->mode == NULL)) { #else if (ctx->mode == NULL) { @@ -2549,7 +2539,7 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) _X_HIDDEN GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private) @@ -2989,7 +2979,7 @@ __glXBindTexImageEXT(Display * dpy, i++; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -3245,7 +3235,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), #endif -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /*** DRI configuration ***/ GLX_FUNCTION(glXGetScreenDriver), GLX_FUNCTION(glXGetDriverConfig), @@ -3322,7 +3312,7 @@ PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void) #endif /* __GNUC__ */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /** * Get the unadjusted system time (UST). Currently, the UST is measured in * microseconds since Epoc. The actual resolution of the UST may vary from diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c index 115fab4012..691e8dfadf 100644 --- a/src/glx/glxcurrent.c +++ b/src/glx/glxcurrent.c @@ -169,7 +169,7 @@ __glXSetCurrentContextNull(void) { __glXSetCurrentContext(&dummyContext); #ifndef GLX_USE_APPLEGL -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) _glapi_set_dispatch(NULL); /* no-op functions */ _glapi_set_context(NULL); #endif @@ -284,7 +284,7 @@ SendMakeCurrentRequest(Display * dpy, CARD8 opcode, } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) static __GLXDRIdrawable * FetchDRIDrawable(Display * dpy, GLXDrawable glxDrawable, GLXContext gc) { @@ -342,8 +342,8 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, const GLXContext oldGC = __glXGetCurrentContext(); #ifdef GLX_USE_APPLEGL bool error = apple_glx_make_current_context(dpy, - (oldGC && oldGC != &dummyContext) ? oldGC->apple : NULL, - gc ? gc->apple : NULL, draw); + (oldGC && oldGC != &dummyContext) ? oldGC->driContext : NULL, + gc ? gc->driContext : NULL, draw); apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO"); if(error) @@ -386,7 +386,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Bind the direct rendering context to the drawable */ if (gc && gc->driContext) { __GLXDRIdrawable *pdraw = FetchDRIDrawable(dpy, draw, gc); @@ -421,7 +421,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if ((dpy != oldGC->currentDpy || (gc && gc->driContext)) && !oldGC->isDirect && oldGC != &dummyContext) { #else @@ -439,7 +439,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, oldGC->currentContextTag, None, None, &dummy_reply); } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) else if (oldGC->driContext && oldGC != gc) { oldGC->driContext->unbindContext(oldGC->driContext); } @@ -485,7 +485,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, * previously destroyed, so we need to free the memory * for the old handle. */ -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Destroy the old direct rendering context */ if (oldGC->driContext) { oldGC->driContext->destroyContext(oldGC->driContext, @@ -507,7 +507,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, #ifndef GLX_USE_APPLEGL gc->thread_id = _glthread_GetID(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (!gc->driContext) { #endif if (!IndirectAPI) @@ -522,7 +522,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, (void) glGetString(GL_VERSION); __glXInitVertexArrayState(gc); } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) } else { gc->currentContextTag = -1; diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 42635ebaa9..3e03d514ef 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -259,7 +259,7 @@ FreeScreenConfigs(__GLXdisplayPrivate * priv) } Xfree((char *) psc->serverGLXexts); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (psc->driver_configs) { unsigned int j; for (j = 0; psc->driver_configs[j]; j++) @@ -299,7 +299,7 @@ __glXFreeDisplayPrivate(XExtData * extension) priv->serverGLXversion = 0x0; /* to protect against double free's */ } -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* Free the direct rendering per display data */ if (priv->driswDisplay) (*priv->driswDisplay->destroyDisplay) (priv->driswDisplay); @@ -773,7 +773,7 @@ AllocAndFetchScreenConfigs(Display * dpy, __GLXdisplayPrivate * priv) getVisualConfigs(dpy, priv, i); getFBConfigs(dpy, priv, i); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) psc->scr = i; psc->dpy = dpy; psc->drawHash = __glxHashCreate(); @@ -813,7 +813,7 @@ __glXInitialize(Display * dpy) __GLXdisplayPrivate *dpyPriv; XEDataObject dataObj; int major, minor; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) Bool glx_direct, glx_accel; #endif @@ -870,7 +870,7 @@ __glXInitialize(Display * dpy) dpyPriv->serverGLXvendor = 0x0; dpyPriv->serverGLXversion = 0x0; -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) glx_direct = (getenv("LIBGL_ALWAYS_INDIRECT") == NULL); glx_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL); diff --git a/src/glx/indirect.c b/src/glx/indirect.c index 42a225f671..172727860e 100644 --- a/src/glx/indirect.c +++ b/src/glx/indirect.c @@ -5198,7 +5198,7 @@ glDeleteTexturesEXT(GLsizei n, const GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_DeleteTextures(GET_DISPATCH(), (n, textures)); } else @@ -5269,7 +5269,7 @@ glGenTexturesEXT(GLsizei n, GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GenTextures(GET_DISPATCH(), (n, textures)); } else @@ -5334,7 +5334,7 @@ glIsTextureEXT(GLuint texture) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { return CALL_IsTexture(GET_DISPATCH(), (texture)); } else @@ -5650,7 +5650,7 @@ glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid * table) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTable(GET_DISPATCH(), (target, format, type, table)); } else @@ -5726,7 +5726,7 @@ glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTableParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -5799,7 +5799,7 @@ glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetColorTableParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6125,7 +6125,7 @@ gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionFilter(GET_DISPATCH(), (target, format, type, image)); @@ -6203,7 +6203,7 @@ gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -6276,7 +6276,7 @@ gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetConvolutionParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6356,7 +6356,7 @@ gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogram(GET_DISPATCH(), (target, reset, format, type, values)); @@ -6433,7 +6433,7 @@ gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogramParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6504,7 +6504,7 @@ gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetHistogramParameteriv(GET_DISPATCH(), (target, pname, params)); } else @@ -6579,7 +6579,7 @@ gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, values)); } else @@ -6653,7 +6653,7 @@ gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmaxParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6721,7 +6721,7 @@ gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetMinmaxParameteriv(GET_DISPATCH(), (target, pname, params)); } else diff --git a/src/glx/singlepix.c b/src/glx/singlepix.c index f5ebf4dfdb..c4010d79bd 100644 --- a/src/glx/singlepix.c +++ b/src/glx/singlepix.c @@ -119,7 +119,7 @@ void NAME(_gloffset_GetSeparableFilter) (GLenum target, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#ifdef GLX_DIRECT_RENDERING +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) if (gc->driContext) { CALL_GetSeparableFilter(GET_DISPATCH(), (target, format, type, row, column, span)); diff --git a/src/glx/xfont.c b/src/glx/xfont.c index 6b55a6085b..797fd7a490 100644 --- a/src/glx/xfont.c +++ b/src/glx/xfont.c @@ -33,7 +33,7 @@ called by that routine when direct rendering is enabled. */ -#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include "glxclient.h" -- cgit v1.2.3 From dbe8b013936d977ec63d6607bfd2fc6772d29787 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 11:18:42 -0700 Subject: apple: Integrate our libGL into the existing build system better Signed-off-by: Jeremy Huddleston --- configs/darwin | 7 +- src/glx/Makefile | 2 +- src/glx/apple/Makefile | 183 +++++++++++++++++++++++++++++-------------------- src/glx/clientattrib.c | 2 + 4 files changed, 118 insertions(+), 76 deletions(-) diff --git a/configs/darwin b/configs/darwin index d28d5906ba..e519684877 100644 --- a/configs/darwin +++ b/configs/darwin @@ -13,7 +13,10 @@ CC = gcc CXX = g++ PIC_FLAGS = -fPIC DEFINES = -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \ - -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING + -DGLX_ALIAS_UNSUPPORTED \ + -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL + +# -DGLX_INDIRECT_RENDERING \ # -D_GNU_SOURCE - for src/mesa/main ... # -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx @@ -49,7 +52,7 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm # omit glw lib for now: -SRC_DIRS = glsl glx mesa gallium glu glut/glx glew +SRC_DIRS = glsl glx/apple mesa gallium glu glut/glx glew GLU_DIRS = sgi DRIVER_DIRS = osmesa #DRIVER_DIRS = dri diff --git a/src/glx/Makefile b/src/glx/Makefile index 6711fdc61b..c6ebc49828 100644 --- a/src/glx/Makefile +++ b/src/glx/Makefile @@ -90,7 +90,7 @@ install: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) # Remove .o and backup files clean: - -rm -f $(TOP)/$(LIB_DIR)/libGL.so* + -rm -f $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB) -rm -f *.o *~ -rm -f depend depend.bak diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile index b3d163aba9..8fa5b01f28 100644 --- a/src/glx/apple/Makefile +++ b/src/glx/apple/Makefile @@ -1,97 +1,134 @@ -INSTALL_DIR = /usr/X11 -X11_DIR = $(INSTALL_DIR) +TOP = ../../.. -CC=gcc -GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT $(RC_CFLAGS) $(CFLAGS) -GL_LDFLAGS=-L$(INSTALL_DIR)/lib -L$(X11_DIR)/lib $(LDFLAGS) -Wl,-single_module +include $(TOP)/configs/current -TCLSH=tclsh8.5 +#CC=gcc +#GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT $(RC_CFLAGS) $(CFLAGS) +#GL_LDFLAGS=-L$(INSTALL_DIR)/lib -L$(X11_DIR)/lib $(LDFLAGS) -Wl,-single_module +TCLSH=tclsh8.5 MKDIR=mkdir INSTALL=install LN=ln RM=rm -INCLUDE=-I. -Iinclude -Iinclude/internal -I.. -DGLX_ALIAS_UNSUPPORTED -I$(INSTALL_DIR)/include -I$(X11_DIR)/include -COMPILE=$(CC) $(INCLUDE) $(GL_CFLAGS) -c +#INCLUDE=-I. -Iinclude -I.. -DGLX_ALIAS_UNSUPPORTED -I$(INSTALL_DIR)/include -I$(X11_DIR)/include + +#COMPILE=$(CC) $(INCLUDE) $(GL_CFLAGS) -c #The directory with the final binaries. BUILD_DIR=builds -all: $(BUILD_DIR)/libGL.1.2.dylib - -OBJECTS=glxext.o glxcmds.o glx_pbuffer.o glx_query.o glxcurrent.o glxextensions.o \ - appledri.o apple_glx_context.o apple_glx.o pixel.o \ - compsize.o apple_visual.o apple_cgl.o glxreply.o glcontextmodes.o \ - apple_xgl_api.o apple_glx_drawable.o xfont.o apple_glx_pbuffer.o \ - apple_glx_pixmap.o apple_xgl_api_read.o glx_empty.o glx_error.o \ - apple_xgl_api_viewport.o apple_glx_surface.o apple_xgl_api_stereo.o - -$(BUILD_DIR)/libGL.1.2.dylib: $(OBJECTS) - -if ! test -d $(BUILD_DIR); then $(MKDIR) $(BUILD_DIR); fi - $(CC) $(GL_CFLAGS) -o $@ -dynamiclib -install_name $(INSTALL_DIR)/lib/libGL.1.dylib -compatibility_version 1.2 -current_version 1.2 -lXplugin -framework ApplicationServices -framework CoreFoundation $(GL_LDFLAGS) -lXext -lX11 -Wl,-exported_symbols_list,exports.list $(OBJECTS) - -.c.o: - $(COMPILE) $< - -apple_glx_drawable.o: apple_glx_drawable.h apple_glx_drawable.c include/GL/gl.h -apple_xgl_api.o: apple_xgl_api.h apple_xgl_api.c apple_xgl_api_stereo.c include/GL/gl.h -apple_xgl_api_read.o: apple_xgl_api_read.h apple_xgl_api_read.c apple_xgl_api.h include/GL/gl.h -apple_xgl_api_viewport.o: apple_xgl_api_viewport.h apple_xgl_api_viewport.c apple_xgl_api.h include/GL/gl.h -apple_xgl_api_stereo.o: apple_xgl_api_stereo.h apple_xgl_api_stereo.c apple_xgl_api.h include/GL/gl.h -glcontextmodes.o: glcontextmodes.c include/GL/gl.h -glxext.o: glxext.c include/GL/gl.h -glxreply.o: glxreply.c include/GL/gl.h -glxcmds.o: glxcmds.c apple_glx_context.h include/GL/gl.h -glx_pbuffer.o: glx_pbuffer.c include/GL/gl.h -glx_error.o: glx_error.c include/GL/gl.h -glx_query.o: glx_query.c include/GL/gl.h -glxcurrent.o: glxcurrent.c include/GL/gl.h -glxextensions.o: glxextensions.c include/GL/gl.h -glxhash.o: glxhash.h glxhash.c include/GL/gl.h -appledri.o: appledri.h appledristr.h appledri.c include/GL/gl.h -apple_glx_context.o: apple_glx_context.c apple_glx_context.h apple_glx_context.h include/GL/gl.h -apple_glx.o: apple_glx.h apple_glx.c apple_xgl_api.h include/GL/gl.h -apple_visual.o: apple_visual.h apple_visual.c include/GL/gl.h -apple_cgl.o: apple_cgl.h apple_cgl.c include/GL/gl.h -apple_glx_pbuffer.o: apple_glx_drawable.h apple_glx_pbuffer.c include/GL/gl.h -apple_glx_pixmap.o: apple_glx_drawable.h apple_glx_pixmap.c appledri.h include/GL/gl.h -apple_glx_surface.o: apple_glx_drawable.h apple_glx_surface.c appledri.h include/GL/gl.h -xfont.o: xfont.c include/GL/gl.h -compsize.o: compsize.c include/GL/gl.h -renderpix.o: renderpix.c include/GL/gl.h -singlepix.o: singlepix.c include/GL/gl.h -pixel.o: pixel.c include/GL/gl.h -glx_empty.o: glx_empty.c include/GL/gl.h - -apple_xgl_api.c: apple_xgl_api.h -apple_xgl_api.h: gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl +all: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) + +SOURCES = \ + apple_cgl.c \ + apple_glx.c \ + apple_glx_context.c \ + apple_glx_drawable.c \ + apple_glx_pbuffer.c \ + apple_glx_pixmap.c \ + apple_glx_surface.c \ + apple_visual.c \ + apple_xgl_api.c \ + apple_xgl_api_read.c \ + apple_xgl_api_stereo.c \ + apple_xgl_api_viewport.c \ + appledri.c \ + ../clientattrib.c \ + ../compsize.c \ + ../glcontextmodes.c \ + glx_empty.c \ + glx_error.c \ + ../glx_pbuffer.c \ + ../glx_query.c \ + ../glxcmds.c \ + ../glxcurrent.c \ + ../glxext.c \ + ../glxextensions.c \ + glxreply.c \ + ../pixel.c \ + ../xfont.c + +include $(TOP)/src/mesa/sources.mak + +LDFLAGS += -lXplugin -framework ApplicationServices -framework CoreFoundation + +MESA_GLAPI_ASM_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_ASM_SOURCES)) +MESA_GLAPI_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_SOURCES)) +MESA_GLAPI_OBJECTS = $(addprefix $(TOP)/src/mesa/, $(GLAPI_OBJECTS)) + +OBJECTS = $(SOURCES:.c=.o) # $(MESA_GLAPI_OBJECTS) + +INCLUDES = -I. -Iinclude -I..\ + -I$(TOP)/include \ + -I$(TOP)/include/GL/internal \ + -I$(TOP)/src/mesa \ + -I$(TOP)/src/mesa/glapi \ + $(LIBDRM_CFLAGS) \ + $(DRI2PROTO_CFLAGS) \ + $(X11_INCLUDES) + +##### RULES ##### + +$(OBJECTS) : include/GL/gl.h apple_xgl_api.h + +apple_xgl_api.c : apple_xgl_api.h + +apple_xgl_api.h : gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl $(TCLSH) gen_code.tcl include/GL/gl.h: include/GL/gl.h.template gen_gl_h.sh ./gen_gl_h.sh include/GL/gl.h.template $@ +.c.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@ + +.S.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@ + +##### TARGETS ##### + +default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) + +# Make libGL +$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile + $(MKLIB) -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ + -major 1 -minor 2 $(MKLIB_OPTIONS) \ + -install $(TOP)/$(LIB_DIR) -id $(INSTALL_LIB_DIR)/lib$(GL_LIB).1.dylib \ + $(GL_LIB_DEPS) $(OBJECTS) + +depend: $(SOURCES) $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) Makefile + rm -f depend + touch depend + $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) \ + $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) + +# Emacs tags +tags: + etags `find . -name \*.[ch]` `find $(TOP)/include` + install_headers: include/GL/gl.h $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GL - $(INSTALL) -m 644 include/GL/gl.h include/GL/glext.h include/GL/glx.h include/GL/glxext.h $(DESTDIR)$(INSTALL_DIR)/include/GL + $(INSTALL) -m 644 include/GL/gl.h $(DESTDIR)$(INSTALL_DIR)/include/GL -install_libraries: $(BUILD_DIR)/libGL.1.2.dylib - $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/lib - $(INSTALL) -m 755 $(BUILD_DIR)/libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib - $(RM) -f $(DESTDIR)$(INSTALL_DIR)/lib/libGL.dylib - $(LN) -s libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib/libGL.dylib - $(RM) -f $(DESTDIR)$(INSTALL_DIR)/lib/libGL.1.dylib - $(LN) -s libGL.1.2.dylib $(DESTDIR)$(INSTALL_DIR)/lib/libGL.1.dylib +install_libraries: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) + $(MAKE) -C $(TOP)/src/mesa install-libgl install: install_headers install_libraries +#%.c : ../%.c +# ln -s $< + +# Remove .o and backup files clean: - rm -rf $(BUILD_DIR) - rm -f *.o *.a - rm -f *.c~ *.h~ - rm -f apple_xgl_api.h apple_xgl_api.c - rm -f *.dylib - rm -f include/GL/gl.h - -%.c : ../%.c - ln -s $< + -rm -f *.o *.a *~ + -rm -f *.c~ *.h~ + -rm -f apple_xgl_api.h apple_xgl_api.c + -rm -f *.dylib + -rm -f include/GL/gl.h + -rm -f $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB) + -rm -f *.o *~ + -rm -f depend depend.bak + +-include depend diff --git a/src/glx/clientattrib.c b/src/glx/clientattrib.c index a7dfb53486..b26c17938d 100644 --- a/src/glx/clientattrib.c +++ b/src/glx/clientattrib.c @@ -35,6 +35,7 @@ /*****************************************************************************/ +#ifndef GLX_USE_APPLEGL static void do_enable_disable(GLenum array, GLboolean val) { @@ -123,6 +124,7 @@ __indirect_glPopClientAttrib(void) return; } } +#endif void __glFreeAttributeState(__GLXcontext * gc) -- cgit v1.2.3 From 69ea4e7718efb60b6b0d795a355cebd6712ceac1 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sat, 2 Jan 2010 00:03:53 -0500 Subject: apple: Use mesa gl.h rather than generating one. Signed-off-by: Jeremy Huddleston --- src/glx/apple/GL_aliases | 4 +- src/glx/apple/Makefile | 11 +-- src/glx/apple/apple_glx_pbuffer.c | 1 + src/glx/apple/apple_xgl_api_additional.c | 37 +++++++++ src/glx/apple/gen_funcs.tcl | 13 +--- src/glx/apple/gen_gl_h.sh | 33 -------- src/glx/apple/include/GL/gl.h.template | 130 ------------------------------- 7 files changed, 48 insertions(+), 181 deletions(-) create mode 100644 src/glx/apple/apple_xgl_api_additional.c delete mode 100644 src/glx/apple/gen_gl_h.sh delete mode 100644 src/glx/apple/include/GL/gl.h.template diff --git a/src/glx/apple/GL_aliases b/src/glx/apple/GL_aliases index a8390d2408..8de22383a7 100644 --- a/src/glx/apple/GL_aliases +++ b/src/glx/apple/GL_aliases @@ -5,4 +5,6 @@ alias DeleteTexturesEXT DeleteTextures alias GenTexturesEXT GenTextures alias IsTextureEXT IsTexture alias PrioritizeTexturesEXT PrioritizeTextures -alias TexImage3DEXT TexImage3D + +# Due to type conflicts, we handle this differently +#alias TexImage3DEXT TexImage3D diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile index 8fa5b01f28..279f7aded9 100644 --- a/src/glx/apple/Makefile +++ b/src/glx/apple/Makefile @@ -31,6 +31,7 @@ SOURCES = \ apple_glx_surface.c \ apple_visual.c \ apple_xgl_api.c \ + apple_xgl_api_additional.c \ apple_xgl_api_read.c \ apple_xgl_api_stereo.c \ apple_xgl_api_viewport.c \ @@ -71,16 +72,13 @@ INCLUDES = -I. -Iinclude -I..\ ##### RULES ##### -$(OBJECTS) : include/GL/gl.h apple_xgl_api.h +$(OBJECTS) : apple_xgl_api.h apple_xgl_api.c : apple_xgl_api.h apple_xgl_api.h : gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl $(TCLSH) gen_code.tcl -include/GL/gl.h: include/GL/gl.h.template gen_gl_h.sh - ./gen_gl_h.sh include/GL/gl.h.template $@ - .c.o: $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@ @@ -115,10 +113,7 @@ install_headers: include/GL/gl.h install_libraries: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(MAKE) -C $(TOP)/src/mesa install-libgl -install: install_headers install_libraries - -#%.c : ../%.c -# ln -s $< +install: install_libraries # Remove .o and backup files clean: diff --git a/src/glx/apple/apple_glx_pbuffer.c b/src/glx/apple/apple_glx_pbuffer.c index 3dfdc54763..fb56b7512e 100644 --- a/src/glx/apple/apple_glx_pbuffer.c +++ b/src/glx/apple/apple_glx_pbuffer.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "apple_glx.h" #include "glcontextmodes.h" #include "apple_glx_context.h" diff --git a/src/glx/apple/apple_xgl_api_additional.c b/src/glx/apple/apple_xgl_api_additional.c new file mode 100644 index 0000000000..7d40afe1d7 --- /dev/null +++ b/src/glx/apple/apple_xgl_api_additional.c @@ -0,0 +1,37 @@ +/* + Copyright (c) 2008, 2009 Apple Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. +*/ + +#define GL_GLEXT_PROTOTYPES +#include + +GLAPI void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei + depth, GLint border, GLenum format, GLenum type, const void * pixels) { + glTexImage3D(target, level, (GLint)internalformat, width, height, depth, border, format, type, pixels); +} + diff --git a/src/glx/apple/gen_funcs.tcl b/src/glx/apple/gen_funcs.tcl index ff314dc6a7..e78eb3278c 100644 --- a/src/glx/apple/gen_funcs.tcl +++ b/src/glx/apple/gen_funcs.tcl @@ -72,6 +72,8 @@ proc is-extension-supported? name { } #This is going to need to be updated for OpenGL >= 2.1 in SnowLeopard. +# TextureComponentCount is GLenum in SL for everything +# It is GLint in mesa, but is GLenum for glTexImage3DEXT array set typemap { void void List GLuint @@ -126,7 +128,7 @@ array set typemap { ShadingModel GLenum TextureTarget GLenum TextureParameterName GLenum - TextureComponentCount GLenum + TextureComponentCount GLint PixelFormat GLenum PixelType GLenum TextureEnvTarget GLenum @@ -412,14 +414,7 @@ proc translate-parameters {func parameters} { set type $typemap($ptype) - #In the gl.spec file is MultiDrawArrays first and count - #are really 'in' so we make them const. - #The gl.spec notes this problem. - if {("MultiDrawArrays" eq $func) && ("first" eq $var)} { - set final_type "const $type *" - } elseif {("MultiDrawArrays" eq $func) && ("count" eq $var)} { - set final_type "const $type *" - } elseif {"array" eq [lindex $p 3]} { + if {"array" eq [lindex $p 3]} { if {"in" eq [lindex $p 2]} { set final_type "const $type *" } else { diff --git a/src/glx/apple/gen_gl_h.sh b/src/glx/apple/gen_gl_h.sh deleted file mode 100644 index f10ddd0bfc..0000000000 --- a/src/glx/apple/gen_gl_h.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -INFILE=$1 -OUTFILE=$2 - -generate_macros() { - grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl{,ext}.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"' -} - -generate_function_pointers() { - { - echo "#define GL_GLEXT_FUNCTION_POINTERS 1" - echo "#define GL_GLEXT_LEGACY 1" - generate_macros - echo '#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h"' - } | ${CC:-gcc} -E - | grep typedef.*PFN -} - -cat ${INFILE} | while IFS= read LINE ; do - case $LINE in - "@CGL_MESA_COMPAT_MACROS@") - generate_macros - ;; - "@CGL_MESA_FUNCTION_POINTERS@") - if ! grep -q GL_GLEXT_PROTOTYPES /System/Library/Frameworks/OpenGL.framework/Headers/gl.h ; then - generate_function_pointers - fi - ;; - *) - printf "${LINE}\n" - ;; - esac -done > ${OUTFILE} diff --git a/src/glx/apple/include/GL/gl.h.template b/src/glx/apple/include/GL/gl.h.template deleted file mode 100644 index 72169f98c3..0000000000 --- a/src/glx/apple/include/GL/gl.h.template +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - * Copyright (C) 2009 Apple Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef __X_GL_H -#define __X_GL_H - -/* The following macros exist to address conflicts between the names given to - * function pointers by the MESA API and OpenGL.framework's API. - */ -@CGL_MESA_COMPAT_MACROS@ - -/* On SL, we want to use OpelGL.framework's headers to get both prototypes and - * function pointers (like Mesa's API), but on Leo and before, OpenGL.framework - * can't give us both. - */ - -#ifdef GL_GLEXT_FUNCTION_POINTERS -#define _GL_GLEXT_FUNCTION_POINTERS GL_GLEXT_FUNCTION_POINTERS -#undef GL_GLEXT_FUNCTION_POINTERS -#endif - -#ifdef GL_GLEXT_PROTOTYPES -#define _GL_GLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES -#else -#define GL_GLEXT_PROTOTYPES 1 -#endif - -/* Our glext.h is based on a version from the registry that is newer. */ -#ifdef GL_GLEXT_LEGACY -#define _GL_GLEXT_LEGACY GL_GLEXT_LEGACY -#else -#define GL_GLEXT_LEGACY 1 -#endif - -#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h" - -/* These are not set by the system gl.h */ -#define GL_VERSION_1_2_DEPRECATED 1 -#define GL_VERSION_1_3_DEPRECATED 1 -#define GL_VERSION_1_4_DEPRECATED 1 - -/* Restore our GLEXT-fu */ -#ifdef _GL_GLEXT_FUNCTION_POINTERS -#define GL_GLEXT_FUNCTION_POINTERS _GL_GLEXT_FUNCTION_POINTERS -#undef _GL_GLEXT_FUNCTION_POINTERS -#endif - -#ifdef _GL_GLEXT_PROTOTYPES -#undef _GL_GLEXT_PROTOTYPES -#else -#undef GL_GLEXT_PROTOTYPES -#endif - -#ifdef _GL_GLEXT_LEGACY -#undef _GL_GLEXT_LEGACY -#else -#undef GL_GLEXT_LEGACY -#endif - -@CGL_MESA_FUNCTION_POINTERS@ - -#ifndef GL_GLEXT_LEGACY -#include -#endif - -/* - * This is needed for building apple_glx_pbuffer.c, the latest - * glext.h from the registry lacks it, so it's from the Leopard glext.h: - */ -#ifndef GL_TEXTURE_RECTANGLE_EXT -#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 -#endif - -/* This is needed for building the X server: */ -/* - * GL_MESA_packed_depth_stencil - */ -#ifndef GL_MESA_packed_depth_stencil -#define GL_MESA_packed_depth_stencil 1 - -#define GL_DEPTH_STENCIL_MESA 0x8750 -#define GL_UNSIGNED_INT_24_8_MESA 0x8751 -#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 -#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 -#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -#endif /* GL_MESA_packed_depth_stencil */ - -/* Various other OS projects expect to get these macros from Mesa's gl.h */ -#ifndef GLAPI -#define GLAPI extern -#endif - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef APIENTRY -#define APIENTRY GLAPIENTRY -#endif - -/* "P" suffix to be used for a pointer to a function */ -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#endif /*__X_GL_H*/ -- cgit v1.2.3 From 9aadc793f3db64cefa0b08f18abad424a659dacc Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 12:14:08 -0700 Subject: apple: Don't build gallium Signed-off-by: Jeremy Huddleston --- configs/darwin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/darwin b/configs/darwin index e519684877..165d81327d 100644 --- a/configs/darwin +++ b/configs/darwin @@ -52,7 +52,7 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm # omit glw lib for now: -SRC_DIRS = glsl glx/apple mesa gallium glu glut/glx glew +SRC_DIRS = glsl glx/apple mesa glu glut/glx glew GLU_DIRS = sgi DRIVER_DIRS = osmesa #DRIVER_DIRS = dri -- cgit v1.2.3 From 950300eb255f0e3507bf2757d16c3b5bc8ff3471 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Thu, 1 Apr 2010 14:41:18 -0700 Subject: util: Init half-float tables on demand. Gets rid of unnecessary delays on startup and compiler-specific hax. --- src/gallium/auxiliary/util/u_half.c | 12 ++++++--- src/gallium/auxiliary/util/u_half.h | 7 ++++- src/gallium/auxiliary/util/u_init.h | 52 ------------------------------------- 3 files changed, 14 insertions(+), 57 deletions(-) delete mode 100644 src/gallium/auxiliary/util/u_init.h diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 4611b201b9..64eaa00dcc 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -50,7 +50,6 @@ */ #include "util/u_half.h" -#include "util/u_init.h" uint32_t util_half_to_float_mantissa_table[2048]; uint32_t util_half_to_float_exponent_table[64]; @@ -58,10 +57,15 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -static void util_half_init_tables(void) +void util_half_init_tables(void) { + static boolean inited = FALSE; int i; + if (inited) { + return; + } + /* zero */ util_half_to_float_mantissa_table[0] = 0; @@ -153,6 +157,6 @@ static void util_half_init_tables(void) util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; } -} -UTIL_INIT(util_half_init_tables); + inited = TRUE; +} diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 5afdd925a6..50948cadf5 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -8,13 +8,14 @@ extern "C" { #endif - extern uint32_t util_half_to_float_mantissa_table[2048]; extern uint32_t util_half_to_float_exponent_table[64]; extern uint32_t util_half_to_float_offset_table[64]; extern uint16_t util_float_to_half_base_table[512]; extern uint8_t util_float_to_half_shift_table[512]; +void util_half_init_tables(void); + /* * Note that if the half float is a signaling NaN, the x87 FPU will turn * it into a quiet NaN immediately upon loading into a float. @@ -30,6 +31,7 @@ static INLINE uint32_t util_half_to_floatui(half h) { unsigned exp = h >> 10; + util_half_init_tables(); return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] + util_half_to_float_exponent_table[exp]; } @@ -38,6 +40,7 @@ static INLINE float util_half_to_float(half h) { union fi r; + util_half_init_tables(); r.ui = util_half_to_floatui(h); return r.f; } @@ -46,6 +49,7 @@ static INLINE half util_floatui_to_half(uint32_t v) { unsigned signexp = v >> 23; + util_half_init_tables(); return util_float_to_half_base_table[signexp] + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); } @@ -54,6 +58,7 @@ static INLINE half util_float_to_half(float f) { union fi i; + util_half_init_tables(); i.f = f; return util_floatui_to_half(i.ui); } diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h deleted file mode 100644 index 40dafadf97..0000000000 --- a/src/gallium/auxiliary/util/u_init.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010 Luca Barbieri - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - -#ifndef U_INIT_H -#define U_INIT_H - -/* Use UTIL_INIT(f) to have f called at program initialization. - Note that it is only guaranteed to be called if any symbol in the - .c file it is in sis referenced by the program. - - UTIL_INIT functions are called in arbitrary order. -*/ - -#ifdef __cplusplus -/* use a C++ global constructor */ -#define UTIL_INIT(f) struct f##__gctor_t {f##__gctor_t() {x();}} f##__gctor; -#elif defined(_MSC_VER) -/* add a pointer to the section where MSVC stores global constructor pointers */ -/* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and - http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */ -#pragma data_seg(".CRT$XCU") -#define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init; -#elif defined(__GNUC__) -#define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();} -#else -#error Unsupported compiler: please find out how to implement global initializers in C on it -#endif - -#endif - -- cgit v1.2.3 From e40fce13e152ecf929c899ed38a8e5f7d198c738 Mon Sep 17 00:00:00 2001 From: Dan Nicholson Date: Thu, 1 Apr 2010 14:59:10 -0700 Subject: progs: Fix linking of Xlib demos for non-autoconf builds The Xlib demos were fixed to use $(X11_LIBS) so that configure could detect the proper directory to link the library from, but this broke the non-autoconf builds. Give X11_LIBS a default value to fallback on. --- configs/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/default b/configs/default index 77a9898775..593fc32b7d 100644 --- a/configs/default +++ b/configs/default @@ -119,7 +119,7 @@ APP_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LI # Program dependencies - specific GL/glut libraries added in Makefiles APP_LIB_DEPS = -lm - +X11_LIBS = -lX11 # Installation directories (for make install) INSTALL_DIR = /usr/local -- cgit v1.2.3 From 7bb54c99a466883af3ac3e79426def17dcfa8d89 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 00:34:44 +0200 Subject: Revert "util: Init half-float tables on demand." This reverts commit 950300eb255f0e3507bf2757d16c3b5bc8ff3471. --- src/gallium/auxiliary/util/u_half.c | 12 +++------ src/gallium/auxiliary/util/u_half.h | 7 +---- src/gallium/auxiliary/util/u_init.h | 52 +++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_init.h diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 64eaa00dcc..4611b201b9 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -50,6 +50,7 @@ */ #include "util/u_half.h" +#include "util/u_init.h" uint32_t util_half_to_float_mantissa_table[2048]; uint32_t util_half_to_float_exponent_table[64]; @@ -57,15 +58,10 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -void util_half_init_tables(void) +static void util_half_init_tables(void) { - static boolean inited = FALSE; int i; - if (inited) { - return; - } - /* zero */ util_half_to_float_mantissa_table[0] = 0; @@ -157,6 +153,6 @@ void util_half_init_tables(void) util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; } - - inited = TRUE; } + +UTIL_INIT(util_half_init_tables); diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 50948cadf5..5afdd925a6 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -8,14 +8,13 @@ extern "C" { #endif + extern uint32_t util_half_to_float_mantissa_table[2048]; extern uint32_t util_half_to_float_exponent_table[64]; extern uint32_t util_half_to_float_offset_table[64]; extern uint16_t util_float_to_half_base_table[512]; extern uint8_t util_float_to_half_shift_table[512]; -void util_half_init_tables(void); - /* * Note that if the half float is a signaling NaN, the x87 FPU will turn * it into a quiet NaN immediately upon loading into a float. @@ -31,7 +30,6 @@ static INLINE uint32_t util_half_to_floatui(half h) { unsigned exp = h >> 10; - util_half_init_tables(); return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] + util_half_to_float_exponent_table[exp]; } @@ -40,7 +38,6 @@ static INLINE float util_half_to_float(half h) { union fi r; - util_half_init_tables(); r.ui = util_half_to_floatui(h); return r.f; } @@ -49,7 +46,6 @@ static INLINE half util_floatui_to_half(uint32_t v) { unsigned signexp = v >> 23; - util_half_init_tables(); return util_float_to_half_base_table[signexp] + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); } @@ -58,7 +54,6 @@ static INLINE half util_float_to_half(float f) { union fi i; - util_half_init_tables(); i.f = f; return util_floatui_to_half(i.ui); } diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h new file mode 100644 index 0000000000..40dafadf97 --- /dev/null +++ b/src/gallium/auxiliary/util/u_init.h @@ -0,0 +1,52 @@ +/* + * Copyright 2010 Luca Barbieri + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#ifndef U_INIT_H +#define U_INIT_H + +/* Use UTIL_INIT(f) to have f called at program initialization. + Note that it is only guaranteed to be called if any symbol in the + .c file it is in sis referenced by the program. + + UTIL_INIT functions are called in arbitrary order. +*/ + +#ifdef __cplusplus +/* use a C++ global constructor */ +#define UTIL_INIT(f) struct f##__gctor_t {f##__gctor_t() {x();}} f##__gctor; +#elif defined(_MSC_VER) +/* add a pointer to the section where MSVC stores global constructor pointers */ +/* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and + http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */ +#pragma data_seg(".CRT$XCU") +#define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init; +#elif defined(__GNUC__) +#define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();} +#else +#error Unsupported compiler: please find out how to implement global initializers in C on it +#endif + +#endif + -- cgit v1.2.3 From 6c5f444f596984778a786b49058d3cf2a4fd2c2c Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 00:39:08 +0200 Subject: gallium/util: reindent u_half.c and u_half.h with Mesa coding style Sorry, forgout about that. --- src/gallium/auxiliary/util/u_half.c | 195 +++++++++++++++++++----------------- src/gallium/auxiliary/util/u_half.h | 24 ++--- 2 files changed, 112 insertions(+), 107 deletions(-) diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 4611b201b9..96b83e5ac0 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -1,3 +1,4 @@ + /* * Copyright 2010 Luca Barbieri * @@ -58,101 +59,107 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -static void util_half_init_tables(void) +static void +util_half_init_tables(void) { - int i; - - /* zero */ - util_half_to_float_mantissa_table[0] = 0; - - /* denormals */ - for(i = 1; i < 1024; ++i) { - unsigned int m = i << 13; - unsigned int e = 0; - - /* Normalize number */ - while(!(m & 0x00800000)) { - e -= 0x00800000; - m<<=1; - } - m &= ~0x00800000; - e+= 0x38800000; - util_half_to_float_mantissa_table[i] = m | e; - } - - /* normals */ - for(i = 1024; i < 2048; ++i) - util_half_to_float_mantissa_table[i] = ((i-1024)<<13); - - /* positive zero or denormals */ - util_half_to_float_exponent_table[0] = 0; - - /* positive numbers */ - for(i = 1; i <= 30; ++i) - util_half_to_float_exponent_table[i] = 0x38000000 + (i << 23); - - /* positive infinity/NaN */ - util_half_to_float_exponent_table[31] = 0x7f800000; - - /* negative zero or denormals */ - util_half_to_float_exponent_table[32] = 0x80000000; - - /* negative numbers */ - for(i = 33; i <= 62; ++i) - util_half_to_float_exponent_table[i] = 0xb8000000 + ((i - 32) << 23); - - /* negative infinity/NaN */ - util_half_to_float_exponent_table[63] = 0xff800000; - - /* positive zero or denormals */ - util_half_to_float_offset_table[0] = 0; - - /* positive normals */ - for(i = 1; i < 32; ++i) - util_half_to_float_offset_table[i] = 1024; - - /* negative zero or denormals */ - util_half_to_float_offset_table[32] = 0; - - /* negative normals */ - for(i = 33; i < 64; ++i) - util_half_to_float_offset_table[i] = 1024; - - - - /* very small numbers mapping to zero */ - for(i = -127; i < -24; ++i) { - util_float_to_half_base_table[127 + i] = 0; - util_float_to_half_shift_table[127 + i] = 24; - } - - /* small numbers mapping to denormals */ - for(i = -24; i < -14; ++i) { - util_float_to_half_base_table[127 + i] = 0x0400 >> (-14 - i); - util_float_to_half_shift_table[127 + i] = -i - 1; - } - - /* normal numbers */ - for(i = -14; i < 16; ++i) { - util_float_to_half_base_table[127 + i] = (i + 15) << 10; - util_float_to_half_shift_table[127 + i] = 13; - } - - /* large numbers mapping to infinity */ - for(i = 16; i < 128; ++i) { - util_float_to_half_base_table[127 + i] = 0x7c00; - util_float_to_half_shift_table[127 + i] = 24; - } - - /* infinity and NaNs */ - util_float_to_half_base_table[255] = 0x7c00; - util_float_to_half_shift_table[255] = 13; - - /* negative numbers */ - for(i = 0; i < 256; ++i) { - util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; - util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; - } + int i; + + /* zero */ + util_half_to_float_mantissa_table[0] = 0; + + /* denormals */ + for(i = 1; i < 1024; ++i) + { + unsigned int m = i << 13; + unsigned int e = 0; + + /* Normalize number */ + while(!(m & 0x00800000)) + { + e -= 0x00800000; + m <<= 1; + } + m &= ~0x00800000; + e += 0x38800000; + util_half_to_float_mantissa_table[i] = m | e; + } + + /* normals */ + for(i = 1024; i < 2048; ++i) + util_half_to_float_mantissa_table[i] = ((i - 1024) << 13); + + /* positive zero or denormals */ + util_half_to_float_exponent_table[0] = 0; + + /* positive numbers */ + for(i = 1; i <= 30; ++i) + util_half_to_float_exponent_table[i] = 0x38000000 + (i << 23); + + /* positive infinity/NaN */ + util_half_to_float_exponent_table[31] = 0x7f800000; + + /* negative zero or denormals */ + util_half_to_float_exponent_table[32] = 0x80000000; + + /* negative numbers */ + for(i = 33; i <= 62; ++i) + util_half_to_float_exponent_table[i] = 0xb8000000 + ((i - 32) << 23); + + /* negative infinity/NaN */ + util_half_to_float_exponent_table[63] = 0xff800000; + + /* positive zero or denormals */ + util_half_to_float_offset_table[0] = 0; + + /* positive normals */ + for(i = 1; i < 32; ++i) + util_half_to_float_offset_table[i] = 1024; + + /* negative zero or denormals */ + util_half_to_float_offset_table[32] = 0; + + /* negative normals */ + for(i = 33; i < 64; ++i) + util_half_to_float_offset_table[i] = 1024; + + /* very small numbers mapping to zero */ + for(i = -127; i < -24; ++i) + { + util_float_to_half_base_table[127 + i] = 0; + util_float_to_half_shift_table[127 + i] = 24; + } + + /* small numbers mapping to denormals */ + for(i = -24; i < -14; ++i) + { + util_float_to_half_base_table[127 + i] = 0x0400 >> (-14 - i); + util_float_to_half_shift_table[127 + i] = -i - 1; + } + + /* normal numbers */ + for(i = -14; i < 16; ++i) + { + util_float_to_half_base_table[127 + i] = (i + 15) << 10; + util_float_to_half_shift_table[127 + i] = 13; + } + + /* large numbers mapping to infinity */ + for(i = 16; i < 128; ++i) + { + util_float_to_half_base_table[127 + i] = 0x7c00; + util_float_to_half_shift_table[127 + i] = 24; + } + + /* infinity and NaNs */ + util_float_to_half_base_table[255] = 0x7c00; + util_float_to_half_shift_table[255] = 13; + + /* negative numbers */ + for(i = 0; i < 256; ++i) + { + util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; + util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; + } } UTIL_INIT(util_half_init_tables); diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 5afdd925a6..4b80d45b91 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -8,7 +8,6 @@ extern "C" { #endif - extern uint32_t util_half_to_float_mantissa_table[2048]; extern uint32_t util_half_to_float_exponent_table[64]; extern uint32_t util_half_to_float_offset_table[64]; @@ -29,33 +28,31 @@ extern uint8_t util_float_to_half_shift_table[512]; static INLINE uint32_t util_half_to_floatui(half h) { - unsigned exp = h >> 10; - return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] - + util_half_to_float_exponent_table[exp]; + unsigned exp = h >> 10; + return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] + util_half_to_float_exponent_table[exp]; } static INLINE float util_half_to_float(half h) { - union fi r; - r.ui = util_half_to_floatui(h); - return r.f; + union fi r; + r.ui = util_half_to_floatui(h); + return r.f; } static INLINE half util_floatui_to_half(uint32_t v) { - unsigned signexp = v >> 23; - return util_float_to_half_base_table[signexp] - + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); + unsigned signexp = v >> 23; + return util_float_to_half_base_table[signexp] + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); } static INLINE half util_float_to_half(float f) { - union fi i; - i.f = f; - return util_floatui_to_half(i.ui); + union fi i; + i.f = f; + return util_floatui_to_half(i.ui); } #ifdef __cplusplus @@ -63,3 +60,4 @@ util_float_to_half(float f) #endif #endif /* U_HALF_H */ + -- cgit v1.2.3 From 3040462c10c19ba8f4a2ab64feee41a18c86a578 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 00:41:51 +0200 Subject: gallium/util: use #pragma section instead of #pragma data_seg They apparently both declare the section, but #pragma data_seg also puts all subsequent definitions in the section, which is undesirable. This should be the correct solution, and is actually used by the reference I cited (but I forgot to do it in my code). Untested, let me know if it doesn't work. --- src/gallium/auxiliary/util/u_init.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_init.h b/src/gallium/auxiliary/util/u_init.h index 40dafadf97..7bc356a791 100644 --- a/src/gallium/auxiliary/util/u_init.h +++ b/src/gallium/auxiliary/util/u_init.h @@ -40,7 +40,7 @@ /* add a pointer to the section where MSVC stores global constructor pointers */ /* see http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx and http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc */ -#pragma data_seg(".CRT$XCU") +#pragma section(".CRT$XCU",read) #define UTIL_INIT(f) static void __cdecl f##__init(void) {f();}; __declspec(allocate(".CRT$XCU")) void (__cdecl* f##__xcu)(void) = f##__init; #elif defined(__GNUC__) #define UTIL_INIT(f) static void f##__init(void) __attribute__((constructor)); static void f##__init(void) {f();} -- cgit v1.2.3 From ab5c09738760bc1b665b9809eaf921f4ac27057e Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 1 Apr 2010 18:58:51 -0400 Subject: draw llvm: a lot better storing implementation --- src/gallium/auxiliary/draw/draw_llvm.c | 148 ++++++++++++++++++++- src/gallium/auxiliary/draw/draw_llvm.h | 11 ++ .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 + 3 files changed, 157 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 2978621826..30058c8cff 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -13,6 +13,7 @@ #include "gallivm/lp_bld_printf.h" #include "util/u_cpu_detect.h" +#include "tgsi/tgsi_dump.h" #include @@ -202,8 +203,7 @@ generate_vs(struct draw_llvm *llvm, LLVMBuilderRef builder, LLVMValueRef (*outputs)[NUM_CHANNELS], const LLVMValueRef (*inputs)[NUM_CHANNELS], - LLVMValueRef context_ptr, - LLVMValueRef io) + LLVMValueRef context_ptr) { const struct tgsi_token *tokens = llvm->draw->vs.vertex_shader->state.tokens; struct lp_type vs_type; @@ -219,6 +219,7 @@ generate_vs(struct draw_llvm *llvm, num_vs = 4; /* number of vertices per block */ #endif + tgsi_dump(tokens, 0); lp_build_tgsi_soa(builder, tokens, vs_type, @@ -319,6 +320,41 @@ aos_to_soa(LLVMBuilderRef builder, return res; } +static void +soa_to_aos(LLVMBuilderRef builder, + LLVMValueRef soa[NUM_CHANNELS], + LLVMValueRef aos[NUM_CHANNELS]) +{ + LLVMValueRef comp; + int i = 0; + + debug_assert(NUM_CHANNELS == 4); + + aos[0] = LLVMConstNull(LLVMTypeOf(soa[0])); + aos[1] = aos[2] = aos[3] = aos[0]; + + for (i = 0; i < NUM_CHANNELS; ++i) { + LLVMValueRef channel = LLVMConstInt(LLVMInt32Type(), i, 0); + + comp = LLVMBuildExtractElement(builder, soa[i], + LLVMConstInt(LLVMInt32Type(), 0, 0), ""); + aos[0] = LLVMBuildInsertElement(builder, aos[0], comp, channel, ""); + + comp = LLVMBuildExtractElement(builder, soa[i], + LLVMConstInt(LLVMInt32Type(), 1, 0), ""); + aos[1] = LLVMBuildInsertElement(builder, aos[1], comp, channel, ""); + + comp = LLVMBuildExtractElement(builder, soa[i], + LLVMConstInt(LLVMInt32Type(), 2, 0), ""); + aos[2] = LLVMBuildInsertElement(builder, aos[2], comp, channel, ""); + + comp = LLVMBuildExtractElement(builder, soa[i], + LLVMConstInt(LLVMInt32Type(), 3, 0), ""); + aos[3] = LLVMBuildInsertElement(builder, aos[3], comp, channel, ""); + + } +} + static void convert_to_soa(LLVMBuilderRef builder, LLVMValueRef (*aos)[NUM_CHANNELS], @@ -346,6 +382,107 @@ convert_to_soa(LLVMBuilderRef builder, } } +static void +store_aos(LLVMBuilderRef builder, + LLVMValueRef io_ptr, + LLVMValueRef index, + LLVMValueRef value) +{ + LLVMValueRef id_ptr = draw_jit_header_id(builder, io_ptr); + LLVMValueRef data_ptr = draw_jit_header_data(builder, io_ptr); + LLVMValueRef indices[2]; + + indices[0] = LLVMConstInt(LLVMInt32Type(), 0, 0); + indices[1] = index; + + /* undefined vertex */ + LLVMBuildStore(builder, LLVMConstInt(LLVMInt32Type(), + 0xffff, 0), id_ptr); + + + data_ptr = LLVMBuildInBoundsGEP(builder, data_ptr, indices, 2, ""); + lp_build_printf(builder, " ---- storing at %d (%p) ", index, data_ptr); + print_vectorf(builder, value); + data_ptr = LLVMBuildBitCast(builder, data_ptr, + LLVMPointerType(LLVMVectorType(LLVMFloatType(), 4), 0), + "datavec"); + LLVMBuildStore(builder, value, data_ptr); + lp_build_printf(builder, " ++ stored\n"); +} + +static void +store_aos_array(LLVMBuilderRef builder, + LLVMValueRef io_ptr, + LLVMValueRef aos[NUM_CHANNELS], + LLVMValueRef start_index, + int attrib, + int num_outputs) +{ + LLVMValueRef attr_index = LLVMConstInt(LLVMInt32Type(), attrib, 0); + LLVMValueRef ind0 = start_index; + LLVMValueRef ind1 = + LLVMBuildAdd(builder, start_index, + LLVMConstInt(LLVMInt32Type(), 1, 0), ""); + LLVMValueRef ind2 = + LLVMBuildAdd(builder, start_index, + LLVMConstInt(LLVMInt32Type(), 2, 0), ""); + LLVMValueRef ind3 = + LLVMBuildAdd(builder, start_index, + LLVMConstInt(LLVMInt32Type(), 3, 0), ""); + LLVMValueRef io0_ptr, io1_ptr, io2_ptr, io3_ptr; + + debug_assert(NUM_CHANNELS == 4); + + io0_ptr = LLVMBuildGEP(builder, io_ptr, + &ind0, 1, ""); + io1_ptr = LLVMBuildGEP(builder, io_ptr, + &ind1, 1, ""); + io2_ptr = LLVMBuildGEP(builder, io_ptr, + &ind2, 1, ""); + io3_ptr = LLVMBuildGEP(builder, io_ptr, + &ind3, 1, ""); + + store_aos(builder, io0_ptr, attr_index, aos[0]); + store_aos(builder, io1_ptr, attr_index, aos[1]); + store_aos(builder, io2_ptr, attr_index, aos[2]); + store_aos(builder, io3_ptr, attr_index, aos[3]); +} + +static void +convert_to_aos(LLVMBuilderRef builder, + LLVMValueRef io, + LLVMValueRef (*outputs)[NUM_CHANNELS], + int num_outputs, + int max_vertices, + LLVMValueRef start_index) +{ + unsigned chan, attrib; + + for (attrib = 0; attrib < num_outputs; ++attrib) { + LLVMValueRef soa[4]; + LLVMValueRef aos[4]; + for(chan = 0; chan < NUM_CHANNELS; ++chan) { + if(outputs[attrib][chan]) { + LLVMValueRef out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); + lp_build_name(out, "output%u.%c", attrib, "xyzw"[chan]); + lp_build_printf(builder, "output %d : %d ", + LLVMConstInt(LLVMInt32Type(), attrib, 0), + LLVMConstInt(LLVMInt32Type(), chan, 0)); + print_vectorf(builder, out); + soa[chan] = out; + } else + soa[chan] = 0; + } + soa_to_aos(builder, soa, aos); + store_aos_array(builder, + io, + aos, + start_index, + attrib, + num_outputs); + } +} + void draw_llvm_generate(struct draw_llvm *llvm) { @@ -437,8 +574,11 @@ draw_llvm_generate(struct draw_llvm *llvm) builder, outputs, ptr_aos, - context_ptr, - io); + context_ptr); + + convert_to_aos(builder, io, outputs, + draw->vs.vertex_shader->info.num_outputs, + max_vertices, lp_loop.counter); } lp_build_loop_end(builder, end, step, &lp_loop); diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index e375008f3b..46ce236e3c 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -63,6 +63,17 @@ struct draw_jit_context #define draw_jit_context_textures(_builder, _ptr) \ lp_build_struct_get_ptr(_builder, _ptr, DRAW_JIT_CONTEXT_TEXTURES_INDEX, "textures") + + +#define draw_jit_header_id(_builder, _ptr) \ + lp_build_struct_get_ptr(_builder, _ptr, 0, "id") + +#define draw_jit_header_clip(_builder, _ptr) \ + lp_build_struct_get(_builder, _ptr, 1, "clip") + +#define draw_jit_header_data(_builder, _ptr) \ + lp_build_struct_get_ptr(_builder, _ptr, 2, "data") + /* we are construction a function of the form: struct vertex_header { diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index f93df37d92..07d464b159 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -245,6 +245,8 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, return; } + debug_printf("--- pipe verts data[0] = %p, data[1] = %p\n", + pipeline_verts->data[0], pipeline_verts->data[1]); fpme->llvm->jit_func( &fpme->llvm->jit_context, pipeline_verts, (const char **)draw->pt.user.vbuffer, -- cgit v1.2.3 From ecaaf8c15f98551f809d5219f87af7fdb451c029 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 02:01:25 +0200 Subject: gallium/util: add one-time initialization helper --- src/gallium/auxiliary/util/u_inline_init.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/gallium/auxiliary/util/u_inline_init.h diff --git a/src/gallium/auxiliary/util/u_inline_init.h b/src/gallium/auxiliary/util/u_inline_init.h new file mode 100644 index 0000000000..7f2c591a3d --- /dev/null +++ b/src/gallium/auxiliary/util/u_inline_init.h @@ -0,0 +1,15 @@ +#ifndef U_INLINE_INIT_H_ +#define U_INLINE_INIT_H_ + +#define UTIL_INLINE_INIT(m) \ + extern boolean m##_inited; \ + extern void m##_do_init(void); \ + static inline void m##_init(void) \ + { \ + if(!m##_inited) { \ + m##_do_init(); \ + m##_inited = TRUE; \ + } \ + } + +#endif /* U_INLINE_INIT_H_ */ -- cgit v1.2.3 From 115203281cf791221f586f03c14cfe4e0a44dd7a Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 17:00:22 -0700 Subject: Revert accidental commits from the xquartz tree This reverts commit 9aadc793f3db64cefa0b08f18abad424a659dacc. This reverts commit 69ea4e7718efb60b6b0d795a355cebd6712ceac1. This reverts commit dbe8b013936d977ec63d6607bfd2fc6772d29787. This reverts commit 23215ef4d60a86d9f3b3fdc08e3fdadc59e98890. This reverts commit 9495e3703062d1ddaf3161f4efc23f0b51284d9b. This reverts commit 0594cf70883b64692ba617d85f4f9b4e636e5c2b. This reverts commit 86a7978d37393ee34f876569ac06ffdb8d7289ae. This reverts commit 437902ce978cde9a0e1aa260f12dc232a8501c42. --- configs/darwin | 7 +- progs/xdemos/Makefile | 47 +- src/glx/Makefile | 2 +- src/glx/XF86dri.c | 2 +- src/glx/apple/.gitignore | 4 - src/glx/apple/GL_aliases | 10 - src/glx/apple/GL_extensions | 106 - src/glx/apple/GL_noop | 15 - src/glx/apple/GL_promoted | 4 - src/glx/apple/Makefile | 129 - src/glx/apple/OVERALL_DESIGN | 18 - src/glx/apple/README_UPDATING | 8 - src/glx/apple/RELEASE_NOTES | 71 - src/glx/apple/TODO | 26 - src/glx/apple/apple_cgl.c | 128 - src/glx/apple/apple_cgl.h | 86 - src/glx/apple/apple_exports.list | 623 - src/glx/apple/apple_glx.c | 214 - src/glx/apple/apple_glx.h | 49 - src/glx/apple/apple_glx_context.c | 616 - src/glx/apple/apple_glx_context.h | 85 - src/glx/apple/apple_glx_drawable.c | 542 - src/glx/apple/apple_glx_drawable.h | 223 - src/glx/apple/apple_glx_pbuffer.c | 331 - src/glx/apple/apple_glx_pixmap.c | 230 - src/glx/apple/apple_glx_surface.c | 224 - src/glx/apple/apple_visual.c | 144 - src/glx/apple/apple_visual.h | 41 - src/glx/apple/apple_xgl_api_additional.c | 37 - src/glx/apple/apple_xgl_api_read.c | 134 - src/glx/apple/apple_xgl_api_read.h | 47 - src/glx/apple/apple_xgl_api_stereo.c | 119 - src/glx/apple/apple_xgl_api_stereo.h | 39 - src/glx/apple/apple_xgl_api_viewport.c | 45 - src/glx/apple/apple_xgl_api_viewport.h | 36 - src/glx/apple/appledri.c | 452 - src/glx/apple/appledri.h | 124 - src/glx/apple/appledristr.h | 266 - src/glx/apple/gen_api_header.tcl | 86 - src/glx/apple/gen_api_library.tcl | 212 - src/glx/apple/gen_code.tcl | 50 - src/glx/apple/gen_defs.tcl | 67 - src/glx/apple/gen_exports.tcl | 132 - src/glx/apple/gen_funcs.tcl | 630 - src/glx/apple/gen_types.tcl | 32 - src/glx/apple/glx_empty.c | 375 - src/glx/apple/glx_error.c | 65 - src/glx/apple/glx_error.h | 33 - src/glx/apple/glxreply.c | 134 - src/glx/apple/specs/enum.spec | 7487 -------- src/glx/apple/specs/enumext.spec | 6195 ------- src/glx/apple/specs/gl.spec | 26844 ----------------------------- src/glx/apple/specs/gl.tm | 317 - src/glx/apple/specs/glx.spec | 599 - src/glx/apple/specs/glxenum.spec | 414 - src/glx/apple/specs/glxenumext.spec | 503 - src/glx/apple/specs/glxext.spec | 1318 -- src/glx/clientattrib.c | 2 - src/glx/dri2_glx.c | 2 +- src/glx/dri_common.c | 2 +- src/glx/dri_glx.c | 2 +- src/glx/drisw_glx.c | 2 +- src/glx/glcontextmodes.c | 4 - src/glx/glx_pbuffer.c | 202 +- src/glx/glxclient.h | 20 +- src/glx/glxcmds.c | 211 +- src/glx/glxcurrent.c | 69 +- src/glx/glxext.c | 86 +- src/glx/glxextensions.c | 38 - src/glx/indirect.c | 30 +- src/glx/indirect_size.c | 2 +- src/glx/singlepix.c | 2 +- 72 files changed, 127 insertions(+), 51324 deletions(-) delete mode 100644 src/glx/apple/.gitignore delete mode 100644 src/glx/apple/GL_aliases delete mode 100644 src/glx/apple/GL_extensions delete mode 100644 src/glx/apple/GL_noop delete mode 100644 src/glx/apple/GL_promoted delete mode 100644 src/glx/apple/Makefile delete mode 100644 src/glx/apple/OVERALL_DESIGN delete mode 100644 src/glx/apple/README_UPDATING delete mode 100644 src/glx/apple/RELEASE_NOTES delete mode 100644 src/glx/apple/TODO delete mode 100644 src/glx/apple/apple_cgl.c delete mode 100644 src/glx/apple/apple_cgl.h delete mode 100644 src/glx/apple/apple_exports.list delete mode 100644 src/glx/apple/apple_glx.c delete mode 100644 src/glx/apple/apple_glx.h delete mode 100644 src/glx/apple/apple_glx_context.c delete mode 100644 src/glx/apple/apple_glx_context.h delete mode 100644 src/glx/apple/apple_glx_drawable.c delete mode 100644 src/glx/apple/apple_glx_drawable.h delete mode 100644 src/glx/apple/apple_glx_pbuffer.c delete mode 100644 src/glx/apple/apple_glx_pixmap.c delete mode 100644 src/glx/apple/apple_glx_surface.c delete mode 100644 src/glx/apple/apple_visual.c delete mode 100644 src/glx/apple/apple_visual.h delete mode 100644 src/glx/apple/apple_xgl_api_additional.c delete mode 100644 src/glx/apple/apple_xgl_api_read.c delete mode 100644 src/glx/apple/apple_xgl_api_read.h delete mode 100644 src/glx/apple/apple_xgl_api_stereo.c delete mode 100644 src/glx/apple/apple_xgl_api_stereo.h delete mode 100644 src/glx/apple/apple_xgl_api_viewport.c delete mode 100644 src/glx/apple/apple_xgl_api_viewport.h delete mode 100644 src/glx/apple/appledri.c delete mode 100644 src/glx/apple/appledri.h delete mode 100644 src/glx/apple/appledristr.h delete mode 100644 src/glx/apple/gen_api_header.tcl delete mode 100644 src/glx/apple/gen_api_library.tcl delete mode 100644 src/glx/apple/gen_code.tcl delete mode 100644 src/glx/apple/gen_defs.tcl delete mode 100644 src/glx/apple/gen_exports.tcl delete mode 100644 src/glx/apple/gen_funcs.tcl delete mode 100644 src/glx/apple/gen_types.tcl delete mode 100644 src/glx/apple/glx_empty.c delete mode 100644 src/glx/apple/glx_error.c delete mode 100644 src/glx/apple/glx_error.h delete mode 100644 src/glx/apple/glxreply.c delete mode 100644 src/glx/apple/specs/enum.spec delete mode 100644 src/glx/apple/specs/enumext.spec delete mode 100644 src/glx/apple/specs/gl.spec delete mode 100644 src/glx/apple/specs/gl.tm delete mode 100644 src/glx/apple/specs/glx.spec delete mode 100644 src/glx/apple/specs/glxenum.spec delete mode 100644 src/glx/apple/specs/glxenumext.spec delete mode 100644 src/glx/apple/specs/glxext.spec diff --git a/configs/darwin b/configs/darwin index 165d81327d..d28d5906ba 100644 --- a/configs/darwin +++ b/configs/darwin @@ -13,10 +13,7 @@ CC = gcc CXX = g++ PIC_FLAGS = -fPIC DEFINES = -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \ - -DGLX_ALIAS_UNSUPPORTED \ - -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL - -# -DGLX_INDIRECT_RENDERING \ + -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING # -D_GNU_SOURCE - for src/mesa/main ... # -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx @@ -52,7 +49,7 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm # omit glw lib for now: -SRC_DIRS = glsl glx/apple mesa glu glut/glx glew +SRC_DIRS = glsl glx mesa gallium glu glut/glx glew GLU_DIRS = sgi DRIVER_DIRS = osmesa #DRIVER_DIRS = dri diff --git a/progs/xdemos/Makefile b/progs/xdemos/Makefile index 29cba0c888..e87d55d011 100644 --- a/progs/xdemos/Makefile +++ b/progs/xdemos/Makefile @@ -11,7 +11,7 @@ LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) # Add X11 and pthread libs to satisfy GNU gold. APP_LIB_DEPS += -lX11 -lpthread -LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_LIB_DIR) $(APP_LIB_DEPS) +LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(libdir) $(APP_LIB_DEPS) PROGS = \ corender \ @@ -53,18 +53,17 @@ EXTRA_PROGS = \ ##### RULES ##### -.o: $(LIB_DEP) - $(APP_CC) $(LDFLAGS) $< $(LIBS) -o $@ +.SUFFIXES: +.SUFFIXES: .c -.c.o: - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< -c -o $@ +.c: $(LIB_DEP) + $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ ##### TARGETS ##### default: $(PROGS) -$(PROGS): $(PROGS:%=%.o) extra: $(EXTRA_PROGS) @@ -75,29 +74,45 @@ clean: # special cases -pbutil.o: pbutil.h -pbinfo.o: pbutil.h pbinfo: pbinfo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbinfo.o pbutil.o $(LIBS) -o $@ -pbdemo.o: pbutil.h pbdemo: pbdemo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbdemo.o pbutil.o $(LIBS) -o $@ -glxgears_fbconfig.o: pbutil.h +pbinfo.o: pbinfo.c pbutil.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbinfo.c + +pbdemo.o: pbdemo.c pbutil.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbdemo.c + +pbutil.o: pbutil.c pbutil.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbutil.c + glxgears_fbconfig: glxgears_fbconfig.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) glxgears_fbconfig.o pbutil.o $(LIBS) -o $@ -xuserotfont.o: xuserotfont.h -xrotfontdemo.o: xuserotfont.h +glxgears_fbconfig.o: glxgears_fbconfig.c pbutil.h + $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) -c -I. $(CFLAGS) glxgears_fbconfig.c + xrotfontdemo: xrotfontdemo.o xuserotfont.o $(APP_CC) $(CFLAGS) $(LDFLAGS) xrotfontdemo.o xuserotfont.o $(LIBS) -o $@ -ipc.o: ipc.h -corender.o: ipc.h +xuserotfont.o: xuserotfont.c xuserotfont.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xuserotfont.c + +xrotfontdemo.o: xrotfontdemo.c xuserotfont.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xrotfontdemo.c + corender: corender.o ipc.o $(APP_CC) $(CFLAGS) $(LDFLAGS) corender.o ipc.o $(LIBS) -o $@ -yuvrect_client: yuvrect_client.o - $(APP_CC) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ +corender.o: corender.c ipc.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) corender.c + +ipc.o: ipc.c ipc.h + $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) ipc.c + +yuvrect_client: yuvrect_client.c + $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ diff --git a/src/glx/Makefile b/src/glx/Makefile index c6ebc49828..6711fdc61b 100644 --- a/src/glx/Makefile +++ b/src/glx/Makefile @@ -90,7 +90,7 @@ install: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) # Remove .o and backup files clean: - -rm -f $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB) + -rm -f $(TOP)/$(LIB_DIR)/libGL.so* -rm -f *.o *~ -rm -f depend depend.bak diff --git a/src/glx/XF86dri.c b/src/glx/XF86dri.c index d0e88805bc..fdbdd43000 100644 --- a/src/glx/XF86dri.c +++ b/src/glx/XF86dri.c @@ -36,7 +36,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* THIS IS NOT AN X CONSORTIUM STANDARD */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #define NEED_REPLIES #include diff --git a/src/glx/apple/.gitignore b/src/glx/apple/.gitignore deleted file mode 100644 index 3cc2d13013..0000000000 --- a/src/glx/apple/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -apple_xgl_api.[hc] -exports.list -stage.[1234] - diff --git a/src/glx/apple/GL_aliases b/src/glx/apple/GL_aliases deleted file mode 100644 index 8de22383a7..0000000000 --- a/src/glx/apple/GL_aliases +++ /dev/null @@ -1,10 +0,0 @@ -#GL_EXT_texture_object -alias AreTexturesResidentEXT AreTexturesResident -alias BindTextureEXT BindTexture -alias DeleteTexturesEXT DeleteTextures -alias GenTexturesEXT GenTextures -alias IsTextureEXT IsTexture -alias PrioritizeTexturesEXT PrioritizeTextures - -# Due to type conflicts, we handle this differently -#alias TexImage3DEXT TexImage3D diff --git a/src/glx/apple/GL_extensions b/src/glx/apple/GL_extensions deleted file mode 100644 index 073666c367..0000000000 --- a/src/glx/apple/GL_extensions +++ /dev/null @@ -1,106 +0,0 @@ -extension ARB_transpose_matrix -extension ARB_vertex_program -extension ARB_vertex_blend -extension ARB_window_pos -extension ARB_shader_objects -extension ARB_vertex_shader -extension ARB_shading_language_100 -extension ARB_imaging -extension ARB_point_parameters -extension ARB_texture_env_crossbar -extension ARB_texture_border_clamp -extension ARB_multitexture -extension ARB_texture_env_add -extension ARB_texture_cube_map -extension ARB_texture_env_dot3 -extension ARB_multisample -extension ARB_texture_env_combine -extension ARB_texture_compression -extension ARB_texture_mirrored_repeat -extension ARB_shadow -extension ARB_depth_texture -extension ARB_shadow_ambient -extension ARB_fragment_program -extension ARB_fragment_program_shadow -extension ARB_fragment_shader -extension ARB_occlusion_query -extension ARB_point_sprite -extension ARB_texture_non_power_of_two -extension ARB_vertex_buffer_object -extension ARB_pixel_buffer_object -extension ARB_draw_buffers -extension ARB_shader_texture_lod -extension ARB_texture_rectangle -extension ARB_texture_float -extension ARB_half_float_pixel - -extension EXT_multi_draw_arrays -extension EXT_clip_volume_hint -extension EXT_rescale_normal -extension EXT_draw_range_elements -extension EXT_fog_coord -extension EXT_gpu_program_parameters -extension EXT_geometry_shader4 - -#The gl.spec has the wrong arguments for GetTransformFeedbackVaryingEXT -#extension EXT_transform_feedback -extension EXT_compiled_vertex_array -extension EXT_framebuffer_object -extension EXT_framebuffer_blit -extension EXT_framebuffer_multisample -extension EXT_texture_rectangle -extension EXT_texture_env_add -extension EXT_blend_color -extension EXT_blend_minmax -extension EXT_blend_subtract -extension EXT_texture_lod_bias -extension EXT_abgr -extension EXT_bgra -extension EXT_stencil_wrap -extension EXT_texture_filter_anisotropic -extension EXT_separate_specular_color -extension EXT_secondary_color -extension EXT_blend_func_separate -extension EXT_shadow_funcs -extension EXT_stencil_two_side -extension EXT_texture_compression_s3tc -extension EXT_texture_compression_dxt1 -extension EXT_texture_sRGB -extension EXT_blend_equation_separate -extension EXT_texture_mirror_clamp -extension EXT_packed_depth_stencil - -extension APPLE_client_storage -extension APPLE_specular_vector -extension APPLE_transform_hint -extension APPLE_packed_pixels -#The gl.spec has different argument types for this: -#extension APPLE_fence -extension APPLE_vertex_array_object -extension APPLE_vertex_program_evaluators -extension APPLE_element_array -extension APPLE_flush_render -extension APPLE_aux_depth_stencil -extension APPLE_flush_buffer_range -extension APPLE_ycbcr_422 -#The gl.spec has different argument types for this: -#extension APPLE_vertex_array_range -extension APPLE_texture_range -extension APPLE_float_pixels -extension APPLE_pixel_buffer -extension APPLE_object_purgeable - -#The OpenGL framework has moved this to the core OpenGL, and eliminated EXT_convolution listing. -#extension EXT_convolution - -#Leopard supports these according to nm. -#Applications should use the GL_EXTENSIONS list to determine capabilities. -extension EXT_paletted_texture -extension APPLE_fence -extension NV_vertex_program4 -extension EXT_draw_buffers2 -extension EXT_gpu_shader4 -extension ATI_pn_triangles -extension NV_register_combiners -extension EXT_depth_bounds_test - diff --git a/src/glx/apple/GL_noop b/src/glx/apple/GL_noop deleted file mode 100644 index 2581be1a7d..0000000000 --- a/src/glx/apple/GL_noop +++ /dev/null @@ -1,15 +0,0 @@ -#These are for compatibility with the old libGL. -noop SGI_color_table -noop EXT_convolution -noop EXT_cull_vertex -noop NV_fence -noop SGIS_detail_texture -noop SGIX_fragment_lighting -noop SGIX_flush_raster -noop EXT_vertex_array -noop SGIX_instruments -noop EXT_histogram -noop NV_vertex_program -noop PGI_misc_hints -noop SGIS_multisample -noop EXT_multisample diff --git a/src/glx/apple/GL_promoted b/src/glx/apple/GL_promoted deleted file mode 100644 index a16dc6ae65..0000000000 --- a/src/glx/apple/GL_promoted +++ /dev/null @@ -1,4 +0,0 @@ -promoted MESA_window_pos -promoted ARB_window_pos -promoted EXT_copy_texture -promoted ARB_vertex_program diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile deleted file mode 100644 index 279f7aded9..0000000000 --- a/src/glx/apple/Makefile +++ /dev/null @@ -1,129 +0,0 @@ -TOP = ../../.. - -include $(TOP)/configs/current - -#CC=gcc -#GL_CFLAGS=-Wall -ggdb3 -Os -DPTHREADS -D_REENTRANT $(RC_CFLAGS) $(CFLAGS) -#GL_LDFLAGS=-L$(INSTALL_DIR)/lib -L$(X11_DIR)/lib $(LDFLAGS) -Wl,-single_module - -TCLSH=tclsh8.5 -MKDIR=mkdir -INSTALL=install -LN=ln -RM=rm - -#INCLUDE=-I. -Iinclude -I.. -DGLX_ALIAS_UNSUPPORTED -I$(INSTALL_DIR)/include -I$(X11_DIR)/include - -#COMPILE=$(CC) $(INCLUDE) $(GL_CFLAGS) -c - -#The directory with the final binaries. -BUILD_DIR=builds - -all: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) - -SOURCES = \ - apple_cgl.c \ - apple_glx.c \ - apple_glx_context.c \ - apple_glx_drawable.c \ - apple_glx_pbuffer.c \ - apple_glx_pixmap.c \ - apple_glx_surface.c \ - apple_visual.c \ - apple_xgl_api.c \ - apple_xgl_api_additional.c \ - apple_xgl_api_read.c \ - apple_xgl_api_stereo.c \ - apple_xgl_api_viewport.c \ - appledri.c \ - ../clientattrib.c \ - ../compsize.c \ - ../glcontextmodes.c \ - glx_empty.c \ - glx_error.c \ - ../glx_pbuffer.c \ - ../glx_query.c \ - ../glxcmds.c \ - ../glxcurrent.c \ - ../glxext.c \ - ../glxextensions.c \ - glxreply.c \ - ../pixel.c \ - ../xfont.c - -include $(TOP)/src/mesa/sources.mak - -LDFLAGS += -lXplugin -framework ApplicationServices -framework CoreFoundation - -MESA_GLAPI_ASM_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_ASM_SOURCES)) -MESA_GLAPI_SOURCES = $(addprefix $(TOP)/src/mesa/, $(GLAPI_SOURCES)) -MESA_GLAPI_OBJECTS = $(addprefix $(TOP)/src/mesa/, $(GLAPI_OBJECTS)) - -OBJECTS = $(SOURCES:.c=.o) # $(MESA_GLAPI_OBJECTS) - -INCLUDES = -I. -Iinclude -I..\ - -I$(TOP)/include \ - -I$(TOP)/include/GL/internal \ - -I$(TOP)/src/mesa \ - -I$(TOP)/src/mesa/glapi \ - $(LIBDRM_CFLAGS) \ - $(DRI2PROTO_CFLAGS) \ - $(X11_INCLUDES) - -##### RULES ##### - -$(OBJECTS) : apple_xgl_api.h - -apple_xgl_api.c : apple_xgl_api.h - -apple_xgl_api.h : gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl - $(TCLSH) gen_code.tcl - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@ - -##### TARGETS ##### - -default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) - -# Make libGL -$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile - $(MKLIB) -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ - -major 1 -minor 2 $(MKLIB_OPTIONS) \ - -install $(TOP)/$(LIB_DIR) -id $(INSTALL_LIB_DIR)/lib$(GL_LIB).1.dylib \ - $(GL_LIB_DEPS) $(OBJECTS) - -depend: $(SOURCES) $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) Makefile - rm -f depend - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES) \ - $(MESA_GLAPI_SOURCES) $(MESA_GLAPI_ASM_SOURCES) - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find $(TOP)/include` - -install_headers: include/GL/gl.h - $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GL - $(INSTALL) -m 644 include/GL/gl.h $(DESTDIR)$(INSTALL_DIR)/include/GL - -install_libraries: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) - $(MAKE) -C $(TOP)/src/mesa install-libgl - -install: install_libraries - -# Remove .o and backup files -clean: - -rm -f *.o *.a *~ - -rm -f *.c~ *.h~ - -rm -f apple_xgl_api.h apple_xgl_api.c - -rm -f *.dylib - -rm -f include/GL/gl.h - -rm -f $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB) - -rm -f *.o *~ - -rm -f depend depend.bak - --include depend diff --git a/src/glx/apple/OVERALL_DESIGN b/src/glx/apple/OVERALL_DESIGN deleted file mode 100644 index c394b2115c..0000000000 --- a/src/glx/apple/OVERALL_DESIGN +++ /dev/null @@ -1,18 +0,0 @@ -A lot of the code is automatically generated. - -The following are generated based on specs/gl.spec and specs/enum.spec (from OpenGL.org): - -apple_xgl_api.h -apple_xgl_api.c -exports.list -include/GL/gl.h -include/GL/glext.h (includes the OpenGL framework glext.h) - -The gen_code.tcl script is what executes the various gen_*.tcl scripts to produce those. - -You will need Tcl 8.5 for the gen_code.tcl script. - -The tests/ directory contains some tests that are built in testbuilds. - -The tests built in testbuilds don't require installation of the library. - diff --git a/src/glx/apple/README_UPDATING b/src/glx/apple/README_UPDATING deleted file mode 100644 index 7b1bbe02c5..0000000000 --- a/src/glx/apple/README_UPDATING +++ /dev/null @@ -1,8 +0,0 @@ -The design of most of this code is such that we extend the GLX structures -with a void * named apple. - -The GLX functions that need to do Apple-specific things are passed -&s->apple in order to initialize the private structures. - -Thus when updating, just run a diff against glxext.c or glxcmds.c, and -manually merge from there as needed. diff --git a/src/glx/apple/RELEASE_NOTES b/src/glx/apple/RELEASE_NOTES deleted file mode 100644 index c5c603e76d..0000000000 --- a/src/glx/apple/RELEASE_NOTES +++ /dev/null @@ -1,71 +0,0 @@ -AppleSGLX Release Notes - -o OpenGL Support - -AppleSGLX supports the same version of OpenGL as Leopard (OpenGL 2.1). -Many extensions from the OpenGL framework are now builtin. - -This adds support for GLSL, and a variety of other features. - -o Thread Support - -Thread support has been improved since the libGL in XQuartz 2.3.2.1. - -o GLX 1.4 Support - -The GLX 1.3 and 1.4 functions should all work with a few exceptions -as outlined in this document. - -o glXMakeContextCurrent (a GLX 1.3 feature) - -glXMakeContextCurrent should work with the readable drawable. The -OpenGL functions: glReadPixels, glCopyPixels, and glCopyColorTable, -should use the readable drawable if it's different than the rendering -drawable. - -o glXGetProcAddress (a GLX 1.4 feature and ARB extension) - -glXGetProcAddress should work and allow getting the address of any -extension functions you may need from the X11 libGL, or OpenGL framework -libGL. Previous versions of the X11 libGL didn't allow getting the newer -OpenGL framework addresses. - -o GLXPixmaps - -New support for GLXPixmaps works well with mixed X11 and OpenGL drawing -operations. You can create them using glXCreateGLXPixmap or -glXCreatePixmap. - -o GLXPbuffers - -Support for GLXPbuffers has been added. These are drawables that are -not possible to render to with X11, which is allowed by the spec. -A GLXPbuffer will never generate a clobber event, however -glXSelectEvent and glXGetSelectedEvent should operate normally. - -Clobber events are not generated due to low-level architectural -differences. The contents of your pbuffers will not be clobbered. - -o Shared Contexts - -Due to basic low-level architectural differences the usage of shared -contexts requires a similar visual or GLXFBConfig be used in the -creation of a shared context. It's best if you specify the same -visual. This is due to a CGL design difference, and not something -that is easily worked around. UPDATE: some changes made seem to -help resolve this issue in many cases, so you may be able to use a -shared context without this restriction. - - -o Indirect - -The X server supports indirect fairly well, so OpenGL applications -can be run remotely and displayed by XQuartz. This means you can run -applications from a remote host on an XQuartz X server. - -AppleSGLX does not support indirect rendering. Any indirect context -created will appear to glXIsDirect as an indirect context, but it -does not actually support indirect rendering to a remote X server. - -AppleSGLX supports GLXPixmaps and GLXPbuffers with direct and indirect -contexts, though they are all direct contexts by definition (see above). diff --git a/src/glx/apple/TODO b/src/glx/apple/TODO deleted file mode 100644 index 4a063fe0ed..0000000000 --- a/src/glx/apple/TODO +++ /dev/null @@ -1,26 +0,0 @@ -Test shared contexts! - -Go over every glxcmd in glxcmds.c and make sure we have them working. -Verify the XError behavior of GLXPixmap support functions. - -Test GLXPixmap support with various pixmap depths. - -Test GLXPixmap support with invalid pixmaps (to stress the protocol code). - --- Feb 10, 2009 - -Test glXCopyContext. - --- Dec 12 2008 - -TEST glXCopyContext needs some work and additional code in apple_glx.c. - ----- - -Make sure we report the proper list of GLX extensions available. Apple direct may not support some -that Mesa does, and vice-versa. - -Modify create_destroy_context and create a new test called create_destroy_context_thread_race. -Where 2 threads are doing the same sort of path of create and destroy. The locking should protect -us there, but we need to verify nothing goes wrong. - diff --git a/src/glx/apple/apple_cgl.c b/src/glx/apple/apple_cgl.c deleted file mode 100644 index 737d757ed5..0000000000 --- a/src/glx/apple/apple_cgl.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright (c) 2008 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include - -#include "apple_cgl.h" -#include "apple_glx.h" - -#ifndef OPENGL_FRAMEWORK_PATH -#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL" -#endif - -static void *dl_handle = NULL; - -struct apple_cgl_api apple_cgl; - -static bool initialized = false; - -static void * -sym(void *h, const char *name) -{ - void *s; - - s = dlsym(h, name); - - if (NULL == s) { - fprintf(stderr, "error: %s\n", dlerror()); - abort(); - } - - return s; -} - -void -apple_cgl_init(void) -{ - void *h; - GLint major = 0, minor = 0; - const char *opengl_framework_path; - - if (initialized) - return; - - opengl_framework_path = getenv("OPENGL_FRAMEWORK_PATH"); - if (!opengl_framework_path) { - opengl_framework_path = OPENGL_FRAMEWORK_PATH; - } - - (void) dlerror(); /*drain dlerror */ - h = dlopen(opengl_framework_path, RTLD_NOW); - - if (NULL == h) { - fprintf(stderr, "error: unable to dlopen %s : %s\n", - opengl_framework_path, dlerror()); - abort(); - } - - dl_handle = h; - - apple_cgl.get_version = sym(h, "CGLGetVersion"); - - apple_cgl.get_version(&major, &minor); - - apple_glx_diagnostic("CGL major %d minor %d\n", major, minor); - - if (1 != major) { - fprintf(stderr, "WARNING: the CGL major version has changed!\n" - "libGL may be incompatible!\n"); - } - - apple_cgl.choose_pixel_format = sym(h, "CGLChoosePixelFormat"); - apple_cgl.destroy_pixel_format = sym(h, "CGLDestroyPixelFormat"); - - apple_cgl.clear_drawable = sym(h, "CGLClearDrawable"); - apple_cgl.flush_drawable = sym(h, "CGLFlushDrawable"); - - apple_cgl.create_context = sym(h, "CGLCreateContext"); - apple_cgl.destroy_context = sym(h, "CGLDestroyContext"); - - apple_cgl.set_current_context = sym(h, "CGLSetCurrentContext"); - apple_cgl.get_current_context = sym(h, "CGLGetCurrentContext"); - apple_cgl.error_string = sym(h, "CGLErrorString"); - - apple_cgl.set_off_screen = sym(h, "CGLSetOffScreen"); - - apple_cgl.copy_context = sym(h, "CGLCopyContext"); - - apple_cgl.create_pbuffer = sym(h, "CGLCreatePBuffer"); - apple_cgl.destroy_pbuffer = sym(h, "CGLDestroyPBuffer"); - apple_cgl.set_pbuffer = sym(h, "CGLSetPBuffer"); - - initialized = true; -} - -void * -apple_cgl_get_dl_handle(void) -{ - return dl_handle; -} diff --git a/src/glx/apple/apple_cgl.h b/src/glx/apple/apple_cgl.h deleted file mode 100644 index 5e98a00fe7..0000000000 --- a/src/glx/apple/apple_cgl.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#ifndef APPLE_CGL_H -#define APPLE_CGL_H - -#include -#include -#include -#include - -/* For GLint and GLsizei on Tiger */ -#include - -struct apple_cgl_api -{ - void (*get_version) (GLint * majorvers, GLint * minorvers); - - CGLError(*choose_pixel_format) (const CGLPixelFormatAttribute * attribs, - CGLPixelFormatObj * pix, GLint * npix); - CGLError(*destroy_pixel_format) (CGLPixelFormatObj pix); - - CGLError(*clear_drawable) (CGLContextObj ctx); - CGLError(*flush_drawable) (CGLContextObj ctx); - - CGLError(*create_context) (CGLPixelFormatObj pix, CGLContextObj share, - CGLContextObj * ctx); - CGLError(*destroy_context) (CGLContextObj pix); - - CGLError(*set_current_context) (CGLContextObj ctx); - CGLContextObj(*get_current_context) (void); - const char *(*error_string) (CGLError error); - - CGLError(*set_off_screen) (CGLContextObj ctx, - GLsizei width, GLsizei height, GLint rowbytes, - void *baseaddr); - - CGLError(*copy_context) (CGLContextObj src, CGLContextObj dst, - GLbitfield mask); - - CGLError(*create_pbuffer) (GLsizei width, - GLsizei height, - GLenum target, - GLenum internalFormat, - GLint max_level, CGLPBufferObj * pbuffer); - - CGLError(*destroy_pbuffer) (CGLPBufferObj pbuffer); - - CGLError(*set_pbuffer) (CGLContextObj ctx, - CGLPBufferObj pbuffer, - GLenum face, GLint level, GLint screen); -}; - -extern struct apple_cgl_api apple_cgl; - -extern void apple_cgl_init(void); - -extern void *apple_cgl_get_dl_handle(void); - -#endif diff --git a/src/glx/apple/apple_exports.list b/src/glx/apple/apple_exports.list deleted file mode 100644 index f4790119a5..0000000000 --- a/src/glx/apple/apple_exports.list +++ /dev/null @@ -1,623 +0,0 @@ -_glAccum -_glAlphaFunc -_glAreTexturesResident -_glArrayElement -_glBegin -_glBindTexture -_glBitmap -_glBlendColor -_glBlendEquation -_glBlendEquationSeparate -_glBlendFunc -_glCallList -_glCallLists -_glClear -_glClearAccum -_glClearColor -_glClearDepth -_glClearIndex -_glClearStencil -_glClipPlane -_glColor3b -_glColor3bv -_glColor3d -_glColor3dv -_glColor3f -_glColor3fv -_glColor3i -_glColor3iv -_glColor3s -_glColor3sv -_glColor3ub -_glColor3ubv -_glColor3ui -_glColor3uiv -_glColor3us -_glColor3usv -_glColor4b -_glColor4bv -_glColor4d -_glColor4dv -_glColor4f -_glColor4fv -_glColor4i -_glColor4iv -_glColor4s -_glColor4sv -_glColor4ub -_glColor4ubv -_glColor4ui -_glColor4uiv -_glColor4us -_glColor4usv -_glColorMask -_glColorMaterial -_glColorPointer -_glColorSubTable -_glColorTable -_glColorTableParameterfv -_glColorTableParameteriv -_glConvolutionFilter1D -_glConvolutionFilter2D -_glConvolutionParameterf -_glConvolutionParameterfv -_glConvolutionParameteri -_glConvolutionParameteriv -_glCopyColorSubTable -_glCopyColorTable -_glCopyConvolutionFilter1D -_glCopyConvolutionFilter2D -_glCopyPixels -_glCopyTexImage1D -_glCopyTexImage2D -_glCopyTexSubImage1D -_glCopyTexSubImage2D -_glCopyTexSubImage3D -_glCullFace -_glDeleteLists -_glDeleteTextures -_glDepthFunc -_glDepthMask -_glDepthRange -_glDisable -_glDisableClientState -_glDrawArrays -_glDrawBuffer -_glDrawElements -_glDrawPixels -_glDrawRangeElements -_glEdgeFlag -_glEdgeFlagPointer -_glEdgeFlagv -_glEnable -_glEnableClientState -_glEnd -_glEndList -_glEvalCoord1d -_glEvalCoord1dv -_glEvalCoord1f -_glEvalCoord1fv -_glEvalCoord2d -_glEvalCoord2dv -_glEvalCoord2f -_glEvalCoord2fv -_glEvalMesh1 -_glEvalMesh2 -_glEvalPoint1 -_glEvalPoint2 -_glFeedbackBuffer -_glFinish -_glFlush -_glFogf -_glFogfv -_glFogi -_glFogiv -_glFrontFace -_glFrustum -_glGenLists -_glGenTextures -_glGetBooleanv -_glGetClipPlane -_glGetColorTable -_glGetColorTableParameterfv -_glGetColorTableParameteriv -_glGetConvolutionFilter -_glGetConvolutionParameterfv -_glGetConvolutionParameteriv -_glGetDoublev -_glGetError -_glGetFloatv -_glGetHistogram -_glGetHistogramParameterfv -_glGetHistogramParameteriv -_glGetIntegerv -_glGetLightfv -_glGetLightiv -_glGetMapdv -_glGetMapfv -_glGetMapiv -_glGetMaterialfv -_glGetMaterialiv -_glGetMinmax -_glGetMinmaxParameterfv -_glGetMinmaxParameteriv -_glGetPixelMapfv -_glGetPixelMapuiv -_glGetPixelMapusv -_glGetPointerv -_glGetPolygonStipple -_glGetSeparableFilter -_glGetString -_glGetTexEnvfv -_glGetTexEnviv -_glGetTexGendv -_glGetTexGenfv -_glGetTexGeniv -_glGetTexImage -_glGetTexLevelParameterfv -_glGetTexLevelParameteriv -_glGetTexParameterfv -_glGetTexParameteriv -_glHint -_glHistogram -_glIndexMask -_glIndexPointer -_glIndexd -_glIndexdv -_glIndexf -_glIndexfv -_glIndexi -_glIndexiv -_glIndexs -_glIndexsv -_glIndexub -_glIndexubv -_glInitNames -_glInterleavedArrays -_glIsEnabled -_glIsList -_glIsTexture -_glLightModelf -_glLightModelfv -_glLightModeli -_glLightModeliv -_glLightf -_glLightfv -_glLighti -_glLightiv -_glLineStipple -_glLineWidth -_glListBase -_glLoadIdentity -_glLoadMatrixd -_glLoadMatrixf -_glLoadName -_glLogicOp -_glMap1d -_glMap1f -_glMap2d -_glMap2f -_glMapGrid1d -_glMapGrid1f -_glMapGrid2d -_glMapGrid2f -_glMaterialf -_glMaterialfv -_glMateriali -_glMaterialiv -_glMatrixMode -_glMinmax -_glMultMatrixd -_glMultMatrixf -_glNewList -_glNormal3b -_glNormal3bv -_glNormal3d -_glNormal3dv -_glNormal3f -_glNormal3fv -_glNormal3i -_glNormal3iv -_glNormal3s -_glNormal3sv -_glNormalPointer -_glOrtho -_glPassThrough -_glPixelMapfv -_glPixelMapuiv -_glPixelMapusv -_glPixelStoref -_glPixelStorei -_glPixelTransferf -_glPixelTransferi -_glPixelZoom -_glPointSize -_glPolygonMode -_glPolygonOffset -_glPolygonStipple -_glPopAttrib -_glPopClientAttrib -_glPopMatrix -_glPopName -_glPrioritizeTextures -_glPushAttrib -_glPushClientAttrib -_glPushMatrix -_glPushName -_glRasterPos2d -_glRasterPos2dv -_glRasterPos2f -_glRasterPos2fv -_glRasterPos2i -_glRasterPos2iv -_glRasterPos2s -_glRasterPos2sv -_glRasterPos3d -_glRasterPos3dv -_glRasterPos3f -_glRasterPos3fv -_glRasterPos3i -_glRasterPos3iv -_glRasterPos3s -_glRasterPos3sv -_glRasterPos4d -_glRasterPos4dv -_glRasterPos4f -_glRasterPos4fv -_glRasterPos4i -_glRasterPos4iv -_glRasterPos4s -_glRasterPos4sv -_glReadBuffer -_glReadPixels -_glRectd -_glRectdv -_glRectf -_glRectfv -_glRecti -_glRectiv -_glRects -_glRectsv -_glRenderMode -_glResetHistogram -_glResetMinmax -_glRotated -_glRotatef -_glScaled -_glScalef -_glScissor -_glSelectBuffer -_glSeparableFilter2D -_glShadeModel -_glStencilFunc -_glStencilMask -_glStencilOp -_glTexCoord1d -_glTexCoord1dv -_glTexCoord1f -_glTexCoord1fv -_glTexCoord1i -_glTexCoord1iv -_glTexCoord1s -_glTexCoord1sv -_glTexCoord2d -_glTexCoord2dv -_glTexCoord2f -_glTexCoord2fv -_glTexCoord2i -_glTexCoord2iv -_glTexCoord2s -_glTexCoord2sv -_glTexCoord3d -_glTexCoord3dv -_glTexCoord3f -_glTexCoord3fv -_glTexCoord3i -_glTexCoord3iv -_glTexCoord3s -_glTexCoord3sv -_glTexCoord4d -_glTexCoord4dv -_glTexCoord4f -_glTexCoord4fv -_glTexCoord4i -_glTexCoord4iv -_glTexCoord4s -_glTexCoord4sv -_glTexCoordPointer -_glTexEnvf -_glTexEnvfv -_glTexEnvi -_glTexEnviv -_glTexGend -_glTexGendv -_glTexGenf -_glTexGenfv -_glTexGeni -_glTexGeniv -_glTexImage1D -_glTexImage2D -_glTexImage3D -_glTexParameterf -_glTexParameterfv -_glTexParameteri -_glTexParameteriv -_glTexSubImage1D -_glTexSubImage2D -_glTexSubImage3D -_glTranslated -_glTranslatef -_glVertex2d -_glVertex2dv -_glVertex2f -_glVertex2fv -_glVertex2i -_glVertex2iv -_glVertex2s -_glVertex2sv -_glVertex3d -_glVertex3dv -_glVertex3f -_glVertex3fv -_glVertex3i -_glVertex3iv -_glVertex3s -_glVertex3sv -_glVertex4d -_glVertex4dv -_glVertex4f -_glVertex4fv -_glVertex4i -_glVertex4iv -_glVertex4s -_glVertex4sv -_glVertexPointer -_glViewport -_glSampleCoverage -_glSamplePass -_glLoadTransposeMatrixf -_glLoadTransposeMatrixd -_glMultTransposeMatrixf -_glMultTransposeMatrixd -_glCompressedTexImage3D -_glCompressedTexImage2D -_glCompressedTexImage1D -_glCompressedTexSubImage3D -_glCompressedTexSubImage2D -_glCompressedTexSubImage1D -_glGetCompressedTexImage -_glActiveTexture -_glClientActiveTexture -_glMultiTexCoord1d -_glMultiTexCoord1dv -_glMultiTexCoord1f -_glMultiTexCoord1fv -_glMultiTexCoord1i -_glMultiTexCoord1iv -_glMultiTexCoord1s -_glMultiTexCoord1sv -_glMultiTexCoord2d -_glMultiTexCoord2dv -_glMultiTexCoord2f -_glMultiTexCoord2fv -_glMultiTexCoord2i -_glMultiTexCoord2iv -_glMultiTexCoord2s -_glMultiTexCoord2sv -_glMultiTexCoord3d -_glMultiTexCoord3dv -_glMultiTexCoord3f -_glMultiTexCoord3fv -_glMultiTexCoord3i -_glMultiTexCoord3iv -_glMultiTexCoord3s -_glMultiTexCoord3sv -_glMultiTexCoord4d -_glMultiTexCoord4dv -_glMultiTexCoord4f -_glMultiTexCoord4fv -_glMultiTexCoord4i -_glMultiTexCoord4iv -_glMultiTexCoord4s -_glMultiTexCoord4sv -_glFogCoordf -_glFogCoordfv -_glFogCoordd -_glFogCoorddv -_glFogCoordPointer -_glSecondaryColor3b -_glSecondaryColor3bv -_glSecondaryColor3d -_glSecondaryColor3dv -_glSecondaryColor3f -_glSecondaryColor3fv -_glSecondaryColor3i -_glSecondaryColor3iv -_glSecondaryColor3s -_glSecondaryColor3sv -_glSecondaryColor3ub -_glSecondaryColor3ubv -_glSecondaryColor3ui -_glSecondaryColor3uiv -_glSecondaryColor3us -_glSecondaryColor3usv -_glSecondaryColorPointer -_glPointParameterf -_glPointParameterfv -_glPointParameteri -_glPointParameteriv -_glBlendFuncSeparate -_glMultiDrawArrays -_glMultiDrawElements -_glWindowPos2d -_glWindowPos2dv -_glWindowPos2f -_glWindowPos2fv -_glWindowPos2i -_glWindowPos2iv -_glWindowPos2s -_glWindowPos2sv -_glWindowPos3d -_glWindowPos3dv -_glWindowPos3f -_glWindowPos3fv -_glWindowPos3i -_glWindowPos3iv -_glWindowPos3s -_glWindowPos3sv -_glGenQueries -_glDeleteQueries -_glIsQuery -_glBeginQuery -_glEndQuery -_glGetQueryiv -_glGetQueryObjectiv -_glGetQueryObjectuiv -_glBindBuffer -_glDeleteBuffers -_glGenBuffers -_glIsBuffer -_glBufferData -_glBufferSubData -_glGetBufferSubData -_glMapBuffer -_glUnmapBuffer -_glGetBufferParameteriv -_glGetBufferPointerv -_glDrawBuffers -_glVertexAttrib1d -_glVertexAttrib1dv -_glVertexAttrib1f -_glVertexAttrib1fv -_glVertexAttrib1s -_glVertexAttrib1sv -_glVertexAttrib2d -_glVertexAttrib2dv -_glVertexAttrib2f -_glVertexAttrib2fv -_glVertexAttrib2s -_glVertexAttrib2sv -_glVertexAttrib3d -_glVertexAttrib3dv -_glVertexAttrib3f -_glVertexAttrib3fv -_glVertexAttrib3s -_glVertexAttrib3sv -_glVertexAttrib4Nbv -_glVertexAttrib4Niv -_glVertexAttrib4Nsv -_glVertexAttrib4Nub -_glVertexAttrib4Nubv -_glVertexAttrib4Nuiv -_glVertexAttrib4Nusv -_glVertexAttrib4bv -_glVertexAttrib4d -_glVertexAttrib4dv -_glVertexAttrib4f -_glVertexAttrib4fv -_glVertexAttrib4iv -_glVertexAttrib4s -_glVertexAttrib4sv -_glVertexAttrib4ubv -_glVertexAttrib4uiv -_glVertexAttrib4usv -_glVertexAttribPointer -_glEnableVertexAttribArray -_glDisableVertexAttribArray -_glGetVertexAttribdv -_glGetVertexAttribfv -_glGetVertexAttribiv -_glGetVertexAttribPointerv -_glDeleteShader -_glDetachShader -_glCreateShader -_glShaderSource -_glCompileShader -_glCreateProgram -_glAttachShader -_glLinkProgram -_glUseProgram -_glDeleteProgram -_glValidateProgram -_glUniform1f -_glUniform2f -_glUniform3f -_glUniform4f -_glUniform1i -_glUniform2i -_glUniform3i -_glUniform4i -_glUniform1fv -_glUniform2fv -_glUniform3fv -_glUniform4fv -_glUniform1iv -_glUniform2iv -_glUniform3iv -_glUniform4iv -_glUniformMatrix2fv -_glUniformMatrix3fv -_glUniformMatrix4fv -_glIsShader -_glIsProgram -_glGetShaderiv -_glGetProgramiv -_glGetAttachedShaders -_glGetShaderInfoLog -_glGetProgramInfoLog -_glGetUniformLocation -_glGetActiveUniform -_glGetUniformfv -_glGetUniformiv -_glGetShaderSource -_glBindAttribLocation -_glGetActiveAttrib -_glGetAttribLocation -_glStencilFuncSeparate -_glStencilOpSeparate -_glStencilMaskSeparate -_glUniformMatrix2x3fv -_glUniformMatrix3x2fv -_glUniformMatrix2x4fv -_glUniformMatrix4x2fv -_glUniformMatrix3x4fv -_glUniformMatrix4x3fv -_glXChooseVisual -_glXCreateContext -_glXDestroyContext -_glXMakeCurrent -_glXCopyContext -_glXSwapBuffers -_glXCreateGLXPixmap -_glXDestroyGLXPixmap -_glXQueryExtension -_glXQueryVersion -_glXIsDirect -_glXGetConfig -_glXGetCurrentContext -_glXGetCurrentDrawable -_glXWaitGL -_glXWaitX -_glXUseXFont -_glXQueryExtensionsString -_glXQueryServerString -_glXGetClientString -_glXGetCurrentDisplay -_glXChooseFBConfig -_glXGetFBConfigAttrib -_glXGetFBConfigs -_glXGetVisualFromFBConfig -_glXCreateWindow -_glXDestroyWindow -_glXCreatePixmap -_glXDestroyPixmap -_glXCreatePbuffer -_glXDestroyPbuffer -_glXQueryDrawable -_glXCreateNewContext -_glXMakeContextCurrent -_glXGetCurrentReadDrawable -_glXQueryContext -_glXSelectEvent -_glXGetSelectedEvent -_glXGetProcAddress diff --git a/src/glx/apple/apple_glx.c b/src/glx/apple/apple_glx.c deleted file mode 100644 index d9bc091715..0000000000 --- a/src/glx/apple/apple_glx.c +++ /dev/null @@ -1,214 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include -#include -#include "appledri.h" -#include "apple_glx.h" -#include "apple_glx_context.h" -#include "apple_cgl.h" -#include "apple_xgl_api.h" - -static bool initialized = false; -static int dri_event_base = 0; - -const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 }; - -#ifndef OPENGL_LIB_PATH -#define OPENGL_LIB_PATH "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib" -#endif - -static void *libgl_handle = NULL; - -static bool diagnostic = false; - -void -apple_glx_diagnostic(const char *fmt, ...) -{ - va_list vl; - - if (diagnostic) { - fprintf(stderr, "DIAG: "); - - va_start(vl, fmt); - vfprintf(stderr, fmt, vl); - va_end(vl); - } -} - -int -apple_get_dri_event_base(void) -{ - if (!initialized) { - fprintf(stderr, - "error: dri_event_base called before apple_init_glx!\n"); - abort(); - } - return dri_event_base; -} - -static void -surface_notify_handler(Display * dpy, unsigned int uid, int kind) -{ - - switch (kind) { - case AppleDRISurfaceNotifyDestroyed: - apple_glx_diagnostic("%s: surface destroyed %u\n", __func__, uid); - apple_glx_surface_destroy(uid); - break; - - case AppleDRISurfaceNotifyChanged:{ - int updated; - - updated = apple_glx_context_surface_changed(uid, pthread_self()); - - apple_glx_diagnostic("surface notify updated %d\n", updated); - } - break; - - default: - fprintf(stderr, "unhandled kind of event: %d in %s\n", kind, __func__); - } -} - -xp_client_id -apple_glx_get_client_id(void) -{ - static xp_client_id id; - - if (0 == id) { - if ((XP_Success != xp_init(XP_IN_BACKGROUND)) || - (Success != xp_get_client_id(&id))) { - return 0; - } - } - - return id; -} - -/* Return true if an error occured. */ -bool -apple_init_glx(Display * dpy) -{ - int eventBase, errorBase; - int major, minor, patch; - - if (!XAppleDRIQueryExtension(dpy, &eventBase, &errorBase)) - return true; - - if (!XAppleDRIQueryVersion(dpy, &major, &minor, &patch)) - return true; - - if (initialized) - return false; - - if (getenv("LIBGL_DIAGNOSTIC")) { - printf("initializing libGL in %s\n", __func__); - diagnostic = true; - } - - apple_cgl_init(); - apple_xgl_init_direct(); - libgl_handle = dlopen(OPENGL_LIB_PATH, RTLD_LAZY); - (void) apple_glx_get_client_id(); - - XAppleDRISetSurfaceNotifyHandler(surface_notify_handler); - - /* This should really be per display. */ - dri_event_base = eventBase; - initialized = true; - - return false; -} - -void -apple_glx_swap_buffers(void *ptr) -{ - struct apple_glx_context *ac = ptr; - - /* This may not be needed with CGLFlushDrawable: */ - glFlush(); - apple_cgl.flush_drawable(ac->context_obj); -} - -void * -apple_glx_get_proc_address(const GLubyte * procname) -{ - size_t len; - void *h, *s; - char *pname = (char *) procname; - - assert(NULL != procname); - len = strlen(pname); - - if (len < 3) { - return NULL; - } - - if ((pname != strstr(pname, "glX")) && (pname != strstr(pname, "gl"))) { - fprintf(stderr, - "warning: get proc address request is not for a gl or glX function"); - return NULL; - } - - /* Search using the default symbols first. */ - (void) dlerror(); /*drain dlerror */ - h = dlopen(NULL, RTLD_NOW); - if (NULL == h) { - fprintf(stderr, "warning: get proc address: %s\n", dlerror()); - return NULL; - } - - s = dlsym(h, pname); - - if (NULL == s) { - /* Try the libGL.dylib from the OpenGL.framework. */ - s = dlsym(libgl_handle, pname); - } - - dlclose(h); - - return s; -} - -void -apple_glx_waitx(Display * dpy, void *ptr) -{ - struct apple_private_context *ac = ptr; - - (void) ac; - - glFlush(); - glFinish(); - XSync(dpy, False); -} diff --git a/src/glx/apple/apple_glx.h b/src/glx/apple/apple_glx.h deleted file mode 100644 index 3ee54aa6cf..0000000000 --- a/src/glx/apple/apple_glx.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (c) 2008 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#ifndef APPLE_GLX_H -#define APPLE_GLX_H - -#include -#include -#include -#include -#include -#define XP_NO_X_HEADERS -#include - -void apple_glx_diagnostic(const char *fmt, ...); -xp_client_id apple_glx_get_client_id(void); -bool apple_init_glx(Display * dpy); -void apple_glx_swap_buffers(void *ptr); -void *apple_glx_get_proc_address(const GLubyte * procname); -void apple_glx_waitx(Display * dpy, void *ptr); -int apple_get_dri_event_base(void); - -#endif diff --git a/src/glx/apple/apple_glx_context.c b/src/glx/apple/apple_glx_context.c deleted file mode 100644 index c58d05a59a..0000000000 --- a/src/glx/apple/apple_glx_context.c +++ /dev/null @@ -1,616 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -// Get the newer glext.h first -#include -#include - -#include -#include -#include - -#include "glxclient.h" - -#include "apple_glx.h" -#include "apple_glx_context.h" -#include "appledri.h" -#include "apple_visual.h" -#include "apple_cgl.h" -#include "apple_glx_drawable.h" - -static pthread_mutex_t context_lock = PTHREAD_MUTEX_INITIALIZER; - -/* - * This should be locked on creation and destruction of the - * apple_glx_contexts. - * - * It's also locked when the surface_notify_handler is searching - * for a uid associated with a surface. - */ -static struct apple_glx_context *context_list = NULL; - -/* This guards the context_list above. */ -static void -lock_context_list(void) -{ - int err; - - err = pthread_mutex_lock(&context_lock); - - if (err) { - fprintf(stderr, "pthread_mutex_lock failure in %s: %d\n", - __func__, err); - abort(); - } -} - -static void -unlock_context_list(void) -{ - int err; - - err = pthread_mutex_unlock(&context_lock); - - if (err) { - fprintf(stderr, "pthread_mutex_unlock failure in %s: %d\n", - __func__, err); - abort(); - } -} - -static bool -is_context_valid(struct apple_glx_context *ac) -{ - struct apple_glx_context *i; - - lock_context_list(); - - for (i = context_list; i; i = i->next) { - if (ac == i) { - unlock_context_list(); - return true; - } - } - - unlock_context_list(); - - return false; -} - -/* This creates an apple_private_context struct. - * - * It's typically called to save the struct in a GLXContext. - * - * This is also where the CGLContextObj is created, and the CGLPixelFormatObj. - */ -bool -apple_glx_create_context(void **ptr, Display * dpy, int screen, - const void *mode, void *sharedContext, - int *errorptr, bool * x11errorptr) -{ - struct apple_glx_context *ac; - struct apple_glx_context *sharedac = sharedContext; - CGLError error; - - *ptr = NULL; - - ac = malloc(sizeof *ac); - - if (NULL == ac) { - *errorptr = BadAlloc; - *x11errorptr = true; - return true; - } - - if (sharedac && !is_context_valid(sharedac)) { - *errorptr = GLXBadContext; - *x11errorptr = false; - return true; - } - - ac->context_obj = NULL; - ac->pixel_format_obj = NULL; - ac->drawable = NULL; - ac->thread_id = pthread_self(); - ac->screen = screen; - ac->double_buffered = false; - ac->uses_stereo = false; - ac->need_update = false; - ac->is_current = false; - ac->made_current = false; - ac->last_surface_window = None; - - apple_visual_create_pfobj(&ac->pixel_format_obj, mode, - &ac->double_buffered, &ac->uses_stereo, - /*offscreen */ false); - - error = apple_cgl.create_context(ac->pixel_format_obj, - sharedac ? sharedac->context_obj : NULL, - &ac->context_obj); - - - if (error) { - (void) apple_cgl.destroy_pixel_format(ac->pixel_format_obj); - - free(ac); - - if (kCGLBadMatch == error) { - *errorptr = BadMatch; - *x11errorptr = true; - } - else { - *errorptr = GLXBadContext; - *x11errorptr = false; - } - - if (getenv("LIBGL_DIAGNOSTIC")) - fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); - - return true; - } - - /* The context creation succeeded, so we can link in the new context. */ - lock_context_list(); - - if (context_list) - context_list->previous = ac; - - ac->previous = NULL; - ac->next = context_list; - context_list = ac; - - *ptr = ac; - - apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n", - __func__, (void *) ac, (void *) ac->context_obj); - - unlock_context_list(); - - return false; -} - -void -apple_glx_destroy_context(void **ptr, Display * dpy) -{ - struct apple_glx_context *ac = *ptr; - - if (NULL == ac) - return; - - apple_glx_diagnostic("%s: ac %p ac->context_obj %p\n", - __func__, (void *) ac, (void *) ac->context_obj); - - if (apple_cgl.get_current_context() == ac->context_obj) { - apple_glx_diagnostic("%s: context ac->context_obj %p " - "is still current!\n", __func__, - (void *) ac->context_obj); - if (apple_cgl.set_current_context(NULL)) { - abort(); - } - } - - /* Remove ac from the context_list as soon as possible. */ - lock_context_list(); - - if (ac->previous) { - ac->previous->next = ac->next; - } - else { - context_list = ac->next; - } - - if (ac->next) { - ac->next->previous = ac->previous; - } - - unlock_context_list(); - - - if (apple_cgl.clear_drawable(ac->context_obj)) { - fprintf(stderr, "error: while clearing drawable!\n"); - abort(); - } - - /* - * This potentially causes surface_notify_handler to be called in - * apple_glx.c... - * We can NOT have a lock held at this point. It would result in - * an abort due to an attempted deadlock. This is why we earlier - * removed the ac pointer from the double-linked list. - */ - if (ac->drawable) { - ac->drawable->destroy(ac->drawable); - } - - if (apple_cgl.destroy_pixel_format(ac->pixel_format_obj)) { - fprintf(stderr, "error: destroying pixel format in %s\n", __func__); - abort(); - } - - if (apple_cgl.destroy_context(ac->context_obj)) { - fprintf(stderr, "error: destroying context_obj in %s\n", __func__); - abort(); - } - - free(ac); - - *ptr = NULL; - - apple_glx_garbage_collect_drawables(dpy); -} - - -/* Return true if an error occured. */ -bool -apple_glx_make_current_context(Display * dpy, void *oldptr, void *ptr, - GLXDrawable drawable) -{ - struct apple_glx_context *oldac = oldptr; - struct apple_glx_context *ac = ptr; - struct apple_glx_drawable *newagd = NULL; - CGLError cglerr; - bool same_drawable = false; - -#if 0 - apple_glx_diagnostic("%s: oldac %p ac %p drawable 0x%lx\n", - __func__, (void *) oldac, (void *) ac, drawable); - - apple_glx_diagnostic("%s: oldac->context_obj %p ac->context_obj %p\n", - __func__, - (void *) (oldac ? oldac->context_obj : NULL), - (void *) (ac ? ac->context_obj : NULL)); -#endif - - /* This a common path for GLUT and other apps, so special case it. */ - if (ac && ac->drawable && ac->drawable->drawable == drawable) { - same_drawable = true; - - if (ac->is_current) - return false; - } - - /* Reset the is_current state of the old context, if non-NULL. */ - if (oldac && (ac != oldac)) - oldac->is_current = false; - - if (NULL == ac) { - /*Clear the current context for this thread. */ - apple_cgl.set_current_context(NULL); - - if (oldac) { - oldac->is_current = false; - - if (oldac->drawable) { - oldac->drawable->destroy(oldac->drawable); - oldac->drawable = NULL; - } - - /* Invalidate this to prevent surface recreation. */ - oldac->last_surface_window = None; - } - - return false; - } - - if (None == drawable) { - bool error = false; - - /* Clear the current drawable for this context_obj. */ - - if (apple_cgl.set_current_context(ac->context_obj)) - error = true; - - if (apple_cgl.clear_drawable(ac->context_obj)) - error = true; - - if (ac->drawable) { - ac->drawable->destroy(ac->drawable); - ac->drawable = NULL; - } - - /* Invalidate this to prevent surface recreation. */ - ac->last_surface_window = None; - - apple_glx_diagnostic("%s: drawable is None, error is: %d\n", - __func__, error); - - return error; - } - - /* This is an optimisation to avoid searching for the current drawable. */ - if (ac->drawable && ac->drawable->drawable == drawable) { - newagd = ac->drawable; - } - else { - /* Find the drawable if possible, and retain a reference to it. */ - newagd = - apple_glx_drawable_find(drawable, APPLE_GLX_DRAWABLE_REFERENCE); - } - - /* - * Try to destroy the old drawable, so long as the new one - * isn't the old. - */ - if (ac->drawable && !same_drawable) { - ac->drawable->destroy(ac->drawable); - ac->drawable = NULL; - } - - if (NULL == newagd) { - if (apple_glx_surface_create(dpy, ac->screen, drawable, &newagd)) - return true; - - /* The drawable is referenced once by apple_glx_surface_create. */ - - /* - * FIXME: We actually need 2 references to prevent premature surface - * destruction. The problem is that the surface gets destroyed in - * the case of the context being reused for another window, and - * we then lose the surface contents. Wait for destruction of a - * window to destroy a surface. - * - * Note: this may leave around surfaces we don't want around, if - * say we are using X for raster drawing after OpenGL rendering, - * but it will be compatible with the old libGL's behavior. - * - * Someday the X11 and OpenGL rendering must be unified at some - * layer. I suspect we can do that via shared memory and - * multiple threads in the X server (1 for each context created - * by a client). This would also allow users to render from - * multiple clients to the same OpenGL surface. In fact it could - * all be OpenGL. - * - */ - newagd->reference(newagd); - - /* Save the new drawable with the context structure. */ - ac->drawable = newagd; - } - else { - /* We are reusing an existing drawable structure. */ - - if (same_drawable) { - assert(ac->drawable == newagd); - /* The drawable_find above retained a reference for us. */ - } - else { - ac->drawable = newagd; - } - } - - /* - * Avoid this costly path if this is the same drawable and the - * context is already current. - */ - - if (same_drawable && ac->is_current) { - apple_glx_diagnostic("%s: same_drawable and ac->is_current\n"); - return false; - } - - cglerr = apple_cgl.set_current_context(ac->context_obj); - - if (kCGLNoError != cglerr) { - fprintf(stderr, "set current error: %s\n", - apple_cgl.error_string(cglerr)); - return true; - } - - ac->is_current = true; - - assert(NULL != ac->context_obj); - assert(NULL != ac->drawable); - - ac->thread_id = pthread_self(); - - /* This will be set if the pending_destroy code indicates it should be: */ - ac->last_surface_window = None; - - switch (ac->drawable->type) { - case APPLE_GLX_DRAWABLE_PBUFFER: - case APPLE_GLX_DRAWABLE_SURFACE: - case APPLE_GLX_DRAWABLE_PIXMAP: - if (ac->drawable->callbacks.make_current) { - if (ac->drawable->callbacks.make_current(ac, ac->drawable)) - return true; - } - break; - - default: - fprintf(stderr, "internal error: invalid drawable type: %d\n", - ac->drawable->type); - abort(); - } - - return false; -} - -bool -apple_glx_is_current_drawable(Display * dpy, void *ptr, GLXDrawable drawable) -{ - struct apple_glx_context *ac = ptr; - - if (ac->drawable && ac->drawable->drawable == drawable) { - return true; - } - else if (NULL == ac->drawable && None != ac->last_surface_window) { - apple_glx_context_update(dpy, ac); - - return (ac->drawable && ac->drawable->drawable == drawable); - } - - return false; -} - -bool -apple_glx_copy_context(void *currentptr, void *srcptr, void *destptr, - unsigned long mask, int *errorptr, bool * x11errorptr) -{ - struct apple_glx_context *src, *dest; - CGLError err; - - src = srcptr; - dest = destptr; - - if (src->screen != dest->screen) { - *errorptr = BadMatch; - *x11errorptr = true; - return true; - } - - if (dest == currentptr || dest->is_current) { - *errorptr = BadAccess; - *x11errorptr = true; - return true; - } - - /* - * If srcptr is the current context then we should do an implicit glFlush. - */ - if (currentptr == srcptr) - glFlush(); - - err = apple_cgl.copy_context(src->context_obj, dest->context_obj, - (GLbitfield) mask); - - if (kCGLNoError != err) { - *errorptr = GLXBadContext; - *x11errorptr = false; - return true; - } - - return false; -} - -/* - * The value returned is the total number of contexts set to update. - * It's meant for debugging/introspection. - */ -int -apple_glx_context_surface_changed(unsigned int uid, pthread_t caller) -{ - struct apple_glx_context *ac; - int updated = 0; - - lock_context_list(); - - for (ac = context_list; ac; ac = ac->next) { - if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type - && ac->drawable->types.surface.uid == uid) { - - if (caller == ac->thread_id) { - apple_glx_diagnostic("caller is the same thread for uid %u\n", - uid); - - xp_update_gl_context(ac->context_obj); - } - else { - ac->need_update = true; - ++updated; - } - } - } - - unlock_context_list(); - - return updated; -} - -void -apple_glx_context_update(Display * dpy, void *ptr) -{ - struct apple_glx_context *ac = ptr; - - if (NULL == ac->drawable && None != ac->last_surface_window) { - bool failed; - - /* Attempt to recreate the surface for a destroyed drawable. */ - failed = - apple_glx_make_current_context(dpy, ac, ac, ac->last_surface_window); - - apple_glx_diagnostic("%s: surface recreation failed? %s\n", __func__, - failed ? "YES" : "NO"); - } - - if (ac->need_update) { - xp_update_gl_context(ac->context_obj); - ac->need_update = false; - - apple_glx_diagnostic("%s: updating context %p\n", __func__, ptr); - } - - if (ac->drawable && APPLE_GLX_DRAWABLE_SURFACE == ac->drawable->type - && ac->drawable->types.surface.pending_destroy) { - apple_glx_diagnostic("%s: clearing drawable %p\n", __func__, ptr); - apple_cgl.clear_drawable(ac->context_obj); - - if (ac->drawable) { - struct apple_glx_drawable *d; - - apple_glx_diagnostic("%s: attempting to destroy drawable %p\n", - __func__, ptr); - apple_glx_diagnostic("%s: ac->drawable->drawable is 0x%lx\n", - __func__, ac->drawable->drawable); - - d = ac->drawable; - - ac->last_surface_window = d->drawable; - - ac->drawable = NULL; - - /* - * This will destroy the surface drawable if there are - * no references to it. - * It also subtracts 1 from the reference_count. - * If there are references to it, then it's probably made - * current in another context. - */ - d->destroy(d); - } - } -} - -bool -apple_glx_context_uses_stereo(void *ptr) -{ - struct apple_glx_context *ac = ptr; - - return ac->uses_stereo; -} diff --git a/src/glx/apple/apple_glx_context.h b/src/glx/apple/apple_glx_context.h deleted file mode 100644 index 7e2394f2bb..0000000000 --- a/src/glx/apple/apple_glx_context.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#ifndef APPLE_GLX_CONTEXT_H -#define APPLE_GLX_CONTEXT_H - -#include -#include -#include -#include -#include -#define XP_NO_X_HEADERS -#include -#undef XP_NO_X_HEADERS - -#include "apple_glx_drawable.h" - -struct apple_glx_context -{ - CGLContextObj context_obj; - CGLPixelFormatObj pixel_format_obj; - struct apple_glx_drawable *drawable; - pthread_t thread_id; - int screen; - bool double_buffered; - bool uses_stereo; - bool need_update; - bool is_current; /* True if the context is current in some thread. */ - bool made_current; /* True if the context has ever been made current. */ - - /* - * last_surface is set by the pending_destroy code handler for a drawable. - * Due to a CG difference, we have to recreate a surface if the window - * is unmapped and mapped again. - */ - Window last_surface_window; - struct apple_glx_context *previous, *next; -}; - -bool apple_glx_create_context(void **ptr, Display * dpy, int screen, - const void *mode, void *sharedContext, - int *errorptr, bool * x11errorptr); -void apple_glx_destroy_context(void **ptr, Display * dpy); - -bool apple_glx_make_current_context(Display * dpy, void *oldptr, void *ptr, - GLXDrawable drawable); -bool apple_glx_is_current_drawable(Display * dpy, void *ptr, - GLXDrawable drawable); - -bool apple_glx_copy_context(void *currentptr, void *srcptr, void *destptr, - unsigned long mask, int *errorptr, - bool * x11errorptr); - -int apple_glx_context_surface_changed(unsigned int uid, pthread_t caller); - -void apple_glx_context_update(Display * dpy, void *ptr); - -bool apple_glx_context_uses_stereo(void *ptr); - -#endif /*APPLE_GLX_CONTEXT_H */ diff --git a/src/glx/apple/apple_glx_drawable.c b/src/glx/apple/apple_glx_drawable.c deleted file mode 100644 index 5530224335..0000000000 --- a/src/glx/apple/apple_glx_drawable.c +++ /dev/null @@ -1,542 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include -#include "apple_glx.h" -#include "apple_glx_context.h" -#include "apple_glx_drawable.h" -#include "appledri.h" - -static pthread_mutex_t drawables_lock = PTHREAD_MUTEX_INITIALIZER; -static struct apple_glx_drawable *drawables_list = NULL; - -static void -lock_drawables_list(void) -{ - int err; - - err = pthread_mutex_lock(&drawables_lock); - - if (err) { - fprintf(stderr, "pthread_mutex_lock failure in %s: %d\n", - __func__, err); - abort(); - } -} - -static void -unlock_drawables_list(void) -{ - int err; - - err = pthread_mutex_unlock(&drawables_lock); - - if (err) { - fprintf(stderr, "pthread_mutex_unlock failure in %s: %d\n", - __func__, err); - abort(); - } -} - -struct apple_glx_drawable * -apple_glx_find_drawable(Display * dpy, GLXDrawable drawable) -{ - struct apple_glx_drawable *i, *agd = NULL; - - lock_drawables_list(); - - for (i = drawables_list; i; i = i->next) { - if (i->drawable == drawable) { - agd = i; - break; - } - } - - unlock_drawables_list(); - - return agd; -} - -static void -drawable_lock(struct apple_glx_drawable *agd) -{ - int err; - - err = pthread_mutex_lock(&agd->mutex); - - if (err) { - fprintf(stderr, "pthread_mutex_lock error: %d\n", err); - abort(); - } -} - -static void -drawable_unlock(struct apple_glx_drawable *d) -{ - int err; - - err = pthread_mutex_unlock(&d->mutex); - - if (err) { - fprintf(stderr, "pthread_mutex_unlock error: %d\n", err); - abort(); - } -} - - -static void -reference_drawable(struct apple_glx_drawable *d) -{ - d->lock(d); - d->reference_count++; - d->unlock(d); -} - -static void -release_drawable(struct apple_glx_drawable *d) -{ - d->lock(d); - d->reference_count--; - d->unlock(d); -} - -/* The drawables list must be locked prior to calling this. */ -/* Return true if the drawable was destroyed. */ -static bool -destroy_drawable(struct apple_glx_drawable *d) -{ - - d->lock(d); - - if (d->reference_count > 0) { - d->unlock(d); - return false; - } - - d->unlock(d); - - if (d->previous) { - d->previous->next = d->next; - } - else { - /* - * The item must be at the head of the list, if it - * has no previous pointer. - */ - drawables_list = d->next; - } - - if (d->next) - d->next->previous = d->previous; - - unlock_drawables_list(); - - if (d->callbacks.destroy) { - /* - * Warning: this causes other routines to be called (potentially) - * from surface_notify_handler. It's probably best to not have - * any locks at this point locked. - */ - d->callbacks.destroy(d->display, d); - } - - apple_glx_diagnostic("%s: freeing %p\n", __func__, (void *) d); - - free(d); - - /* So that the locks are balanced and the caller correctly unlocks. */ - lock_drawables_list(); - - return true; -} - -/* - * This is typically called when a context is destroyed or the current - * drawable is made None. - */ -static bool -destroy_drawable_callback(struct apple_glx_drawable *d) -{ - bool result; - - d->lock(d); - - apple_glx_diagnostic("%s: %p ->reference_count before -- %d\n", __func__, - (void *) d, d->reference_count); - - d->reference_count--; - - if (d->reference_count > 0) { - d->unlock(d); - return false; - } - - d->unlock(d); - - lock_drawables_list(); - - result = destroy_drawable(d); - - unlock_drawables_list(); - - return result; -} - -static bool -is_pbuffer(struct apple_glx_drawable *d) -{ - return APPLE_GLX_DRAWABLE_PBUFFER == d->type; -} - -static bool -is_pixmap(struct apple_glx_drawable *d) -{ - return APPLE_GLX_DRAWABLE_PIXMAP == d->type; -} - -static void -common_init(Display * dpy, GLXDrawable drawable, struct apple_glx_drawable *d) -{ - int err; - pthread_mutexattr_t attr; - - d->display = dpy; - d->reference_count = 0; - d->drawable = drawable; - d->type = -1; - - err = pthread_mutexattr_init(&attr); - - if (err) { - fprintf(stderr, "pthread_mutexattr_init error: %d\n", err); - abort(); - } - - /* - * There are some patterns that require a recursive mutex, - * when working with locks that protect the apple_glx_drawable, - * and reference functions like ->reference, and ->release. - */ - err = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - - if (err) { - fprintf(stderr, "error: setting pthread mutex type: %d\n", err); - abort(); - } - - err = pthread_mutex_init(&d->mutex, &attr); - - if (err) { - fprintf(stderr, "pthread_mutex_init error: %d\n", err); - abort(); - } - - (void) pthread_mutexattr_destroy(&attr); - - d->lock = drawable_lock; - d->unlock = drawable_unlock; - - d->reference = reference_drawable; - d->release = release_drawable; - - d->destroy = destroy_drawable_callback; - - d->is_pbuffer = is_pbuffer; - d->is_pixmap = is_pixmap; - - d->width = -1; - d->height = -1; - d->row_bytes = 0; - d->path[0] = '\0'; - d->fd = -1; - d->buffer = NULL; - d->buffer_length = 0; - - d->previous = NULL; - d->next = NULL; -} - -static void -link_tail(struct apple_glx_drawable *agd) -{ - lock_drawables_list(); - - /* Link the new drawable into the global list. */ - agd->next = drawables_list; - - if (drawables_list) - drawables_list->previous = agd; - - drawables_list = agd; - - unlock_drawables_list(); -} - -/*WARNING: this returns a locked and referenced object. */ -bool -apple_glx_drawable_create(Display * dpy, - int screen, - GLXDrawable drawable, - struct apple_glx_drawable **agdResult, - struct apple_glx_drawable_callbacks *callbacks) -{ - struct apple_glx_drawable *d; - - d = calloc(1, sizeof *d); - - if (NULL == d) { - perror("malloc"); - return true; - } - - common_init(dpy, drawable, d); - d->type = callbacks->type; - d->callbacks = *callbacks; - - d->reference(d); - d->lock(d); - - link_tail(d); - - apple_glx_diagnostic("%s: new drawable %p\n", __func__, (void *) d); - - *agdResult = d; - - return false; -} - -static int error_count = 0; - -static int -error_handler(Display * dpy, XErrorEvent * err) -{ - if (err->error_code == BadWindow) { - ++error_count; - } - - return 0; -} - -void -apple_glx_garbage_collect_drawables(Display * dpy) -{ - struct apple_glx_drawable *d, *dnext; - Window root; - int x, y; - unsigned int width, height, bd, depth; - int (*old_handler) (Display *, XErrorEvent *); - - - if (NULL == drawables_list) - return; - - old_handler = XSetErrorHandler(error_handler); - - XSync(dpy, False); - - lock_drawables_list(); - - for (d = drawables_list; d;) { - dnext = d->next; - - d->lock(d); - - if (d->reference_count > 0) { - /* - * Skip this, because some context still retains a reference - * to the drawable. - */ - d->unlock(d); - d = dnext; - continue; - } - - d->unlock(d); - - error_count = 0; - - /* - * Mesa uses XGetWindowAttributes, but some of these things are - * most definitely not Windows, and that's against the rules. - * XGetGeometry on the other hand is legal with a Pixmap and Window. - */ - XGetGeometry(dpy, d->drawable, &root, &x, &y, &width, &height, &bd, - &depth); - - if (error_count > 0) { - /* - * Note: this may not actually destroy the drawable. - * If another context retains a reference to the drawable - * after the reference count test above. - */ - (void) destroy_drawable(d); - error_count = 0; - } - - d = dnext; - } - - XSetErrorHandler(old_handler); - - unlock_drawables_list(); -} - -unsigned int -apple_glx_get_drawable_count(void) -{ - unsigned int result = 0; - struct apple_glx_drawable *d; - - lock_drawables_list(); - - for (d = drawables_list; d; d = d->next) - ++result; - - unlock_drawables_list(); - - return result; -} - -struct apple_glx_drawable * -apple_glx_drawable_find_by_type(GLXDrawable drawable, int type, int flags) -{ - struct apple_glx_drawable *d; - - lock_drawables_list(); - - for (d = drawables_list; d; d = d->next) { - if (d->type == type && d->drawable == drawable) { - if (flags & APPLE_GLX_DRAWABLE_REFERENCE) - d->reference(d); - - if (flags & APPLE_GLX_DRAWABLE_LOCK) - d->lock(d); - - unlock_drawables_list(); - - return d; - } - } - - unlock_drawables_list(); - - return NULL; -} - -struct apple_glx_drawable * -apple_glx_drawable_find(GLXDrawable drawable, int flags) -{ - struct apple_glx_drawable *d; - - lock_drawables_list(); - - for (d = drawables_list; d; d = d->next) { - if (d->drawable == drawable) { - if (flags & APPLE_GLX_DRAWABLE_REFERENCE) - d->reference(d); - - if (flags & APPLE_GLX_DRAWABLE_LOCK) - d->lock(d); - - unlock_drawables_list(); - - return d; - } - } - - unlock_drawables_list(); - - return NULL; -} - -/* Return true if the type is valid for the drawable. */ -bool -apple_glx_drawable_destroy_by_type(Display * dpy, - GLXDrawable drawable, int type) -{ - struct apple_glx_drawable *d; - - lock_drawables_list(); - - for (d = drawables_list; d; d = d->next) { - if (drawable == d->drawable && type == d->type) { - /* - * The user has requested that we destroy this resource. - * However, there may be references in the contexts to it, so - * release it, and call destroy_drawable which doesn't destroy - * if the reference_count is > 0. - */ - d->release(d); - - apple_glx_diagnostic("%s d->reference_count %d\n", - __func__, d->reference_count); - - destroy_drawable(d); - unlock_drawables_list(); - return true; - } - } - - unlock_drawables_list(); - - return false; -} - -struct apple_glx_drawable * -apple_glx_drawable_find_by_uid(unsigned int uid, int flags) -{ - struct apple_glx_drawable *d; - - lock_drawables_list(); - - for (d = drawables_list; d; d = d->next) { - /* Only surfaces have a uid. */ - if (APPLE_GLX_DRAWABLE_SURFACE == d->type) { - if (d->types.surface.uid == uid) { - if (flags & APPLE_GLX_DRAWABLE_REFERENCE) - d->reference(d); - - if (flags & APPLE_GLX_DRAWABLE_LOCK) - d->lock(d); - - unlock_drawables_list(); - - return d; - } - } - } - - unlock_drawables_list(); - - return NULL; -} diff --git a/src/glx/apple/apple_glx_drawable.h b/src/glx/apple/apple_glx_drawable.h deleted file mode 100644 index a15858963d..0000000000 --- a/src/glx/apple/apple_glx_drawable.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#ifndef APPLE_GLX_DRAWABLE_H -#define APPLE_GLX_DRAWABLE_H - -#include -#include -#include -#include -#define XP_NO_X_HEADERS -#include -#undef XP_NO_X_HEADERS -#include "apple_glx_context.h" - -enum -{ - APPLE_GLX_DRAWABLE_SURFACE = 1, - APPLE_GLX_DRAWABLE_PBUFFER, - APPLE_GLX_DRAWABLE_PIXMAP -}; - -/* The flag for the find routine. */ -enum -{ - APPLE_GLX_DRAWABLE_LOCK = 2, - APPLE_GLX_DRAWABLE_REFERENCE = 4 -}; - -struct apple_glx_context; -struct apple_glx_drawable; - -struct apple_glx_surface -{ - xp_surface_id surface_id; - unsigned int uid; - bool pending_destroy; -}; - -struct apple_glx_pbuffer -{ - GLXPbuffer xid; /* our pixmap */ - int width, height; - GLint fbconfigID; - CGLPBufferObj buffer_obj; - unsigned long event_mask; -}; - -struct apple_glx_pixmap -{ - GLXPixmap xpixmap; - void *buffer; - int width, height, pitch, /*bytes per pixel */ bpp; - size_t size; - char path[PATH_MAX]; - int fd; - CGLPixelFormatObj pixel_format_obj; - CGLContextObj context_obj; - GLint fbconfigID; -}; - -struct apple_glx_drawable_callbacks -{ - int type; - bool(*make_current) (struct apple_glx_context * ac, - struct apple_glx_drawable * d); - void (*destroy) (Display * dpy, struct apple_glx_drawable * d); -}; - -struct apple_glx_drawable -{ - Display *display; - int reference_count; - GLXDrawable drawable; - int type; /* APPLE_GLX_DRAWABLE_* */ - - union - { - struct apple_glx_pixmap pixmap; - struct apple_glx_pbuffer pbuffer; - struct apple_glx_surface surface; - } types; - - struct apple_glx_drawable_callbacks callbacks; - - /* - * This mutex protects the reference count and any other drawable data. - * It's used to prevent an early release of a drawable. - */ - pthread_mutex_t mutex; - void (*lock) (struct apple_glx_drawable * agd); - void (*unlock) (struct apple_glx_drawable * agd); - - void (*reference) (struct apple_glx_drawable * agd); - void (*release) (struct apple_glx_drawable * agd); - - bool(*destroy) (struct apple_glx_drawable * agd); - - bool(*is_pbuffer) (struct apple_glx_drawable * agd); - - bool(*is_pixmap) (struct apple_glx_drawable * agd); - -/*BEGIN These are used for the mixed mode drawing... */ - int width, height; - int row_bytes; - char path[PATH_MAX]; - int fd; /* The file descriptor for this drawable's shared memory. */ - void *buffer; /* The memory for the drawable. Typically shared memory. */ - size_t buffer_length; - /*END*/ struct apple_glx_drawable *previous, *next; -}; - -struct apple_glx_context; - -/* May return NULL if not found */ -struct apple_glx_drawable *apple_glx_find_drawable(Display * dpy, - GLXDrawable drawable); - -/* Returns true on error and locks the agd result with a reference. */ -bool apple_glx_drawable_create(Display * dpy, - int screen, - GLXDrawable drawable, - struct apple_glx_drawable **agd, - struct apple_glx_drawable_callbacks - *callbacks); - -/* Returns true on error */ -bool apple_glx_create_drawable(Display * dpy, - struct apple_glx_context *ac, - GLXDrawable drawable, - struct apple_glx_drawable **agd); - -void apple_glx_garbage_collect_drawables(Display * dpy); - -/* - * This returns the total number of drawables. - * It's mostly intended for debugging and introspection. - */ -unsigned int apple_glx_get_drawable_count(void); - -struct apple_glx_drawable *apple_glx_drawable_find_by_type(GLXDrawable - drawable, int type, - int flags); - -struct apple_glx_drawable *apple_glx_drawable_find(GLXDrawable drawable, - int flags); - - -bool apple_glx_drawable_destroy_by_type(Display * dpy, GLXDrawable drawable, - int type); - -struct apple_glx_drawable *apple_glx_drawable_find_by_uid(unsigned int uid, - int flags); - -/* Surfaces */ - -bool apple_glx_surface_create(Display * dpy, int screen, GLXDrawable drawable, - struct apple_glx_drawable **resultptr); - -void apple_glx_surface_destroy(unsigned int uid); - -/* Pbuffers */ - -/* Returns true if an error occurred. */ -bool apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config, - int width, int height, int *errorcode, - GLXPbuffer * pbuf); - -/* Returns true if the pbuffer was invalid. */ -bool apple_glx_pbuffer_destroy(Display * dpy, GLXPbuffer pbuf); - -/* Returns true if the pbuffer was valid and the attribute. */ -bool apple_glx_pbuffer_query(GLXDrawable d, int attribute, - unsigned int *value); - -/* Returns true if the GLXDrawable is a valid GLXPbuffer, and the mask is set. */ -bool apple_glx_pbuffer_set_event_mask(GLXDrawable d, unsigned long mask); - -/* Returns true if the GLXDrawable is a valid GLXPbuffer, and the *mask is set. */ -bool apple_glx_pbuffer_get_event_mask(GLXDrawable d, unsigned long *mask); - - -/* Pixmaps */ - -/* mode is a __GLcontextModes * */ -/* Returns true if an error occurred. */ -bool apple_glx_pixmap_create(Display * dpy, int screen, Pixmap pixmap, - const void *mode); - -/* Returns true if an error occurred. */ -bool apple_glx_pixmap_destroy(Display * dpy, Pixmap pixmap); - -bool apple_glx_pixmap_query(GLXPixmap pixmap, int attribute, - unsigned int *value); - - - -#endif diff --git a/src/glx/apple/apple_glx_pbuffer.c b/src/glx/apple/apple_glx_pbuffer.c deleted file mode 100644 index fb56b7512e..0000000000 --- a/src/glx/apple/apple_glx_pbuffer.c +++ /dev/null @@ -1,331 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include "apple_glx.h" -#include "glcontextmodes.h" -#include "apple_glx_context.h" -#include "apple_glx_drawable.h" -#include "apple_cgl.h" - -static bool pbuffer_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d); - -static void pbuffer_destroy(Display * dpy, struct apple_glx_drawable *d); - -static struct apple_glx_drawable_callbacks callbacks = { - .type = APPLE_GLX_DRAWABLE_PBUFFER, - .make_current = pbuffer_make_current, - .destroy = pbuffer_destroy -}; - - -/* Return true if an error occurred. */ -bool -pbuffer_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d) -{ - struct apple_glx_pbuffer *pbuf = &d->types.pbuffer; - CGLError cglerr; - - assert(APPLE_GLX_DRAWABLE_PBUFFER == d->type); - - cglerr = apple_cgl.set_pbuffer(ac->context_obj, pbuf->buffer_obj, 0, 0, 0); - - if (kCGLNoError != cglerr) { - fprintf(stderr, "set_pbuffer: %s\n", apple_cgl.error_string(cglerr)); - return true; - } - - if (!ac->made_current) { - glViewport(0, 0, pbuf->width, pbuf->height); - glScissor(0, 0, pbuf->width, pbuf->height); - ac->made_current = true; - } - - apple_glx_diagnostic("made pbuffer drawable 0x%lx current\n", d->drawable); - - return false; -} - -void -pbuffer_destroy(Display * dpy, struct apple_glx_drawable *d) -{ - struct apple_glx_pbuffer *pbuf = &d->types.pbuffer; - - assert(APPLE_GLX_DRAWABLE_PBUFFER == d->type); - - apple_glx_diagnostic("destroying pbuffer for drawable 0x%lx\n", - d->drawable); - - apple_cgl.destroy_pbuffer(pbuf->buffer_obj); - XFreePixmap(dpy, pbuf->xid); -} - -/* Return true if an error occurred. */ -bool -apple_glx_pbuffer_destroy(Display * dpy, GLXPbuffer pbuf) -{ - return !apple_glx_drawable_destroy_by_type(dpy, pbuf, - APPLE_GLX_DRAWABLE_PBUFFER); -} - -/* Return true if an error occurred. */ -bool -apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config, - int width, int height, int *errorcode, - GLXPbuffer * result) -{ - struct apple_glx_drawable *d; - struct apple_glx_pbuffer *pbuf = NULL; - CGLError err; - Window root; - int screen; - Pixmap xid; - __GLcontextModes *modes = (__GLcontextModes *) config; - - root = DefaultRootWindow(dpy); - screen = DefaultScreen(dpy); - - /* - * This pixmap is only used for a persistent XID. - * The XC-MISC extension cleans up XIDs and reuses them transparently, - * so we need to retain a server-side reference. - */ - xid = XCreatePixmap(dpy, root, (unsigned int) 1, - (unsigned int) 1, DefaultDepth(dpy, screen)); - - if (None == xid) { - *errorcode = BadAlloc; - return true; - } - - if (apple_glx_drawable_create(dpy, screen, xid, &d, &callbacks)) { - *errorcode = BadAlloc; - return true; - } - - /* The lock is held in d from create onward. */ - pbuf = &d->types.pbuffer; - - pbuf->xid = xid; - pbuf->width = width; - pbuf->height = height; - - err = apple_cgl.create_pbuffer(width, height, GL_TEXTURE_RECTANGLE_EXT, - (modes->alphaBits > 0) ? GL_RGBA : GL_RGB, - 0, &pbuf->buffer_obj); - - if (kCGLNoError != err) { - d->unlock(d); - d->destroy(d); - *errorcode = BadMatch; - return true; - } - - pbuf->fbconfigID = modes->fbconfigID; - - pbuf->event_mask = 0; - - *result = pbuf->xid; - - d->unlock(d); - - return false; -} - - - -/* Return true if an error occurred. */ -static bool -get_max_size(int *widthresult, int *heightresult) -{ - CGLContextObj oldcontext; - GLint ar[2]; - - oldcontext = apple_cgl.get_current_context(); - - if (!oldcontext) { - /* - * There is no current context, so we need to make one in order - * to call glGetInteger. - */ - CGLPixelFormatObj pfobj; - CGLError err; - CGLPixelFormatAttribute attr[10]; - int c = 0; - GLint vsref = 0; - CGLContextObj newcontext; - - attr[c++] = kCGLPFAColorSize; - attr[c++] = 32; - attr[c++] = 0; - - err = apple_cgl.choose_pixel_format(attr, &pfobj, &vsref); - if (kCGLNoError != err) { - if (getenv("LIBGL_DIAGNOSTIC")) { - printf("choose_pixel_format error in %s: %s\n", __func__, - apple_cgl.error_string(err)); - } - - return true; - } - - - err = apple_cgl.create_context(pfobj, NULL, &newcontext); - - if (kCGLNoError != err) { - if (getenv("LIBGL_DIAGNOSTIC")) { - printf("create_context error in %s: %s\n", __func__, - apple_cgl.error_string(err)); - } - - apple_cgl.destroy_pixel_format(pfobj); - - return true; - } - - err = apple_cgl.set_current_context(newcontext); - - if (kCGLNoError != err) { - printf("set_current_context error in %s: %s\n", __func__, - apple_cgl.error_string(err)); - return true; - } - - - glGetIntegerv(GL_MAX_VIEWPORT_DIMS, ar); - - apple_cgl.set_current_context(oldcontext); - apple_cgl.destroy_context(newcontext); - apple_cgl.destroy_pixel_format(pfobj); - } - else { - /* We have a valid context. */ - - glGetIntegerv(GL_MAX_VIEWPORT_DIMS, ar); - } - - *widthresult = ar[0]; - *heightresult = ar[1]; - - return false; -} - -bool -apple_glx_pbuffer_query(GLXPbuffer p, int attr, unsigned int *value) -{ - bool result = false; - struct apple_glx_drawable *d; - struct apple_glx_pbuffer *pbuf; - - d = apple_glx_drawable_find_by_type(p, APPLE_GLX_DRAWABLE_PBUFFER, - APPLE_GLX_DRAWABLE_LOCK); - - if (d) { - pbuf = &d->types.pbuffer; - - switch (attr) { - case GLX_WIDTH: - *value = pbuf->width; - result = true; - break; - - case GLX_HEIGHT: - *value = pbuf->height; - result = true; - break; - - case GLX_PRESERVED_CONTENTS: - *value = true; - result = true; - break; - - case GLX_LARGEST_PBUFFER:{ - int width, height; - if (get_max_size(&width, &height)) { - fprintf(stderr, "internal error: " - "unable to find the largest pbuffer!\n"); - } - else { - *value = width; - result = true; - } - } - break; - - case GLX_FBCONFIG_ID: - *value = pbuf->fbconfigID; - result = true; - break; - } - - d->unlock(d); - } - - return result; -} - -bool -apple_glx_pbuffer_set_event_mask(GLXDrawable drawable, unsigned long mask) -{ - struct apple_glx_drawable *d; - bool result = false; - - d = apple_glx_drawable_find_by_type(drawable, APPLE_GLX_DRAWABLE_PBUFFER, - APPLE_GLX_DRAWABLE_LOCK); - - if (d) { - d->types.pbuffer.event_mask = mask; - result = true; - d->unlock(d); - } - - return result; -} - -bool -apple_glx_pbuffer_get_event_mask(GLXDrawable drawable, unsigned long *mask) -{ - struct apple_glx_drawable *d; - bool result = false; - - d = apple_glx_drawable_find_by_type(drawable, APPLE_GLX_DRAWABLE_PBUFFER, - APPLE_GLX_DRAWABLE_LOCK); - if (d) { - *mask = d->types.pbuffer.event_mask; - result = true; - d->unlock(d); - } - - return result; -} diff --git a/src/glx/apple/apple_glx_pixmap.c b/src/glx/apple/apple_glx_pixmap.c deleted file mode 100644 index af1791afb7..0000000000 --- a/src/glx/apple/apple_glx_pixmap.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "apple_glx.h" -#include "apple_cgl.h" -#include "apple_visual.h" -#include "apple_glx_drawable.h" -#include "appledri.h" -#include "glcontextmodes.h" - -static bool pixmap_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d); - -static void pixmap_destroy(Display * dpy, struct apple_glx_drawable *d); - -static struct apple_glx_drawable_callbacks callbacks = { - .type = APPLE_GLX_DRAWABLE_PIXMAP, - .make_current = pixmap_make_current, - .destroy = pixmap_destroy -}; - -static bool -pixmap_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d) -{ - CGLError cglerr; - struct apple_glx_pixmap *p = &d->types.pixmap; - - assert(APPLE_GLX_DRAWABLE_PIXMAP == d->type); - - cglerr = apple_cgl.set_current_context(p->context_obj); - - if (kCGLNoError != cglerr) { - fprintf(stderr, "set current context: %s\n", - apple_cgl.error_string(cglerr)); - return true; - } - - cglerr = apple_cgl.set_off_screen(p->context_obj, p->width, p->height, - p->pitch, p->buffer); - - if (kCGLNoError != cglerr) { - fprintf(stderr, "set off screen: %s\n", apple_cgl.error_string(cglerr)); - - return true; - } - - if (!ac->made_current) { - glViewport(0, 0, p->width, p->height); - glScissor(0, 0, p->width, p->height); - ac->made_current = true; - } - - return false; -} - -static void -pixmap_destroy(Display * dpy, struct apple_glx_drawable *d) -{ - struct apple_glx_pixmap *p = &d->types.pixmap; - - if (p->pixel_format_obj) - (void) apple_cgl.destroy_pixel_format(p->pixel_format_obj); - - if (p->context_obj) - (void) apple_cgl.destroy_context(p->context_obj); - - XAppleDRIDestroyPixmap(dpy, p->xpixmap); - - if (p->buffer) { - if (munmap(p->buffer, p->size)) - perror("munmap"); - - if (-1 == close(p->fd)) - perror("close"); - - if (shm_unlink(p->path)) - perror("shm_unlink"); - } - - apple_glx_diagnostic("destroyed pixmap buffer for: 0x%lx\n", d->drawable); -} - -/* Return true if an error occurred. */ -bool -apple_glx_pixmap_create(Display * dpy, int screen, Pixmap pixmap, - const void *mode) -{ - struct apple_glx_drawable *d; - struct apple_glx_pixmap *p; - bool double_buffered; - bool uses_stereo; - CGLError error; - const __GLcontextModes *cmodes = mode; - - if (apple_glx_drawable_create(dpy, screen, pixmap, &d, &callbacks)) - return true; - - /* d is locked and referenced at this point. */ - - p = &d->types.pixmap; - - p->xpixmap = pixmap; - p->buffer = NULL; - - if (!XAppleDRICreatePixmap(dpy, screen, pixmap, - &p->width, &p->height, &p->pitch, &p->bpp, - &p->size, p->path, PATH_MAX)) { - d->unlock(d); - d->destroy(d); - return true; - } - - p->fd = shm_open(p->path, O_RDWR, 0); - - if (p->fd < 0) { - perror("shm_open"); - d->unlock(d); - d->destroy(d); - return true; - } - - p->buffer = mmap(NULL, p->size, PROT_READ | PROT_WRITE, - MAP_FILE | MAP_SHARED, p->fd, 0); - - if (MAP_FAILED == p->buffer) { - perror("mmap"); - d->unlock(d); - d->destroy(d); - return true; - } - - apple_visual_create_pfobj(&p->pixel_format_obj, mode, &double_buffered, - &uses_stereo, /*offscreen */ true); - - error = apple_cgl.create_context(p->pixel_format_obj, NULL, - &p->context_obj); - - if (kCGLNoError != error) { - d->unlock(d); - d->destroy(d); - return true; - } - - p->fbconfigID = cmodes->fbconfigID; - - d->unlock(d); - - apple_glx_diagnostic("created: pixmap buffer for 0x%lx\n", d->drawable); - - return false; -} - -bool -apple_glx_pixmap_query(GLXPixmap pixmap, int attr, unsigned int *value) -{ - struct apple_glx_drawable *d; - struct apple_glx_pixmap *p; - bool result = false; - - d = apple_glx_drawable_find_by_type(pixmap, APPLE_GLX_DRAWABLE_PIXMAP, - APPLE_GLX_DRAWABLE_LOCK); - - if (d) { - p = &d->types.pixmap; - - switch (attr) { - case GLX_WIDTH: - *value = p->width; - result = true; - break; - - case GLX_HEIGHT: - *value = p->height; - result = true; - break; - - case GLX_FBCONFIG_ID: - *value = p->fbconfigID; - result = true; - break; - } - - d->unlock(d); - } - - return result; -} - -/* Return true if the type is valid for pixmap. */ -bool -apple_glx_pixmap_destroy(Display * dpy, GLXPixmap pixmap) -{ - return !apple_glx_drawable_destroy_by_type(dpy, pixmap, - APPLE_GLX_DRAWABLE_PIXMAP); -} diff --git a/src/glx/apple/apple_glx_surface.c b/src/glx/apple/apple_glx_surface.c deleted file mode 100644 index 6db2910a46..0000000000 --- a/src/glx/apple/apple_glx_surface.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#include -#include "glxclient.h" -#include "apple_glx.h" -#include "appledri.h" -#include "apple_glx_drawable.h" - -static bool surface_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d); - -static void surface_destroy(Display * dpy, struct apple_glx_drawable *d); - - -static struct apple_glx_drawable_callbacks callbacks = { - .type = APPLE_GLX_DRAWABLE_SURFACE, - .make_current = surface_make_current, - .destroy = surface_destroy -}; - -static void -update_viewport_and_scissor(Display * dpy, GLXDrawable drawable) -{ - Window root; - int x, y; - unsigned int width = 0, height = 0, bd, depth; - - XGetGeometry(dpy, drawable, &root, &x, &y, &width, &height, &bd, &depth); - - glViewport(0, 0, width, height); - glScissor(0, 0, width, height); -} - -static bool -surface_make_current(struct apple_glx_context *ac, - struct apple_glx_drawable *d) -{ - struct apple_glx_surface *s = &d->types.surface; - xp_error error; - - assert(APPLE_GLX_DRAWABLE_SURFACE == d->type); - - apple_glx_diagnostic("%s: ac->context_obj %p s->surface_id %u\n", - __func__, (void *) ac->context_obj, s->surface_id); - - error = xp_attach_gl_context(ac->context_obj, s->surface_id); - - if (error) { - fprintf(stderr, "error: xp_attach_gl_context returned: %d\n", error); - return true; - } - - - if (!ac->made_current) { - /* - * The first time a new context is made current the glViewport - * and glScissor should be updated. - */ - update_viewport_and_scissor(ac->drawable->display, - ac->drawable->drawable); - ac->made_current = true; - } - - apple_glx_diagnostic("%s: drawable 0x%lx\n", __func__, d->drawable); - - return false; -} - -static void -surface_destroy(Display * dpy, struct apple_glx_drawable *d) -{ - struct apple_glx_surface *s = &d->types.surface; - - apple_glx_diagnostic("%s: s->surface_id %u\n", __func__, s->surface_id); - - xp_error error = xp_destroy_surface(s->surface_id); - - if (error) { - fprintf(stderr, "xp_destroy_surface error: %d\n", (int) error); - } - - /* - * Check if this surface destroy came from the surface being destroyed - * on the server. If s->pending_destroy is true, then it did, and - * we don't want to try to destroy the surface on the server. - */ - if (!s->pending_destroy) { - /* - * Warning: this causes other routines to be called (potentially) - * from surface_notify_handler. It's probably best to not have - * any locks at this point locked. - */ - XAppleDRIDestroySurface(d->display, DefaultScreen(d->display), - d->drawable); - - apple_glx_diagnostic - ("%s: destroyed a surface for drawable 0x%lx uid %u\n", __func__, - d->drawable, s->uid); - } -} - -/* Return true if an error occured. */ -static bool -create_surface(Display * dpy, int screen, struct apple_glx_drawable *d) -{ - struct apple_glx_surface *s = &d->types.surface; - unsigned int key[2]; - xp_client_id id; - - id = apple_glx_get_client_id(); - if (0 == id) - return true; - - assert(None != d->drawable); - - s->pending_destroy = false; - - if (XAppleDRICreateSurface(dpy, screen, d->drawable, id, key, &s->uid)) { - xp_error error; - - error = xp_import_surface(key, &s->surface_id); - - if (error) { - fprintf(stderr, "error: xp_import_surface returned: %d\n", error); - return true; - } - - apple_glx_diagnostic("%s: created a surface for drawable 0x%lx" - " with uid %u\n", __func__, d->drawable, s->uid); - return false; /*success */ - } - - return true; /* unable to create a surface. */ -} - -/* Return true if an error occured. */ -/* This returns a referenced object via resultptr. */ -bool -apple_glx_surface_create(Display * dpy, int screen, - GLXDrawable drawable, - struct apple_glx_drawable ** resultptr) -{ - struct apple_glx_drawable *d; - - if (apple_glx_drawable_create(dpy, screen, drawable, &d, &callbacks)) - return true; - - /* apple_glx_drawable_create creates a locked and referenced object. */ - - if (create_surface(dpy, screen, d)) { - d->unlock(d); - d->destroy(d); - return true; - } - - *resultptr = d; - - d->unlock(d); - - return false; -} - -/* - * All surfaces are reference counted, and surfaces are only created - * when the window is made current. When all contexts no longer reference - * a surface drawable the apple_glx_drawable gets destroyed, and thus - * its surface is destroyed. - * - * However we can make the destruction occur a bit sooner by setting - * pending_destroy, which is then checked for in glViewport by - * apple_glx_context_update. - */ -void -apple_glx_surface_destroy(unsigned int uid) -{ - struct apple_glx_drawable *d; - - d = apple_glx_drawable_find_by_uid(uid, APPLE_GLX_DRAWABLE_REFERENCE - | APPLE_GLX_DRAWABLE_LOCK); - - if (d) { - d->types.surface.pending_destroy = true; - d->release(d); - /* - * We release 2 references to the surface. One was acquired by - * the find, and the other was leftover from a context, or - * the surface being displayed, so the destroy() will decrease it - * once more. - * - * If the surface is in a context, it will take one d->destroy(d); - * to actually destroy it when the pending_destroy is processed - * by a glViewport callback (see apple_glx_context_update()). - */ - d->destroy(d); - - d->unlock(d); - } -} diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c deleted file mode 100644 index e80914741e..0000000000 --- a/src/glx/apple/apple_visual.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "apple_cgl.h" -#include "apple_visual.h" -#include "apple_glx.h" -#include "glcontextmodes.h" - -enum -{ - MAX_ATTR = 60 -}; - -/*mode is a __GlcontextModes*/ -void -apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode, - bool * double_buffered, bool * uses_stereo, - bool offscreen) -{ - CGLPixelFormatAttribute attr[MAX_ATTR]; - const __GLcontextModes *c = mode; - int numattr = 0; - GLint vsref = 0; - CGLError error = 0; - - if (offscreen) { - apple_glx_diagnostic - ("offscreen rendering enabled. Using kCGLPFAOffScreen\n"); - - attr[numattr++] = kCGLPFAOffScreen; - attr[numattr++] = kCGLPFAColorSize; - attr[numattr++] = 32; - } - else if (getenv("LIBGL_ALWAYS_SOFTWARE") != NULL) { - apple_glx_diagnostic - ("Software rendering requested. Using kCGLRendererGenericFloatID.\n"); - attr[numattr++] = kCGLPFARendererID; - attr[numattr++] = kCGLRendererGenericFloatID; - } - else if (getenv("LIBGL_ALLOW_SOFTWARE") != NULL) { - apple_glx_diagnostic - ("Software rendering is not being excluded. Not using kCGLPFAAccelerated.\n"); - } - else { - attr[numattr++] = kCGLPFAAccelerated; - } - - /* - * The program chose a config based on the fbconfigs or visuals. - * Those are based on the attributes from CGL, so we probably - * do want the closest match for the color, depth, and accum. - */ - attr[numattr++] = kCGLPFAClosestPolicy; - - if (c->stereoMode) { - attr[numattr++] = kCGLPFAStereo; - *uses_stereo = true; - } - else { - *uses_stereo = false; - } - - if (c->doubleBufferMode) { - attr[numattr++] = kCGLPFADoubleBuffer; - *double_buffered = true; - } - else { - *double_buffered = false; - } - - attr[numattr++] = kCGLPFAColorSize; - attr[numattr++] = c->redBits + c->greenBits + c->blueBits; - attr[numattr++] = kCGLPFAAlphaSize; - attr[numattr++] = c->alphaBits; - - if ((c->accumRedBits + c->accumGreenBits + c->accumBlueBits) > 0) { - attr[numattr++] = kCGLPFAAccumSize; - attr[numattr++] = c->accumRedBits + c->accumGreenBits + - c->accumBlueBits + c->accumAlphaBits; - } - - if (c->depthBits > 0) { - attr[numattr++] = kCGLPFADepthSize; - attr[numattr++] = c->depthBits; - } - - if (c->stencilBits > 0) { - attr[numattr++] = kCGLPFAStencilSize; - attr[numattr++] = c->stencilBits; - } - - if (c->sampleBuffers > 0) { - attr[numattr++] = kCGLPFAMultisample; - attr[numattr++] = kCGLPFASampleBuffers; - attr[numattr++] = c->sampleBuffers; - attr[numattr++] = kCGLPFASamples; - attr[numattr++] = c->samples; - } - - attr[numattr++] = 0; - - assert(numattr < MAX_ATTR); - - error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); - - if (error) { - fprintf(stderr, "error: %s\n", apple_cgl.error_string(error)); - abort(); - } -} diff --git a/src/glx/apple/apple_visual.h b/src/glx/apple/apple_visual.h deleted file mode 100644 index ebfafa340b..0000000000 --- a/src/glx/apple/apple_visual.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 2008 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#ifndef APPLE_VISUAL_H -#define APPLE_VISUAL_H - -#include -#include - -/* mode is expected to be of type __GLcontextModes. */ -void apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode, - bool * double_buffered, bool * uses_stereo, - bool offscreen); - -#endif diff --git a/src/glx/apple/apple_xgl_api_additional.c b/src/glx/apple/apple_xgl_api_additional.c deleted file mode 100644 index 7d40afe1d7..0000000000 --- a/src/glx/apple/apple_xgl_api_additional.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#define GL_GLEXT_PROTOTYPES -#include - -GLAPI void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei - depth, GLint border, GLenum format, GLenum type, const void * pixels) { - glTexImage3D(target, level, (GLint)internalformat, width, height, depth, border, format, type, pixels); -} - diff --git a/src/glx/apple/apple_xgl_api_read.c b/src/glx/apple/apple_xgl_api_read.c deleted file mode 100644 index 36357c7fc2..0000000000 --- a/src/glx/apple/apple_xgl_api_read.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -/* - * This file works with the glXMakeContextCurrent readable drawable. - * - * The way it works is by swapping the currentDrawable for the currentReadable - * drawable if they are different. - */ -#include -#include "apple_xgl_api_read.h" -#include "apple_xgl_api.h" -#include "apple_cgl.h" -#include "apple_glx_context.h" - -extern struct apple_xgl_api __gl_api; - -struct apple_xgl_saved_state -{ - bool swapped; -}; - -static void -SetRead(struct apple_xgl_saved_state *saved) -{ - GLXContext gc = __glXGetCurrentContext(); - - /* - * By default indicate that the state was not swapped, so that UnsetRead - * functions correctly. - */ - saved->swapped = false; - - /* - * If the readable drawable isn't the same as the drawable then - * the user has requested a readable drawable with glXMakeContextCurrent(). - * We emulate this behavior by switching the current drawable. - */ - if (None != gc->currentReadable - && gc->currentReadable != gc->currentDrawable) { - Display *dpy = glXGetCurrentDisplay(); - - saved->swapped = true; - - if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, - gc->currentReadable)) { - /* An error occurred, so try to restore the old context state. */ - (void) apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, - gc->currentDrawable); - saved->swapped = false; - } - } -} - -static void -UnsetRead(struct apple_xgl_saved_state *saved) -{ - if (saved->swapped) { - GLXContext gc = __glXGetCurrentContext(); - Display *dpy = glXGetCurrentDisplay(); - - if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext, - gc->currentDrawable)) { - /* - * An error occurred restoring the drawable. - * It's unclear what to do about that. - */ - } - } -} - -void -glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, void *pixels) -{ - struct apple_xgl_saved_state saved; - - SetRead(&saved); - - __gl_api.ReadPixels(x, y, width, height, format, type, pixels); - - UnsetRead(&saved); -} - -void -glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) -{ - struct apple_xgl_saved_state saved; - - SetRead(&saved); - - __gl_api.CopyPixels(x, y, width, height, type); - - UnsetRead(&saved); -} - -void -glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, - GLsizei width) -{ - struct apple_xgl_saved_state saved; - - SetRead(&saved); - - __gl_api.CopyColorTable(target, internalformat, x, y, width); - - UnsetRead(&saved); -} diff --git a/src/glx/apple/apple_xgl_api_read.h b/src/glx/apple/apple_xgl_api_read.h deleted file mode 100644 index ffeb32afb8..0000000000 --- a/src/glx/apple/apple_xgl_api_read.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -/* - * This file works with the glXMakeContextCurrent readable drawable. - */ -#ifndef APPLE_XGL_API_READ_H -#define APPLE_XGL_API_READ_H - -#include "glxclient.h" - -extern void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, void *pixels); - -extern void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, - GLenum type); - -extern void glCopyColorTable(GLenum target, GLenum internalformat, GLint x, - GLint y, GLsizei width); - -#endif diff --git a/src/glx/apple/apple_xgl_api_stereo.c b/src/glx/apple/apple_xgl_api_stereo.c deleted file mode 100644 index 7dd946f764..0000000000 --- a/src/glx/apple/apple_xgl_api_stereo.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include -#include "apple_xgl_api_stereo.h" -#include "apple_xgl_api.h" -#include "apple_glx_context.h" - -extern struct apple_xgl_api __gl_api; -/* - * These are special functions for stereoscopic support - * differences in MacOS X. - */ -void -glDrawBuffer(GLenum mode) -{ - GLXContext gc = glXGetCurrentContext(); - - if (gc && apple_glx_context_uses_stereo(gc->driContext)) { - GLenum buf[2]; - GLsizei n = 0; - - switch (mode) { - case GL_BACK: - buf[0] = GL_BACK_LEFT; - buf[1] = GL_BACK_RIGHT; - n = 2; - break; - case GL_FRONT: - buf[0] = GL_FRONT_LEFT; - buf[1] = GL_FRONT_RIGHT; - n = 2; - break; - - default: - buf[0] = mode; - n = 1; - break; - } - - __gl_api.DrawBuffers(n, buf); - } - else { - __gl_api.DrawBuffer(mode); - } -} - - -void -glDrawBuffers(GLsizei n, const GLenum * bufs) -{ - GLXContext gc = glXGetCurrentContext(); - - if (gc && apple_glx_context_uses_stereo(gc->driContext)) { - GLenum newbuf[n + 2]; - GLsizei i, outi = 0; - bool have_back = false; - bool have_front = false; - - for (i = 0; i < n; ++i) { - if (GL_BACK == bufs[i]) { - have_back = true; - } - else if (GL_FRONT == bufs[i]) { - have_back = true; - } - else { - newbuf[outi++] = bufs[i]; - } - } - - if (have_back) { - newbuf[outi++] = GL_BACK_LEFT; - newbuf[outi++] = GL_BACK_RIGHT; - } - - if (have_front) { - newbuf[outi++] = GL_FRONT_LEFT; - newbuf[outi++] = GL_FRONT_RIGHT; - } - - __gl_api.DrawBuffers(outi, newbuf); - } - else { - __gl_api.DrawBuffers(n, bufs); - } -} - -void -glDrawBuffersARB(GLsizei n, const GLenum * bufs) -{ - glDrawBuffers(n, bufs); -} diff --git a/src/glx/apple/apple_xgl_api_stereo.h b/src/glx/apple/apple_xgl_api_stereo.h deleted file mode 100644 index c285363f6f..0000000000 --- a/src/glx/apple/apple_xgl_api_stereo.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ - -#include "glxclient.h" - -#ifndef APPLE_XGL_API_STEREO_H -#define APPLE_XGL_API_STEREO_H - -extern void glDrawBuffer(GLenum mode); -extern void glDrawBuffers(GLsizei n, const GLenum * bufs); -extern void glDrawBuffersARB(GLsizei n, const GLenum * bufs); - -#endif diff --git a/src/glx/apple/apple_xgl_api_viewport.c b/src/glx/apple/apple_xgl_api_viewport.c deleted file mode 100644 index f556eefa22..0000000000 --- a/src/glx/apple/apple_xgl_api_viewport.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#include "apple_glx_context.h" -#include "apple_xgl_api.h" -#include "apple_xgl_api_viewport.h" - -extern struct apple_xgl_api __gl_api; - -void -glViewport(GLint x, GLint y, GLsizei width, GLsizei height) -{ - GLXContext gc = __glXGetCurrentContext(); - Display *dpy = glXGetCurrentDisplay(); - - if (gc && gc->driContext) - apple_glx_context_update(dpy, gc->driContext); - - __gl_api.Viewport(x, y, width, height); -} diff --git a/src/glx/apple/apple_xgl_api_viewport.h b/src/glx/apple/apple_xgl_api_viewport.h deleted file mode 100644 index 6c89ca7998..0000000000 --- a/src/glx/apple/apple_xgl_api_viewport.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#ifndef APPLE_XGL_API_VIEWPORT_H -#define APPLE_XGL_API_VIEWPORT_H - -#include "glxclient.h" - -void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); - -#endif diff --git a/src/glx/apple/appledri.c b/src/glx/apple/appledri.c deleted file mode 100644 index 4f2e8f9914..0000000000 --- a/src/glx/apple/appledri.c +++ /dev/null @@ -1,452 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/XF86dri.c,v 1.12 2001/08/27 17:40:57 dawes Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, Inc. -Copyright (c) 2002, 2008 Apple Computer, Inc. -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sub license, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice (including the -next paragraph) shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Jens Owen - * Rickard E. (Rik) Faith - * - */ - -/* THIS IS NOT AN X CONSORTIUM STANDARD */ - -#define NEED_EVENTS -#define NEED_REPLIES -#include -#include "appledristr.h" -#include -#include -#include - -static XExtensionInfo _appledri_info_data; -static XExtensionInfo *appledri_info = &_appledri_info_data; -static char *appledri_extension_name = APPLEDRINAME; - -#define AppleDRICheckExtension(dpy,i,val) \ - XextCheckExtension (dpy, i, appledri_extension_name, val) - -/***************************************************************************** - * * - * private utility routines * - * * - *****************************************************************************/ - -static int close_display(Display * dpy, XExtCodes * extCodes); -static Bool wire_to_event(Display * dpy, XEvent * re, xEvent * event); - -static /* const */ XExtensionHooks appledri_extension_hooks = { - NULL, /* create_gc */ - NULL, /* copy_gc */ - NULL, /* flush_gc */ - NULL, /* free_gc */ - NULL, /* create_font */ - NULL, /* free_font */ - close_display, /* close_display */ - wire_to_event, /* wire_to_event */ - NULL, /* event_to_wire */ - NULL, /* error */ - NULL, /* error_string */ -}; - -static -XEXT_GENERATE_FIND_DISPLAY(find_display, appledri_info, - appledri_extension_name, - &appledri_extension_hooks, - AppleDRINumberEvents, NULL) - - static XEXT_GENERATE_CLOSE_DISPLAY(close_display, appledri_info) - - static void (*surface_notify_handler) (); - - void *XAppleDRISetSurfaceNotifyHandler(void (*fun) ()) -{ - void *old = surface_notify_handler; - surface_notify_handler = fun; - return old; -} - -static Bool -wire_to_event(Display *dpy, XEvent *re, xEvent *event) -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRINotifyEvent *sevent; - - AppleDRICheckExtension(dpy, info, False); - - switch ((event->u.u.type & 0x7f) - info->codes->first_event) { - case AppleDRISurfaceNotify: - sevent = (xAppleDRINotifyEvent *) event; - if (surface_notify_handler != NULL) { - (*surface_notify_handler) (dpy, (unsigned int) sevent->arg, - (int) sevent->kind); - } - return False; - } - return False; -} - -/***************************************************************************** - * * - * public Apple-DRI Extension routines * - * * - *****************************************************************************/ - -#if 0 -#include -#define TRACE(msg) fprintf(stderr, "AppleDRI%s\n", msg); -#else -#define TRACE(msg) -#endif - - -Bool -XAppleDRIQueryExtension(dpy, event_basep, error_basep) - Display *dpy; - int *event_basep, *error_basep; -{ - XExtDisplayInfo *info = find_display(dpy); - - TRACE("QueryExtension..."); - if (XextHasExtension(info)) { - *event_basep = info->codes->first_event; - *error_basep = info->codes->first_error; - TRACE("QueryExtension... return True"); - return True; - } - else { - TRACE("QueryExtension... return False"); - return False; - } -} - -Bool -XAppleDRIQueryVersion(dpy, majorVersion, minorVersion, patchVersion) - Display *dpy; - int *majorVersion; - int *minorVersion; - int *patchVersion; -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRIQueryVersionReply rep; - xAppleDRIQueryVersionReq *req; - - TRACE("QueryVersion..."); - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRIQueryVersion, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRIQueryVersion; - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryVersion... return False"); - return False; - } - *majorVersion = rep.majorVersion; - *minorVersion = rep.minorVersion; - *patchVersion = rep.patchVersion; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryVersion... return True"); - return True; -} - -Bool -XAppleDRIQueryDirectRenderingCapable(dpy, screen, isCapable) - Display *dpy; - int screen; - Bool *isCapable; -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRIQueryDirectRenderingCapableReply rep; - xAppleDRIQueryDirectRenderingCapableReq *req; - - TRACE("QueryDirectRenderingCapable..."); - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRIQueryDirectRenderingCapable, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRIQueryDirectRenderingCapable; - req->screen = screen; - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryDirectRenderingCapable... return False"); - return False; - } - *isCapable = rep.isCapable; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryDirectRenderingCapable... return True"); - return True; -} - -Bool -XAppleDRIAuthConnection(dpy, screen, magic) - Display *dpy; - int screen; - unsigned int magic; -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRIAuthConnectionReq *req; - xAppleDRIAuthConnectionReply rep; - - TRACE("AuthConnection..."); - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRIAuthConnection, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRIAuthConnection; - req->screen = screen; - req->magic = magic; - rep.authenticated = 0; - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse) || !rep.authenticated) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("AuthConnection... return False"); - return False; - } - UnlockDisplay(dpy); - SyncHandle(); - TRACE("AuthConnection... return True"); - return True; -} - -Bool -XAppleDRICreateSurface(dpy, screen, drawable, client_id, key, uid) - Display *dpy; - int screen; - Drawable drawable; - unsigned int client_id; - unsigned int *key; - unsigned int *uid; -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRICreateSurfaceReply rep; - xAppleDRICreateSurfaceReq *req; - - TRACE("CreateSurface..."); - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRICreateSurface, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRICreateSurface; - req->screen = screen; - req->drawable = drawable; - req->client_id = client_id; - rep.key_0 = rep.key_1 = rep.uid = 0; - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse) || !rep.key_0) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateSurface... return False"); - return False; - } - key[0] = rep.key_0; - key[1] = rep.key_1; - *uid = rep.uid; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateSurface... return True"); - return True; -} - -Bool -XAppleDRIDestroySurface(dpy, screen, drawable) - Display *dpy; - int screen; - Drawable drawable; -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRIDestroySurfaceReq *req; - - TRACE("DestroySurface..."); - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRIDestroySurface, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRIDestroySurface; - req->screen = screen; - req->drawable = drawable; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("DestroySurface... return True"); - return True; -} - -Bool -XAppleDRICreateSharedBuffer(Display * dpy, int screen, Drawable drawable, - Bool doubleSwap, char *path, size_t pathlen, - int *width, int *height) -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRICreateSharedBufferReq *req; - xAppleDRICreateSharedBufferReply rep; - - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRICreateSharedBuffer, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRICreateSharedBuffer; - req->screen = screen; - req->drawable = drawable; - req->doubleSwap = doubleSwap; - - - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { - puts("REPLY ERROR"); - - UnlockDisplay(dpy); - SyncHandle(); - return False; - } - - printf("rep.stringLength %d\n", (int) rep.stringLength); - - if (rep.stringLength > 0 && rep.stringLength <= pathlen) { - _XReadPad(dpy, path, rep.stringLength); - - printf("path: %s\n", path); - - *width = rep.width; - *height = rep.height; - - UnlockDisplay(dpy); - SyncHandle(); - return True; - } - - UnlockDisplay(dpy); - SyncHandle(); - - return False; -} - -Bool -XAppleDRISwapBuffers(Display * dpy, int screen, Drawable drawable) -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRISwapBuffersReq *req; - - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRISwapBuffers, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRISwapBuffers; - req->screen = screen; - req->drawable = drawable; - UnlockDisplay(dpy); - SyncHandle(); - - return True; -} - -Bool -XAppleDRICreatePixmap(Display * dpy, int screen, Drawable drawable, - int *width, int *height, int *pitch, int *bpp, - size_t * size, char *bufname, size_t bufnamesize) -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRICreatePixmapReq *req; - xAppleDRICreatePixmapReply rep; - - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRICreatePixmap, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRICreatePixmap; - req->screen = screen; - req->drawable = drawable; - - if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - return False; - } - - /* - printf("rep.stringLength %d\n", (int) rep.stringLength); - */ - - if (rep.stringLength > 0 && rep.stringLength <= bufnamesize) { - _XReadPad(dpy, bufname, rep.stringLength); - - printf("path: %s\n", bufname); - - *width = rep.width; - *height = rep.height; - *pitch = rep.pitch; - *bpp = rep.bpp; - *size = rep.size; - - UnlockDisplay(dpy); - SyncHandle(); - return True; - } - else if (rep.stringLength > 0) { - _XEatData(dpy, rep.stringLength); - } - - UnlockDisplay(dpy); - SyncHandle(); - - return True; -} - -/* - * Call it a drawable, because we really don't know what it is - * until it reaches the server, and we should keep that in mind. - */ -Bool -XAppleDRIDestroyPixmap(Display * dpy, Pixmap drawable) -{ - XExtDisplayInfo *info = find_display(dpy); - xAppleDRIDestroyPixmapReq *req; - - AppleDRICheckExtension(dpy, info, False); - - LockDisplay(dpy); - GetReq(AppleDRIDestroyPixmap, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_AppleDRIDestroyPixmap; - req->drawable = drawable; - UnlockDisplay(dpy); - SyncHandle(); - - return True; -} diff --git a/src/glx/apple/appledri.h b/src/glx/apple/appledri.h deleted file mode 100644 index 0108378ca3..0000000000 --- a/src/glx/apple/appledri.h +++ /dev/null @@ -1,124 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, Inc. -Copyright (c) 2002, 2008, 2009 Apple Computer, Inc. -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sub license, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice (including the -next paragraph) shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Jens Owen - * Rickard E. (Rik) Faith - * - */ - -#ifndef _APPLEDRI_H_ -#define _APPLEDRI_H_ - -#include -#include - -#define X_AppleDRIQueryVersion 0 -#define X_AppleDRIQueryDirectRenderingCapable 1 -#define X_AppleDRICreateSurface 2 -#define X_AppleDRIDestroySurface 3 -#define X_AppleDRIAuthConnection 4 -#define X_AppleDRICreateSharedBuffer 5 -#define X_AppleDRISwapBuffers 6 -#define X_AppleDRICreatePixmap 7 -#define X_AppleDRIDestroyPixmap 8 - -/* Requests up to and including 18 were used in a previous version */ - -/* Events */ -#define AppleDRIObsoleteEvent1 0 -#define AppleDRIObsoleteEvent2 1 -#define AppleDRIObsoleteEvent3 2 -#define AppleDRISurfaceNotify 3 -#define AppleDRINumberEvents 4 - -/* Errors */ -#define AppleDRIClientNotLocal 0 -#define AppleDRIOperationNotSupported 1 -#define AppleDRINumberErrors (AppleDRIOperationNotSupported + 1) - -/* Kinds of SurfaceNotify events: */ -#define AppleDRISurfaceNotifyChanged 0 -#define AppleDRISurfaceNotifyDestroyed 1 - -#ifndef _APPLEDRI_SERVER_ - -typedef struct -{ - int type; /* of event */ - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* true if this came frome a SendEvent request */ - Display *display; /* Display the event was read from */ - Window window; /* window of event */ - Time time; /* server timestamp when event happened */ - int kind; /* subtype of event */ - int arg; -} XAppleDRINotifyEvent; - -_XFUNCPROTOBEGIN - Bool XAppleDRIQueryExtension(Display * dpy, int *event_base, - int *error_base); - -Bool XAppleDRIQueryVersion(Display * dpy, int *majorVersion, - int *minorVersion, int *patchVersion); - -Bool XAppleDRIQueryDirectRenderingCapable(Display * dpy, int screen, - Bool * isCapable); - -void *XAppleDRISetSurfaceNotifyHandler(void (*fun) (Display * dpy, - unsigned uid, int kind)); - -Bool XAppleDRIAuthConnection(Display * dpy, int screen, unsigned int magic); - -Bool XAppleDRICreateSurface(Display * dpy, int screen, Drawable drawable, - unsigned int client_id, unsigned int key[2], - unsigned int *uid); - -Bool XAppleDRIDestroySurface(Display * dpy, int screen, Drawable drawable); - -Bool XAppleDRISynchronizeSurfaces(Display * dpy); - -Bool XAppleDRICreateSharedBuffer(Display * dpy, int screen, Drawable drawable, - Bool doubleSwap, char *path, size_t pathlen, - int *width, int *height); - -Bool XAppleDRISwapBuffers(Display * dpy, int screen, Drawable drawable); - -Bool XAppleDRICreatePixmap(Display * dpy, int screen, Drawable drawable, - int *width, int *height, int *pitch, int *bpp, - size_t * size, char *bufname, size_t bufnamesize); - -Bool XAppleDRIDestroyPixmap(Display * dpy, Pixmap pixmap); - -_XFUNCPROTOEND -#endif /* _APPLEDRI_SERVER_ */ -#endif /* _APPLEDRI_H_ */ diff --git a/src/glx/apple/appledristr.h b/src/glx/apple/appledristr.h deleted file mode 100644 index b5ffe5b46a..0000000000 --- a/src/glx/apple/appledristr.h +++ /dev/null @@ -1,266 +0,0 @@ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, Inc. -Copyright (c) 2002, 2008, 2009 Apple Computer, Inc. -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sub license, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice (including the -next paragraph) shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Jens Owen - * Rickard E. (Rik) Fiath - * - */ - -#ifndef _APPLEDRISTR_H_ -#define _APPLEDRISTR_H_ - -#include "appledri.h" - -#define APPLEDRINAME "Apple-DRI" - -#define APPLE_DRI_MAJOR_VERSION 1 /* current version numbers */ -#define APPLE_DRI_MINOR_VERSION 0 -#define APPLE_DRI_PATCH_VERSION 0 - -typedef struct _AppleDRIQueryVersion -{ - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIQueryVersion */ - CARD16 length B16; -} xAppleDRIQueryVersionReq; -#define sz_xAppleDRIQueryVersionReq 4 - -typedef struct -{ - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 majorVersion B16; /* major version of DRI protocol */ - CARD16 minorVersion B16; /* minor version of DRI protocol */ - CARD32 patchVersion B32; /* patch version of DRI protocol */ - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xAppleDRIQueryVersionReply; -#define sz_xAppleDRIQueryVersionReply 32 - -typedef struct _AppleDRIQueryDirectRenderingCapable -{ - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ - CARD16 length B16; - CARD32 screen B32; -} xAppleDRIQueryDirectRenderingCapableReq; -#define sz_xAppleDRIQueryDirectRenderingCapableReq 8 - -typedef struct -{ - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - BOOL isCapable; - BOOL pad2; - BOOL pad3; - BOOL pad4; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - CARD32 pad8 B32; - CARD32 pad9 B32; -} xAppleDRIQueryDirectRenderingCapableReply; -#define sz_xAppleDRIQueryDirectRenderingCapableReply 32 - -typedef struct _AppleDRIAuthConnection -{ - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICloseConnection */ - CARD16 length B16; - CARD32 screen B32; - CARD32 magic B32; -} xAppleDRIAuthConnectionReq; -#define sz_xAppleDRIAuthConnectionReq 12 - -typedef struct -{ - BYTE type; - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 authenticated B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xAppleDRIAuthConnectionReply; -#define zx_xAppleDRIAuthConnectionReply 32 - -typedef struct _AppleDRICreateSurface -{ - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICreateSurface */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; - CARD32 client_id B32; -} xAppleDRICreateSurfaceReq; -#define sz_xAppleDRICreateSurfaceReq 16 - -typedef struct -{ - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 key_0 B32; - CARD32 key_1 B32; - CARD32 uid B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xAppleDRICreateSurfaceReply; -#define sz_xAppleDRICreateSurfaceReply 32 - -typedef struct _AppleDRIDestroySurface -{ - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIDestroySurface */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xAppleDRIDestroySurfaceReq; -#define sz_xAppleDRIDestroySurfaceReq 12 - -typedef struct _AppleDRINotify -{ - BYTE type; /* always eventBase + event type */ - BYTE kind; - CARD16 sequenceNumber B16; - CARD32 time B32; /* time of change */ - CARD32 pad1 B32; - CARD32 arg B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xAppleDRINotifyEvent; -#define sz_xAppleDRINotifyEvent 32 - - -typedef struct -{ - CARD8 reqType; - CARD8 driReqType; - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; - BOOL doubleSwap; - CARD8 pad1, pad2, pad3; -} xAppleDRICreateSharedBufferReq; - -#define sz_xAppleDRICreateSharedBufferReq 16 - -typedef struct -{ - BYTE type; - BYTE data1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 stringLength B32; /* 0 on error */ - CARD32 width B32; - CARD32 height B32; - CARD32 pad1 B32; - CARD32 pad2 B32; - CARD32 pad3 B32; -} xAppleDRICreateSharedBufferReply; - -#define sz_xAppleDRICreateSharedBufferReply 32 - -typedef struct -{ - CARD8 reqType; - CARD8 driReqType; - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xAppleDRISwapBuffersReq; - -#define sz_xAppleDRISwapBuffersReq 12 - -typedef struct -{ - CARD8 reqType; /*1 */ - CARD8 driReqType; /*2 */ - CARD16 length B16; /*4 */ - CARD32 screen B32; /*8 */ - CARD32 drawable B32; /*12 */ -} xAppleDRICreatePixmapReq; - -#define sz_xAppleDRICreatePixmapReq 12 - -typedef struct -{ - BYTE type; /*1 */ - BOOL pad1; /*2 */ - CARD16 sequenceNumber B16; /*4 */ - CARD32 length B32; /*8 */ - CARD32 width B32; /*12 */ - CARD32 height B32; /*16 */ - CARD32 pitch B32; /*20 */ - CARD32 bpp B32; /*24 */ - CARD32 size B32; /*28 */ - CARD32 stringLength B32; /*32 */ -} xAppleDRICreatePixmapReply; - -#define sz_xAppleDRICreatePixmapReply 32 - -typedef struct -{ - CARD8 reqType; /*1 */ - CARD8 driReqType; /*2 */ - CARD16 length B16; /*4 */ - CARD32 drawable B32; /*8 */ -} xAppleDRIDestroyPixmapReq; - -#define sz_xAppleDRIDestroyPixmapReq 8 - -#ifdef _APPLEDRI_SERVER_ - -void AppleDRISendEvent( -#if NeedFunctionPrototypes - int /* type */ , - unsigned int /* mask */ , - int /* which */ , - int /* arg */ -#endif - ); - -#endif /* _APPLEDRI_SERVER_ */ -#endif /* _APPLEDRISTR_H_ */ diff --git a/src/glx/apple/gen_api_header.tcl b/src/glx/apple/gen_api_header.tcl deleted file mode 100644 index 9e986de504..0000000000 --- a/src/glx/apple/gen_api_header.tcl +++ /dev/null @@ -1,86 +0,0 @@ - -package require Tcl 8.5 - -set license { -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -} - -set this_script [info script] - -proc main {argc argv} { - if {2 != $argc} { - puts stderr "syntax is: [set ::this_script] serialized-array-file output.h" - return 1 - } - - set fd [open [lindex $argv 0] r] - array set api [read $fd] - close $fd - - set fd [open [lindex $argv 1] w] - - puts $fd "/* This file was automatically generated by [set ::this_script]. */" - puts $fd $::license - - puts $fd " -#ifndef APPLE_XGL_API_H -#define APPLE_XGL_API_H -" - - puts $fd "struct apple_xgl_api \{" - - set sorted [lsort -dictionary [array names api]] - - foreach f $sorted { - set attr $api($f) - set pstr "" - - if {[dict exists $attr alias_for] || [dict exists $attr noop]} { - #Skip this function. - continue - } - - foreach p [dict get $attr parameters] { - append pstr "[lindex $p 0] [lindex $p 1], " - } - - set pstr [string trimright $pstr ", "] - puts $fd "\t[dict get $attr return] (*[set f])([set pstr]);" - } - - puts $fd "\};" - puts $fd "void apple_xgl_init_direct(void); - -#endif /*APPLE_XGL_API_H*/ -" - - return 0 -} -exit [main $::argc $::argv] \ No newline at end of file diff --git a/src/glx/apple/gen_api_library.tcl b/src/glx/apple/gen_api_library.tcl deleted file mode 100644 index 159f9c085f..0000000000 --- a/src/glx/apple/gen_api_library.tcl +++ /dev/null @@ -1,212 +0,0 @@ -package require Tcl 8.5 - -set license { -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -} - -set gl_license { -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ -} - -set init_code { -static void *glsym(void *handle, const char *name) { - void *sym = dlsym(handle, name); - - if(NULL == sym) { - fprintf(stderr, "Error: symbol not found: '%s'. " - "Error information: %s\n", - name, dlerror()); - abort(); - } - - return sym; -} - -} - -set dlopen_code { -#ifndef LIBGLNAME -#define LIBGLNAME "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib" -#endif LIBGLNAME - - (void)dlerror(); /*drain dlerror()*/ - - handle = dlopen(LIBGLNAME, RTLD_LAZY); - - if(NULL == handle) { - fprintf(stderr, "error: unable to dlopen " - LIBGLNAME " :" "%s\n", dlerror()); - abort(); - } -} - -set this_script [info script] - -proc main {argc argv} { - if {2 != $argc} { - puts stderr "syntax is: [set ::this_script] serialized-array-file output.c" - return 1 - } - - - set fd [open [lindex $argv 0] r] - array set api [read $fd] - close $fd - - set fd [open [lindex $argv 1] w] - - puts $fd "/* This file was automatically generated by [set ::this_script]. */" - puts $fd $::license - - puts $fd { -#define GL_GLEXT_PROTOTYPES -#include -#include -#include "glxclient.h" -#include "apple_xgl_api.h" -#include "apple_glx_context.h" - } - - puts $fd "struct apple_xgl_api __gl_api;" - - set sorted [lsort -dictionary [array names api]] - - set exclude [list DrawBuffer DrawBuffers DrawBuffersARB] - - #These are special to glXMakeContextCurrent. - #See also: apple_xgl_api_read.c. - lappend exclude ReadPixels CopyPixels CopyColorTable - - #This is excluded to work with surface updates. - lappend exclude Viewport - - foreach f $sorted { - if {$f in $exclude} { - continue - } - - set attr $api($f) - - set pstr "" - - foreach p [dict get $attr parameters] { - append pstr "[lindex $p 0] [lindex $p 1], " - } - - set pstr [string trimright $pstr ", "] - - if {![string length $pstr]} { - set pstr void - } - - set callvars "" - - foreach p [dict get $attr parameters] { - append callvars "[lindex $p end], " - } - - set callvars [string trimright $callvars ", "] - - set return "" - if {"void" ne [dict get $attr return]} { - set return "return " - } - - if {[dict exists $attr noop]} { - if {"void" eq [dict get $attr return]} { - set body "/*noop*/" - } else { - set body "return 0; /*noop*/" - } - } elseif {[dict exists $attr alias_for]} { - set alias [dict get $attr alias_for] - set body "[set return] gl[set alias]([set callvars]);" - } else { - set body "[set return]__gl_api.[set f]([set callvars]);" - } - - puts $fd "GLAPI [dict get $attr return] APIENTRY gl[set f]([set pstr]) \{\n\t$body\n\}" - } - - puts $fd $::init_code - - puts $fd "void apple_xgl_init_direct(void) \{" - puts $fd "\tvoid *handle;" - - puts $fd $::dlopen_code - - foreach f $sorted { - set attr $api($f) - - puts $attr - puts $f - - if {[dict exists $attr alias_for] || [dict exists $attr noop]} { - #Function f is an alias_for another, so we shouldn't try - #to load it. - continue - } - - puts $fd "\t__gl_api.$f = glsym(handle, \"gl$f\");" - } - - puts $fd "\}\n" - close $fd - - return 0 -} -exit [main $::argc $::argv] diff --git a/src/glx/apple/gen_code.tcl b/src/glx/apple/gen_code.tcl deleted file mode 100644 index bb38d9f1c9..0000000000 --- a/src/glx/apple/gen_code.tcl +++ /dev/null @@ -1,50 +0,0 @@ -if 0 { - Copyright (c) 2008 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -} - -package require Tcl 8.5 - -proc main {} { - set tclsh [info nameofexecutable] - - puts TYPES - exec $tclsh ./gen_types.tcl stage.1 - puts DEFS - exec $tclsh ./gen_defs.tcl specs/enum.spec stage.2 - puts FUNCS - exec $tclsh ./gen_funcs.tcl specs/gl.spec stage.3 stage.4 - puts HEADER - exec $tclsh ./gen_api_header.tcl stage.4 apple_xgl_api.h - puts "C API" - exec $tclsh ./gen_api_library.tcl stage.4 apple_xgl_api.c - puts "EXPORTS" - exec $tclsh ./gen_exports.tcl stage.4 exports.list - - return 0 -} -exit [main] diff --git a/src/glx/apple/gen_defs.tcl b/src/glx/apple/gen_defs.tcl deleted file mode 100644 index d32694db72..0000000000 --- a/src/glx/apple/gen_defs.tcl +++ /dev/null @@ -1,67 +0,0 @@ -#This parses and generates #defines from an enum.spec type of file. - -proc main {argc argv} { - if {2 != $argc} { - puts stderr "syntax is: [info script] input.spec output.h" - exit 1 - } - - set fd [open [lindex $argv 0] r] - set data [read $fd] - close $fd - - set fd [open [lindex $argv 1] w] - - set state "" - - puts $fd "#define GL_VERSION_1_1 1" - puts $fd "#define GL_VERSION_1_2 1" - puts $fd "#define GL_VERSION_1_3 1" - puts $fd "#define GL_VERSION_1_4 1" - puts $fd "#define GL_VERSION_1_5 1" - puts $fd "#define GL_VERSION_2_0 1" - #puts $fd "#define GL_VERSION_3_0 1" - - set mask "" - array set ar {} - - foreach line [split $data \n] { - if {[regexp {^\S*#.*} $line] > 0} { - #puts COMMENT:$line - set state "" - } elseif {"enum" eq $state} { - if {[string match "\t*" $line]} { - if {[regexp {^\tuse.*} $line] > 0} { - lassign [split [string trim $line]] use usemask def - set usemask [string trim $usemask] - set def [string trim $def] - puts $fd "/* GL_$def */" - } else { - lassign [split [string trim $line] =] def value - set def [string trim $def] - set value [string trim $value] - - #Trim out the data like: 0x0B00 # 4 F - set value [lindex [split $value] 0] - - puts $fd "#define GL_$def $value" - - #Save this association with the value. - set d $ar($mask) - dict set d $def $value - set ar($mask) $d - } - } else { - set state "" - } - } elseif {[string match "* enum:*" $line]} { - lassign [split $line] mask _ - puts $fd "\n/*[string trim $mask]*/" - set ar($mask) [dict create] - set state enum - } - } - - close $fd -} -main $::argc $::argv diff --git a/src/glx/apple/gen_exports.tcl b/src/glx/apple/gen_exports.tcl deleted file mode 100644 index acfe6e6a9e..0000000000 --- a/src/glx/apple/gen_exports.tcl +++ /dev/null @@ -1,132 +0,0 @@ -if 0 { - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -} - -package require Tcl 8.5 - -proc main {argc argv} { - if {2 != $argc} { - puts stderr "syntax is: [info script] serialized-array-file export.list" - return 1 - } - - set fd [open [lindex $argv 0] r] - array set api [read $fd] - close $fd - - #Start with 1.0 - set glxlist [list \ - glXChooseVisual glXCreateContext glXDestroyContext \ - glXMakeCurrent glXCopyContext glXSwapBuffers \ - glXCreateGLXPixmap glXDestroyGLXPixmap \ - glXQueryExtension glXQueryVersion \ - glXIsDirect glXGetConfig \ - glXGetCurrentContext glXGetCurrentDrawable \ - glXWaitGL glXWaitX glXUseXFont] - - #GLX 1.1 and later - lappend glxlist glXQueryExtensionsString glXQueryServerString \ - glXGetClientString - - #GLX 1.2 and later - lappend glxlist glXGetCurrentDisplay - - #GLX 1.3 and later - lappend glxlist glXChooseFBConfig glXGetFBConfigAttrib \ - glXGetFBConfigs glXGetVisualFromFBConfig \ - glXCreateWindow glXDestroyWindow \ - glXCreatePixmap glXDestroyPixmap \ - glXCreatePbuffer glXDestroyPbuffer \ - glXQueryDrawable glXCreateNewContext \ - glXMakeContextCurrent glXGetCurrentReadDrawable \ - glXQueryContext glXSelectEvent glXGetSelectedEvent - - #GLX 1.4 and later - lappend glxlist glXGetProcAddress - - #Extensions - lappend glxlist glXGetProcAddressARB - - #Old extensions we don't support and never really have, but need for - #symbol compatibility. See also: glx_empty.c - lappend glxlist glXSwapIntervalSGI glXSwapIntervalMESA \ - glXGetSwapIntervalMESA glXBeginFrameTrackingMESA \ - glXEndFrameTrackingMESA glXGetFrameUsageMESA \ - glXQueryFrameTrackingMESA glXGetVideoSyncSGI \ - glXWaitVideoSyncSGI glXJoinSwapGroupSGIX \ - glXBindSwapBarrierSGIX glXQueryMaxSwapBarriersSGIX \ - glXGetSyncValuesOML glXSwapBuffersMscOML \ - glXWaitForMscOML glXWaitForSbcOML \ - glXAllocateMemoryMESA glXFreeMemoryMESA \ - glXGetMemoryOffsetMESA glXReleaseBuffersMESA \ - glXCreateGLXPixmapMESA glXCopySubBufferMESA \ - glXQueryGLXPbufferSGIX glXCreateGLXPbufferSGIX \ - glXDestroyGLXPbufferSGIX glXSelectEventSGIX \ - glXGetSelectedEventSGIX - - #These are for GLX_SGIX_fbconfig, which isn't implemented, because - #we have the GLX 1.3 GLXFBConfig functions which are in the standard spec. - #It should be possible to support these to some extent. - #The old libGL somewhat supported the GLXFBConfigSGIX code, but lacked - #pbuffer, and pixmap support. - #We mainly just need these stubs for linking with apps, because for - #some reason the OpenGL site suggests using the latest glxext.h, - #and glxext.h defines all GLX extensions, which doesn't seem right for - #compile-time capability detection. - #See also: http://www.mesa3d.org/brianp/sig97/exten.htm#Compile - #which conflicts with: the ABI registry from what I saw on opengl.org. - #By disabling some of the #defines in glxext.h we break some software, - #and by enabling them without the symbols we break others (in Mesa). - #I think a lot of OpenGL-based programs have issues one way or another. - #It seems that even Mesa developers are confused on this issue, because - #Mesa-7.3/progs/xdemos/glxgears_fbconfig.c has comments about breakage - #in some comments. - lappend glxlist glXGetFBConfigAttribSGIX \ - glXChooseFBConfigSGIX \ - glXGetVisualFromFBConfigSGIX \ - glXCreateGLXPixmapWithConfigSGIX \ - glXCreateContextWithConfigSGIX \ - glXGetFBConfigFromVisualSGIX - - - set fd [open [lindex $argv 1] w] - - foreach f [lsort -dictionary [array names api]] { - puts $fd _gl$f - } - - foreach f [lsort -dictionary $glxlist] { - puts $fd _$f - } - - close $fd - - return 0 -} - -exit [main $::argc $::argv] \ No newline at end of file diff --git a/src/glx/apple/gen_funcs.tcl b/src/glx/apple/gen_funcs.tcl deleted file mode 100644 index e78eb3278c..0000000000 --- a/src/glx/apple/gen_funcs.tcl +++ /dev/null @@ -1,630 +0,0 @@ -package require Tcl 8.5 - -#input is specs/gl.spec - -set license { -/* - Copyright (c) 2008, 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -} - - -proc extension name { - global extensions - - set extensions($name) 1 -} - -proc alias {from to} { - global aliases - - set aliases($from) $to -} - -proc promoted name { - global promoted - - set promoted($name) 1 -} - -proc noop name { - global noop - - set noop($name) 1 -} - -set dir [file dirname [info script]] - -source [file join $dir GL_extensions] -source [file join $dir GL_aliases] -source [file join $dir GL_promoted] -source [file join $dir GL_noop] - -proc is-extension-supported? name { - global extensions - - return [info exists extensions($name)] -} - -#This is going to need to be updated for OpenGL >= 2.1 in SnowLeopard. -# TextureComponentCount is GLenum in SL for everything -# It is GLint in mesa, but is GLenum for glTexImage3DEXT -array set typemap { - void void - List GLuint - Mode GLenum - CheckedFloat32 GLfloat - CheckedInt32 GLint - Float32 GLfloat - Int32 GLint - Int64 GLint64EXT - UInt64 GLuint64EXT - Float64 GLdouble - ListMode GLuint - SizeI GLsizei - ListNameType GLenum - Void void - BeginMode GLenum - CoordF GLfloat - UInt8 GLubyte - Boolean GLboolean - ColorIndexValueD GLdouble - ColorB GLbyte - ColorD GLdouble - ColorF GLfloat - ColorI GLint - ColorS GLshort - ColorUB GLubyte - ColorUI GLuint - ColorUS GLushort - ColorIndexValueF GLfloat - ColorIndexValueI GLint - ColorIndexValueS GLshort - Int8 GLbyte - CoordD GLdouble - Int16 GLshort - CoordI GLint - CoordS GLshort - ClipPlaneName GLenum - MaterialFace GLenum - ColorMaterialParameter GLenum - CullFaceMode GLenum - FogParameter GLenum - FrontFaceDirection GLenum - HintTarget GLenum - HintMode GLenum - LightName GLenum - LightParameter GLenum - LightModelParameter GLenum - LineStipple GLushort - MaterialParameter GLenum - PolygonMode GLenum - WinCoord GLint - ShadingModel GLenum - TextureTarget GLenum - TextureParameterName GLenum - TextureComponentCount GLint - PixelFormat GLenum - PixelType GLenum - TextureEnvTarget GLenum - TextureEnvParameter GLenum - TextureCoordName GLenum - TextureGenParameter GLenum - FeedbackType GLenum - FeedbackElement GLfloat - SelectName GLuint - RenderingMode GLenum - DrawBufferMode GLenum - ClearBufferMask GLbitfield - MaskedColorIndexValueF GLfloat - ClampedColorF GLclampf - StencilValue GLint - ClampedFloat64 GLclampd - MaskedStencilValue GLuint - MaskedColorIndexValueI GLuint - AccumOp GLenum - EnableCap GLenum - AttribMask GLbitfield - MapTarget GLenum - MeshMode1 GLenum - MeshMode2 GLenum - AlphaFunction GLenum - ClampedFloat32 GLclampf - BlendingFactorSrc GLenum - BlendingFactorDest GLenum - LogicOp GLenum - StencilFunction GLenum - ClampedStencilValue GLint - MaskedStencilValue GLuint - StencilOp GLenum - DepthFunction GLenum - PixelTransferParameter GLenum - PixelStoreParameter GLenum - PixelMap GLenum - UInt32 GLuint - UInt16 GLushort - ReadBufferMode GLenum - PixelCopyType GLenum - GetPName GLenum - ErrorCode GLenum - GetMapQuery GLenum - String "const GLubyte *" - StringName GLenum - GetTextureParameter GLenum - MatrixMode GLenum - ColorPointerType GLenum - DrawElementsType GLenum - GetPointervPName GLenum - VoidPointer "void *" - IndexPointerType GLenum - InterleavedArrayFormat GLenum - NormalPointerType GLenum - TexCoordPointerType GLenum - VertexPointerType GLenum - PixelInternalFormat GLenum - Texture GLuint - ColorIndexValueUB GLubyte - ClientAttribMask GLbitfield - BlendEquationMode GLenum - ColorTableTarget GLenum - ColorTableParameterPName GLenum - GetColorTableParameterPName GLenum - ConvolutionTarget GLenum - ConvolutionParameter GLenum - GetConvolutionParameterPName GLenum - SeparableTarget GLenum - HistogramTarget GLenum - GetHistogramParameterPName GLenum - MinmaxTarget GLenum - GetMinmaxParameterPName GLenum - TextureTarget GLenum - TextureUnit GLenum - CompressedTextureARB "void" - BlendFuncSeparateParameterEXT GLenum - FogPointerTypeEXT GLenum - PointParameterNameARB GLenum - GLenum GLenum - BufferTargetARB GLenum - ConstUInt32 "const GLuint" - BufferSize GLsizeiptr - ConstVoid "const GLvoid" - BufferUsageARB GLenum - BufferOffset GLintptr - BufferAccessARB GLenum - BufferPNameARB GLenum - BufferPointerNameARB GLenum - BlendEquationModeEXT GLenum - DrawBufferModeATI GLenum - StencilFaceDirection GLenum - Char GLchar - VertexAttribPropertyARB GLenum - VertexAttribPointerPropertyARB GLenum - CharPointer "GLchar *" - VertexAttribPointerTypeARB GLenum - ClampColorTargetARB unknown3.0 - ClampColorModeARB unknown3.0 - VertexAttribEnum GLenum - VertexAttribEnumNV GLenum - DrawBufferName unknown3.0 - WeightPointerTypeARB GLenum - ProgramTargetARB GLenum - ProgramFormatARB GLenum - ProgramStringPropertyARB GLenum - BufferSizeARB GLsizeiptrARB - BufferOffsetARB GLintptrARB - handleARB GLhandleARB - charPointerARB "GLcharARB *" - charARB GLcharARB - RenderbufferTarget GLenum - FramebufferTarget GLenum - FramebufferAttachment GLenum - BinormalPointerTypeEXT GLenum - HintTargetPGI GLenum - ProgramParameterPName GLenum - ProgramPropertyARB GLenum - ElementPointerTypeATI GLenum - FenceNV GLuint - FenceConditionNV GLenum - ObjectTypeAPPLE GLenum - VertexArrayPNameAPPLE GLenum - SeparableTargetEXT GLenum - ColorTableTargetSGI GLenum - ColorTableParameterPNameSGI GLenum - CombinerOutputNV GLenum - CombinerStageNV GLenum - CombinerPortionNV GLenum - CombinerRegisterNV GLenum - CombinerScaleNV GLenum - CombinerBiasNV GLenum - CombinerComponentUsageNV GLenum - CombinerMappingNV GLenum - CombinerParameterNV GLenum - CombinerVariableNV GLenum - ConvolutionParameterEXT GLenum - ConvolutionTargetEXT GLenum - CullParameterEXT GLenum - FenceParameterNameNV GLenum - FragmentLightModelParameterSGIX GLenum - FragmentLightNameSGIX GLenum - FragmentLightParameterSGIX GLenum - GetColorTableParameterPNameSGI GLenum - GetHistogramParameterPNameEXT GLenum - GetMinmaxParameterPNameEXT GLenum - HistogramTargetEXT GLenum - LightEnvParameterSGIX GLenum - MinmaxTargetEXT GLenum - PNTrianglesPNameATI GLenum - ProgramCharacterNV GLubyte - SamplePatternEXT GLenum - SamplePatternSGIS GLenum - TypeEnum GLenum -} - -proc psplit s { - set r [list] - set token "" - - foreach c [split $s ""] { - if {[string is space -strict $c]} { - if {[string length $token]} { - lappend r $token - } - set token "" - } else { - append token $c - } - } - - if {[string length $token]} { - lappend r $token - } - - return $r -} - -proc is-extension? str { - #Check if the trailing name of the function is NV, or EXT, and so on. - - if {[string is upper [string index $str end]] - && [string is upper [string index $str end-1]]} { - return 1 - } - - return 0 -} - - -proc parse {data arvar} { - upvar 1 $arvar ar - - set state "" - set name "" - - foreach line [split $data \n] { - if {"attr" eq $state} { - if {[string match "\t*" $line]} { - set plist [psplit [lindex [split $line "#"] 0]] - #puts PLIST:$plist - set master $ar($name) - set param [dict get $master parameters] - - switch -- [llength $plist] { - 1 { - dict set master [lindex $plist 0] "" - } - - 2 { - #standard key, value pair - set key [lindex $plist 0] - set value [lindex $plist 1] - - dict set master $key $value - } - - default { - set key [lindex $plist 0] - - #puts PLIST:$plist - - if {"param" eq $key} { - lappend param [list [lindex $plist 1] [lindex $plist 2] [lindex $plist 3] [lindex $plist 4]] - } else { - dict set master $key [lrange $plist 1 end] - } - } - } - - dict set master parameters $param - - set ar($name) $master - } else { - set state "" - } - } elseif {[regexp {^([A-Z_a-z0-9]+)\((.*)\)\S*} $line all name argv] > 0} { - #puts "MATCH:$name ARGV:$argv" - - #Trim the spaces in the elements. - set newargv [list] - foreach a [split $argv ,] { - lappend newargv [string trim $a] - } - - - set d [dict create name $name arguments $newargv \ - parameters [dict create]] - set ar($name) $d - set state attr - } - } -} - -#This returns true if the category is valid for an extension. -proc is-valid-category? c { - set clist [list display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform VERSION_1_0 VERSION_1_0_DEPRECATED VERSION_1_1 VERSION_1_1_DEPRECATED VERSION_1_2 VERSION_1_2_DEPRECATED VERSION_1_3 VERSION_1_3_DEPRECATED VERSION_1_4 VERSION_1_4_DEPRECATED VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 VERSION_3_0_DEPRECATED VERSION_3_1 VERSION_3_2] - - set result [expr {$c in $clist}] - - - if {!$result} { - set result [is-extension-supported? $c] - } - - return $result -} - -proc translate-parameters {func parameters} { - global typemap - - set newparams [list] - - foreach p $parameters { - set var [lindex $p 0] - - set ptype [lindex $p 1] - - if {![info exists typemap($ptype)]} { - set ::missingTypes($ptype) $func - continue - } - - set type $typemap($ptype) - - if {"array" eq [lindex $p 3]} { - if {"in" eq [lindex $p 2]} { - set final_type "const $type *" - } else { - set final_type "$type *" - } - } else { - set final_type $type - } - - lappend newparams [list $final_type $var] - } - - return $newparams -} - -proc api-new-entry {info func} { - global typemap - - set master [dict create] - set rettype [dict get $info return] - - if {![info exists typemap($rettype)]} { - set ::missingTypes($rettype) $func - } else { - dict set master return $typemap($rettype) - } - - dict set master parameters [translate-parameters $func \ - [dict get $info parameters]] - - return $master -} - -proc main {argc argv} { - global extensions typemap aliases promoted noop - - set fd [open [lindex $argv 0] r] - set data [read $fd] - close $fd - - array set ar {} - - parse $data ar - - array set newapi {} - array set missingTypes {} - - foreach {key value} [array get ar] { - puts "KEY:$key VALUE:$value" - - set category [dict get $value category] - - #Invalidate any of the extensions and things not in the spec we support. - set valid [is-valid-category? $category] - puts VALID:$valid - - if {!$valid} { - continue - } - - puts "VALID:$key" - - if {"BlitFramebuffer" eq $key} { - #This was promoted to an ARB extension after Leopard it seems. - set key BlitFramebufferEXT - } - - if {"ARB_framebuffer_object" eq $category} { - #This wasn't an ARB extension in Leopard either. - if {![string match *EXT $key]} { - append key EXT - } - } - - set newapi($key) [api-new-entry $value $key] - } - - #Now iterate and support as many aliases as we can for promoted functions - #based on if the newapi contains the function. - foreach {func value} [array get ar] { - if {![info exists promoted([dict get $value category])]} { - continue - } - - if {[dict exists $value alias]} { - #We have an alias. Let's see if we have the implementation. - set alias [dict get $value alias] - - if {[info exists newapi($alias)] && ![info exists newapi($func)]} { - #We have an implementing function available. - puts "HAVE:$key ALIAS:$alias" - - set master [api-new-entry $value $func] - dict set master alias_for $alias - set newapi($func) $master - } - } - } - - parray noop - - #Now handle the no-op compatibility categories. - foreach {func value} [array get ar] { - if {[info exists noop([dict get $value category])]} { - if {[info exists newapi($func)]} { - puts stderr "$func shouldn't be a noop" - exit 1 - } - - set master [api-new-entry $value $func] - dict set master noop 1 - set newapi($func) $master - } - } - - - - parray newapi - - if {[array size ::missingTypes]} { - parray ::missingTypes - return 1 - } - - foreach {from to} [array get aliases] { - set d $newapi($to) - dict set d alias_for $to - set newapi($from) $d - } - - #Iterate the nm output and set each symbol in an associative array. - array set validapi {} - - foreach line [split [exec nm -j -g /System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib] \n] { - set fn [string trim $line] - - #Only match the _gl functions. - if {[string match _gl* $fn]} { - set finalfn [string range $fn 3 end] - puts FINALFN:$finalfn - set validapi($finalfn) $finalfn - } - } - - puts "Correcting the API functions to match the OpenGL framework." - #parray validapi - - #Iterate the newapi and unset any members that the - #libGL.dylib doesn't support, assuming they aren't no-ops. - foreach fn [array names newapi] { - if {![info exists validapi($fn)]} { - puts "WARNING: libGL.dylib lacks support for: $fn" - - if {[dict exists $newapi($fn) noop] - && [dict get $newapi($fn) noop]} { - #This is no-op, so we should skip it. - continue - } - - #Is the function an alias for another in libGL? - if {[dict exists $newapi($fn) alias_for]} { - set alias [dict get $newapi($fn) alias_for] - - if {![info exists validapi($alias)]} { - puts "WARNING: alias function doesn't exist for $fn." - puts "The alias is $alias." - puts "unsetting $fn" - unset newapi($fn) - } - } else { - puts "unsetting $fn" - unset newapi($fn) - } - } - } - - - #Now print a warning about any symbols that libGL supports that we don't. - foreach fn [array names validapi] { - if {![info exists newapi($fn)]} { - puts "AppleSGLX is missing $fn" - } - } - - puts "NOW GENERATING:[lindex $::argv 1]" - set fd [open [lindex $::argv 1] w] - - set sorted [lsort -dictionary [array names newapi]] - - foreach f $sorted { - set attr $newapi($f) - set pstr "" - foreach p [dict get $attr parameters] { - append pstr "[lindex $p 0] [lindex $p 1], " - } - set pstr [string trimright $pstr ", "] - puts $fd "[dict get $attr return] gl[set f]($pstr); " - } - - close $fd - - if {$::argc == 3} { - puts "NOW GENERATING:[lindex $::argv 2]" - #Dump the array as a serialized list. - set fd [open [lindex $::argv 2] w] - puts $fd [array get newapi] - close $fd - } - - return 0 -} -exit [main $::argc $::argv] - diff --git a/src/glx/apple/gen_types.tcl b/src/glx/apple/gen_types.tcl deleted file mode 100644 index ed20bdaec0..0000000000 --- a/src/glx/apple/gen_types.tcl +++ /dev/null @@ -1,32 +0,0 @@ - -proc main {argc argv} { - if {1 != $argc} { - puts stderr "syntax is: [info script] output.h" - exit 1 - } - - set fd [open [lindex $argv 0] w] - puts $fd " -/*OpenGL primitive typedefs*/ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - -typedef long GLintptr; -typedef long GLsizeiptr; -" - -} -main $::argc $::argv diff --git a/src/glx/apple/glx_empty.c b/src/glx/apple/glx_empty.c deleted file mode 100644 index 44c5a256f2..0000000000 --- a/src/glx/apple/glx_empty.c +++ /dev/null @@ -1,375 +0,0 @@ -#include "glxclient.h" -#include "glxextensions.h" -#include "glcontextmodes.h" - -/* -** GLX_SGI_swap_control -*/ -int -glXSwapIntervalSGI(int interval) -{ - (void) interval; - return 0; -} - - -/* -** GLX_MESA_swap_control -*/ -int -glXSwapIntervalMESA(unsigned int interval) -{ - (void) interval; - return GLX_BAD_CONTEXT; -} - - -int -glXGetSwapIntervalMESA(void) -{ - return 0; -} - - -/* -** GLX_MESA_swap_frame_usage -*/ - -int -glXBeginFrameTrackingMESA(Display * dpy, GLXDrawable drawable) -{ - int status = GLX_BAD_CONTEXT; - (void) dpy; - (void) drawable; - return status; -} - - -int -glXEndFrameTrackingMESA(Display * dpy, GLXDrawable drawable) -{ - int status = GLX_BAD_CONTEXT; - (void) dpy; - (void) drawable; - return status; -} - - -int -glXGetFrameUsageMESA(Display * dpy, GLXDrawable drawable, GLfloat * usage) -{ - int status = GLX_BAD_CONTEXT; - (void) dpy; - (void) drawable; - (void) usage; - return status; -} - -int -glXQueryFrameTrackingMESA(Display * dpy, GLXDrawable drawable, - int64_t * sbc, int64_t * missedFrames, - GLfloat * lastMissedUsage) -{ - int status = GLX_BAD_CONTEXT; - (void) dpy; - (void) drawable; - (void) sbc; - (void) missedFrames; - (void) lastMissedUsage; - return status; -} - -/* -** GLX_SGI_video_sync -*/ -int -glXGetVideoSyncSGI(unsigned int *count) -{ - (void) count; - return GLX_BAD_CONTEXT; -} - -int -glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) -{ - (void) count; - return GLX_BAD_CONTEXT; -} - - -/* -** GLX_SGIX_swap_group -*/ -void -glXJoinSwapGroupSGIX(Display * dpy, GLXDrawable drawable, GLXDrawable member) -{ - (void) dpy; - (void) drawable; - (void) member; -} - - -/* -** GLX_SGIX_swap_barrier -*/ -void -glXBindSwapBarrierSGIX(Display * dpy, GLXDrawable drawable, int barrier) -{ - (void) dpy; - (void) drawable; - (void) barrier; -} - -Bool -glXQueryMaxSwapBarriersSGIX(Display * dpy, int screen, int *max) -{ - (void) dpy; - (void) screen; - (void) max; - return False; -} - - -/* -** GLX_OML_sync_control -*/ -Bool -glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, - int64_t * ust, int64_t * msc, int64_t * sbc) -{ - (void) dpy; - (void) drawable; - (void) ust; - (void) msc; - (void) sbc; - return False; -} - -int64_t -glXSwapBuffersMscOML(Display * dpy, GLXDrawable drawable, - int64_t target_msc, int64_t divisor, int64_t remainder) -{ - (void) dpy; - (void) drawable; - (void) target_msc; - (void) divisor; - (void) remainder; - return 0; -} - - -Bool -glXWaitForMscOML(Display * dpy, GLXDrawable drawable, - int64_t target_msc, int64_t divisor, - int64_t remainder, int64_t * ust, - int64_t * msc, int64_t * sbc) -{ - (void) dpy; - (void) drawable; - (void) target_msc; - (void) divisor; - (void) remainder; - (void) ust; - (void) msc; - (void) sbc; - return False; -} - - -Bool -glXWaitForSbcOML(Display * dpy, GLXDrawable drawable, - int64_t target_sbc, int64_t * ust, - int64_t * msc, int64_t * sbc) -{ - (void) dpy; - (void) drawable; - (void) target_sbc; - (void) ust; - (void) msc; - (void) sbc; - return False; -} - - -/** - * GLX_MESA_allocate_memory - */ -/*@{*/ - -PUBLIC void * -glXAllocateMemoryMESA(Display * dpy, int scrn, - size_t size, float readFreq, - float writeFreq, float priority) -{ - (void) dpy; - (void) scrn; - (void) size; - (void) readFreq; - (void) writeFreq; - (void) priority; - return NULL; -} - - -PUBLIC void -glXFreeMemoryMESA(Display * dpy, int scrn, void *pointer) -{ -#ifdef __DRI_ALLOCATE - __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, scrn); - - if (psc && psc->allocate) - (*psc->allocate->freeMemory) (psc->__driScreen, pointer); - -#else - (void) dpy; - (void) scrn; - (void) pointer; -#endif /* __DRI_ALLOCATE */ -} - - -PUBLIC GLuint -glXGetMemoryOffsetMESA(Display * dpy, int scrn, const void *pointer) -{ - (void) dpy; - (void) scrn; - (void) pointer; - return ~0L; -} - -Bool -glXReleaseBuffersMESA(Display * dpy, GLXDrawable d) -{ - (void) dpy; - (void) d; - return False; -} - - -PUBLIC GLXPixmap -glXCreateGLXPixmapMESA(Display * dpy, XVisualInfo * visual, - Pixmap pixmap, Colormap cmap) -{ - (void) dpy; - (void) visual; - (void) pixmap; - (void) cmap; - return 0; -} - - -/** - * GLX_MESA_copy_sub_buffer - */ -void -glXCopySubBufferMESA(Display * dpy, GLXDrawable drawable, - int x, int y, int width, int height) -{ - (void) dpy; - (void) drawable; - (void) x; - (void) y; - (void) width; - (void) height; -} - - -PUBLIC int -glXQueryGLXPbufferSGIX(Display * dpy, GLXDrawable drawable, - int attribute, unsigned int *value) -{ - (void) dpy; - (void) drawable; - (void) attribute; - (void) value; - return 0; -} - -PUBLIC GLXDrawable -glXCreateGLXPbufferSGIX(Display * dpy, GLXFBConfig config, - unsigned int width, unsigned int height, - int *attrib_list) -{ - (void) dpy; - (void) config; - (void) width; - (void) height; - (void) attrib_list; - return None; -} - -#if 0 -/* GLX_SGIX_fbconfig */ -PUBLIC int -glXGetFBConfigAttribSGIX(Display * dpy, void *config, int a, int *b) -{ - (void) dpy; - (void) config; - (void) a; - (void) b; - return 0; -} - -PUBLIC void * -glXChooseFBConfigSGIX(Display * dpy, int a, int *b, int *c) -{ - (void) dpy; - (void) a; - (void) b; - (void) c; - return NULL; -} - -PUBLIC GLXPixmap -glXCreateGLXPixmapWithConfigSGIX(Display * dpy, void *config, Pixmap p) -{ - (void) dpy; - (void) config; - (void) p; - return None; -} - -PUBLIC GLXContext -glXCreateContextWithConfigSGIX(Display * dpy, void *config, int a, - GLXContext b, Bool c) -{ - (void) dpy; - (void) config; - (void) a; - (void) b; - (void) c; - return NULL; -} - -PUBLIC XVisualInfo * -glXGetVisualFromFBConfigSGIX(Display * dpy, void *config) -{ - (void) dpy; - (void) config; - return NULL; -} - -PUBLIC void * -glXGetFBConfigFromVisualSGIX(Display * dpy, XVisualInfo * visinfo) -{ - (void) dpy; - (void) visinfo; - return NULL; -} -#endif - - -PUBLIC -GLX_ALIAS_VOID(glXDestroyGLXPbufferSGIX, - (Display * dpy, GLXDrawable pbuf), - (dpy, pbuf), glXDestroyPbuffer) - - PUBLIC GLX_ALIAS_VOID(glXSelectEventSGIX, - (Display * dpy, GLXDrawable drawable, - unsigned long mask), (dpy, drawable, mask), - glXSelectEvent) - - PUBLIC GLX_ALIAS_VOID(glXGetSelectedEventSGIX, - (Display * dpy, GLXDrawable drawable, - unsigned long *mask), (dpy, drawable, mask), - glXGetSelectedEvent) diff --git a/src/glx/apple/glx_error.c b/src/glx/apple/glx_error.c deleted file mode 100644 index 282f7ae40b..0000000000 --- a/src/glx/apple/glx_error.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#include -#include -#include -#include -#include "glxclient.h" -#include "glx_error.h" - -extern XExtDisplayInfo *__glXFindDisplay(Display * dpy); - -void -__glXSendError(Display * dpy, int errorCode, unsigned long resourceID, - unsigned long minorCode, bool coreX11error) -{ - XExtDisplayInfo *info = __glXFindDisplay(dpy); - GLXContext gc = __glXGetCurrentContext(); - xError error; - - LockDisplay(dpy); - - error.type = X_Error; - - if (coreX11error) { - error.errorCode = errorCode; - } - else { - error.errorCode = info->codes->first_error + errorCode; - } - - error.sequenceNumber = dpy->request; - error.resourceID = resourceID; - error.minorCode = minorCode; - error.majorCode = gc ? gc->majorOpcode : 0; - - _XError(dpy, &error); - - UnlockDisplay(dpy); -} diff --git a/src/glx/apple/glx_error.h b/src/glx/apple/glx_error.h deleted file mode 100644 index 6ba2f854db..0000000000 --- a/src/glx/apple/glx_error.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (c) 2009 Apple Inc. - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT - HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above - copyright holders shall not be used in advertising or otherwise to - promote the sale, use or other dealings in this Software without - prior written authorization. -*/ -#include -#include - -void __glXSendError(Display * dpy, int errorCode, unsigned long resourceID, - unsigned long minorCode, bool coreX11error); diff --git a/src/glx/apple/glxreply.c b/src/glx/apple/glxreply.c deleted file mode 100644 index 7280bc9715..0000000000 --- a/src/glx/apple/glxreply.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * (C) Copyright Apple Inc. 2008 - * (C) Copyright IBM Corporation 2004, 2005 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sub license, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * IBM, - * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include -#include "glxclient.h" -#include - -CARD32 -__glXReadReply(Display * dpy, size_t size, void *dest, - GLboolean reply_is_always_array) -{ - xGLXSingleReply reply; - - (void) _XReply(dpy, (xReply *) & reply, 0, False); - if (size != 0) { - if ((reply.length > 0) || reply_is_always_array) { - const GLint bytes = (reply_is_always_array) - ? (4 * reply.length) : (reply.size * size); - const GLint extra = 4 - (bytes & 3); - - _XRead(dpy, dest, bytes); - if (extra < 4) { - _XEatData(dpy, extra); - } - } - else { - (void) memcpy(dest, &(reply.pad3), size); - } - } - - return reply.retval; -} - -void -__glXReadPixelReply(Display * dpy, __GLXcontext * gc, unsigned max_dim, - GLint width, GLint height, GLint depth, GLenum format, - GLenum type, void *dest, GLboolean dimensions_in_reply) -{ - xGLXSingleReply reply; - GLint size; - - (void) _XReply(dpy, (xReply *) & reply, 0, False); - - if (dimensions_in_reply) { - width = reply.pad3; - height = reply.pad4; - depth = reply.pad5; - - if ((height == 0) || (max_dim < 2)) { - height = 1; - } - if ((depth == 0) || (max_dim < 3)) { - depth = 1; - } - } - - size = reply.length * 4; - if (size != 0) { - void *buf = Xmalloc(size); - - if (buf == NULL) { - _XEatData(dpy, size); - __glXSetError(gc, GL_OUT_OF_MEMORY); - } - else { - const GLint extra = 4 - (size & 3); - - _XRead(dpy, buf, size); - if (extra < 4) { - _XEatData(dpy, extra); - } - - __glEmptyImage(gc, 3, width, height, depth, format, type, buf, dest); - Xfree(buf); - } - } -} - -#if 0 -GLubyte * -__glXSetupSingleRequest(__GLXcontext * gc, GLint sop, GLint cmdlen) -{ - xGLXSingleReq *req; - Display *const dpy = gc->currentDpy; - - (void) __glXFlushRenderBuffer(gc, gc->pc); - LockDisplay(dpy); - GetReqExtra(GLXSingle, cmdlen, req); - req->reqType = gc->majorOpcode; - req->contextTag = gc->currentContextTag; - req->glxCode = sop; - return (GLubyte *) (req) + sz_xGLXSingleReq; -} -#endif - -GLubyte * -__glXSetupVendorRequest(__GLXcontext * gc, GLint code, GLint vop, - GLint cmdlen) -{ - xGLXVendorPrivateReq *req; - Display *const dpy = gc->currentDpy; - - (void) __glXFlushRenderBuffer(gc, gc->pc); - LockDisplay(dpy); - GetReqExtra(GLXVendorPrivate, cmdlen, req); - req->reqType = gc->majorOpcode; - req->glxCode = code; - req->vendorCode = vop; - req->contextTag = gc->currentContextTag; - return (GLubyte *) (req) + sz_xGLXVendorPrivateReq; -} diff --git a/src/glx/apple/specs/enum.spec b/src/glx/apple/specs/enum.spec deleted file mode 100644 index 6a51165254..0000000000 --- a/src/glx/apple/specs/enum.spec +++ /dev/null @@ -1,7487 +0,0 @@ -# This is the OpenGL and OpenGL ES enumerant registry. -# -# It is an extremely important file. Do not mess with it unless -# you know what you're doing and have permission to do so. -# -############################################################################### -# -# Before modifying this file, read the following: -# -# ONLY the Khronos API Registrar (Jon Leech, jon 'at' alumni.caltech.edu) -# may allocate new enumerants outside the 'experimental' range described -# below. Any modifications to this file not performed by the Registrar -# are incompatible with the OpenGL API. The master copy of the registry, -# showing up-to-date enumerant allocations, is maintained in the -# OpenGL registry at -# -# http://www.opengl.org/registry/ -# -# The following guidelines are thus only for reference purposes -# (unless you're the Registrar) -# -# Enumerant values for extensions CANNOT be chosen arbitrarily, since -# the enumerant value space is shared by all GL implementations. It is -# therefore imperative that the procedures described in this file be -# followed carefully when allocating extension enum values. -# -# - Use tabs, not spaces. -# -# - When adding enum values for a new extension, use existing extensions -# as a guide. -# -# - When a vendor has committed to releasing a new extension and needs to -# allocate enum values for that extension, the vendor may request that the -# ARB allocate a previously unallocated block of 16 enum values, in the -# range 0x8000-0xFFFF, for the vendor's exclusive use. -# -# - The vendor that introduces an extension will allocate enum values for -# it as if it is a single-vendor extension, even if it is a multi-vendor -# (EXT) extension. -# -# - The file enum.spec is primarily a reference. The file enumext.spec -# contains enumerants for all OpenGL 1.2 and OpenGL extensions in a form -# used to generate . -# -# - If a vendor hasn't yet released an extension, just add a comment to -# enum.spec that contains the name of the extension and the range of enum -# values used by the extension. When the vendor releases the extension, -# put the actual enum assignments in enum.spec and enumext.spec. -# -# - Allocate all of the enum values for an extension in a single contiguous -# block. -# -# - If an extension is experimental, allocate temporary enum values in the -# range 0x6000-0x8000 during development work. When the vendor commits to -# releasing the extension, allocate permanent enum values (see below). -# There are two reasons for this policy: -# -# 1. It is desirable to keep extension enum values tightly packed and to -# make all of the enum values for an extension be contiguous. This is -# possible only if permanent enum values for a new extension are not -# allocated until the extension spec is stable and the number of new -# enum values needed by the extension has therefore stopped changing. -# -# 2. OpenGL ARB policy is that a vendor may allocate a new block of 16 -# extension enum values only if it has committed to releasing an -# extension that will use values in that block. -# -# - To allocate a new block of permanent enum values for an extension, do the -# following: -# -# 1. Start at the top of enum.spec and choose the first future_use -# range that is not allocated to another vendor and is large enough -# to contain the new block. This will almost certainly be the -# 'Any_vendor_future_use' range near the end of enum.spec. This -# process helps keep allocated enum values tightly packed into -# the start of the 0x8000-0xFFFF range. -# -# 2. Allocate a block of enum values at the start of this range. If -# the enum definitions are going into enumfuture.spec, add a comment -# to enum.spec that contains the name of the extension and the range -# of values in the new block. Use existing extensions as a guide. -# -# 3. Add the size of the block you just allocated to the start of the -# chosen future_use range. If you have allocated the entire range, -# eliminate its future_use entry. -# -# 4. Note that there are historical enum allocations above 0xFFFF, but -# no new allocations will be made there in the forseeable future. -# -############################################################################### - -Extensions define: - VERSION_1_1 = 1 - VERSION_1_2 = 1 - VERSION_1_3 = 1 - VERSION_1_4 = 1 - VERSION_1_5 = 1 - VERSION_2_0 = 1 - VERSION_2_1 = 1 - VERSION_3_0 = 1 - VERSION_3_1 = 1 - VERSION_3_2 = 1 - ARB_imaging = 1 - EXT_abgr = 1 - EXT_blend_color = 1 - EXT_blend_logic_op = 1 - EXT_blend_minmax = 1 - EXT_blend_subtract = 1 - EXT_cmyka = 1 - EXT_convolution = 1 - EXT_copy_texture = 1 - EXT_histogram = 1 - EXT_packed_pixels = 1 - EXT_point_parameters = 1 - EXT_polygon_offset = 1 - EXT_rescale_normal = 1 - EXT_shared_texture_palette = 1 - EXT_subtexture = 1 - EXT_texture = 1 - EXT_texture3D = 1 - EXT_texture_object = 1 - EXT_vertex_array = 1 - SGIS_detail_texture = 1 - SGIS_fog_function = 1 - SGIS_generate_mipmap = 1 - SGIS_multisample = 1 - SGIS_pixel_texture = 1 - SGIS_point_line_texgen = 1 - SGIS_point_parameters = 1 - SGIS_sharpen_texture = 1 - SGIS_texture4D = 1 - SGIS_texture_border_clamp = 1 - SGIS_texture_edge_clamp = 1 - SGIS_texture_filter4 = 1 - SGIS_texture_lod = 1 - SGIS_texture_select = 1 - SGIX_async = 1 - SGIX_async_histogram = 1 - SGIX_async_pixel = 1 - SGIX_blend_alpha_minmax = 1 - SGIX_calligraphic_fragment = 1 - SGIX_clipmap = 1 - SGIX_convolution_accuracy = 1 - SGIX_depth_texture = 1 - SGIX_flush_raster = 1 - SGIX_fog_offset = 1 - SGIX_fragment_lighting = 1 - SGIX_framezoom = 1 - SGIX_icc_texture = 1 - SGIX_impact_pixel_texture = 1 - SGIX_instruments = 1 - SGIX_interlace = 1 - SGIX_ir_instrument1 = 1 - SGIX_list_priority = 1 - SGIX_pixel_texture = 1 - SGIX_pixel_tiles = 1 - SGIX_polynomial_ffd = 1 - SGIX_reference_plane = 1 - SGIX_resample = 1 - SGIX_scalebias_hint = 1 - SGIX_shadow = 1 - SGIX_shadow_ambient = 1 - SGIX_sprite = 1 - SGIX_subsample = 1 - SGIX_tag_sample_buffer = 1 - SGIX_texture_add_env = 1 - SGIX_texture_coordinate_clamp = 1 - SGIX_texture_lod_bias = 1 - SGIX_texture_multi_buffer = 1 - SGIX_texture_scale_bias = 1 - SGIX_vertex_preclip = 1 - SGIX_ycrcb = 1 - SGI_color_matrix = 1 - SGI_color_table = 1 - SGI_texture_color_table = 1 - -############################################################################### - -AttribMask enum: - CURRENT_BIT = 0x00000001 - POINT_BIT = 0x00000002 - LINE_BIT = 0x00000004 - POLYGON_BIT = 0x00000008 - POLYGON_STIPPLE_BIT = 0x00000010 - PIXEL_MODE_BIT = 0x00000020 - LIGHTING_BIT = 0x00000040 - FOG_BIT = 0x00000080 - DEPTH_BUFFER_BIT = 0x00000100 - ACCUM_BUFFER_BIT = 0x00000200 - STENCIL_BUFFER_BIT = 0x00000400 - VIEWPORT_BIT = 0x00000800 - TRANSFORM_BIT = 0x00001000 - ENABLE_BIT = 0x00002000 - COLOR_BUFFER_BIT = 0x00004000 - HINT_BIT = 0x00008000 - EVAL_BIT = 0x00010000 - LIST_BIT = 0x00020000 - TEXTURE_BIT = 0x00040000 - SCISSOR_BIT = 0x00080000 - ALL_ATTRIB_BITS = 0xFFFFFFFF -#??? ALL_ATTRIB_BITS mask value changed to all-1s in OpenGL 1.3 - this affects covgl. -# use ARB_multisample MULTISAMPLE_BIT_ARB -# use EXT_multisample MULTISAMPLE_BIT_EXT -# use 3DFX_multisample MULTISAMPLE_BIT_3DFX - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - MULTISAMPLE_BIT = 0x20000000 - -ARB_multisample enum: - MULTISAMPLE_BIT_ARB = 0x20000000 - -EXT_multisample enum: - MULTISAMPLE_BIT_EXT = 0x20000000 - -3DFX_multisample enum: - MULTISAMPLE_BIT_3DFX = 0x20000000 - -############################################################################### - -ClearBufferMask enum: - use AttribMask COLOR_BUFFER_BIT - use AttribMask ACCUM_BUFFER_BIT - use AttribMask STENCIL_BUFFER_BIT - use AttribMask DEPTH_BUFFER_BIT - -############################################################################### - -ClientAttribMask enum: - CLIENT_PIXEL_STORE_BIT = 0x00000001 - CLIENT_VERTEX_ARRAY_BIT = 0x00000002 - CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF - -############################################################################### - -# There's no obvious better place to put non-attribute-group mask bits -VERSION_3_0 enum: - use ARB_map_buffer_range MAP_READ_BIT - use ARB_map_buffer_range MAP_WRITE_BIT - use ARB_map_buffer_range MAP_INVALIDATE_RANGE_BIT - use ARB_map_buffer_range MAP_INVALIDATE_BUFFER_BIT - use ARB_map_buffer_range MAP_FLUSH_EXPLICIT_BIT - use ARB_map_buffer_range MAP_UNSYNCHRONIZED_BIT - -ARB_map_buffer_range enum: - MAP_READ_BIT = 0x0001 # VERSION_3_0 / ARB_mbr - MAP_WRITE_BIT = 0x0002 # VERSION_3_0 / ARB_mbr - MAP_INVALIDATE_RANGE_BIT = 0x0004 # VERSION_3_0 / ARB_mbr - MAP_INVALIDATE_BUFFER_BIT = 0x0008 # VERSION_3_0 / ARB_mbr - MAP_FLUSH_EXPLICIT_BIT = 0x0010 # VERSION_3_0 / ARB_mbr - MAP_UNSYNCHRONIZED_BIT = 0x0020 # VERSION_3_0 / ARB_mbr - -############################################################################### - -VERSION_3_0 enum: - CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001 # VERSION_3_0 - -############################################################################### - -Boolean enum: - FALSE = 0 - TRUE = 1 - -############################################################################### - -BeginMode enum: - POINTS = 0x0000 - LINES = 0x0001 - LINE_LOOP = 0x0002 - LINE_STRIP = 0x0003 - TRIANGLES = 0x0004 - TRIANGLE_STRIP = 0x0005 - TRIANGLE_FAN = 0x0006 - QUADS = 0x0007 - QUAD_STRIP = 0x0008 - POLYGON = 0x0009 - -VERSION_3_2 enum: - LINES_ADJACENCY = 0x000A - LINE_STRIP_ADJACENCY = 0x000B - TRIANGLES_ADJACENCY = 0x000C - TRIANGLE_STRIP_ADJACENCY = 0x000D - -ARB_geometry_shader4 enum: (additional; see below) - LINES_ADJACENCY_ARB = 0x000A - LINE_STRIP_ADJACENCY_ARB = 0x000B - TRIANGLES_ADJACENCY_ARB = 0x000C - TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D - -NV_geometry_program4 enum: (additional; see below) - LINES_ADJACENCY_EXT = 0x000A - LINE_STRIP_ADJACENCY_EXT = 0x000B - TRIANGLES_ADJACENCY_EXT = 0x000C - TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D - -# BeginMode_future_use: 0x000E - -############################################################################### - -AccumOp enum: - ACCUM = 0x0100 - LOAD = 0x0101 - RETURN = 0x0102 - MULT = 0x0103 - ADD = 0x0104 - -############################################################################### - -AlphaFunction enum: - NEVER = 0x0200 - LESS = 0x0201 - EQUAL = 0x0202 - LEQUAL = 0x0203 - GREATER = 0x0204 - NOTEQUAL = 0x0205 - GEQUAL = 0x0206 - ALWAYS = 0x0207 - -############################################################################### - -BlendingFactorDest enum: - ZERO = 0 - ONE = 1 - SRC_COLOR = 0x0300 - ONE_MINUS_SRC_COLOR = 0x0301 - SRC_ALPHA = 0x0302 - ONE_MINUS_SRC_ALPHA = 0x0303 - DST_ALPHA = 0x0304 - ONE_MINUS_DST_ALPHA = 0x0305 - use EXT_blend_color CONSTANT_COLOR_EXT - use EXT_blend_color ONE_MINUS_CONSTANT_COLOR_EXT - use EXT_blend_color CONSTANT_ALPHA_EXT - use EXT_blend_color ONE_MINUS_CONSTANT_ALPHA_EXT - -############################################################################### - -BlendingFactorSrc enum: - use BlendingFactorDest ZERO - use BlendingFactorDest ONE - DST_COLOR = 0x0306 - ONE_MINUS_DST_COLOR = 0x0307 - SRC_ALPHA_SATURATE = 0x0308 - use BlendingFactorDest SRC_ALPHA - use BlendingFactorDest ONE_MINUS_SRC_ALPHA - use BlendingFactorDest DST_ALPHA - use BlendingFactorDest ONE_MINUS_DST_ALPHA - use EXT_blend_color CONSTANT_COLOR_EXT - use EXT_blend_color ONE_MINUS_CONSTANT_COLOR_EXT - use EXT_blend_color CONSTANT_ALPHA_EXT - use EXT_blend_color ONE_MINUS_CONSTANT_ALPHA_EXT - -############################################################################### - -BlendEquationModeEXT enum: - use GetPName LOGIC_OP - use EXT_blend_minmax FUNC_ADD_EXT - use EXT_blend_minmax MIN_EXT - use EXT_blend_minmax MAX_EXT - use EXT_blend_subtract FUNC_SUBTRACT_EXT - use EXT_blend_subtract FUNC_REVERSE_SUBTRACT_EXT - use SGIX_blend_alpha_minmax ALPHA_MIN_SGIX - use SGIX_blend_alpha_minmax ALPHA_MAX_SGIX - -############################################################################### - -ColorMaterialFace enum: - use DrawBufferMode FRONT - use DrawBufferMode BACK - use DrawBufferMode FRONT_AND_BACK - -############################################################################### - -ColorMaterialParameter enum: - use LightParameter AMBIENT - use LightParameter DIFFUSE - use LightParameter SPECULAR - use MaterialParameter EMISSION - use MaterialParameter AMBIENT_AND_DIFFUSE - -############################################################################### - -ColorPointerType enum: - use DataType BYTE - use DataType UNSIGNED_BYTE - use DataType SHORT - use DataType UNSIGNED_SHORT - use DataType INT - use DataType UNSIGNED_INT - use DataType FLOAT - use DataType DOUBLE - -############################################################################### - -ColorTableParameterPNameSGI enum: - use SGI_color_table COLOR_TABLE_SCALE_SGI - use SGI_color_table COLOR_TABLE_BIAS_SGI - -############################################################################### - -ColorTableTargetSGI enum: - use SGI_color_table COLOR_TABLE_SGI - use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI - use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI - use SGI_color_table PROXY_COLOR_TABLE_SGI - use SGI_color_table PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI - use SGI_color_table PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI - use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI - use SGI_texture_color_table PROXY_TEXTURE_COLOR_TABLE_SGI - -############################################################################### - -ConvolutionBorderModeEXT enum: - use EXT_convolution REDUCE_EXT - -############################################################################### - -ConvolutionParameterEXT enum: - use EXT_convolution CONVOLUTION_BORDER_MODE_EXT - use EXT_convolution CONVOLUTION_FILTER_SCALE_EXT - use EXT_convolution CONVOLUTION_FILTER_BIAS_EXT - -############################################################################### - -ConvolutionTargetEXT enum: - use EXT_convolution CONVOLUTION_1D_EXT - use EXT_convolution CONVOLUTION_2D_EXT - -############################################################################### - -CullFaceMode enum: - use DrawBufferMode FRONT - use DrawBufferMode BACK - use DrawBufferMode FRONT_AND_BACK - -############################################################################### - -DepthFunction enum: - use AlphaFunction NEVER - use AlphaFunction LESS - use AlphaFunction EQUAL - use AlphaFunction LEQUAL - use AlphaFunction GREATER - use AlphaFunction NOTEQUAL - use AlphaFunction GEQUAL - use AlphaFunction ALWAYS - -############################################################################### - -DrawBufferMode enum: - NONE = 0 - FRONT_LEFT = 0x0400 - FRONT_RIGHT = 0x0401 - BACK_LEFT = 0x0402 - BACK_RIGHT = 0x0403 - FRONT = 0x0404 - BACK = 0x0405 - LEFT = 0x0406 - RIGHT = 0x0407 - FRONT_AND_BACK = 0x0408 - AUX0 = 0x0409 - AUX1 = 0x040A - AUX2 = 0x040B - AUX3 = 0x040C - -# Aliases DrawBufferMode enum above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) -# NONE_OES = 0 - -############################################################################### - -EnableCap enum: - use GetPName FOG - use GetPName LIGHTING - use GetPName TEXTURE_1D - use GetPName TEXTURE_2D - use GetPName LINE_STIPPLE - use GetPName POLYGON_STIPPLE - use GetPName CULL_FACE - use GetPName ALPHA_TEST - use GetPName BLEND - use GetPName INDEX_LOGIC_OP - use GetPName COLOR_LOGIC_OP - use GetPName DITHER - use GetPName STENCIL_TEST - use GetPName DEPTH_TEST - use GetPName CLIP_PLANE0 - use GetPName CLIP_PLANE1 - use GetPName CLIP_PLANE2 - use GetPName CLIP_PLANE3 - use GetPName CLIP_PLANE4 - use GetPName CLIP_PLANE5 - use GetPName LIGHT0 - use GetPName LIGHT1 - use GetPName LIGHT2 - use GetPName LIGHT3 - use GetPName LIGHT4 - use GetPName LIGHT5 - use GetPName LIGHT6 - use GetPName LIGHT7 - use GetPName TEXTURE_GEN_S - use GetPName TEXTURE_GEN_T - use GetPName TEXTURE_GEN_R - use GetPName TEXTURE_GEN_Q - use GetPName MAP1_VERTEX_3 - use GetPName MAP1_VERTEX_4 - use GetPName MAP1_COLOR_4 - use GetPName MAP1_INDEX - use GetPName MAP1_NORMAL - use GetPName MAP1_TEXTURE_COORD_1 - use GetPName MAP1_TEXTURE_COORD_2 - use GetPName MAP1_TEXTURE_COORD_3 - use GetPName MAP1_TEXTURE_COORD_4 - use GetPName MAP2_VERTEX_3 - use GetPName MAP2_VERTEX_4 - use GetPName MAP2_COLOR_4 - use GetPName MAP2_INDEX - use GetPName MAP2_NORMAL - use GetPName MAP2_TEXTURE_COORD_1 - use GetPName MAP2_TEXTURE_COORD_2 - use GetPName MAP2_TEXTURE_COORD_3 - use GetPName MAP2_TEXTURE_COORD_4 - use GetPName POINT_SMOOTH - use GetPName LINE_SMOOTH - use GetPName POLYGON_SMOOTH - use GetPName SCISSOR_TEST - use GetPName COLOR_MATERIAL - use GetPName NORMALIZE - use GetPName AUTO_NORMAL - use GetPName POLYGON_OFFSET_POINT - use GetPName POLYGON_OFFSET_LINE - use GetPName POLYGON_OFFSET_FILL - use GetPName VERTEX_ARRAY - use GetPName NORMAL_ARRAY - use GetPName COLOR_ARRAY - use GetPName INDEX_ARRAY - use GetPName TEXTURE_COORD_ARRAY - use GetPName EDGE_FLAG_ARRAY - use EXT_convolution CONVOLUTION_1D_EXT - use EXT_convolution CONVOLUTION_2D_EXT - use EXT_convolution SEPARABLE_2D_EXT - use EXT_histogram HISTOGRAM_EXT - use EXT_histogram MINMAX_EXT - use EXT_rescale_normal RESCALE_NORMAL_EXT - use EXT_shared_texture_palette SHARED_TEXTURE_PALETTE_EXT - use EXT_texture3D TEXTURE_3D_EXT - use SGIS_multisample MULTISAMPLE_SGIS - use SGIS_multisample SAMPLE_ALPHA_TO_MASK_SGIS - use SGIS_multisample SAMPLE_ALPHA_TO_ONE_SGIS - use SGIS_multisample SAMPLE_MASK_SGIS - use SGIS_texture4D TEXTURE_4D_SGIS - use SGIX_async_histogram ASYNC_HISTOGRAM_SGIX - use SGIX_async_pixel ASYNC_TEX_IMAGE_SGIX - use SGIX_async_pixel ASYNC_DRAW_PIXELS_SGIX - use SGIX_async_pixel ASYNC_READ_PIXELS_SGIX - use SGIX_calligraphic_fragment CALLIGRAPHIC_FRAGMENT_SGIX - use SGIX_fog_offset FOG_OFFSET_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHTING_SGIX - use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT1_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT2_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT3_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT4_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT5_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT6_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT7_SGIX - use SGIX_framezoom FRAMEZOOM_SGIX - use SGIX_interlace INTERLACE_SGIX - use SGIX_ir_instrument1 IR_INSTRUMENT1_SGIX - use SGIX_pixel_texture PIXEL_TEX_GEN_SGIX - use SGIS_pixel_texture PIXEL_TEXTURE_SGIS - use SGIX_reference_plane REFERENCE_PLANE_SGIX - use SGIX_sprite SPRITE_SGIX - use SGI_color_table COLOR_TABLE_SGI - use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI - use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI - use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI - -############################################################################### - -ErrorCode enum: - NO_ERROR = 0 - INVALID_ENUM = 0x0500 - INVALID_VALUE = 0x0501 - INVALID_OPERATION = 0x0502 - STACK_OVERFLOW = 0x0503 - STACK_UNDERFLOW = 0x0504 - OUT_OF_MEMORY = 0x0505 - use EXT_histogram TABLE_TOO_LARGE_EXT - use EXT_texture TEXTURE_TOO_LARGE_EXT - -# Additional error codes - -VERSION_3_0 enum: -# use ARB_framebuffer_object INVALID_FRAMEBUFFER_OPERATION - -ARB_framebuffer_object enum: (note: no ARB suffixes) - INVALID_FRAMEBUFFER_OPERATION = 0x0506 # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_object enum: - INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 - -# Aliases EXT_fbo enum above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506 - -############################################################################### - -FeedbackType enum: - 2D = 0x0600 - 3D = 0x0601 - 3D_COLOR = 0x0602 - 3D_COLOR_TEXTURE = 0x0603 - 4D_COLOR_TEXTURE = 0x0604 - -############################################################################### - -FeedBackToken enum: - PASS_THROUGH_TOKEN = 0x0700 - POINT_TOKEN = 0x0701 - LINE_TOKEN = 0x0702 - POLYGON_TOKEN = 0x0703 - BITMAP_TOKEN = 0x0704 - DRAW_PIXEL_TOKEN = 0x0705 - COPY_PIXEL_TOKEN = 0x0706 - LINE_RESET_TOKEN = 0x0707 - -############################################################################### - -FfdMaskSGIX enum: - TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 - GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 - -############################################################################### - -FfdTargetSGIX enum: - use SGIX_polynomial_ffd GEOMETRY_DEFORMATION_SGIX - use SGIX_polynomial_ffd TEXTURE_DEFORMATION_SGIX - -############################################################################### - -FogMode enum: - use TextureMagFilter LINEAR - EXP = 0x0800 - EXP2 = 0x0801 - use SGIS_fog_function FOG_FUNC_SGIS - -############################################################################### - -FogParameter enum: - use GetPName FOG_COLOR - use GetPName FOG_DENSITY - use GetPName FOG_END - use GetPName FOG_INDEX - use GetPName FOG_MODE - use GetPName FOG_START - use SGIX_fog_offset FOG_OFFSET_VALUE_SGIX - -############################################################################### - -FragmentLightModelParameterSGIX enum: - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX - -############################################################################### - -FrontFaceDirection enum: - CW = 0x0900 - CCW = 0x0901 - -############################################################################### - -GetColorTableParameterPNameSGI enum: - use SGI_color_table COLOR_TABLE_SCALE_SGI - use SGI_color_table COLOR_TABLE_BIAS_SGI - use SGI_color_table COLOR_TABLE_FORMAT_SGI - use SGI_color_table COLOR_TABLE_WIDTH_SGI - use SGI_color_table COLOR_TABLE_RED_SIZE_SGI - use SGI_color_table COLOR_TABLE_GREEN_SIZE_SGI - use SGI_color_table COLOR_TABLE_BLUE_SIZE_SGI - use SGI_color_table COLOR_TABLE_ALPHA_SIZE_SGI - use SGI_color_table COLOR_TABLE_LUMINANCE_SIZE_SGI - use SGI_color_table COLOR_TABLE_INTENSITY_SIZE_SGI - -############################################################################### - -GetConvolutionParameter enum: - use EXT_convolution CONVOLUTION_BORDER_MODE_EXT - use EXT_convolution CONVOLUTION_FILTER_SCALE_EXT - use EXT_convolution CONVOLUTION_FILTER_BIAS_EXT - use EXT_convolution CONVOLUTION_FORMAT_EXT - use EXT_convolution CONVOLUTION_WIDTH_EXT - use EXT_convolution CONVOLUTION_HEIGHT_EXT - use EXT_convolution MAX_CONVOLUTION_WIDTH_EXT - use EXT_convolution MAX_CONVOLUTION_HEIGHT_EXT - -############################################################################### - -GetHistogramParameterPNameEXT enum: - use EXT_histogram HISTOGRAM_WIDTH_EXT - use EXT_histogram HISTOGRAM_FORMAT_EXT - use EXT_histogram HISTOGRAM_RED_SIZE_EXT - use EXT_histogram HISTOGRAM_GREEN_SIZE_EXT - use EXT_histogram HISTOGRAM_BLUE_SIZE_EXT - use EXT_histogram HISTOGRAM_ALPHA_SIZE_EXT - use EXT_histogram HISTOGRAM_LUMINANCE_SIZE_EXT - use EXT_histogram HISTOGRAM_SINK_EXT - -############################################################################### - -GetMapQuery enum: - COEFF = 0x0A00 - ORDER = 0x0A01 - DOMAIN = 0x0A02 - -############################################################################### - -GetMinmaxParameterPNameEXT enum: - use EXT_histogram MINMAX_FORMAT_EXT - use EXT_histogram MINMAX_SINK_EXT - -############################################################################### - -GetPixelMap enum: - PIXEL_MAP_I_TO_I = 0x0C70 - PIXEL_MAP_S_TO_S = 0x0C71 - PIXEL_MAP_I_TO_R = 0x0C72 - PIXEL_MAP_I_TO_G = 0x0C73 - PIXEL_MAP_I_TO_B = 0x0C74 - PIXEL_MAP_I_TO_A = 0x0C75 - PIXEL_MAP_R_TO_R = 0x0C76 - PIXEL_MAP_G_TO_G = 0x0C77 - PIXEL_MAP_B_TO_B = 0x0C78 - PIXEL_MAP_A_TO_A = 0x0C79 - -############################################################################### - -GetPointervPName enum: - VERTEX_ARRAY_POINTER = 0x808E - NORMAL_ARRAY_POINTER = 0x808F - COLOR_ARRAY_POINTER = 0x8090 - INDEX_ARRAY_POINTER = 0x8091 - TEXTURE_COORD_ARRAY_POINTER = 0x8092 - EDGE_FLAG_ARRAY_POINTER = 0x8093 - FEEDBACK_BUFFER_POINTER = 0x0DF0 - SELECTION_BUFFER_POINTER = 0x0DF3 - use SGIX_instruments INSTRUMENT_BUFFER_POINTER_SGIX - -############################################################################### - -# the columns after the comment symbol (#) indicate: number of params, type -# (F - float, D - double, I - integer) for the returned values -GetPName enum: - CURRENT_COLOR = 0x0B00 # 4 F - CURRENT_INDEX = 0x0B01 # 1 F - CURRENT_NORMAL = 0x0B02 # 3 F - CURRENT_TEXTURE_COORDS = 0x0B03 # 4 F - CURRENT_RASTER_COLOR = 0x0B04 # 4 F - CURRENT_RASTER_INDEX = 0x0B05 # 1 F - CURRENT_RASTER_TEXTURE_COORDS = 0x0B06 # 4 F - CURRENT_RASTER_POSITION = 0x0B07 # 4 F - CURRENT_RASTER_POSITION_VALID = 0x0B08 # 1 I - CURRENT_RASTER_DISTANCE = 0x0B09 # 1 F - - POINT_SMOOTH = 0x0B10 # 1 I - POINT_SIZE = 0x0B11 # 1 F - POINT_SIZE_RANGE = 0x0B12 # 2 F - POINT_SIZE_GRANULARITY = 0x0B13 # 1 F - - LINE_SMOOTH = 0x0B20 # 1 I - LINE_WIDTH = 0x0B21 # 1 F - LINE_WIDTH_RANGE = 0x0B22 # 2 F - LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F - LINE_STIPPLE = 0x0B24 # 1 I - LINE_STIPPLE_PATTERN = 0x0B25 # 1 I - LINE_STIPPLE_REPEAT = 0x0B26 # 1 I - use VERSION_1_2 SMOOTH_POINT_SIZE_RANGE - use VERSION_1_2 SMOOTH_POINT_SIZE_GRANULARITY - use VERSION_1_2 SMOOTH_LINE_WIDTH_RANGE - use VERSION_1_2 SMOOTH_LINE_WIDTH_GRANULARITY - use VERSION_1_2 ALIASED_POINT_SIZE_RANGE - use VERSION_1_2 ALIASED_LINE_WIDTH_RANGE - - LIST_MODE = 0x0B30 # 1 I - MAX_LIST_NESTING = 0x0B31 # 1 I - LIST_BASE = 0x0B32 # 1 I - LIST_INDEX = 0x0B33 # 1 I - - POLYGON_MODE = 0x0B40 # 2 I - POLYGON_SMOOTH = 0x0B41 # 1 I - POLYGON_STIPPLE = 0x0B42 # 1 I - EDGE_FLAG = 0x0B43 # 1 I - CULL_FACE = 0x0B44 # 1 I - CULL_FACE_MODE = 0x0B45 # 1 I - FRONT_FACE = 0x0B46 # 1 I - - LIGHTING = 0x0B50 # 1 I - LIGHT_MODEL_LOCAL_VIEWER = 0x0B51 # 1 I - LIGHT_MODEL_TWO_SIDE = 0x0B52 # 1 I - LIGHT_MODEL_AMBIENT = 0x0B53 # 4 F - SHADE_MODEL = 0x0B54 # 1 I - COLOR_MATERIAL_FACE = 0x0B55 # 1 I - COLOR_MATERIAL_PARAMETER = 0x0B56 # 1 I - COLOR_MATERIAL = 0x0B57 # 1 I - - FOG = 0x0B60 # 1 I - FOG_INDEX = 0x0B61 # 1 I - FOG_DENSITY = 0x0B62 # 1 F - FOG_START = 0x0B63 # 1 F - FOG_END = 0x0B64 # 1 F - FOG_MODE = 0x0B65 # 1 I - FOG_COLOR = 0x0B66 # 4 F - - DEPTH_RANGE = 0x0B70 # 2 F - DEPTH_TEST = 0x0B71 # 1 I - DEPTH_WRITEMASK = 0x0B72 # 1 I - DEPTH_CLEAR_VALUE = 0x0B73 # 1 F - DEPTH_FUNC = 0x0B74 # 1 I - - ACCUM_CLEAR_VALUE = 0x0B80 # 4 F - - STENCIL_TEST = 0x0B90 # 1 I - STENCIL_CLEAR_VALUE = 0x0B91 # 1 I - STENCIL_FUNC = 0x0B92 # 1 I - STENCIL_VALUE_MASK = 0x0B93 # 1 I - STENCIL_FAIL = 0x0B94 # 1 I - STENCIL_PASS_DEPTH_FAIL = 0x0B95 # 1 I - STENCIL_PASS_DEPTH_PASS = 0x0B96 # 1 I - STENCIL_REF = 0x0B97 # 1 I - STENCIL_WRITEMASK = 0x0B98 # 1 I - - MATRIX_MODE = 0x0BA0 # 1 I - NORMALIZE = 0x0BA1 # 1 I - VIEWPORT = 0x0BA2 # 4 I - MODELVIEW_STACK_DEPTH = 0x0BA3 # 1 I - PROJECTION_STACK_DEPTH = 0x0BA4 # 1 I - TEXTURE_STACK_DEPTH = 0x0BA5 # 1 I - MODELVIEW_MATRIX = 0x0BA6 # 16 F - PROJECTION_MATRIX = 0x0BA7 # 16 F - TEXTURE_MATRIX = 0x0BA8 # 16 F - - ATTRIB_STACK_DEPTH = 0x0BB0 # 1 I - CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1 # 1 I - - ALPHA_TEST = 0x0BC0 # 1 I - ALPHA_TEST_FUNC = 0x0BC1 # 1 I - ALPHA_TEST_REF = 0x0BC2 # 1 F - - DITHER = 0x0BD0 # 1 I - - BLEND_DST = 0x0BE0 # 1 I - BLEND_SRC = 0x0BE1 # 1 I - BLEND = 0x0BE2 # 1 I - - LOGIC_OP_MODE = 0x0BF0 # 1 I - INDEX_LOGIC_OP = 0x0BF1 # 1 I - LOGIC_OP = 0x0BF1 # 1 I - COLOR_LOGIC_OP = 0x0BF2 # 1 I - - AUX_BUFFERS = 0x0C00 # 1 I - DRAW_BUFFER = 0x0C01 # 1 I - READ_BUFFER = 0x0C02 # 1 I - - SCISSOR_BOX = 0x0C10 # 4 I - SCISSOR_TEST = 0x0C11 # 1 I - - INDEX_CLEAR_VALUE = 0x0C20 # 1 I - INDEX_WRITEMASK = 0x0C21 # 1 I - COLOR_CLEAR_VALUE = 0x0C22 # 4 F - COLOR_WRITEMASK = 0x0C23 # 4 I - - INDEX_MODE = 0x0C30 # 1 I - RGBA_MODE = 0x0C31 # 1 I - DOUBLEBUFFER = 0x0C32 # 1 I - STEREO = 0x0C33 # 1 I - - RENDER_MODE = 0x0C40 # 1 I - - PERSPECTIVE_CORRECTION_HINT = 0x0C50 # 1 I - POINT_SMOOTH_HINT = 0x0C51 # 1 I - LINE_SMOOTH_HINT = 0x0C52 # 1 I - POLYGON_SMOOTH_HINT = 0x0C53 # 1 I - FOG_HINT = 0x0C54 # 1 I - - TEXTURE_GEN_S = 0x0C60 # 1 I - TEXTURE_GEN_T = 0x0C61 # 1 I - TEXTURE_GEN_R = 0x0C62 # 1 I - TEXTURE_GEN_Q = 0x0C63 # 1 I - - PIXEL_MAP_I_TO_I_SIZE = 0x0CB0 # 1 I - PIXEL_MAP_S_TO_S_SIZE = 0x0CB1 # 1 I - PIXEL_MAP_I_TO_R_SIZE = 0x0CB2 # 1 I - PIXEL_MAP_I_TO_G_SIZE = 0x0CB3 # 1 I - PIXEL_MAP_I_TO_B_SIZE = 0x0CB4 # 1 I - PIXEL_MAP_I_TO_A_SIZE = 0x0CB5 # 1 I - PIXEL_MAP_R_TO_R_SIZE = 0x0CB6 # 1 I - PIXEL_MAP_G_TO_G_SIZE = 0x0CB7 # 1 I - PIXEL_MAP_B_TO_B_SIZE = 0x0CB8 # 1 I - PIXEL_MAP_A_TO_A_SIZE = 0x0CB9 # 1 I - - UNPACK_SWAP_BYTES = 0x0CF0 # 1 I - UNPACK_LSB_FIRST = 0x0CF1 # 1 I - UNPACK_ROW_LENGTH = 0x0CF2 # 1 I - UNPACK_SKIP_ROWS = 0x0CF3 # 1 I - UNPACK_SKIP_PIXELS = 0x0CF4 # 1 I - UNPACK_ALIGNMENT = 0x0CF5 # 1 I - - PACK_SWAP_BYTES = 0x0D00 # 1 I - PACK_LSB_FIRST = 0x0D01 # 1 I - PACK_ROW_LENGTH = 0x0D02 # 1 I - PACK_SKIP_ROWS = 0x0D03 # 1 I - PACK_SKIP_PIXELS = 0x0D04 # 1 I - PACK_ALIGNMENT = 0x0D05 # 1 I - - MAP_COLOR = 0x0D10 # 1 I - MAP_STENCIL = 0x0D11 # 1 I - INDEX_SHIFT = 0x0D12 # 1 I - INDEX_OFFSET = 0x0D13 # 1 I - RED_SCALE = 0x0D14 # 1 F - RED_BIAS = 0x0D15 # 1 F - ZOOM_X = 0x0D16 # 1 F - ZOOM_Y = 0x0D17 # 1 F - GREEN_SCALE = 0x0D18 # 1 F - GREEN_BIAS = 0x0D19 # 1 F - BLUE_SCALE = 0x0D1A # 1 F - BLUE_BIAS = 0x0D1B # 1 F - ALPHA_SCALE = 0x0D1C # 1 F - ALPHA_BIAS = 0x0D1D # 1 F - DEPTH_SCALE = 0x0D1E # 1 F - DEPTH_BIAS = 0x0D1F # 1 F - - MAX_EVAL_ORDER = 0x0D30 # 1 I - MAX_LIGHTS = 0x0D31 # 1 I - -# VERSION_3_0 enum: (aliases) - MAX_CLIP_DISTANCES = 0x0D32 # VERSION_3_0 # alias GL_MAX_CLIP_PLANES - - MAX_CLIP_PLANES = 0x0D32 # 1 I - MAX_TEXTURE_SIZE = 0x0D33 # 1 I - MAX_PIXEL_MAP_TABLE = 0x0D34 # 1 I - MAX_ATTRIB_STACK_DEPTH = 0x0D35 # 1 I - MAX_MODELVIEW_STACK_DEPTH = 0x0D36 # 1 I - MAX_NAME_STACK_DEPTH = 0x0D37 # 1 I - MAX_PROJECTION_STACK_DEPTH = 0x0D38 # 1 I - MAX_TEXTURE_STACK_DEPTH = 0x0D39 # 1 I - MAX_VIEWPORT_DIMS = 0x0D3A # 2 F - MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B # 1 I - - SUBPIXEL_BITS = 0x0D50 # 1 I - INDEX_BITS = 0x0D51 # 1 I - RED_BITS = 0x0D52 # 1 I - GREEN_BITS = 0x0D53 # 1 I - BLUE_BITS = 0x0D54 # 1 I - ALPHA_BITS = 0x0D55 # 1 I - DEPTH_BITS = 0x0D56 # 1 I - STENCIL_BITS = 0x0D57 # 1 I - ACCUM_RED_BITS = 0x0D58 # 1 I - ACCUM_GREEN_BITS = 0x0D59 # 1 I - ACCUM_BLUE_BITS = 0x0D5A # 1 I - ACCUM_ALPHA_BITS = 0x0D5B # 1 I - - NAME_STACK_DEPTH = 0x0D70 # 1 I - - AUTO_NORMAL = 0x0D80 # 1 I - - MAP1_COLOR_4 = 0x0D90 # 1 I - MAP1_INDEX = 0x0D91 # 1 I - MAP1_NORMAL = 0x0D92 # 1 I - MAP1_TEXTURE_COORD_1 = 0x0D93 # 1 I - MAP1_TEXTURE_COORD_2 = 0x0D94 # 1 I - MAP1_TEXTURE_COORD_3 = 0x0D95 # 1 I - MAP1_TEXTURE_COORD_4 = 0x0D96 # 1 I - MAP1_VERTEX_3 = 0x0D97 # 1 I - MAP1_VERTEX_4 = 0x0D98 # 1 I - - MAP2_COLOR_4 = 0x0DB0 # 1 I - MAP2_INDEX = 0x0DB1 # 1 I - MAP2_NORMAL = 0x0DB2 # 1 I - MAP2_TEXTURE_COORD_1 = 0x0DB3 # 1 I - MAP2_TEXTURE_COORD_2 = 0x0DB4 # 1 I - MAP2_TEXTURE_COORD_3 = 0x0DB5 # 1 I - MAP2_TEXTURE_COORD_4 = 0x0DB6 # 1 I - MAP2_VERTEX_3 = 0x0DB7 # 1 I - MAP2_VERTEX_4 = 0x0DB8 # 1 I - - MAP1_GRID_DOMAIN = 0x0DD0 # 2 F - MAP1_GRID_SEGMENTS = 0x0DD1 # 1 I - MAP2_GRID_DOMAIN = 0x0DD2 # 4 F - MAP2_GRID_SEGMENTS = 0x0DD3 # 2 I - - TEXTURE_1D = 0x0DE0 # 1 I - TEXTURE_2D = 0x0DE1 # 1 I - - FEEDBACK_BUFFER_SIZE = 0x0DF1 # 1 I - FEEDBACK_BUFFER_TYPE = 0x0DF2 # 1 I - - SELECTION_BUFFER_SIZE = 0x0DF4 # 1 I - - POLYGON_OFFSET_UNITS = 0x2A00 # 1 F - POLYGON_OFFSET_POINT = 0x2A01 # 1 I - POLYGON_OFFSET_LINE = 0x2A02 # 1 I - POLYGON_OFFSET_FILL = 0x8037 # 1 I - POLYGON_OFFSET_FACTOR = 0x8038 # 1 F - - TEXTURE_BINDING_1D = 0x8068 # 1 I - TEXTURE_BINDING_2D = 0x8069 # 1 I - TEXTURE_BINDING_3D = 0x806A # 1 I - - VERTEX_ARRAY = 0x8074 # 1 I - NORMAL_ARRAY = 0x8075 # 1 I - COLOR_ARRAY = 0x8076 # 1 I - INDEX_ARRAY = 0x8077 # 1 I - TEXTURE_COORD_ARRAY = 0x8078 # 1 I - EDGE_FLAG_ARRAY = 0x8079 # 1 I - - VERTEX_ARRAY_SIZE = 0x807A # 1 I - VERTEX_ARRAY_TYPE = 0x807B # 1 I - VERTEX_ARRAY_STRIDE = 0x807C # 1 I - - NORMAL_ARRAY_TYPE = 0x807E # 1 I - NORMAL_ARRAY_STRIDE = 0x807F # 1 I - - COLOR_ARRAY_SIZE = 0x8081 # 1 I - COLOR_ARRAY_TYPE = 0x8082 # 1 I - COLOR_ARRAY_STRIDE = 0x8083 # 1 I - - INDEX_ARRAY_TYPE = 0x8085 # 1 I - INDEX_ARRAY_STRIDE = 0x8086 # 1 I - - TEXTURE_COORD_ARRAY_SIZE = 0x8088 # 1 I - TEXTURE_COORD_ARRAY_TYPE = 0x8089 # 1 I - TEXTURE_COORD_ARRAY_STRIDE = 0x808A # 1 I - - EDGE_FLAG_ARRAY_STRIDE = 0x808C # 1 I - - use ClipPlaneName CLIP_PLANE0 - use ClipPlaneName CLIP_PLANE1 - use ClipPlaneName CLIP_PLANE2 - use ClipPlaneName CLIP_PLANE3 - use ClipPlaneName CLIP_PLANE4 - use ClipPlaneName CLIP_PLANE5 - - use LightName LIGHT0 - use LightName LIGHT1 - use LightName LIGHT2 - use LightName LIGHT3 - use LightName LIGHT4 - use LightName LIGHT5 - use LightName LIGHT6 - use LightName LIGHT7 - -# use ARB_transpose_matrix TRANSPOSE_MODELVIEW_MATRIX_ARB -# use ARB_transpose_matrix TRANSPOSE_PROJECTION_MATRIX_ARB -# use ARB_transpose_matrix TRANSPOSE_TEXTURE_MATRIX_ARB -# use ARB_transpose_matrix TRANSPOSE_COLOR_MATRIX_ARB - - use VERSION_1_2 LIGHT_MODEL_COLOR_CONTROL - - use EXT_blend_color BLEND_COLOR_EXT - - use EXT_blend_minmax BLEND_EQUATION_EXT - - use EXT_cmyka PACK_CMYK_HINT_EXT - use EXT_cmyka UNPACK_CMYK_HINT_EXT - - use EXT_convolution CONVOLUTION_1D_EXT - use EXT_convolution CONVOLUTION_2D_EXT - use EXT_convolution SEPARABLE_2D_EXT - use EXT_convolution POST_CONVOLUTION_RED_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_GREEN_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_BLUE_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_ALPHA_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_RED_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_GREEN_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_BLUE_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_ALPHA_BIAS_EXT - - use EXT_histogram HISTOGRAM_EXT - use EXT_histogram MINMAX_EXT - - use EXT_polygon_offset POLYGON_OFFSET_BIAS_EXT - - use EXT_rescale_normal RESCALE_NORMAL_EXT - - use EXT_shared_texture_palette SHARED_TEXTURE_PALETTE_EXT - - use EXT_texture_object TEXTURE_3D_BINDING_EXT - - use EXT_texture3D PACK_SKIP_IMAGES_EXT - use EXT_texture3D PACK_IMAGE_HEIGHT_EXT - use EXT_texture3D UNPACK_SKIP_IMAGES_EXT - use EXT_texture3D UNPACK_IMAGE_HEIGHT_EXT - use EXT_texture3D TEXTURE_3D_EXT - use EXT_texture3D MAX_3D_TEXTURE_SIZE_EXT - - use EXT_vertex_array VERTEX_ARRAY_COUNT_EXT - use EXT_vertex_array NORMAL_ARRAY_COUNT_EXT - use EXT_vertex_array COLOR_ARRAY_COUNT_EXT - use EXT_vertex_array INDEX_ARRAY_COUNT_EXT - use EXT_vertex_array TEXTURE_COORD_ARRAY_COUNT_EXT - use EXT_vertex_array EDGE_FLAG_ARRAY_COUNT_EXT - - use SGIS_detail_texture DETAIL_TEXTURE_2D_BINDING_SGIS - - use SGIS_fog_function FOG_FUNC_POINTS_SGIS - use SGIS_fog_function MAX_FOG_FUNC_POINTS_SGIS - - use SGIS_generate_mipmap GENERATE_MIPMAP_HINT_SGIS - - use SGIS_multisample MULTISAMPLE_SGIS - use SGIS_multisample SAMPLE_ALPHA_TO_MASK_SGIS - use SGIS_multisample SAMPLE_ALPHA_TO_ONE_SGIS - use SGIS_multisample SAMPLE_MASK_SGIS - use SGIS_multisample SAMPLE_BUFFERS_SGIS - use SGIS_multisample SAMPLES_SGIS - use SGIS_multisample SAMPLE_MASK_VALUE_SGIS - use SGIS_multisample SAMPLE_MASK_INVERT_SGIS - use SGIS_multisample SAMPLE_PATTERN_SGIS - - use SGIS_pixel_texture PIXEL_TEXTURE_SGIS - - use SGIS_point_parameters POINT_SIZE_MIN_SGIS - use SGIS_point_parameters POINT_SIZE_MAX_SGIS - use SGIS_point_parameters POINT_FADE_THRESHOLD_SIZE_SGIS - use SGIS_point_parameters DISTANCE_ATTENUATION_SGIS - - use SGIS_texture4D PACK_SKIP_VOLUMES_SGIS - use SGIS_texture4D PACK_IMAGE_DEPTH_SGIS - use SGIS_texture4D UNPACK_SKIP_VOLUMES_SGIS - use SGIS_texture4D UNPACK_IMAGE_DEPTH_SGIS - use SGIS_texture4D TEXTURE_4D_SGIS - use SGIS_texture4D MAX_4D_TEXTURE_SIZE_SGIS - use SGIS_texture4D TEXTURE_4D_BINDING_SGIS - - use SGIX_async ASYNC_MARKER_SGIX - - use SGIX_async_histogram ASYNC_HISTOGRAM_SGIX - use SGIX_async_histogram MAX_ASYNC_HISTOGRAM_SGIX - - use SGIX_async_pixel ASYNC_TEX_IMAGE_SGIX - use SGIX_async_pixel ASYNC_DRAW_PIXELS_SGIX - use SGIX_async_pixel ASYNC_READ_PIXELS_SGIX - use SGIX_async_pixel MAX_ASYNC_TEX_IMAGE_SGIX - use SGIX_async_pixel MAX_ASYNC_DRAW_PIXELS_SGIX - use SGIX_async_pixel MAX_ASYNC_READ_PIXELS_SGIX - - use SGIX_calligraphic_fragment CALLIGRAPHIC_FRAGMENT_SGIX - - use SGIX_clipmap MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX - use SGIX_clipmap MAX_CLIPMAP_DEPTH_SGIX - - use SGIX_convolution_accuracy CONVOLUTION_HINT_SGIX - - use SGIX_fog_offset FOG_OFFSET_SGIX - use SGIX_fog_offset FOG_OFFSET_VALUE_SGIX - - use SGIX_fragment_lighting FRAGMENT_LIGHTING_SGIX - use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_SGIX - use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_FACE_SGIX - use SGIX_fragment_lighting FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX - use SGIX_fragment_lighting MAX_FRAGMENT_LIGHTS_SGIX - use SGIX_fragment_lighting MAX_ACTIVE_LIGHTS_SGIX - use SGIX_fragment_lighting LIGHT_ENV_MODE_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX - - use SGIX_framezoom FRAMEZOOM_SGIX - use SGIX_framezoom FRAMEZOOM_FACTOR_SGIX - use SGIX_framezoom MAX_FRAMEZOOM_FACTOR_SGIX - - use SGIX_instruments INSTRUMENT_MEASUREMENTS_SGIX - - use SGIX_interlace INTERLACE_SGIX - - use SGIX_ir_instrument1 IR_INSTRUMENT1_SGIX - - use SGIX_pixel_texture PIXEL_TEX_GEN_SGIX - use SGIX_pixel_texture PIXEL_TEX_GEN_MODE_SGIX - - use SGIX_pixel_tiles PIXEL_TILE_BEST_ALIGNMENT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_CACHE_INCREMENT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_WIDTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_HEIGHT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_WIDTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_HEIGHT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_DEPTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_CACHE_SIZE_SGIX - - use SGIX_polynomial_ffd DEFORMATIONS_MASK_SGIX - - use SGIX_reference_plane REFERENCE_PLANE_EQUATION_SGIX - use SGIX_reference_plane REFERENCE_PLANE_SGIX - - use SGIX_sprite SPRITE_SGIX - use SGIX_sprite SPRITE_MODE_SGIX - use SGIX_sprite SPRITE_AXIS_SGIX - use SGIX_sprite SPRITE_TRANSLATION_SGIX - - use SGIX_subsample PACK_SUBSAMPLE_RATE_SGIX - use SGIX_subsample UNPACK_SUBSAMPLE_RATE_SGIX - use SGIX_resample PACK_RESAMPLE_SGIX - use SGIX_resample UNPACK_RESAMPLE_SGIX - - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_RANGE_SGIX - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_RANGE_SGIX - - use SGIX_vertex_preclip VERTEX_PRECLIP_SGIX - use SGIX_vertex_preclip VERTEX_PRECLIP_HINT_SGIX - - use SGI_color_matrix COLOR_MATRIX_SGI - use SGI_color_matrix COLOR_MATRIX_STACK_DEPTH_SGI - use SGI_color_matrix MAX_COLOR_MATRIX_STACK_DEPTH_SGI - use SGI_color_matrix POST_COLOR_MATRIX_RED_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_GREEN_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_BLUE_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_RED_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_GREEN_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_BLUE_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_BIAS_SGI - - use SGI_color_table COLOR_TABLE_SGI - use SGI_color_table POST_CONVOLUTION_COLOR_TABLE_SGI - use SGI_color_table POST_COLOR_MATRIX_COLOR_TABLE_SGI - - use SGI_texture_color_table TEXTURE_COLOR_TABLE_SGI - -############################################################################### - -GetTextureParameter enum: - use TextureParameterName TEXTURE_MAG_FILTER - use TextureParameterName TEXTURE_MIN_FILTER - use TextureParameterName TEXTURE_WRAP_S - use TextureParameterName TEXTURE_WRAP_T - TEXTURE_WIDTH = 0x1000 - TEXTURE_HEIGHT = 0x1001 - TEXTURE_INTERNAL_FORMAT = 0x1003 - TEXTURE_COMPONENTS = 0x1003 - TEXTURE_BORDER_COLOR = 0x1004 - TEXTURE_BORDER = 0x1005 - TEXTURE_RED_SIZE = 0x805C - TEXTURE_GREEN_SIZE = 0x805D - TEXTURE_BLUE_SIZE = 0x805E - TEXTURE_ALPHA_SIZE = 0x805F - TEXTURE_LUMINANCE_SIZE = 0x8060 - TEXTURE_INTENSITY_SIZE = 0x8061 - TEXTURE_PRIORITY = 0x8066 - TEXTURE_RESIDENT = 0x8067 - use EXT_texture3D TEXTURE_DEPTH_EXT - use EXT_texture3D TEXTURE_WRAP_R_EXT - use SGIS_detail_texture DETAIL_TEXTURE_LEVEL_SGIS - use SGIS_detail_texture DETAIL_TEXTURE_MODE_SGIS - use SGIS_detail_texture DETAIL_TEXTURE_FUNC_POINTS_SGIS - use SGIS_generate_mipmap GENERATE_MIPMAP_SGIS - use SGIS_sharpen_texture SHARPEN_TEXTURE_FUNC_POINTS_SGIS - use SGIS_texture_filter4 TEXTURE_FILTER4_SIZE_SGIS - use SGIS_texture_lod TEXTURE_MIN_LOD_SGIS - use SGIS_texture_lod TEXTURE_MAX_LOD_SGIS - use SGIS_texture_lod TEXTURE_BASE_LEVEL_SGIS - use SGIS_texture_lod TEXTURE_MAX_LEVEL_SGIS - use SGIS_texture_select DUAL_TEXTURE_SELECT_SGIS - use SGIS_texture_select QUAD_TEXTURE_SELECT_SGIS - use SGIS_texture4D TEXTURE_4DSIZE_SGIS - use SGIS_texture4D TEXTURE_WRAP_Q_SGIS - use SGIX_clipmap TEXTURE_CLIPMAP_CENTER_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_FRAME_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_OFFSET_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_LOD_OFFSET_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_DEPTH_SGIX - use SGIX_shadow TEXTURE_COMPARE_SGIX - use SGIX_shadow TEXTURE_COMPARE_OPERATOR_SGIX - use SGIX_shadow TEXTURE_LEQUAL_R_SGIX - use SGIX_shadow TEXTURE_GEQUAL_R_SGIX - use SGIX_shadow_ambient SHADOW_AMBIENT_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_S_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_T_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_R_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_S_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_T_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_R_SGIX - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_SGIX - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_SGIX - -############################################################################### - -HintMode enum: - DONT_CARE = 0x1100 - FASTEST = 0x1101 - NICEST = 0x1102 - -############################################################################### - -HintTarget enum: - use GetPName PERSPECTIVE_CORRECTION_HINT - use GetPName POINT_SMOOTH_HINT - use GetPName LINE_SMOOTH_HINT - use GetPName POLYGON_SMOOTH_HINT - use GetPName FOG_HINT - use EXT_cmyka PACK_CMYK_HINT_EXT - use EXT_cmyka UNPACK_CMYK_HINT_EXT - use SGIS_generate_mipmap GENERATE_MIPMAP_HINT_SGIS - use SGIX_convolution_accuracy CONVOLUTION_HINT_SGIX - use SGIX_texture_multi_buffer TEXTURE_MULTI_BUFFER_HINT_SGIX - use SGIX_vertex_preclip VERTEX_PRECLIP_HINT_SGIX - -############################################################################### - -HistogramTargetEXT enum: - use EXT_histogram HISTOGRAM_EXT - use EXT_histogram PROXY_HISTOGRAM_EXT - -############################################################################### - -IndexPointerType enum: - use DataType SHORT - use DataType INT - use DataType FLOAT - use DataType DOUBLE - -############################################################################### - -LightEnvModeSGIX enum: - use StencilOp REPLACE - use TextureEnvMode MODULATE - use AccumOp ADD - -############################################################################### - -LightEnvParameterSGIX enum: - use SGIX_fragment_lighting LIGHT_ENV_MODE_SGIX - -############################################################################### - -LightModelColorControl enum: - use VERSION_1_2 SINGLE_COLOR - use VERSION_1_2 SEPARATE_SPECULAR_COLOR - -############################################################################### - -LightModelParameter enum: - use GetPName LIGHT_MODEL_AMBIENT - use GetPName LIGHT_MODEL_LOCAL_VIEWER - use GetPName LIGHT_MODEL_TWO_SIDE - use VERSION_1_2 LIGHT_MODEL_COLOR_CONTROL - -############################################################################### - -LightParameter enum: - AMBIENT = 0x1200 - DIFFUSE = 0x1201 - SPECULAR = 0x1202 - POSITION = 0x1203 - SPOT_DIRECTION = 0x1204 - SPOT_EXPONENT = 0x1205 - SPOT_CUTOFF = 0x1206 - CONSTANT_ATTENUATION = 0x1207 - LINEAR_ATTENUATION = 0x1208 - QUADRATIC_ATTENUATION = 0x1209 - -############################################################################### - -ListMode enum: - COMPILE = 0x1300 - COMPILE_AND_EXECUTE = 0x1301 - -############################################################################### - -DataType enum: - BYTE = 0x1400 - UNSIGNED_BYTE = 0x1401 - SHORT = 0x1402 - UNSIGNED_SHORT = 0x1403 - INT = 0x1404 - UNSIGNED_INT = 0x1405 - FLOAT = 0x1406 - 2_BYTES = 0x1407 - 3_BYTES = 0x1408 - 4_BYTES = 0x1409 - DOUBLE = 0x140A - DOUBLE_EXT = 0x140A - -# OES_byte_coordinates: (OpenGL ES only) -# use DataType BYTE - -OES_element_index_uint enum: (OpenGL ES only) -# use DataType UNSIGNED_INT - -OES_texture_float enum: (OpenGL ES only; additional; see below) -# use DataType FLOAT - -VERSION_3_0 enum: -# use ARB_half_float_vertex HALF_FLOAT - -ARB_half_float_vertex enum: (note: no ARB suffixes) - HALF_FLOAT = 0x140B # VERSION_3_0 / ARB_half_float_vertex - -ARB_half_float_pixel enum: - HALF_FLOAT_ARB = 0x140B - -NV_half_float enum: - HALF_FLOAT_NV = 0x140B - -APPLE_float_pixels enum: (additional; see below) - HALF_APPLE = 0x140B - -OES_fixed_point enum: (OpenGL ES only) - FIXED_OES = 0x140C - -# Leave a gap to preserve even/odd int/uint token values -# ARB_future_use: 0x140D - -# Future NV extension (Khronos bug 5172) - INT64_NV = 0x140E - UNSIGNED_INT64_NV = 0x140F - -############################################################################### - -ListNameType enum: - use DataType BYTE - use DataType UNSIGNED_BYTE - use DataType SHORT - use DataType UNSIGNED_SHORT - use DataType INT - use DataType UNSIGNED_INT - use DataType FLOAT - use DataType 2_BYTES - use DataType 3_BYTES - use DataType 4_BYTES - -############################################################################### - -ListParameterName enum: - use SGIX_list_priority LIST_PRIORITY_SGIX - -############################################################################### - -LogicOp enum: - CLEAR = 0x1500 - AND = 0x1501 - AND_REVERSE = 0x1502 - COPY = 0x1503 - AND_INVERTED = 0x1504 - NOOP = 0x1505 - XOR = 0x1506 - OR = 0x1507 - NOR = 0x1508 - EQUIV = 0x1509 - INVERT = 0x150A - OR_REVERSE = 0x150B - COPY_INVERTED = 0x150C - OR_INVERTED = 0x150D - NAND = 0x150E - SET = 0x150F - -############################################################################### - -MapTarget enum: - use GetPName MAP1_COLOR_4 - use GetPName MAP1_INDEX - use GetPName MAP1_NORMAL - use GetPName MAP1_TEXTURE_COORD_1 - use GetPName MAP1_TEXTURE_COORD_2 - use GetPName MAP1_TEXTURE_COORD_3 - use GetPName MAP1_TEXTURE_COORD_4 - use GetPName MAP1_VERTEX_3 - use GetPName MAP1_VERTEX_4 - use GetPName MAP2_COLOR_4 - use GetPName MAP2_INDEX - use GetPName MAP2_NORMAL - use GetPName MAP2_TEXTURE_COORD_1 - use GetPName MAP2_TEXTURE_COORD_2 - use GetPName MAP2_TEXTURE_COORD_3 - use GetPName MAP2_TEXTURE_COORD_4 - use GetPName MAP2_VERTEX_3 - use GetPName MAP2_VERTEX_4 - use SGIX_polynomial_ffd GEOMETRY_DEFORMATION_SGIX - use SGIX_polynomial_ffd TEXTURE_DEFORMATION_SGIX - -############################################################################### - -MaterialFace enum: - use DrawBufferMode FRONT - use DrawBufferMode BACK - use DrawBufferMode FRONT_AND_BACK - - -############################################################################### - -MaterialParameter enum: - EMISSION = 0x1600 - SHININESS = 0x1601 - AMBIENT_AND_DIFFUSE = 0x1602 - COLOR_INDEXES = 0x1603 - use LightParameter AMBIENT - use LightParameter DIFFUSE - use LightParameter SPECULAR - -############################################################################### - -MatrixMode enum: - MODELVIEW = 0x1700 - PROJECTION = 0x1701 - TEXTURE = 0x1702 - -############################################################################### - -MeshMode1 enum: - use PolygonMode POINT - use PolygonMode LINE - -############################################################################### - -MeshMode2 enum: - use PolygonMode POINT - use PolygonMode LINE - use PolygonMode FILL - -############################################################################### - -MinmaxTargetEXT enum: - use EXT_histogram MINMAX_EXT - -############################################################################### - -NormalPointerType enum: - use DataType BYTE - use DataType SHORT - use DataType INT - use DataType FLOAT - use DataType DOUBLE - -############################################################################### - -PixelCopyType enum: - COLOR = 0x1800 - DEPTH = 0x1801 - STENCIL = 0x1802 - -EXT_discard_framebuffer enum: (OpenGL ES only) - COLOR_EXT = 0x1800 - DEPTH_EXT = 0x1801 - STENCIL_EXT = 0x1802 - -############################################################################### - -PixelFormat enum: - COLOR_INDEX = 0x1900 - STENCIL_INDEX = 0x1901 - DEPTH_COMPONENT = 0x1902 - RED = 0x1903 - GREEN = 0x1904 - BLUE = 0x1905 - ALPHA = 0x1906 - RGB = 0x1907 - RGBA = 0x1908 - LUMINANCE = 0x1909 - LUMINANCE_ALPHA = 0x190A - use EXT_abgr ABGR_EXT - use EXT_cmyka CMYK_EXT - use EXT_cmyka CMYKA_EXT - use SGIX_icc_texture R5_G6_B5_ICC_SGIX - use SGIX_icc_texture R5_G6_B5_A8_ICC_SGIX - use SGIX_icc_texture ALPHA16_ICC_SGIX - use SGIX_icc_texture LUMINANCE16_ICC_SGIX - use SGIX_icc_texture LUMINANCE16_ALPHA8_ICC_SGIX - use SGIX_ycrcb YCRCB_422_SGIX - use SGIX_ycrcb YCRCB_444_SGIX - -OES_depth_texture enum: (OpenGL ES only) -# use DataType UNSIGNED_SHORT -# use DataType UNSIGNED_INT -# use PixelFormat DEPTH_COMPONENT - -############################################################################### - -PixelMap enum: - use GetPixelMap PIXEL_MAP_I_TO_I - use GetPixelMap PIXEL_MAP_S_TO_S - use GetPixelMap PIXEL_MAP_I_TO_R - use GetPixelMap PIXEL_MAP_I_TO_G - use GetPixelMap PIXEL_MAP_I_TO_B - use GetPixelMap PIXEL_MAP_I_TO_A - use GetPixelMap PIXEL_MAP_R_TO_R - use GetPixelMap PIXEL_MAP_G_TO_G - use GetPixelMap PIXEL_MAP_B_TO_B - use GetPixelMap PIXEL_MAP_A_TO_A - -############################################################################### - -PixelStoreParameter enum: - use GetPName UNPACK_SWAP_BYTES - use GetPName UNPACK_LSB_FIRST - use GetPName UNPACK_ROW_LENGTH - use GetPName UNPACK_SKIP_ROWS - use GetPName UNPACK_SKIP_PIXELS - use GetPName UNPACK_ALIGNMENT - use GetPName PACK_SWAP_BYTES - use GetPName PACK_LSB_FIRST - use GetPName PACK_ROW_LENGTH - use GetPName PACK_SKIP_ROWS - use GetPName PACK_SKIP_PIXELS - use GetPName PACK_ALIGNMENT - use EXT_texture3D PACK_SKIP_IMAGES_EXT - use EXT_texture3D PACK_IMAGE_HEIGHT_EXT - use EXT_texture3D UNPACK_SKIP_IMAGES_EXT - use EXT_texture3D UNPACK_IMAGE_HEIGHT_EXT - use SGIS_texture4D PACK_SKIP_VOLUMES_SGIS - use SGIS_texture4D PACK_IMAGE_DEPTH_SGIS - use SGIS_texture4D UNPACK_SKIP_VOLUMES_SGIS - use SGIS_texture4D UNPACK_IMAGE_DEPTH_SGIS - use SGIX_pixel_tiles PIXEL_TILE_WIDTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_HEIGHT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_WIDTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_HEIGHT_SGIX - use SGIX_pixel_tiles PIXEL_TILE_GRID_DEPTH_SGIX - use SGIX_pixel_tiles PIXEL_TILE_CACHE_SIZE_SGIX - use SGIX_subsample PACK_SUBSAMPLE_RATE_SGIX - use SGIX_subsample UNPACK_SUBSAMPLE_RATE_SGIX - use SGIX_resample PACK_RESAMPLE_SGIX - use SGIX_resample UNPACK_RESAMPLE_SGIX - -############################################################################### - -PixelStoreResampleMode enum: - use SGIX_resample RESAMPLE_REPLICATE_SGIX - use SGIX_resample RESAMPLE_ZERO_FILL_SGIX - use SGIX_resample RESAMPLE_DECIMATE_SGIX - -############################################################################### - -PixelStoreSubsampleRate enum: - use SGIX_subsample PIXEL_SUBSAMPLE_4444_SGIX - use SGIX_subsample PIXEL_SUBSAMPLE_2424_SGIX - use SGIX_subsample PIXEL_SUBSAMPLE_4242_SGIX - -############################################################################### - -PixelTexGenMode enum: - use DrawBufferMode NONE - use PixelFormat RGB - use PixelFormat RGBA - use PixelFormat LUMINANCE - use PixelFormat LUMINANCE_ALPHA - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_MS_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_ALPHA_LS_SGIX - -############################################################################### - -PixelTexGenParameterNameSGIS enum: - use SGIS_pixel_texture PIXEL_FRAGMENT_RGB_SOURCE_SGIS - use SGIS_pixel_texture PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS - -############################################################################### - -PixelTransferParameter enum: - use GetPName MAP_COLOR - use GetPName MAP_STENCIL - use GetPName INDEX_SHIFT - use GetPName INDEX_OFFSET - use GetPName RED_SCALE - use GetPName RED_BIAS - use GetPName GREEN_SCALE - use GetPName GREEN_BIAS - use GetPName BLUE_SCALE - use GetPName BLUE_BIAS - use GetPName ALPHA_SCALE - use GetPName ALPHA_BIAS - use GetPName DEPTH_SCALE - use GetPName DEPTH_BIAS - use EXT_convolution POST_CONVOLUTION_RED_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_GREEN_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_BLUE_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_ALPHA_SCALE_EXT - use EXT_convolution POST_CONVOLUTION_RED_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_GREEN_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_BLUE_BIAS_EXT - use EXT_convolution POST_CONVOLUTION_ALPHA_BIAS_EXT - use SGI_color_matrix POST_COLOR_MATRIX_RED_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_GREEN_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_BLUE_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_SCALE_SGI - use SGI_color_matrix POST_COLOR_MATRIX_RED_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_GREEN_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_BLUE_BIAS_SGI - use SGI_color_matrix POST_COLOR_MATRIX_ALPHA_BIAS_SGI - -############################################################################### - -PixelType enum: - BITMAP = 0x1A00 - use DataType BYTE - use DataType UNSIGNED_BYTE - use DataType SHORT - use DataType UNSIGNED_SHORT - use DataType INT - use DataType UNSIGNED_INT - use DataType FLOAT - use EXT_packed_pixels UNSIGNED_BYTE_3_3_2_EXT - use EXT_packed_pixels UNSIGNED_SHORT_4_4_4_4_EXT - use EXT_packed_pixels UNSIGNED_SHORT_5_5_5_1_EXT - use EXT_packed_pixels UNSIGNED_INT_8_8_8_8_EXT - use EXT_packed_pixels UNSIGNED_INT_10_10_10_2_EXT - -############################################################################### - -PointParameterNameSGIS enum: - use SGIS_point_parameters POINT_SIZE_MIN_SGIS - use SGIS_point_parameters POINT_SIZE_MAX_SGIS - use SGIS_point_parameters POINT_FADE_THRESHOLD_SIZE_SGIS - use SGIS_point_parameters DISTANCE_ATTENUATION_SGIS - -############################################################################### - -PolygonMode enum: - POINT = 0x1B00 - LINE = 0x1B01 - FILL = 0x1B02 - -############################################################################### - -ReadBufferMode enum: - use DrawBufferMode FRONT_LEFT - use DrawBufferMode FRONT_RIGHT - use DrawBufferMode BACK_LEFT - use DrawBufferMode BACK_RIGHT - use DrawBufferMode FRONT - use DrawBufferMode BACK - use DrawBufferMode LEFT - use DrawBufferMode RIGHT - use DrawBufferMode AUX0 - use DrawBufferMode AUX1 - use DrawBufferMode AUX2 - use DrawBufferMode AUX3 - -############################################################################### - -RenderingMode enum: - RENDER = 0x1C00 - FEEDBACK = 0x1C01 - SELECT = 0x1C02 - -############################################################################### - -SamplePatternSGIS enum: - use SGIS_multisample 1PASS_SGIS - use SGIS_multisample 2PASS_0_SGIS - use SGIS_multisample 2PASS_1_SGIS - use SGIS_multisample 4PASS_0_SGIS - use SGIS_multisample 4PASS_1_SGIS - use SGIS_multisample 4PASS_2_SGIS - use SGIS_multisample 4PASS_3_SGIS - -############################################################################### - -SeparableTargetEXT enum: - use EXT_convolution SEPARABLE_2D_EXT - -############################################################################### - -ShadingModel enum: - FLAT = 0x1D00 - SMOOTH = 0x1D01 - -############################################################################### - -StencilFunction enum: - use AlphaFunction NEVER - use AlphaFunction LESS - use AlphaFunction EQUAL - use AlphaFunction LEQUAL - use AlphaFunction GREATER - use AlphaFunction NOTEQUAL - use AlphaFunction GEQUAL - use AlphaFunction ALWAYS - -############################################################################### - -StencilOp enum: - use BlendingFactorDest ZERO - KEEP = 0x1E00 - REPLACE = 0x1E01 - INCR = 0x1E02 - DECR = 0x1E03 - use LogicOp INVERT - -############################################################################### - -StringName enum: - VENDOR = 0x1F00 - RENDERER = 0x1F01 - VERSION = 0x1F02 - EXTENSIONS = 0x1F03 - -############################################################################### - -TexCoordPointerType enum: - use DataType SHORT - use DataType INT - use DataType FLOAT - use DataType DOUBLE - -############################################################################### - -TextureCoordName enum: - S = 0x2000 - T = 0x2001 - R = 0x2002 - Q = 0x2003 - -############################################################################### - -TextureEnvMode enum: - MODULATE = 0x2100 - DECAL = 0x2101 - use GetPName BLEND - use EXT_texture REPLACE_EXT - use AccumOp ADD - use SGIX_texture_add_env TEXTURE_ENV_BIAS_SGIX - -############################################################################### - -TextureEnvParameter enum: - TEXTURE_ENV_MODE = 0x2200 - TEXTURE_ENV_COLOR = 0x2201 - -############################################################################### - -TextureEnvTarget enum: - TEXTURE_ENV = 0x2300 - -############################################################################### - -TextureFilterFuncSGIS enum: - use SGIS_texture_filter4 FILTER4_SGIS - -############################################################################### - -TextureGenMode enum: - EYE_LINEAR = 0x2400 - OBJECT_LINEAR = 0x2401 - SPHERE_MAP = 0x2402 - use SGIS_point_line_texgen EYE_DISTANCE_TO_POINT_SGIS - use SGIS_point_line_texgen OBJECT_DISTANCE_TO_POINT_SGIS - use SGIS_point_line_texgen EYE_DISTANCE_TO_LINE_SGIS - use SGIS_point_line_texgen OBJECT_DISTANCE_TO_LINE_SGIS - -############################################################################### - -TextureGenParameter enum: - TEXTURE_GEN_MODE = 0x2500 - OBJECT_PLANE = 0x2501 - EYE_PLANE = 0x2502 - use SGIS_point_line_texgen EYE_POINT_SGIS - use SGIS_point_line_texgen OBJECT_POINT_SGIS - use SGIS_point_line_texgen EYE_LINE_SGIS - use SGIS_point_line_texgen OBJECT_LINE_SGIS - -# Aliases TextureGenParameter enum above -OES_texture_cube_map enum: (OpenGL ES only; additional; see below) - TEXTURE_GEN_MODE = 0x2500 - -############################################################################### - -TextureMagFilter enum: - NEAREST = 0x2600 - LINEAR = 0x2601 - use SGIS_detail_texture LINEAR_DETAIL_SGIS - use SGIS_detail_texture LINEAR_DETAIL_ALPHA_SGIS - use SGIS_detail_texture LINEAR_DETAIL_COLOR_SGIS - use SGIS_sharpen_texture LINEAR_SHARPEN_SGIS - use SGIS_sharpen_texture LINEAR_SHARPEN_ALPHA_SGIS - use SGIS_sharpen_texture LINEAR_SHARPEN_COLOR_SGIS - use SGIS_texture_filter4 FILTER4_SGIS - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_CEILING_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_ROUND_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_FLOOR_SGIX - -############################################################################### - -TextureMinFilter enum: - use TextureMagFilter NEAREST - use TextureMagFilter LINEAR - NEAREST_MIPMAP_NEAREST = 0x2700 - LINEAR_MIPMAP_NEAREST = 0x2701 - NEAREST_MIPMAP_LINEAR = 0x2702 - LINEAR_MIPMAP_LINEAR = 0x2703 - use SGIS_texture_filter4 FILTER4_SGIS - use SGIX_clipmap LINEAR_CLIPMAP_LINEAR_SGIX - use SGIX_clipmap NEAREST_CLIPMAP_NEAREST_SGIX - use SGIX_clipmap NEAREST_CLIPMAP_LINEAR_SGIX - use SGIX_clipmap LINEAR_CLIPMAP_NEAREST_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_CEILING_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_ROUND_SGIX - use SGIX_impact_pixel_texture PIXEL_TEX_GEN_Q_FLOOR_SGIX - -############################################################################### - -TextureParameterName enum: - TEXTURE_MAG_FILTER = 0x2800 - TEXTURE_MIN_FILTER = 0x2801 - TEXTURE_WRAP_S = 0x2802 - TEXTURE_WRAP_T = 0x2803 - use GetTextureParameter TEXTURE_BORDER_COLOR - use GetTextureParameter TEXTURE_PRIORITY - use EXT_texture3D TEXTURE_WRAP_R_EXT - use SGIS_detail_texture DETAIL_TEXTURE_LEVEL_SGIS - use SGIS_detail_texture DETAIL_TEXTURE_MODE_SGIS - use SGIS_generate_mipmap GENERATE_MIPMAP_SGIS - use SGIS_texture_select DUAL_TEXTURE_SELECT_SGIS - use SGIS_texture_select QUAD_TEXTURE_SELECT_SGIS - use SGIS_texture4D TEXTURE_WRAP_Q_SGIS - use SGIX_clipmap TEXTURE_CLIPMAP_CENTER_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_FRAME_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_OFFSET_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_LOD_OFFSET_SGIX - use SGIX_clipmap TEXTURE_CLIPMAP_DEPTH_SGIX - use SGIX_shadow TEXTURE_COMPARE_SGIX - use SGIX_shadow TEXTURE_COMPARE_OPERATOR_SGIX - use SGIX_shadow_ambient SHADOW_AMBIENT_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_S_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_T_SGIX - use SGIX_texture_coordinate_clamp TEXTURE_MAX_CLAMP_R_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_S_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_T_SGIX - use SGIX_texture_lod_bias TEXTURE_LOD_BIAS_R_SGIX - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_BIAS_SGIX - use SGIX_texture_scale_bias POST_TEXTURE_FILTER_SCALE_SGIX - -############################################################################### - -TextureTarget enum: - use GetPName TEXTURE_1D - use GetPName TEXTURE_2D - PROXY_TEXTURE_1D = 0x8063 - PROXY_TEXTURE_2D = 0x8064 - use EXT_texture3D TEXTURE_3D_EXT - use EXT_texture3D PROXY_TEXTURE_3D_EXT - use SGIS_detail_texture DETAIL_TEXTURE_2D_SGIS - use SGIS_texture4D TEXTURE_4D_SGIS - use SGIS_texture4D PROXY_TEXTURE_4D_SGIS - use SGIS_texture_lod TEXTURE_MIN_LOD_SGIS - use SGIS_texture_lod TEXTURE_MAX_LOD_SGIS - use SGIS_texture_lod TEXTURE_BASE_LEVEL_SGIS - use SGIS_texture_lod TEXTURE_MAX_LEVEL_SGIS - -############################################################################### - -TextureWrapMode enum: - CLAMP = 0x2900 - REPEAT = 0x2901 - use SGIS_texture_border_clamp CLAMP_TO_BORDER_SGIS - use SGIS_texture_edge_clamp CLAMP_TO_EDGE_SGIS - -############################################################################### - -PixelInternalFormat enum: - R3_G3_B2 = 0x2A10 - ALPHA4 = 0x803B - ALPHA8 = 0x803C - ALPHA12 = 0x803D - ALPHA16 = 0x803E - LUMINANCE4 = 0x803F - LUMINANCE8 = 0x8040 - LUMINANCE12 = 0x8041 - LUMINANCE16 = 0x8042 - LUMINANCE4_ALPHA4 = 0x8043 - LUMINANCE6_ALPHA2 = 0x8044 - LUMINANCE8_ALPHA8 = 0x8045 - LUMINANCE12_ALPHA4 = 0x8046 - LUMINANCE12_ALPHA12 = 0x8047 - LUMINANCE16_ALPHA16 = 0x8048 - INTENSITY = 0x8049 - INTENSITY4 = 0x804A - INTENSITY8 = 0x804B - INTENSITY12 = 0x804C - INTENSITY16 = 0x804D - RGB4 = 0x804F - RGB5 = 0x8050 - RGB8 = 0x8051 - RGB10 = 0x8052 - RGB12 = 0x8053 - RGB16 = 0x8054 - RGBA2 = 0x8055 - RGBA4 = 0x8056 - RGB5_A1 = 0x8057 - RGBA8 = 0x8058 - RGB10_A2 = 0x8059 - RGBA12 = 0x805A - RGBA16 = 0x805B - use EXT_texture RGB2_EXT - use SGIS_texture_select DUAL_ALPHA4_SGIS - use SGIS_texture_select DUAL_ALPHA8_SGIS - use SGIS_texture_select DUAL_ALPHA12_SGIS - use SGIS_texture_select DUAL_ALPHA16_SGIS - use SGIS_texture_select DUAL_LUMINANCE4_SGIS - use SGIS_texture_select DUAL_LUMINANCE8_SGIS - use SGIS_texture_select DUAL_LUMINANCE12_SGIS - use SGIS_texture_select DUAL_LUMINANCE16_SGIS - use SGIS_texture_select DUAL_INTENSITY4_SGIS - use SGIS_texture_select DUAL_INTENSITY8_SGIS - use SGIS_texture_select DUAL_INTENSITY12_SGIS - use SGIS_texture_select DUAL_INTENSITY16_SGIS - use SGIS_texture_select DUAL_LUMINANCE_ALPHA4_SGIS - use SGIS_texture_select DUAL_LUMINANCE_ALPHA8_SGIS - use SGIS_texture_select QUAD_ALPHA4_SGIS - use SGIS_texture_select QUAD_ALPHA8_SGIS - use SGIS_texture_select QUAD_LUMINANCE4_SGIS - use SGIS_texture_select QUAD_LUMINANCE8_SGIS - use SGIS_texture_select QUAD_INTENSITY4_SGIS - use SGIS_texture_select QUAD_INTENSITY8_SGIS - use SGIX_depth_texture DEPTH_COMPONENT16_SGIX - use SGIX_depth_texture DEPTH_COMPONENT24_SGIX - use SGIX_depth_texture DEPTH_COMPONENT32_SGIX - use SGIX_icc_texture RGB_ICC_SGIX - use SGIX_icc_texture RGBA_ICC_SGIX - use SGIX_icc_texture ALPHA_ICC_SGIX - use SGIX_icc_texture LUMINANCE_ICC_SGIX - use SGIX_icc_texture INTENSITY_ICC_SGIX - use SGIX_icc_texture LUMINANCE_ALPHA_ICC_SGIX - use SGIX_icc_texture R5_G6_B5_ICC_SGIX - use SGIX_icc_texture R5_G6_B5_A8_ICC_SGIX - use SGIX_icc_texture ALPHA16_ICC_SGIX - use SGIX_icc_texture LUMINANCE16_ICC_SGIX - use SGIX_icc_texture INTENSITY16_ICC_SGIX - use SGIX_icc_texture LUMINANCE16_ALPHA8_ICC_SGIX - -# Aliases PixelInternalFormat enums above -OES_rgb8_rgba8 enum: (OpenGL ES only) - RGB8 = 0x8051 - RGBA8 = 0x8058 - -############################################################################### - -InterleavedArrayFormat enum: - V2F = 0x2A20 - V3F = 0x2A21 - C4UB_V2F = 0x2A22 - C4UB_V3F = 0x2A23 - C3F_V3F = 0x2A24 - N3F_V3F = 0x2A25 - C4F_N3F_V3F = 0x2A26 - T2F_V3F = 0x2A27 - T4F_V4F = 0x2A28 - T2F_C4UB_V3F = 0x2A29 - T2F_C3F_V3F = 0x2A2A - T2F_N3F_V3F = 0x2A2B - T2F_C4F_N3F_V3F = 0x2A2C - T4F_C4F_N3F_V4F = 0x2A2D - -############################################################################### - -VertexPointerType enum: - use DataType SHORT - use DataType INT - use DataType FLOAT - use DataType DOUBLE - -############################################################################### - -# 0x3000 through 0x3FFF are reserved for clip planes -ClipPlaneName enum: - CLIP_PLANE0 = 0x3000 # 1 I - CLIP_PLANE1 = 0x3001 # 1 I - CLIP_PLANE2 = 0x3002 # 1 I - CLIP_PLANE3 = 0x3003 # 1 I - CLIP_PLANE4 = 0x3004 # 1 I - CLIP_PLANE5 = 0x3005 # 1 I - -VERSION_3_0 enum: (aliases) - CLIP_DISTANCE0 = 0x3000 # VERSION_3_0 # alias GL_CLIP_PLANE0 - CLIP_DISTANCE1 = 0x3001 # VERSION_3_0 # alias GL_CLIP_PLANE1 - CLIP_DISTANCE2 = 0x3002 # VERSION_3_0 # alias GL_CLIP_PLANE2 - CLIP_DISTANCE3 = 0x3003 # VERSION_3_0 # alias GL_CLIP_PLANE3 - CLIP_DISTANCE4 = 0x3004 # VERSION_3_0 # alias GL_CLIP_PLANE4 - CLIP_DISTANCE5 = 0x3005 # VERSION_3_0 # alias GL_CLIP_PLANE5 - CLIP_DISTANCE6 = 0x3006 # VERSION_3_0 # alias GL_CLIP_PLANE5 - CLIP_DISTANCE7 = 0x3007 # VERSION_3_0 # alias GL_CLIP_PLANE5 - -############################################################################### - -# 0x4000-0x4FFF are reserved for light numbers -LightName enum: - LIGHT0 = 0x4000 # 1 I - LIGHT1 = 0x4001 # 1 I - LIGHT2 = 0x4002 # 1 I - LIGHT3 = 0x4003 # 1 I - LIGHT4 = 0x4004 # 1 I - LIGHT5 = 0x4005 # 1 I - LIGHT6 = 0x4006 # 1 I - LIGHT7 = 0x4007 # 1 I - use SGIX_fragment_lighting FRAGMENT_LIGHT0_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT1_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT2_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT3_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT4_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT5_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT6_SGIX - use SGIX_fragment_lighting FRAGMENT_LIGHT7_SGIX - -############################################################################### - -EXT_abgr enum: - ABGR_EXT = 0x8000 - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - CONSTANT_COLOR = 0x8001 - ONE_MINUS_CONSTANT_COLOR = 0x8002 - CONSTANT_ALPHA = 0x8003 - ONE_MINUS_CONSTANT_ALPHA = 0x8004 - BLEND_COLOR = 0x8005 # 4 F - -EXT_blend_color enum: - CONSTANT_COLOR_EXT = 0x8001 - ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 - CONSTANT_ALPHA_EXT = 0x8003 - ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 - BLEND_COLOR_EXT = 0x8005 # 4 F - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) -EXT_blend_minmax enum: - FUNC_ADD = 0x8006 - FUNC_ADD_EXT = 0x8006 - MIN = 0x8007 - MIN_EXT = 0x8007 - MAX = 0x8008 - MAX_EXT = 0x8008 - BLEND_EQUATION = 0x8009 # 1 I - BLEND_EQUATION_EXT = 0x8009 # 1 I - -VERSION_2_0 enum: (Promoted for OpenGL 2.0) - BLEND_EQUATION_RGB = 0x8009 # VERSION_2_0 # alias GL_BLEND_EQUATION - -EXT_blend_equation_separate enum: (separate; see below) - BLEND_EQUATION_RGB_EXT = 0x8009 # alias GL_BLEND_EQUATION - -# Aliases EXT_blend_equation_separate enum above -OES_blend_equation_separate enum: (OpenGL ES only; additional; see below) - BLEND_EQUATION_RGB_OES = 0x8009 # 1 I - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) -EXT_blend_subtract enum: - FUNC_SUBTRACT = 0x800A - FUNC_SUBTRACT_EXT = 0x800A - FUNC_REVERSE_SUBTRACT = 0x800B - FUNC_REVERSE_SUBTRACT_EXT = 0x800B - -# Aliases EXT_blend_minmax and EXT_blend_subtract enums above -OES_blend_subtract enum: (OpenGL ES only) - FUNC_ADD_OES = 0x8006 - BLEND_EQUATION_OES = 0x8009 # 1 I - FUNC_SUBTRACT_OES = 0x800A - FUNC_REVERSE_SUBTRACT_OES = 0x800B - -############################################################################### - -EXT_cmyka enum: - CMYK_EXT = 0x800C - CMYKA_EXT = 0x800D - PACK_CMYK_HINT_EXT = 0x800E # 1 I - UNPACK_CMYK_HINT_EXT = 0x800F # 1 I - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - CONVOLUTION_1D = 0x8010 # 1 I - CONVOLUTION_2D = 0x8011 # 1 I - SEPARABLE_2D = 0x8012 # 1 I - CONVOLUTION_BORDER_MODE = 0x8013 - CONVOLUTION_FILTER_SCALE = 0x8014 - CONVOLUTION_FILTER_BIAS = 0x8015 - REDUCE = 0x8016 - CONVOLUTION_FORMAT = 0x8017 - CONVOLUTION_WIDTH = 0x8018 - CONVOLUTION_HEIGHT = 0x8019 - MAX_CONVOLUTION_WIDTH = 0x801A - MAX_CONVOLUTION_HEIGHT = 0x801B - POST_CONVOLUTION_RED_SCALE = 0x801C # 1 F - POST_CONVOLUTION_GREEN_SCALE = 0x801D # 1 F - POST_CONVOLUTION_BLUE_SCALE = 0x801E # 1 F - POST_CONVOLUTION_ALPHA_SCALE = 0x801F # 1 F - POST_CONVOLUTION_RED_BIAS = 0x8020 # 1 F - POST_CONVOLUTION_GREEN_BIAS = 0x8021 # 1 F - POST_CONVOLUTION_BLUE_BIAS = 0x8022 # 1 F - POST_CONVOLUTION_ALPHA_BIAS = 0x8023 # 1 F - -EXT_convolution enum: - CONVOLUTION_1D_EXT = 0x8010 # 1 I - CONVOLUTION_2D_EXT = 0x8011 # 1 I - SEPARABLE_2D_EXT = 0x8012 # 1 I - CONVOLUTION_BORDER_MODE_EXT = 0x8013 - CONVOLUTION_FILTER_SCALE_EXT = 0x8014 - CONVOLUTION_FILTER_BIAS_EXT = 0x8015 - REDUCE_EXT = 0x8016 - CONVOLUTION_FORMAT_EXT = 0x8017 - CONVOLUTION_WIDTH_EXT = 0x8018 - CONVOLUTION_HEIGHT_EXT = 0x8019 - MAX_CONVOLUTION_WIDTH_EXT = 0x801A - MAX_CONVOLUTION_HEIGHT_EXT = 0x801B - POST_CONVOLUTION_RED_SCALE_EXT = 0x801C # 1 F - POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D # 1 F - POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E # 1 F - POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F # 1 F - POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 # 1 F - POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 # 1 F - POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 # 1 F - POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 # 1 F - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - HISTOGRAM = 0x8024 # 1 I - PROXY_HISTOGRAM = 0x8025 - HISTOGRAM_WIDTH = 0x8026 - HISTOGRAM_FORMAT = 0x8027 - HISTOGRAM_RED_SIZE = 0x8028 - HISTOGRAM_GREEN_SIZE = 0x8029 - HISTOGRAM_BLUE_SIZE = 0x802A - HISTOGRAM_ALPHA_SIZE = 0x802B - HISTOGRAM_SINK = 0x802D - MINMAX = 0x802E # 1 I - MINMAX_FORMAT = 0x802F - MINMAX_SINK = 0x8030 - TABLE_TOO_LARGE = 0x8031 - -EXT_histogram enum: - HISTOGRAM_EXT = 0x8024 # 1 I - PROXY_HISTOGRAM_EXT = 0x8025 - HISTOGRAM_WIDTH_EXT = 0x8026 - HISTOGRAM_FORMAT_EXT = 0x8027 - HISTOGRAM_RED_SIZE_EXT = 0x8028 - HISTOGRAM_GREEN_SIZE_EXT = 0x8029 - HISTOGRAM_BLUE_SIZE_EXT = 0x802A - HISTOGRAM_ALPHA_SIZE_EXT = 0x802B - HISTOGRAM_LUMINANCE_SIZE = 0x802C - HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C - HISTOGRAM_SINK_EXT = 0x802D - MINMAX_EXT = 0x802E # 1 I - MINMAX_FORMAT_EXT = 0x802F - MINMAX_SINK_EXT = 0x8030 - TABLE_TOO_LARGE_EXT = 0x8031 - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - UNSIGNED_BYTE_3_3_2 = 0x8032 - UNSIGNED_SHORT_4_4_4_4 = 0x8033 - UNSIGNED_SHORT_5_5_5_1 = 0x8034 - UNSIGNED_INT_8_8_8_8 = 0x8035 - UNSIGNED_INT_10_10_10_2 = 0x8036 - UNSIGNED_BYTE_2_3_3_REV = 0x8362 - UNSIGNED_SHORT_5_6_5 = 0x8363 - UNSIGNED_SHORT_5_6_5_REV = 0x8364 - UNSIGNED_SHORT_4_4_4_4_REV = 0x8365 - UNSIGNED_SHORT_1_5_5_5_REV = 0x8366 - UNSIGNED_INT_8_8_8_8_REV = 0x8367 - UNSIGNED_INT_2_10_10_10_REV = 0x8368 - -EXT_packed_pixels enum: - UNSIGNED_BYTE_3_3_2_EXT = 0x8032 - UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 - UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 - UNSIGNED_INT_8_8_8_8_EXT = 0x8035 - UNSIGNED_INT_10_10_10_2_EXT = 0x8036 - UNSIGNED_BYTE_2_3_3_REV_EXT = 0x8362 - UNSIGNED_SHORT_5_6_5_EXT = 0x8363 - UNSIGNED_SHORT_5_6_5_REV_EXT = 0x8364 - UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365 - UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366 - UNSIGNED_INT_8_8_8_8_REV_EXT = 0x8367 - UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368 - -EXT_texture_type_2_10_10_10_REV enum: (OpenGL ES only) -# use EXT_packed_pixels UNSIGNED_INT_2_10_10_10_REV_EXT - -############################################################################### - -EXT_polygon_offset enum: - POLYGON_OFFSET_EXT = 0x8037 - POLYGON_OFFSET_FACTOR_EXT = 0x8038 - POLYGON_OFFSET_BIAS_EXT = 0x8039 # 1 F - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - RESCALE_NORMAL = 0x803A # 1 I - -EXT_rescale_normal enum: - RESCALE_NORMAL_EXT = 0x803A # 1 I - -############################################################################### - -EXT_texture enum: - ALPHA4_EXT = 0x803B - ALPHA8_EXT = 0x803C - ALPHA12_EXT = 0x803D - ALPHA16_EXT = 0x803E - LUMINANCE4_EXT = 0x803F - LUMINANCE8_EXT = 0x8040 - LUMINANCE12_EXT = 0x8041 - LUMINANCE16_EXT = 0x8042 - LUMINANCE4_ALPHA4_EXT = 0x8043 - LUMINANCE6_ALPHA2_EXT = 0x8044 - LUMINANCE8_ALPHA8_EXT = 0x8045 - LUMINANCE12_ALPHA4_EXT = 0x8046 - LUMINANCE12_ALPHA12_EXT = 0x8047 - LUMINANCE16_ALPHA16_EXT = 0x8048 - INTENSITY_EXT = 0x8049 - INTENSITY4_EXT = 0x804A - INTENSITY8_EXT = 0x804B - INTENSITY12_EXT = 0x804C - INTENSITY16_EXT = 0x804D - RGB2_EXT = 0x804E - RGB4_EXT = 0x804F - RGB5_EXT = 0x8050 - RGB8_EXT = 0x8051 - RGB10_EXT = 0x8052 - RGB12_EXT = 0x8053 - RGB16_EXT = 0x8054 - RGBA2_EXT = 0x8055 - RGBA4_EXT = 0x8056 - RGB5_A1_EXT = 0x8057 - RGBA8_EXT = 0x8058 - RGB10_A2_EXT = 0x8059 - RGBA12_EXT = 0x805A - RGBA16_EXT = 0x805B - TEXTURE_RED_SIZE_EXT = 0x805C - TEXTURE_GREEN_SIZE_EXT = 0x805D - TEXTURE_BLUE_SIZE_EXT = 0x805E - TEXTURE_ALPHA_SIZE_EXT = 0x805F - TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 - TEXTURE_INTENSITY_SIZE_EXT = 0x8061 - REPLACE_EXT = 0x8062 - PROXY_TEXTURE_1D_EXT = 0x8063 - PROXY_TEXTURE_2D_EXT = 0x8064 - TEXTURE_TOO_LARGE_EXT = 0x8065 - -# Aliases EXT_texture enums above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - RGBA4_OES = 0x8056 - RGB5_A1_OES = 0x8057 - -############################################################################### - -EXT_texture_object enum: - TEXTURE_PRIORITY_EXT = 0x8066 - TEXTURE_RESIDENT_EXT = 0x8067 - TEXTURE_1D_BINDING_EXT = 0x8068 - TEXTURE_2D_BINDING_EXT = 0x8069 - TEXTURE_3D_BINDING_EXT = 0x806A # 1 I - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - PACK_SKIP_IMAGES = 0x806B # 1 I - PACK_IMAGE_HEIGHT = 0x806C # 1 F - UNPACK_SKIP_IMAGES = 0x806D # 1 I - UNPACK_IMAGE_HEIGHT = 0x806E # 1 F - TEXTURE_3D = 0x806F # 1 I - PROXY_TEXTURE_3D = 0x8070 - TEXTURE_DEPTH = 0x8071 - TEXTURE_WRAP_R = 0x8072 - MAX_3D_TEXTURE_SIZE = 0x8073 # 1 I - -EXT_texture3D enum: - PACK_SKIP_IMAGES_EXT = 0x806B # 1 I - PACK_IMAGE_HEIGHT_EXT = 0x806C # 1 F - UNPACK_SKIP_IMAGES_EXT = 0x806D # 1 I - UNPACK_IMAGE_HEIGHT_EXT = 0x806E # 1 F - TEXTURE_3D_EXT = 0x806F # 1 I - PROXY_TEXTURE_3D_EXT = 0x8070 - TEXTURE_DEPTH_EXT = 0x8071 - TEXTURE_WRAP_R_EXT = 0x8072 - MAX_3D_TEXTURE_SIZE_EXT = 0x8073 # 1 I - -# Aliases EXT_texture_object, EXT_texture3D enums above -OES_texture3D enum: (OpenGL ES only) - TEXTURE_3D_BINDING_OES = 0x806A # 1 I - TEXTURE_3D_OES = 0x806F # 1 I - TEXTURE_WRAP_R_OES = 0x8072 - MAX_3D_TEXTURE_SIZE_OES = 0x8073 # 1 I - -############################################################################### - -EXT_vertex_array enum: - VERTEX_ARRAY_EXT = 0x8074 - NORMAL_ARRAY_EXT = 0x8075 - COLOR_ARRAY_EXT = 0x8076 - INDEX_ARRAY_EXT = 0x8077 - TEXTURE_COORD_ARRAY_EXT = 0x8078 - EDGE_FLAG_ARRAY_EXT = 0x8079 - VERTEX_ARRAY_SIZE_EXT = 0x807A - VERTEX_ARRAY_TYPE_EXT = 0x807B - VERTEX_ARRAY_STRIDE_EXT = 0x807C - VERTEX_ARRAY_COUNT_EXT = 0x807D # 1 I - NORMAL_ARRAY_TYPE_EXT = 0x807E - NORMAL_ARRAY_STRIDE_EXT = 0x807F - NORMAL_ARRAY_COUNT_EXT = 0x8080 # 1 I - COLOR_ARRAY_SIZE_EXT = 0x8081 - COLOR_ARRAY_TYPE_EXT = 0x8082 - COLOR_ARRAY_STRIDE_EXT = 0x8083 - COLOR_ARRAY_COUNT_EXT = 0x8084 # 1 I - INDEX_ARRAY_TYPE_EXT = 0x8085 - INDEX_ARRAY_STRIDE_EXT = 0x8086 - INDEX_ARRAY_COUNT_EXT = 0x8087 # 1 I - TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 - TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 - TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A - TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B # 1 I - EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C - EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D # 1 I - VERTEX_ARRAY_POINTER_EXT = 0x808E - NORMAL_ARRAY_POINTER_EXT = 0x808F - COLOR_ARRAY_POINTER_EXT = 0x8090 - INDEX_ARRAY_POINTER_EXT = 0x8091 - TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 - EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 - -############################################################################### - -SGIX_interlace enum: - INTERLACE_SGIX = 0x8094 # 1 I - -############################################################################### - -SGIS_detail_texture enum: - DETAIL_TEXTURE_2D_SGIS = 0x8095 - DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 # 1 I - LINEAR_DETAIL_SGIS = 0x8097 - LINEAR_DETAIL_ALPHA_SGIS = 0x8098 - LINEAR_DETAIL_COLOR_SGIS = 0x8099 - DETAIL_TEXTURE_LEVEL_SGIS = 0x809A - DETAIL_TEXTURE_MODE_SGIS = 0x809B - DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C - -############################################################################### - -# Reuses some SGIS_multisample values -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - MULTISAMPLE = 0x809D - SAMPLE_ALPHA_TO_COVERAGE = 0x809E - SAMPLE_ALPHA_TO_ONE = 0x809F - SAMPLE_COVERAGE = 0x80A0 - SAMPLE_BUFFERS = 0x80A8 # 1 I - SAMPLES = 0x80A9 # 1 I - SAMPLE_COVERAGE_VALUE = 0x80AA # 1 F - SAMPLE_COVERAGE_INVERT = 0x80AB # 1 I - -ARB_multisample enum: - MULTISAMPLE_ARB = 0x809D - SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E - SAMPLE_ALPHA_TO_ONE_ARB = 0x809F - SAMPLE_COVERAGE_ARB = 0x80A0 - SAMPLE_BUFFERS_ARB = 0x80A8 # 1 I - SAMPLES_ARB = 0x80A9 # 1 I - SAMPLE_COVERAGE_VALUE_ARB = 0x80AA # 1 F - SAMPLE_COVERAGE_INVERT_ARB = 0x80AB # 1 I - -SGIS_multisample enum: - MULTISAMPLE_SGIS = 0x809D # 1 I - SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E # 1 I - SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F # 1 I - SAMPLE_MASK_SGIS = 0x80A0 # 1 I - 1PASS_SGIS = 0x80A1 - 2PASS_0_SGIS = 0x80A2 - 2PASS_1_SGIS = 0x80A3 - 4PASS_0_SGIS = 0x80A4 - 4PASS_1_SGIS = 0x80A5 - 4PASS_2_SGIS = 0x80A6 - 4PASS_3_SGIS = 0x80A7 - SAMPLE_BUFFERS_SGIS = 0x80A8 # 1 I - SAMPLES_SGIS = 0x80A9 # 1 I - SAMPLE_MASK_VALUE_SGIS = 0x80AA # 1 F - SAMPLE_MASK_INVERT_SGIS = 0x80AB # 1 I - SAMPLE_PATTERN_SGIS = 0x80AC # 1 I - -# Reuses SGIS_multisample values. -EXT_multisample enum: - MULTISAMPLE_EXT = 0x809D - SAMPLE_ALPHA_TO_MASK_EXT = 0x809E - SAMPLE_ALPHA_TO_ONE_EXT = 0x809F - SAMPLE_MASK_EXT = 0x80A0 - 1PASS_EXT = 0x80A1 - 2PASS_0_EXT = 0x80A2 - 2PASS_1_EXT = 0x80A3 - 4PASS_0_EXT = 0x80A4 - 4PASS_1_EXT = 0x80A5 - 4PASS_2_EXT = 0x80A6 - 4PASS_3_EXT = 0x80A7 - SAMPLE_BUFFERS_EXT = 0x80A8 # 1 I - SAMPLES_EXT = 0x80A9 # 1 I - SAMPLE_MASK_VALUE_EXT = 0x80AA # 1 F - SAMPLE_MASK_INVERT_EXT = 0x80AB # 1 I - SAMPLE_PATTERN_EXT = 0x80AC # 1 I - MULTISAMPLE_BIT_EXT = 0x20000000 - -############################################################################### - -SGIS_sharpen_texture enum: - LINEAR_SHARPEN_SGIS = 0x80AD - LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE - LINEAR_SHARPEN_COLOR_SGIS = 0x80AF - SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - COLOR_MATRIX = 0x80B1 # 16 F - COLOR_MATRIX_STACK_DEPTH = 0x80B2 # 1 I - MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 # 1 I - POST_COLOR_MATRIX_RED_SCALE = 0x80B4 # 1 F - POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 # 1 F - POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 # 1 F - POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 # 1 F - POST_COLOR_MATRIX_RED_BIAS = 0x80B8 # 1 F - POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 # 1 F - POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA # 1 F - POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB # 1 F - -SGI_color_matrix enum: - COLOR_MATRIX_SGI = 0x80B1 # 16 F - COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 # 1 I - MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 # 1 I - POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 # 1 F - POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 # 1 F - POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 # 1 F - POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 # 1 F - POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 # 1 F - POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 # 1 F - POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA # 1 F - POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB # 1 F - -############################################################################### - -SGI_texture_color_table enum: - TEXTURE_COLOR_TABLE_SGI = 0x80BC # 1 I - PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD - -############################################################################### - -SGIX_texture_add_env enum: - TEXTURE_ENV_BIAS_SGIX = 0x80BE - -############################################################################### - -SGIX_shadow_ambient enum: - SHADOW_AMBIENT_SGIX = 0x80BF - -############################################################################### - -# Intergraph/Intense3D/3Dlabs: 0x80C0-0x80CF - -# 3Dlabs_future_use: 0x80C0-0x80C7 - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - BLEND_DST_RGB = 0x80C8 - BLEND_SRC_RGB = 0x80C9 - BLEND_DST_ALPHA = 0x80CA - BLEND_SRC_ALPHA = 0x80CB - -EXT_blend_func_separate enum: - BLEND_DST_RGB_EXT = 0x80C8 - BLEND_SRC_RGB_EXT = 0x80C9 - BLEND_DST_ALPHA_EXT = 0x80CA - BLEND_SRC_ALPHA_EXT = 0x80CB - -# Aliases EXT_blend_func_separate enums above -OES_blend_func_separate enum: (OpenGL ES only) - BLEND_DST_RGB_OES = 0x80C8 - BLEND_SRC_RGB_OES = 0x80C9 - BLEND_DST_ALPHA_OES = 0x80CA - BLEND_SRC_ALPHA_OES = 0x80CB - -EXT_422_pixels enum: - 422_EXT = 0x80CC - 422_REV_EXT = 0x80CD - 422_AVERAGE_EXT = 0x80CE - 422_REV_AVERAGE_EXT = 0x80CF - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - COLOR_TABLE = 0x80D0 # 1 I - POST_CONVOLUTION_COLOR_TABLE = 0x80D1 # 1 I - POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 # 1 I - PROXY_COLOR_TABLE = 0x80D3 - PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 - PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 - COLOR_TABLE_SCALE = 0x80D6 - COLOR_TABLE_BIAS = 0x80D7 - COLOR_TABLE_FORMAT = 0x80D8 - COLOR_TABLE_WIDTH = 0x80D9 - COLOR_TABLE_RED_SIZE = 0x80DA - COLOR_TABLE_GREEN_SIZE = 0x80DB - COLOR_TABLE_BLUE_SIZE = 0x80DC - COLOR_TABLE_ALPHA_SIZE = 0x80DD - COLOR_TABLE_LUMINANCE_SIZE = 0x80DE - COLOR_TABLE_INTENSITY_SIZE = 0x80DF - -SGI_color_table enum: - COLOR_TABLE_SGI = 0x80D0 # 1 I - POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 # 1 I - POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 # 1 I - PROXY_COLOR_TABLE_SGI = 0x80D3 - PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 - PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 - COLOR_TABLE_SCALE_SGI = 0x80D6 - COLOR_TABLE_BIAS_SGI = 0x80D7 - COLOR_TABLE_FORMAT_SGI = 0x80D8 - COLOR_TABLE_WIDTH_SGI = 0x80D9 - COLOR_TABLE_RED_SIZE_SGI = 0x80DA - COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB - COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC - COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD - COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE - COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - BGR = 0x80E0 - BGRA = 0x80E1 - -ARB_vertex_array_bgra enum: -# use VERSION_1_2 BGRA - -EXT_bgra enum: - BGR_EXT = 0x80E0 - BGRA_EXT = 0x80E1 - -############################################################################### - -# Microsoft: 0x80E2-0x80E7 - -############################################################################### - -VERSION_1_2 enum: - MAX_ELEMENTS_VERTICES = 0x80E8 - MAX_ELEMENTS_INDICES = 0x80E9 - -############################################################################### - -# Microsoft: 0x80EA-0x810F - -############################################################################### - -SGIS_texture_select enum: - DUAL_ALPHA4_SGIS = 0x8110 - DUAL_ALPHA8_SGIS = 0x8111 - DUAL_ALPHA12_SGIS = 0x8112 - DUAL_ALPHA16_SGIS = 0x8113 - DUAL_LUMINANCE4_SGIS = 0x8114 - DUAL_LUMINANCE8_SGIS = 0x8115 - DUAL_LUMINANCE12_SGIS = 0x8116 - DUAL_LUMINANCE16_SGIS = 0x8117 - DUAL_INTENSITY4_SGIS = 0x8118 - DUAL_INTENSITY8_SGIS = 0x8119 - DUAL_INTENSITY12_SGIS = 0x811A - DUAL_INTENSITY16_SGIS = 0x811B - DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C - DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D - QUAD_ALPHA4_SGIS = 0x811E - QUAD_ALPHA8_SGIS = 0x811F - QUAD_LUMINANCE4_SGIS = 0x8120 - QUAD_LUMINANCE8_SGIS = 0x8121 - QUAD_INTENSITY4_SGIS = 0x8122 - QUAD_INTENSITY8_SGIS = 0x8123 - DUAL_TEXTURE_SELECT_SGIS = 0x8124 - QUAD_TEXTURE_SELECT_SGIS = 0x8125 - -############################################################################### - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - POINT_SIZE_MIN = 0x8126 # 1 F - POINT_SIZE_MAX = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE = 0x8128 # 1 F - POINT_DISTANCE_ATTENUATION = 0x8129 # 3 F - -ARB_point_parameters enum: - POINT_SIZE_MIN_ARB = 0x8126 # 1 F - POINT_SIZE_MAX_ARB = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 # 1 F - POINT_DISTANCE_ATTENUATION_ARB = 0x8129 # 3 F - -EXT_point_parameters enum: - POINT_SIZE_MIN_EXT = 0x8126 # 1 F - POINT_SIZE_MAX_EXT = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 # 1 F - DISTANCE_ATTENUATION_EXT = 0x8129 # 3 F - -SGIS_point_parameters enum: - POINT_SIZE_MIN_SGIS = 0x8126 # 1 F - POINT_SIZE_MAX_SGIS = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 # 1 F - DISTANCE_ATTENUATION_SGIS = 0x8129 # 3 F - -############################################################################### - -SGIS_fog_function enum: - FOG_FUNC_SGIS = 0x812A - FOG_FUNC_POINTS_SGIS = 0x812B # 1 I - MAX_FOG_FUNC_POINTS_SGIS = 0x812C # 1 I - -############################################################################### - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - CLAMP_TO_BORDER = 0x812D - -ARB_texture_border_clamp enum: - CLAMP_TO_BORDER_ARB = 0x812D - -SGIS_texture_border_clamp enum: - CLAMP_TO_BORDER_SGIS = 0x812D - -############################################################################### - -SGIX_texture_multi_buffer enum: - TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - CLAMP_TO_EDGE = 0x812F - -SGIS_texture_edge_clamp enum: - CLAMP_TO_EDGE_SGIS = 0x812F - -############################################################################### - -SGIS_texture4D enum: - PACK_SKIP_VOLUMES_SGIS = 0x8130 # 1 I - PACK_IMAGE_DEPTH_SGIS = 0x8131 # 1 I - UNPACK_SKIP_VOLUMES_SGIS = 0x8132 # 1 I - UNPACK_IMAGE_DEPTH_SGIS = 0x8133 # 1 I - TEXTURE_4D_SGIS = 0x8134 # 1 I - PROXY_TEXTURE_4D_SGIS = 0x8135 - TEXTURE_4DSIZE_SGIS = 0x8136 - TEXTURE_WRAP_Q_SGIS = 0x8137 - MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 # 1 I - TEXTURE_4D_BINDING_SGIS = 0x814F # 1 I - -############################################################################### - -SGIX_pixel_texture enum: - PIXEL_TEX_GEN_SGIX = 0x8139 # 1 I - PIXEL_TEX_GEN_MODE_SGIX = 0x832B # 1 I - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - TEXTURE_MIN_LOD = 0x813A - TEXTURE_MAX_LOD = 0x813B - TEXTURE_BASE_LEVEL = 0x813C - TEXTURE_MAX_LEVEL = 0x813D - -SGIS_texture_lod enum: - TEXTURE_MIN_LOD_SGIS = 0x813A - TEXTURE_MAX_LOD_SGIS = 0x813B - TEXTURE_BASE_LEVEL_SGIS = 0x813C - TEXTURE_MAX_LEVEL_SGIS = 0x813D - -############################################################################### - -SGIX_pixel_tiles enum: - PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E # 1 I - PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F # 1 I - PIXEL_TILE_WIDTH_SGIX = 0x8140 # 1 I - PIXEL_TILE_HEIGHT_SGIX = 0x8141 # 1 I - PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 # 1 I - PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 # 1 I - PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 # 1 I - PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 # 1 I - -############################################################################### - -SGIS_texture_filter4 enum: - FILTER4_SGIS = 0x8146 - TEXTURE_FILTER4_SIZE_SGIS = 0x8147 - -############################################################################### - -SGIX_sprite enum: - SPRITE_SGIX = 0x8148 # 1 I - SPRITE_MODE_SGIX = 0x8149 # 1 I - SPRITE_AXIS_SGIX = 0x814A # 3 F - SPRITE_TRANSLATION_SGIX = 0x814B # 3 F - SPRITE_AXIAL_SGIX = 0x814C - SPRITE_OBJECT_ALIGNED_SGIX = 0x814D - SPRITE_EYE_ALIGNED_SGIX = 0x814E - -############################################################################### - -# SGIS_texture4D (additional; see above): 0x814F - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - CONSTANT_BORDER = 0x8151 -# WRAP_BORDER = 0x8152 # Not actually used - REPLICATE_BORDER = 0x8153 - CONVOLUTION_BORDER_COLOR = 0x8154 - -HP_convolution_border_modes enum: - IGNORE_BORDER_HP = 0x8150 # Not promoted - CONSTANT_BORDER_HP = 0x8151 - REPLICATE_BORDER_HP = 0x8153 - CONVOLUTION_BORDER_COLOR_HP = 0x8154 - -############################################################################### - -# HP: 0x8155-0x816F - -############################################################################### - -SGIX_clipmap enum: - LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 - TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 - TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 - TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 - TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 - TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 - TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 - MAX_CLIPMAP_DEPTH_SGIX = 0x8177 # 1 I - MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 # 1 I - NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D - NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E - LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F - -############################################################################### - -SGIX_texture_scale_bias enum: - POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 - POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A - POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B # 2 F - POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C # 2 F - -############################################################################### - -SGIX_reference_plane enum: - REFERENCE_PLANE_SGIX = 0x817D # 1 I - REFERENCE_PLANE_EQUATION_SGIX = 0x817E # 4 F - -############################################################################### - -SGIX_ir_instrument1 enum: - IR_INSTRUMENT1_SGIX = 0x817F # 1 I - -############################################################################### - -SGIX_instruments enum: - INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 - INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 # 1 I - -############################################################################### - -SGIX_list_priority enum: - LIST_PRIORITY_SGIX = 0x8182 - -############################################################################### - -SGIX_calligraphic_fragment enum: - CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 # 1 I - -############################################################################### - -SGIX_impact_pixel_texture enum: - PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184 - PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185 - PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186 - PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187 - PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188 - PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189 - PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A - -############################################################################### - -SGIX_framezoom enum: - FRAMEZOOM_SGIX = 0x818B # 1 I - FRAMEZOOM_FACTOR_SGIX = 0x818C # 1 I - MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D # 1 I - -############################################################################### - -SGIX_texture_lod_bias enum: - TEXTURE_LOD_BIAS_S_SGIX = 0x818E - TEXTURE_LOD_BIAS_T_SGIX = 0x818F - TEXTURE_LOD_BIAS_R_SGIX = 0x8190 - -############################################################################### - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - GENERATE_MIPMAP = 0x8191 - GENERATE_MIPMAP_HINT = 0x8192 # 1 I - -SGIS_generate_mipmap enum: - GENERATE_MIPMAP_SGIS = 0x8191 - GENERATE_MIPMAP_HINT_SGIS = 0x8192 # 1 I - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_spotlight_cutoff: 0x8193 -# SPOT_CUTOFF_DELTA_SGIX = 0x8193 - -############################################################################### - -SGIX_polynomial_ffd enum: - GEOMETRY_DEFORMATION_SGIX = 0x8194 - TEXTURE_DEFORMATION_SGIX = 0x8195 - DEFORMATIONS_MASK_SGIX = 0x8196 # 1 I - MAX_DEFORMATION_ORDER_SGIX = 0x8197 - -############################################################################### - -SGIX_fog_offset enum: - FOG_OFFSET_SGIX = 0x8198 # 1 I - FOG_OFFSET_VALUE_SGIX = 0x8199 # 4 F - -############################################################################### - -SGIX_shadow enum: - TEXTURE_COMPARE_SGIX = 0x819A - TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B - TEXTURE_LEQUAL_R_SGIX = 0x819C - TEXTURE_GEQUAL_R_SGIX = 0x819D - -############################################################################### - -# SGI private extension, not in enumext.spec -# SGIX_igloo_interface: 0x819E-0x81A4 -# IGLOO_FULLSCREEN_SGIX = 0x819E -# IGLOO_VIEWPORT_OFFSET_SGIX = 0x819F -# IGLOO_SWAPTMESH_SGIX = 0x81A0 -# IGLOO_COLORNORMAL_SGIX = 0x81A1 -# IGLOO_IRISGL_MODE_SGIX = 0x81A2 -# IGLOO_LMC_COLOR_SGIX = 0x81A3 -# IGLOO_TMESHMODE_SGIX = 0x81A4 - -############################################################################### - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - DEPTH_COMPONENT16 = 0x81A5 - DEPTH_COMPONENT24 = 0x81A6 - DEPTH_COMPONENT32 = 0x81A7 - -ARB_depth_texture enum: - DEPTH_COMPONENT16_ARB = 0x81A5 - DEPTH_COMPONENT24_ARB = 0x81A6 - DEPTH_COMPONENT32_ARB = 0x81A7 - -SGIX_depth_texture enum: - DEPTH_COMPONENT16_SGIX = 0x81A5 - DEPTH_COMPONENT24_SGIX = 0x81A6 - DEPTH_COMPONENT32_SGIX = 0x81A7 - -# Aliases ARB_depth_texture enum above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - DEPTH_COMPONENT16_OES = 0x81A5 - -# Aliases ARB_depth_texture enum above -OES_depth24 enum: (OpenGL ES only) - DEPTH_COMPONENT24_OES = 0x81A6 - -# Aliases ARB_depth_texture enum above -OES_depth32 enum: (OpenGL ES only) - DEPTH_COMPONENT32_OES = 0x81A7 - -############################################################################### - -EXT_compiled_vertex_array enum: - ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 - ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 - -############################################################################### - -EXT_cull_vertex enum: - CULL_VERTEX_EXT = 0x81AA - CULL_VERTEX_EYE_POSITION_EXT = 0x81AB - CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC - -############################################################################### - -# Promoted from SGI? -EXT_index_array_formats enum: - IUI_V2F_EXT = 0x81AD - IUI_V3F_EXT = 0x81AE - IUI_N3F_V2F_EXT = 0x81AF - IUI_N3F_V3F_EXT = 0x81B0 - T2F_IUI_V2F_EXT = 0x81B1 - T2F_IUI_V3F_EXT = 0x81B2 - T2F_IUI_N3F_V2F_EXT = 0x81B3 - T2F_IUI_N3F_V3F_EXT = 0x81B4 - -############################################################################### - -# Promoted from SGI? -EXT_index_func enum: - INDEX_TEST_EXT = 0x81B5 - INDEX_TEST_FUNC_EXT = 0x81B6 - INDEX_TEST_REF_EXT = 0x81B7 - -############################################################################### - -# Promoted from SGI? -EXT_index_material enum: - INDEX_MATERIAL_EXT = 0x81B8 - INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 - INDEX_MATERIAL_FACE_EXT = 0x81BA - -############################################################################### - -SGIX_ycrcb enum: - YCRCB_422_SGIX = 0x81BB - YCRCB_444_SGIX = 0x81BC - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGI_complex_type: 0x81BD-0x81C3 -# COMPLEX_UNSIGNED_BYTE_SGI = 0x81BD -# COMPLEX_BYTE_SGI = 0x81BE -# COMPLEX_UNSIGNED_SHORT_SGI = 0x81BF -# COMPLEX_SHORT_SGI = 0x81C0 -# COMPLEX_UNSIGNED_INT_SGI = 0x81C1 -# COMPLEX_INT_SGI = 0x81C2 -# COMPLEX_FLOAT_SGI = 0x81C3 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGI_fft: 0x81C4-0x81CA -# POST_TRANSFORM_RED_SCALE_SGI = ???? # 1 F -# POST_TRANSFORM_GREEN_SCALE_SGI = ???? # 1 F -# POST_TRANSFORM_BLUE_SCALE_SGI = ???? # 1 F -# POST_TRANSFORM_ALPHA_SCALE_SGI = ???? # 1 F -# POST_TRANSFORM_RED_BIAS_SGI = ???? # 1 F -# POST_TRANSFORM_GREEN_BIAS_SGI = ???? # 1 F -# POST_TRANSFORM_BLUE_BIAS_SGI = ???? # 1 F -# POST_TRANSFORM_ALPHA_BIAS_SGI = ???? # 1 F -# PIXEL_TRANSFORM_OPERATOR_SGI = 0x81C4 # 1 I -# CONVOLUTION_SGI = 0x81C5 -# FFT_1D_SGI = 0x81C6 -# PIXEL_TRANSFORM_SGI = 0x81C7 -# MAX_FFT_WIDTH_SGI = 0x81C8 -# SORT_SGI = 0x81C9 -# TRANSPOSE_SGI = 0x81CA - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_nurbs_eval: 0x81CB-0x81CF -# MAP1_VERTEX_3_NURBS_SGIX = 0x81CB # 1 I -# MAP1_VERTEX_4_NURBS_SGIX = 0x81CC # 1 I -# MAP1_INDEX_NURBS_SGIX = 0x81CD # 1 I -# MAP1_COLOR_4_NURBS_SGIX = 0x81CE # 1 I -# MAP1_NORMAL_NURBS_SGIX = 0x81CF # 1 I -# MAP1_TEXTURE_COORD_1_NURBS_SGIX = 0x81E0 # 1 I -# MAP1_TEXTURE_COORD_2_NURBS_SGIX = 0x81E1 # 1 I -# MAP1_TEXTURE_COORD_3_NURBS_SGIX = 0x81E2 # 1 I -# MAP1_TEXTURE_COORD_4_NURBS_SGIX = 0x81E3 # 1 I -# MAP2_VERTEX_3_NURBS_SGIX = 0x81E4 # 1 I -# MAP2_VERTEX_4_NURBS_SGIX = 0x81E5 # 1 I -# MAP2_INDEX_NURBS_SGIX = 0x81E6 # 1 I -# MAP2_COLOR_4_NURBS_SGIX = 0x81E7 # 1 I -# MAP2_NORMAL_NURBS_SGIX = 0x81E8 # 1 I -# MAP2_TEXTURE_COORD_1_NURBS_SGIX = 0x81E9 # 1 I -# MAP2_TEXTURE_COORD_2_NURBS_SGIX = 0x81EA # 1 I -# MAP2_TEXTURE_COORD_3_NURBS_SGIX = 0x81EB # 1 I -# MAP2_TEXTURE_COORD_4_NURBS_SGIX = 0x81EC # 1 I -# NURBS_KNOT_COUNT_SGIX = 0x81ED -# NURBS_KNOT_VECTOR_SGIX = 0x81EE - -############################################################################### - -# Sun: 0x81D0-0x81DF - -# No extension spec, not in enumext.spec -# SUNX_surface_hint enum: -# SURFACE_SIZE_HINT_SUNX = 0x81D2 -# LARGE_SUNX = 0x81D3 - -SUNX_general_triangle_list enum: - RESTART_SUN = 0x0001 - REPLACE_MIDDLE_SUN = 0x0002 - REPLACE_OLDEST_SUN = 0x0003 - WRAP_BORDER_SUN = 0x81D4 - TRIANGLE_LIST_SUN = 0x81D7 - REPLACEMENT_CODE_SUN = 0x81D8 - -SUNX_constant_data enum: - UNPACK_CONSTANT_DATA_SUNX = 0x81D5 - TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 - -SUN_global_alpha enum: - GLOBAL_ALPHA_SUN = 0x81D9 - GLOBAL_ALPHA_FACTOR_SUN = 0x81DA - -############################################################################### - -# SGIX_nurbs_eval (additional; see above): 0x81E0-0x81EE - -############################################################################### - -SGIS_texture_color_mask enum: - TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF - -############################################################################### - -SGIS_point_line_texgen enum: - EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 - OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 - EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 - OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 - EYE_POINT_SGIS = 0x81F4 - OBJECT_POINT_SGIS = 0x81F5 - EYE_LINE_SGIS = 0x81F6 - OBJECT_LINE_SGIS = 0x81F7 - -############################################################################### - -VERSION_1_2 enum: (Promoted for OpenGL 1.2) - LIGHT_MODEL_COLOR_CONTROL = 0x81F8 # 1 I - SINGLE_COLOR = 0x81F9 - SEPARATE_SPECULAR_COLOR = 0x81FA - -EXT_separate_specular_color enum: - LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 - SINGLE_COLOR_EXT = 0x81F9 - SEPARATE_SPECULAR_COLOR_EXT = 0x81FA - -############################################################################### - -EXT_shared_texture_palette enum: - SHARED_TEXTURE_PALETTE_EXT = 0x81FB # 1 I - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fog_scale: 0x81FC-0x81FD -# FOG_SCALE_SGIX = 0x81FC # 1 I -# FOG_SCALE_VALUE_SGIX = 0x81FD # 1 F - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fog_blend: 0x81FE-0x81FF -# FOG_BLEND_ALPHA_SGIX = 0x81FE # 1 I -# FOG_BLEND_COLOR_SGIX = 0x81FF # 1 I - -############################################################################### - -# ATI: 0x8200-0x820F (released by Microsoft 2002/9/16) -ATI_text_fragment_shader enum: - TEXT_FRAGMENT_SHADER_ATI = 0x8200 - -############################################################################### - -# OpenGL ARB: 0x8210-0x823F - -VERSION_3_0 enum: - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_RED_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_GREEN_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_BLUE_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE - use ARB_framebuffer_object FRAMEBUFFER_DEFAULT - use ARB_framebuffer_object FRAMEBUFFER_UNDEFINED - use ARB_framebuffer_object DEPTH_STENCIL_ATTACHMENT - -ARB_framebuffer_object enum: (note: no ARB suffixes) - FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_DEFAULT = 0x8218 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_UNDEFINED = 0x8219 # VERSION_3_0 / ARB_fbo - DEPTH_STENCIL_ATTACHMENT = 0x821A # VERSION_3_0 / ARB_fbo - -VERSION_3_0 enum: - MAJOR_VERSION = 0x821B # VERSION_3_0 - MINOR_VERSION = 0x821C # VERSION_3_0 - NUM_EXTENSIONS = 0x821D # VERSION_3_0 - CONTEXT_FLAGS = 0x821E # VERSION_3_0 - -# ARB_future_use: 0x821F-0x8221 - -VERSION_3_0 enum: - use ARB_framebuffer_object INDEX - -ARB_framebuffer_object enum: (note: no ARB suffixes) - INDEX = 0x8222 # VERSION_3_0 / ARB_fbo - -VERSION_3_0 enum: - DEPTH_BUFFER = 0x8223 # VERSION_3_0 - STENCIL_BUFFER = 0x8224 # VERSION_3_0 - COMPRESSED_RED = 0x8225 # VERSION_3_0 - COMPRESSED_RG = 0x8226 # VERSION_3_0 - -VERSION_3_0 enum: - use ARB_texture_rg RG - use ARB_texture_rg RG_INTEGER - use ARB_texture_rg R8 - use ARB_texture_rg R16 - use ARB_texture_rg RG8 - use ARB_texture_rg RG16 - use ARB_texture_rg R16F - use ARB_texture_rg R32F - use ARB_texture_rg RG16F - use ARB_texture_rg RG32F - use ARB_texture_rg R8I - use ARB_texture_rg R8UI - use ARB_texture_rg R16I - use ARB_texture_rg R16UI - use ARB_texture_rg R32I - use ARB_texture_rg R32UI - use ARB_texture_rg RG8I - use ARB_texture_rg RG8UI - use ARB_texture_rg RG16I - use ARB_texture_rg RG16UI - use ARB_texture_rg RG32I - use ARB_texture_rg RG32UI - -ARB_texture_rg enum: (note: no ARB suffixes) - RG = 0x8227 # VERSION_3_0 / ARB_trg - RG_INTEGER = 0x8228 # VERSION_3_0 / ARB_trg - R8 = 0x8229 # VERSION_3_0 / ARB_trg - R16 = 0x822A # VERSION_3_0 / ARB_trg - RG8 = 0x822B # VERSION_3_0 / ARB_trg - RG16 = 0x822C # VERSION_3_0 / ARB_trg - R16F = 0x822D # VERSION_3_0 / ARB_trg - R32F = 0x822E # VERSION_3_0 / ARB_trg - RG16F = 0x822F # VERSION_3_0 / ARB_trg - RG32F = 0x8230 # VERSION_3_0 / ARB_trg - R8I = 0x8231 # VERSION_3_0 / ARB_trg - R8UI = 0x8232 # VERSION_3_0 / ARB_trg - R16I = 0x8233 # VERSION_3_0 / ARB_trg - R16UI = 0x8234 # VERSION_3_0 / ARB_trg - R32I = 0x8235 # VERSION_3_0 / ARB_trg - R32UI = 0x8236 # VERSION_3_0 / ARB_trg - RG8I = 0x8237 # VERSION_3_0 / ARB_trg - RG8UI = 0x8238 # VERSION_3_0 / ARB_trg - RG16I = 0x8239 # VERSION_3_0 / ARB_trg - RG16UI = 0x823A # VERSION_3_0 / ARB_trg - RG32I = 0x823B # VERSION_3_0 / ARB_trg - RG32UI = 0x823C # VERSION_3_0 / ARB_trg - -# ARB_future_use: 0x823D-0x823F - -############################################################################### - -# @@@ Any_vendor_future_use: 0x8240-0x82AF (released by Microsoft 2002/9/16) - -############################################################################### - -# ADD: 0x82B0-0x830F - -############################################################################### - -SGIX_depth_pass_instrument enum: 0x8310-0x8312 - DEPTH_PASS_INSTRUMENT_SGIX = 0x8310 - DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311 - DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312 - -############################################################################### - -SGIX_fragments_instrument enum: 0x8313-0x8315 - FRAGMENTS_INSTRUMENT_SGIX = 0x8313 # 1 I - FRAGMENTS_INSTRUMENT_COUNTERS_SGIX = 0x8314 # 1 I - FRAGMENTS_INSTRUMENT_MAX_SGIX = 0x8315 # 1 I - -############################################################################### - -SGIX_convolution_accuracy enum: - CONVOLUTION_HINT_SGIX = 0x8316 # 1 I - -############################################################################### - -# SGIX_color_matrix_accuracy: 0x8317 - -############################################################################### - -# 0x8318-0x8319 -SGIX_ycrcba enum: - YCRCB_SGIX = 0x8318 - YCRCBA_SGIX = 0x8319 - -############################################################################### - -# 0x831A-0x831F -SGIX_slim enum: - UNPACK_COMPRESSED_SIZE_SGIX = 0x831A - PACK_MAX_COMPRESSED_SIZE_SGIX = 0x831B - PACK_COMPRESSED_SIZE_SGIX = 0x831C - SLIM8U_SGIX = 0x831D - SLIM10U_SGIX = 0x831E - SLIM12S_SGIX = 0x831F - -############################################################################### - -SGIX_blend_alpha_minmax enum: - ALPHA_MIN_SGIX = 0x8320 - ALPHA_MAX_SGIX = 0x8321 - -############################################################################### - -SGIX_scalebias_hint enum: - SCALEBIAS_HINT_SGIX = 0x8322 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fog_layers: 0x8323-0x8328 -# FOG_TYPE_SGIX = 0x8323 # 1 I -# UNIFORM_SGIX = 0x8324 -# LAYERED_SGIX = 0x8325 -# FOG_GROUND_PLANE_SGIX = 0x8326 # 4 F -# FOG_LAYERS_POINTS_SGIX = 0x8327 # 1 I -# MAX_FOG_LAYERS_POINTS_SGIX = 0x8328 # 1 I - -############################################################################### - -SGIX_async enum: - ASYNC_MARKER_SGIX = 0x8329 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_texture_phase: 0x832A -# PHASE_SGIX = 0x832A - -############################################################################### - -# SGIX_pixel_texture (additional; see above): 0x832B - -############################################################################### - -SGIX_async_histogram enum: - ASYNC_HISTOGRAM_SGIX = 0x832C - MAX_ASYNC_HISTOGRAM_SGIX = 0x832D - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_texture_mipmap_anisotropic: 0x832E-0x832F -# TEXTURE_MIPMAP_ANISOTROPY_SGIX = 0x832E -# MAX_MIPMAP_ANISOTROPY_SGIX = 0x832F # 1 I - -############################################################################### - -EXT_pixel_transform enum: - PIXEL_TRANSFORM_2D_EXT = 0x8330 - PIXEL_MAG_FILTER_EXT = 0x8331 - PIXEL_MIN_FILTER_EXT = 0x8332 - PIXEL_CUBIC_WEIGHT_EXT = 0x8333 - CUBIC_EXT = 0x8334 - AVERAGE_EXT = 0x8335 - PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 - MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 - PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 - -# SUN_future_use: 0x8339-0x833F - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_cube_map: 0x8340-0x8348 -# ENV_MAP_SGIX = 0x8340 -# CUBE_MAP_SGIX = 0x8341 -# CUBE_MAP_ZP_SGIX = 0x8342 -# CUBE_MAP_ZN_SGIX = 0x8343 -# CUBE_MAP_XN_SGIX = 0x8344 -# CUBE_MAP_XP_SGIX = 0x8345 -# CUBE_MAP_YN_SGIX = 0x8346 -# CUBE_MAP_YP_SGIX = 0x8347 -# CUBE_MAP_BINDING_SGIX = 0x8348 # 1 I - -############################################################################### - -# Unfortunately, there was a collision promoting to EXT from SGIX. -# Use fog_coord's value of 0x8452 instead of the previously -# assigned FRAGMENT_DEPTH_EXT -> 0x834B. -# EXT_light_texture: 0x8349-0x8352 -EXT_light_texture enum: 0x8349-0x8352 - FRAGMENT_MATERIAL_EXT = 0x8349 - FRAGMENT_NORMAL_EXT = 0x834A - FRAGMENT_COLOR_EXT = 0x834C - ATTENUATION_EXT = 0x834D - SHADOW_ATTENUATION_EXT = 0x834E - TEXTURE_APPLICATION_MODE_EXT = 0x834F # 1 I - TEXTURE_LIGHT_EXT = 0x8350 # 1 I - TEXTURE_MATERIAL_FACE_EXT = 0x8351 # 1 I - TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 # 1 I - use EXT_fog_coord FRAGMENT_DEPTH_EXT - -############################################################################### - -SGIS_pixel_texture enum: - PIXEL_TEXTURE_SGIS = 0x8353 # 1 I - PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 # 1 I - PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 # 1 I - PIXEL_GROUP_COLOR_SGIS = 0x8356 # 1 I - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_pixel_texture_bits: 0x8357-0x8359 -# COLOR_TO_TEXTURE_COORD_SGIX = 0x8357 -# COLOR_BIT_PATTERN_SGIX = 0x8358 -# COLOR_VALUE_SGIX = 0x8359 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_pixel_texture_lod: 0x835A -# PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX = 0x835A - -############################################################################### - -SGIX_line_quality_hint enum: - LINE_QUALITY_HINT_SGIX = 0x835B - -############################################################################### - -SGIX_async_pixel enum: - ASYNC_TEX_IMAGE_SGIX = 0x835C - ASYNC_DRAW_PIXELS_SGIX = 0x835D - ASYNC_READ_PIXELS_SGIX = 0x835E - MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F - MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 - MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 - -############################################################################### - -# EXT_packed_pixels (additional; see above): 0x8362-0x8368 - -############################################################################### - -SGIX_texture_coordinate_clamp enum: - TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 - TEXTURE_MAX_CLAMP_T_SGIX = 0x836A - TEXTURE_MAX_CLAMP_R_SGIX = 0x836B - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fog_texture: 0x836C-0x836E -# FRAGMENT_FOG_SGIX = 0x836C -# TEXTURE_FOG_SGIX = 0x836D # 1 I -# FOG_PATCHY_FACTOR_SGIX = 0x836E - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fog_factor_to_alpha: 0x836F - FOG_FACTOR_TO_ALPHA_SGIX = 0x836F - -############################################################################### - -# HP: 0x8370-0x837F -# NOTE: IBM is using values in this range, because of a bobble -# when Pat Brown left at the same time as I assigned them the -# next range and their registry became inconsistent. Unknown -# whether HP has any conflicts as they have never reported using -# any values in this range. - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - MIRRORED_REPEAT = 0x8370 - -ARB_texture_mirrored_repeat enum: - MIRRORED_REPEAT_ARB = 0x8370 - -IBM_texture_mirrored_repeat enum: - MIRRORED_REPEAT_IBM = 0x8370 - -# Aliases ARB_texture_mirrored_repeat enum above -OES_texture_mirrored_repeat enum: (OpenGL ES only) - MIRRORED_REPEAT_OES = 0x8370 - -############################################################################### - -# IBM: 0x8380-0x839F - -############################################################################### - -# S3: 0x83A0-0x83BF - -S3_s3tc enum: - RGB_S3TC = 0x83A0 - RGB4_S3TC = 0x83A1 - RGBA_S3TC = 0x83A2 - RGBA4_S3TC = 0x83A3 - -# S3_future_use: 0x83A4-0x83BF - -############################################################################### - -# Obsolete extension, never to be put in enumext.spec -# SGIS_multitexture: 0x83C0-0x83E5 -# SELECTED_TEXTURE_SGIS = 0x83C0 # 1 I -# SELECTED_TEXTURE_COORD_SET_SGIS = 0x83C1 # 1 I -# SELECTED_TEXTURE_TRANSFORM_SGIS = 0x83C2 # 1 I -# MAX_TEXTURES_SGIS = 0x83C3 # 1 I -# MAX_TEXTURE_COORD_SETS_SGIS = 0x83C4 # 1 I -# TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS = 0x83C5 # 1 I -# TEXTURE_ENV_COORD_SET_SGIS = 0x83C6 -# TEXTURE0_SGIS = 0x83C7 -# TEXTURE1_SGIS = 0x83C8 -# TEXTURE2_SGIS = 0x83C9 -# TEXTURE3_SGIS = 0x83CA -# -# SGIS_multitexture_future_use: 0x83CB-0x83E5 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_bali_g_instruments: 0x83E6-0x83E9 -# BALI_NUM_TRIS_CULLED_INSTRUMENT_SGIX = 0x83E6 # 1 I -# BALI_NUM_PRIMS_CLIPPED_INSTRUMENT_SGIX = 0x83E7 # 1 I -# BALI_NUM_PRIMS_REJECT_INSTRUMENT_SGIX = 0x83E8 # 1 I -# BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT_SGIX = 0x83E9 # 1 I - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_bali_r_instruments: 0x83EA-0x83EC -# BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX = 0x83EA # 1 I -# BALI_DEPTH_PASS_INSTRUMENT_SGIX = 0x83EB # 1 I -# BALI_R_CHIP_COUNT_SGIX = 0x83EC # 1 I - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_occlusion_instrument: 0x83ED -# OCCLUSION_INSTRUMENT_SGIX = 0x83ED # 1 I - -############################################################################### - -SGIX_vertex_preclip enum: - VERTEX_PRECLIP_SGIX = 0x83EE - VERTEX_PRECLIP_HINT_SGIX = 0x83EF - -############################################################################### - -# INTEL: 0x83F0-0x83FF -# Note that this block was reclaimed from NTP, who never shipped it, -# and reassigned to Intel. - -EXT_texture_compression_s3tc enum: - COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0 - COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1 - COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 - COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 - -INTEL_parallel_arrays enum: - PARALLEL_ARRAYS_INTEL = 0x83F4 - VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 - NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 - COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 - TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 - -# INTEL_future_use: 0x83F9-0x83FF - -############################################################################### - -SGIX_fragment_lighting enum: - FRAGMENT_LIGHTING_SGIX = 0x8400 # 1 I - FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 # 1 I - FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 # 1 I - FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 # 1 I - MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 # 1 I - MAX_ACTIVE_LIGHTS_SGIX = 0x8405 # 1 I - CURRENT_RASTER_NORMAL_SGIX = 0x8406 # 1 I - LIGHT_ENV_MODE_SGIX = 0x8407 # 1 I - FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 # 1 I - FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 # 1 I - FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A # 4 F - FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B # 1 I - FRAGMENT_LIGHT0_SGIX = 0x840C # 1 I - FRAGMENT_LIGHT1_SGIX = 0x840D - FRAGMENT_LIGHT2_SGIX = 0x840E - FRAGMENT_LIGHT3_SGIX = 0x840F - FRAGMENT_LIGHT4_SGIX = 0x8410 - FRAGMENT_LIGHT5_SGIX = 0x8411 - FRAGMENT_LIGHT6_SGIX = 0x8412 - FRAGMENT_LIGHT7_SGIX = 0x8413 - -# SGIX_fragment_lighting_future_use: 0x8414-0x842B - -############################################################################### - -SGIX_resample enum: - PACK_RESAMPLE_SGIX = 0x842C - UNPACK_RESAMPLE_SGIX = 0x842D - RESAMPLE_REPLICATE_SGIX = 0x842E - RESAMPLE_ZERO_FILL_SGIX = 0x842F - RESAMPLE_DECIMATE_SGIX = 0x8430 - -# SGIX_resample_future_use: 0x8431-0x8435 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_fragment_lighting_space: 0x8436-0x8449 -# EYE_SPACE_SGIX = 0x8436 -# TANGENT_SPACE_SGIX = 0x8437 -# OBJECT_SPACE_SGIX = 0x8438 -# TANGENT_ARRAY_SGIX = 0x8439 -# BINORMAL_ARRAY_SGIX = 0x843A -# CURRENT_TANGENT_SGIX = 0x843B # 3 F -# CURRENT_BINORMAL_SGIX = 0x843C # 3 F -# FRAGMENT_LIGHT_SPACE_SGIX = 0x843D # 1 I -# TANGENT_ARRAY_TYPE_SGIX = 0x843E -# TANGENT_ARRAY_STRIDE_SGIX = 0x843F -# TANGENT_ARRAY_COUNT_SGIX = 0x8440 -# BINORMAL_ARRAY_TYPE_SGIX = 0x8441 -# BINORMAL_ARRAY_STRIDE_SGIX = 0x8442 -# BINORMAL_ARRAY_COUNT_SGIX = 0x8443 -# TANGENT_ARRAY_POINTER_SGIX = 0x8444 -# BINORMAL_ARRAY_POINTER_SGIX = 0x8445 -# MAP1_TANGENT_SGIX = 0x8446 -# MAP2_TANGENT_SGIX = 0x8447 -# MAP1_BINORMAL_SGIX = 0x8448 -# MAP2_BINORMAL_SGIX = 0x8449 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_bali_timer_instruments: 0x844A-0x844C -# BALI_GEOM_TIMER_INSTRUMENT_SGIX = 0x844A # 1 I -# BALI_RASTER_TIMER_INSTRUMENT_SGIX = 0x844B # 1 I -# BALI_INSTRUMENT_TIME_UNIT_SGIX = 0x844C # 1 I - -############################################################################### - -# SGIX_clipmap (additional; see above): 0x844D-0x844F - -############################################################################### - -# SGI (actually brokered for Id Software): 0x8450-0x845F - -VERSION_1_5 enum: (Consistent naming scheme for OpenGL 1.5) - FOG_COORD_SRC = 0x8450 # alias GL_FOG_COORDINATE_SOURCE - FOG_COORD = 0x8451 # alias GL_FOG_COORDINATE - CURRENT_FOG_COORD = 0x8453 # alias GL_CURRENT_FOG_COORDINATE - FOG_COORD_ARRAY_TYPE = 0x8454 # alias GL_FOG_COORDINATE_ARRAY_TYPE - FOG_COORD_ARRAY_STRIDE = 0x8455 # alias GL_FOG_COORDINATE_ARRAY_STRIDE - FOG_COORD_ARRAY_POINTER = 0x8456 # alias GL_FOG_COORDINATE_ARRAY_POINTER - FOG_COORD_ARRAY = 0x8457 # alias GL_FOG_COORDINATE_ARRAY - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - FOG_COORDINATE_SOURCE = 0x8450 # 1 I - FOG_COORDINATE = 0x8451 - FRAGMENT_DEPTH = 0x8452 - CURRENT_FOG_COORDINATE = 0x8453 # 1 F - FOG_COORDINATE_ARRAY_TYPE = 0x8454 # 1 I - FOG_COORDINATE_ARRAY_STRIDE = 0x8455 # 1 I - FOG_COORDINATE_ARRAY_POINTER = 0x8456 - FOG_COORDINATE_ARRAY = 0x8457 # 1 I - -EXT_fog_coord enum: - FOG_COORDINATE_SOURCE_EXT = 0x8450 # 1 I - FOG_COORDINATE_EXT = 0x8451 - FRAGMENT_DEPTH_EXT = 0x8452 - CURRENT_FOG_COORDINATE_EXT = 0x8453 # 1 F - FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 # 1 I - FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 # 1 I - FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 - FOG_COORDINATE_ARRAY_EXT = 0x8457 # 1 I - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - COLOR_SUM = 0x8458 # 1 I - CURRENT_SECONDARY_COLOR = 0x8459 # 3 F - SECONDARY_COLOR_ARRAY_SIZE = 0x845A # 1 I - SECONDARY_COLOR_ARRAY_TYPE = 0x845B # 1 I - SECONDARY_COLOR_ARRAY_STRIDE = 0x845C # 1 I - SECONDARY_COLOR_ARRAY_POINTER = 0x845D - SECONDARY_COLOR_ARRAY = 0x845E # 1 I - -EXT_secondary_color enum: - COLOR_SUM_EXT = 0x8458 # 1 I - CURRENT_SECONDARY_COLOR_EXT = 0x8459 # 3 F - SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A # 1 I - SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B # 1 I - SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C # 1 I - SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D - SECONDARY_COLOR_ARRAY_EXT = 0x845E # 1 I - -ARB_vertex_program enum: - COLOR_SUM_ARB = 0x8458 # 1 I # ARB_vertex_program - -VERSION_2_1 enum: - CURRENT_RASTER_SECONDARY_COLOR = 0x845F - -############################################################################### - -# Incomplete extension, not in enumext.spec -SGIX_icc_texture enum: -# RGB_ICC_SGIX = 0x8460 -# RGBA_ICC_SGIX = 0x8461 -# ALPHA_ICC_SGIX = 0x8462 -# LUMINANCE_ICC_SGIX = 0x8463 -# INTENSITY_ICC_SGIX = 0x8464 -# LUMINANCE_ALPHA_ICC_SGIX = 0x8465 -# R5_G6_B5_ICC_SGIX = 0x8466 -# R5_G6_B5_A8_ICC_SGIX = 0x8467 -# ALPHA16_ICC_SGIX = 0x8468 -# LUMINANCE16_ICC_SGIX = 0x8469 -# INTENSITY16_ICC_SGIX = 0x846A -# LUMINANCE16_ALPHA8_ICC_SGIX = 0x846B - -############################################################################### - -# SGI_future_use: 0x846C - -############################################################################### - -# SMOOTH_* enums are new names for pre-1.2 enums. -VERSION_1_2 enum: - SMOOTH_POINT_SIZE_RANGE = 0x0B12 # 2 F - SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13 # 1 F - SMOOTH_LINE_WIDTH_RANGE = 0x0B22 # 2 F - SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F - ALIASED_POINT_SIZE_RANGE = 0x846D # 2 F - ALIASED_LINE_WIDTH_RANGE = 0x846E # 2 F - -############################################################################### - -# SGI_future_use: 0x846F - -############################################################################### - -# ATI Technologies (vendor multitexture, spec not yet released): 0x8470-0x848F - -############################################################################### - -# REND (Rendition): 0x8490-0x849F - -REND_screen_coordinates enum: - SCREEN_COORDINATES_REND = 0x8490 - INVERTED_SCREEN_W_REND = 0x8491 - -############################################################################### - -# ATI Technologies (vendor multitexture, spec not yet released): 0x84A0-84BF - -############################################################################### - -# OpenGL ARB: 0x84C0-0x84EF - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - TEXTURE0 = 0x84C0 - TEXTURE1 = 0x84C1 - TEXTURE2 = 0x84C2 - TEXTURE3 = 0x84C3 - TEXTURE4 = 0x84C4 - TEXTURE5 = 0x84C5 - TEXTURE6 = 0x84C6 - TEXTURE7 = 0x84C7 - TEXTURE8 = 0x84C8 - TEXTURE9 = 0x84C9 - TEXTURE10 = 0x84CA - TEXTURE11 = 0x84CB - TEXTURE12 = 0x84CC - TEXTURE13 = 0x84CD - TEXTURE14 = 0x84CE - TEXTURE15 = 0x84CF - TEXTURE16 = 0x84D0 - TEXTURE17 = 0x84D1 - TEXTURE18 = 0x84D2 - TEXTURE19 = 0x84D3 - TEXTURE20 = 0x84D4 - TEXTURE21 = 0x84D5 - TEXTURE22 = 0x84D6 - TEXTURE23 = 0x84D7 - TEXTURE24 = 0x84D8 - TEXTURE25 = 0x84D9 - TEXTURE26 = 0x84DA - TEXTURE27 = 0x84DB - TEXTURE28 = 0x84DC - TEXTURE29 = 0x84DD - TEXTURE30 = 0x84DE - TEXTURE31 = 0x84DF - ACTIVE_TEXTURE = 0x84E0 # 1 I - CLIENT_ACTIVE_TEXTURE = 0x84E1 # 1 I - MAX_TEXTURE_UNITS = 0x84E2 # 1 I - -ARB_multitexture enum: - TEXTURE0_ARB = 0x84C0 - TEXTURE1_ARB = 0x84C1 - TEXTURE2_ARB = 0x84C2 - TEXTURE3_ARB = 0x84C3 - TEXTURE4_ARB = 0x84C4 - TEXTURE5_ARB = 0x84C5 - TEXTURE6_ARB = 0x84C6 - TEXTURE7_ARB = 0x84C7 - TEXTURE8_ARB = 0x84C8 - TEXTURE9_ARB = 0x84C9 - TEXTURE10_ARB = 0x84CA - TEXTURE11_ARB = 0x84CB - TEXTURE12_ARB = 0x84CC - TEXTURE13_ARB = 0x84CD - TEXTURE14_ARB = 0x84CE - TEXTURE15_ARB = 0x84CF - TEXTURE16_ARB = 0x84D0 - TEXTURE17_ARB = 0x84D1 - TEXTURE18_ARB = 0x84D2 - TEXTURE19_ARB = 0x84D3 - TEXTURE20_ARB = 0x84D4 - TEXTURE21_ARB = 0x84D5 - TEXTURE22_ARB = 0x84D6 - TEXTURE23_ARB = 0x84D7 - TEXTURE24_ARB = 0x84D8 - TEXTURE25_ARB = 0x84D9 - TEXTURE26_ARB = 0x84DA - TEXTURE27_ARB = 0x84DB - TEXTURE28_ARB = 0x84DC - TEXTURE29_ARB = 0x84DD - TEXTURE30_ARB = 0x84DE - TEXTURE31_ARB = 0x84DF - ACTIVE_TEXTURE_ARB = 0x84E0 # 1 I - CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 # 1 I - MAX_TEXTURE_UNITS_ARB = 0x84E2 # 1 I - -# These are really core ES 1.1 enums, but haven't included -# ES core enums in enum.spec yet -OES_texture_env_crossbar enum: (OpenGL ES only) - use VERSION_1_3 TEXTURE0 - use VERSION_1_3 TEXTURE1 - use VERSION_1_3 TEXTURE2 - use VERSION_1_3 TEXTURE3 - use VERSION_1_3 TEXTURE4 - use VERSION_1_3 TEXTURE5 - use VERSION_1_3 TEXTURE6 - use VERSION_1_3 TEXTURE7 - use VERSION_1_3 TEXTURE8 - use VERSION_1_3 TEXTURE9 - use VERSION_1_3 TEXTURE10 - use VERSION_1_3 TEXTURE11 - use VERSION_1_3 TEXTURE12 - use VERSION_1_3 TEXTURE13 - use VERSION_1_3 TEXTURE14 - use VERSION_1_3 TEXTURE15 - use VERSION_1_3 TEXTURE16 - use VERSION_1_3 TEXTURE17 - use VERSION_1_3 TEXTURE18 - use VERSION_1_3 TEXTURE19 - use VERSION_1_3 TEXTURE20 - use VERSION_1_3 TEXTURE21 - use VERSION_1_3 TEXTURE22 - use VERSION_1_3 TEXTURE23 - use VERSION_1_3 TEXTURE24 - use VERSION_1_3 TEXTURE25 - use VERSION_1_3 TEXTURE26 - use VERSION_1_3 TEXTURE27 - use VERSION_1_3 TEXTURE28 - use VERSION_1_3 TEXTURE29 - use VERSION_1_3 TEXTURE30 - use VERSION_1_3 TEXTURE31 - -############################################################################### - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - TRANSPOSE_MODELVIEW_MATRIX = 0x84E3 # 16 F - TRANSPOSE_PROJECTION_MATRIX = 0x84E4 # 16 F - TRANSPOSE_TEXTURE_MATRIX = 0x84E5 # 16 F - TRANSPOSE_COLOR_MATRIX = 0x84E6 # 16 F - -ARB_transpose_matrix enum: - TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 # 16 F - TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 # 16 F - TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 # 16 F - TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 # 16 F - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - SUBTRACT = 0x84E7 - -ARB_texture_env_combine enum: - SUBTRACT_ARB = 0x84E7 - -VERSION_3_0 enum: - use ARB_framebuffer_object MAX_RENDERBUFFER_SIZE - -ARB_framebuffer_object enum: (note: no ARB suffixes) - MAX_RENDERBUFFER_SIZE = 0x84E8 # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_object enum: (additional; see below): - MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 - -# Aliases EXT_framebuffer_object enum above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - MAX_RENDERBUFFER_SIZE_OES = 0x84E8 - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - COMPRESSED_ALPHA = 0x84E9 - COMPRESSED_LUMINANCE = 0x84EA - COMPRESSED_LUMINANCE_ALPHA = 0x84EB - COMPRESSED_INTENSITY = 0x84EC - COMPRESSED_RGB = 0x84ED - COMPRESSED_RGBA = 0x84EE - TEXTURE_COMPRESSION_HINT = 0x84EF - TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0 - TEXTURE_COMPRESSED = 0x86A1 - NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 - COMPRESSED_TEXTURE_FORMATS = 0x86A3 - -ARB_texture_compression enum: - COMPRESSED_ALPHA_ARB = 0x84E9 - COMPRESSED_LUMINANCE_ARB = 0x84EA - COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB - COMPRESSED_INTENSITY_ARB = 0x84EC - COMPRESSED_RGB_ARB = 0x84ED - COMPRESSED_RGBA_ARB = 0x84EE - TEXTURE_COMPRESSION_HINT_ARB = 0x84EF - TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 - TEXTURE_COMPRESSED_ARB = 0x86A1 - NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 - COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 - -############################################################################### - -# NVIDIA: 0x84F0-0x855F - -# NV_future_use: 0x84F0-0x84F1 - -NV_fence enum: - ALL_COMPLETED_NV = 0x84F2 - FENCE_STATUS_NV = 0x84F3 - FENCE_CONDITION_NV = 0x84F4 - -VERSION_3_1 enum: - TEXTURE_RECTANGLE = 0x84F5 - TEXTURE_BINDING_RECTANGLE = 0x84F6 - PROXY_TEXTURE_RECTANGLE = 0x84F7 - MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8 - -ARB_texture_rectangle enum: - TEXTURE_RECTANGLE_ARB = 0x84F5 - TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 - PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 - MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 - -NV_texture_rectangle enum: - TEXTURE_RECTANGLE_NV = 0x84F5 - TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 - PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 - MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 - -VERSION_3_0 enum: - use ARB_framebuffer_object DEPTH_STENCIL - use ARB_framebuffer_object UNSIGNED_INT_24_8 - -ARB_framebuffer_object enum: (note: no ARB suffixes) - DEPTH_STENCIL = 0x84F9 # VERSION_3_0 / ARB_fbo - UNSIGNED_INT_24_8 = 0x84FA # VERSION_3_0 / ARB_fbo - -EXT_packed_depth_stencil enum: - DEPTH_STENCIL_EXT = 0x84F9 - UNSIGNED_INT_24_8_EXT = 0x84FA - -NV_packed_depth_stencil enum: - DEPTH_STENCIL_NV = 0x84F9 - UNSIGNED_INT_24_8_NV = 0x84FA - -# Aliases EXT_packed_depth_stencil enums above -OES_packed_depth_stencil enum: (OpenGL ES only) - DEPTH_STENCIL_OES = 0x84F9 - UNSIGNED_INT_24_8_OES = 0x84FA - -# NV_future_use: 0x84FB-0x84FC - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - MAX_TEXTURE_LOD_BIAS = 0x84FD - -EXT_texture_lod_bias enum: - MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD - -EXT_texture_filter_anisotropic enum: - TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE - MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - TEXTURE_FILTER_CONTROL = 0x8500 - TEXTURE_LOD_BIAS = 0x8501 - -EXT_texture_lod_bias enum: - TEXTURE_FILTER_CONTROL_EXT = 0x8500 - TEXTURE_LOD_BIAS_EXT = 0x8501 - -EXT_vertex_weighting enum: - MODELVIEW1_STACK_DEPTH_EXT = 0x8502 - -# NV_texture_env_combine4 (additional; see below): 0x8503 - -NV_light_max_exponent enum: - MAX_SHININESS_NV = 0x8504 - MAX_SPOT_EXPONENT_NV = 0x8505 - -EXT_vertex_weighting enum: - MODELVIEW_MATRIX1_EXT = 0x8506 - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - INCR_WRAP = 0x8507 - DECR_WRAP = 0x8508 - -EXT_stencil_wrap enum: - INCR_WRAP_EXT = 0x8507 - DECR_WRAP_EXT = 0x8508 - -# Aliases EXT_stencil_wrap enums above -OES_stencil_wrap enum: (OpenGL ES only) - INCR_WRAP_OES = 0x8507 - DECR_WRAP_OES = 0x8508 - -EXT_vertex_weighting enum: - VERTEX_WEIGHTING_EXT = 0x8509 - MODELVIEW1_EXT = 0x850A - CURRENT_VERTEX_WEIGHT_EXT = 0x850B - VERTEX_WEIGHT_ARRAY_EXT = 0x850C - VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D - VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E - VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F - VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - NORMAL_MAP = 0x8511 - REFLECTION_MAP = 0x8512 - TEXTURE_CUBE_MAP = 0x8513 - TEXTURE_BINDING_CUBE_MAP = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A - PROXY_TEXTURE_CUBE_MAP = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C - -EXT_texture_cube_map enum: - NORMAL_MAP_EXT = 0x8511 - REFLECTION_MAP_EXT = 0x8512 - TEXTURE_CUBE_MAP_EXT = 0x8513 - TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A - PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C - -NV_texgen_reflection enum: - NORMAL_MAP = 0x8511 - REFLECTION_MAP = 0x8512 - -ARB_texture_cube_map enum: - NORMAL_MAP_ARB = 0x8511 - REFLECTION_MAP_ARB = 0x8512 - TEXTURE_CUBE_MAP_ARB = 0x8513 - TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A - PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C - -# Aliases ARB_texture_cube_map enums above -OES_texture_cube_map enum: (OpenGL ES only; additional; see below) - NORMAL_MAP_OES = 0x8511 - REFLECTION_MAP_OES = 0x8512 - TEXTURE_CUBE_MAP_OES = 0x8513 - TEXTURE_BINDING_CUBE_MAP_OES = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A - MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C - -NV_vertex_array_range enum: - VERTEX_ARRAY_RANGE_NV = 0x851D - VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E - VERTEX_ARRAY_RANGE_VALID_NV = 0x851F - MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 - VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 - -# @@@ How does this interact with NV_vertex_array_range? -APPLE_vertex_array_range enum: - VERTEX_ARRAY_RANGE_APPLE = 0x851D - VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E - VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F - VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 - STORAGE_CACHED_APPLE = 0x85BE - STORAGE_SHARED_APPLE = 0x85BF - -NV_register_combiners enum: - REGISTER_COMBINERS_NV = 0x8522 - VARIABLE_A_NV = 0x8523 - VARIABLE_B_NV = 0x8524 - VARIABLE_C_NV = 0x8525 - VARIABLE_D_NV = 0x8526 - VARIABLE_E_NV = 0x8527 - VARIABLE_F_NV = 0x8528 - VARIABLE_G_NV = 0x8529 - CONSTANT_COLOR0_NV = 0x852A - CONSTANT_COLOR1_NV = 0x852B - PRIMARY_COLOR_NV = 0x852C - SECONDARY_COLOR_NV = 0x852D - SPARE0_NV = 0x852E - SPARE1_NV = 0x852F - DISCARD_NV = 0x8530 - E_TIMES_F_NV = 0x8531 - SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 - -# NV_vertex_array_range2: - VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 - -# NV_multisample_filter_hint: - MULTISAMPLE_FILTER_HINT_NV = 0x8534 - -NV_register_combiners2 enum: - PER_STAGE_CONSTANTS_NV = 0x8535 - -NV_register_combiners enum: (additional; see above): - UNSIGNED_IDENTITY_NV = 0x8536 - UNSIGNED_INVERT_NV = 0x8537 - EXPAND_NORMAL_NV = 0x8538 - EXPAND_NEGATE_NV = 0x8539 - HALF_BIAS_NORMAL_NV = 0x853A - HALF_BIAS_NEGATE_NV = 0x853B - SIGNED_IDENTITY_NV = 0x853C - UNSIGNED_NEGATE_NV = 0x853D - SCALE_BY_TWO_NV = 0x853E - SCALE_BY_FOUR_NV = 0x853F - SCALE_BY_ONE_HALF_NV = 0x8540 - BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 - COMBINER_INPUT_NV = 0x8542 - COMBINER_MAPPING_NV = 0x8543 - COMBINER_COMPONENT_USAGE_NV = 0x8544 - COMBINER_AB_DOT_PRODUCT_NV = 0x8545 - COMBINER_CD_DOT_PRODUCT_NV = 0x8546 - COMBINER_MUX_SUM_NV = 0x8547 - COMBINER_SCALE_NV = 0x8548 - COMBINER_BIAS_NV = 0x8549 - COMBINER_AB_OUTPUT_NV = 0x854A - COMBINER_CD_OUTPUT_NV = 0x854B - COMBINER_SUM_OUTPUT_NV = 0x854C - MAX_GENERAL_COMBINERS_NV = 0x854D - NUM_GENERAL_COMBINERS_NV = 0x854E - COLOR_SUM_CLAMP_NV = 0x854F - COMBINER0_NV = 0x8550 - COMBINER1_NV = 0x8551 - COMBINER2_NV = 0x8552 - COMBINER3_NV = 0x8553 - COMBINER4_NV = 0x8554 - COMBINER5_NV = 0x8555 - COMBINER6_NV = 0x8556 - COMBINER7_NV = 0x8557 - - -NV_primitive_restart enum: - PRIMITIVE_RESTART_NV = 0x8558 - PRIMITIVE_RESTART_INDEX_NV = 0x8559 - -NV_fog_distance enum: - FOG_GEN_MODE_NV = 0x855A - EYE_RADIAL_NV = 0x855B - EYE_PLANE_ABSOLUTE_NV = 0x855C - -NV_texgen_emboss enum: - EMBOSS_LIGHT_NV = 0x855D - EMBOSS_CONSTANT_NV = 0x855E - EMBOSS_MAP_NV = 0x855F - -############################################################################### - -# Intergraph/Intense3D/3Dlabs: 0x8560-0x856F - -INGR_color_clamp enum: - RED_MIN_CLAMP_INGR = 0x8560 - GREEN_MIN_CLAMP_INGR = 0x8561 - BLUE_MIN_CLAMP_INGR = 0x8562 - ALPHA_MIN_CLAMP_INGR = 0x8563 - RED_MAX_CLAMP_INGR = 0x8564 - GREEN_MAX_CLAMP_INGR = 0x8565 - BLUE_MAX_CLAMP_INGR = 0x8566 - ALPHA_MAX_CLAMP_INGR = 0x8567 - -INGR_interlace_read enum: - INTERLACE_READ_INGR = 0x8568 - -# 3Dlabs_future_use: 0x8569-0x856F - -############################################################################### - -# ATI/NVIDIA: 0x8570-0x859F - -VERSION_1_5 enum: (Consistent naming scheme for OpenGL 1.5) - SRC0_RGB = 0x8580 # alias GL_SOURCE0_RGB - SRC1_RGB = 0x8581 # alias GL_SOURCE1_RGB - SRC2_RGB = 0x8582 # alias GL_SOURCE2_RGB - SRC0_ALPHA = 0x8588 # alias GL_SOURCE0_ALPHA - SRC1_ALPHA = 0x8589 # alias GL_SOURCE1_ALPHA - SRC2_ALPHA = 0x858A # alias GL_SOURCE2_ALPHA - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - COMBINE = 0x8570 - COMBINE_RGB = 0x8571 - COMBINE_ALPHA = 0x8572 - RGB_SCALE = 0x8573 - ADD_SIGNED = 0x8574 - INTERPOLATE = 0x8575 - CONSTANT = 0x8576 - PRIMARY_COLOR = 0x8577 - PREVIOUS = 0x8578 - SOURCE0_RGB = 0x8580 - SOURCE1_RGB = 0x8581 - SOURCE2_RGB = 0x8582 - SOURCE0_ALPHA = 0x8588 - SOURCE1_ALPHA = 0x8589 - SOURCE2_ALPHA = 0x858A - OPERAND0_RGB = 0x8590 - OPERAND1_RGB = 0x8591 - OPERAND2_RGB = 0x8592 - OPERAND0_ALPHA = 0x8598 - OPERAND1_ALPHA = 0x8599 - OPERAND2_ALPHA = 0x859A - -EXT_texture_env_combine enum: - COMBINE_EXT = 0x8570 - COMBINE_RGB_EXT = 0x8571 - COMBINE_ALPHA_EXT = 0x8572 - RGB_SCALE_EXT = 0x8573 - ADD_SIGNED_EXT = 0x8574 - INTERPOLATE_EXT = 0x8575 - CONSTANT_EXT = 0x8576 - PRIMARY_COLOR_EXT = 0x8577 - PREVIOUS_EXT = 0x8578 - SOURCE0_RGB_EXT = 0x8580 - SOURCE1_RGB_EXT = 0x8581 - SOURCE2_RGB_EXT = 0x8582 - SOURCE0_ALPHA_EXT = 0x8588 - SOURCE1_ALPHA_EXT = 0x8589 - SOURCE2_ALPHA_EXT = 0x858A - OPERAND0_RGB_EXT = 0x8590 - OPERAND1_RGB_EXT = 0x8591 - OPERAND2_RGB_EXT = 0x8592 - OPERAND0_ALPHA_EXT = 0x8598 - OPERAND1_ALPHA_EXT = 0x8599 - OPERAND2_ALPHA_EXT = 0x859A - -NV_texture_env_combine4 enum: - COMBINE4_NV = 0x8503 - SOURCE3_RGB_NV = 0x8583 - SOURCE3_ALPHA_NV = 0x858B - OPERAND3_RGB_NV = 0x8593 - OPERAND3_ALPHA_NV = 0x859B - -# "Future use" => "additional combiner input/output enums" only -# ATI/NVIDIA_future_use: 0x8584-0x8587 -# ATI/NVIDIA_future_use: 0x858C-0x858F -# ATI/NVIDIA_future_use: 0x8594-0x8597 -# ATI/NVIDIA_future_use: 0x859C-0x859F - -############################################################################### - -SGIX_subsample enum: - PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 - UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 - PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 - PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 - PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIS_color_range: 0x85A5-0x85AD -# EXTENDED_RANGE_SGIS = 0x85A5 -# MIN_RED_SGIS = 0x85A6 -# MAX_RED_SGIS = 0x85A7 -# MIN_GREEN_SGIS = 0x85A8 -# MAX_GREEN_SGIS = 0x85A9 -# MIN_BLUE_SGIS = 0x85AA -# MAX_BLUE_SGIS = 0x85AB -# MIN_ALPHA_SGIS = 0x85AC -# MAX_ALPHA_SGIS = 0x85AD - -############################################################################### - -EXT_texture_perturb_normal enum: - PERTURB_EXT = 0x85AE - TEXTURE_NORMAL_EXT = 0x85AF - -############################################################################### - -# Apple: 0x85B0-0x85BF - -APPLE_specular_vector enum: - LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 - -APPLE_transform_hint enum: - TRANSFORM_HINT_APPLE = 0x85B1 - -APPLE_client_storage enum: - UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 - -# May also be part of APPLE_fence -APPLE_object_purgeable enum: (additional; see below) - BUFFER_OBJECT_APPLE = 0x85B3 - -# APPLE_future_use: 0x85B4 - -## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name -# STORAGE_CLIENT_APPLE = 0x85B4 - -VERSION_3_0 enum: - use ARB_vertex_array_object VERTEX_ARRAY_BINDING - -ARB_vertex_array_object enum: (note: no ARB suffixes) - VERTEX_ARRAY_BINDING = 0x85B5 # VERSION_3_0 / ARB_vao - -APPLE_vertex_array_object enum: - VERTEX_ARRAY_BINDING_APPLE = 0x85B5 - -# APPLE_future_use: 0x85B6 -## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name -# TEXTURE_MINIMIZE_STORAGE_APPLE = 0x85B6 - -APPLE_texture_range enum: (additional; see below) - TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 - TEXTURE_RANGE_POINTER_APPLE = 0x85B8 - -APPLE_ycbcr_422 enum: - YCBCR_422_APPLE = 0x85B9 - UNSIGNED_SHORT_8_8_APPLE = 0x85BA - UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB - -MESA_ycbcr_texture enum: (additional; see below) - UNSIGNED_SHORT_8_8_MESA = 0x85BA - UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB - -APPLE_texture_range enum: - TEXTURE_STORAGE_HINT_APPLE = 0x85BC - STORAGE_PRIVATE_APPLE = 0x85BD - -APPLE_vertex_array_range enum: (additional; see above): - STORAGE_CACHED_APPLE = 0x85BE - STORAGE_SHARED_APPLE = 0x85BF - -APPLE_texture_range enum: - use APPLE_vertex_array_range STORAGE_CACHED_APPLE - use APPLE_vertex_array_range STORAGE_SHARED_APPLE - -############################################################################### - -# Sun: 0x85C0-0x85CF - -SUNX_general_triangle_list enum: (additional; see above) - REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 - REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 - REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 - REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 - R1UI_V3F_SUN = 0x85C4 - R1UI_C4UB_V3F_SUN = 0x85C5 - R1UI_C3F_V3F_SUN = 0x85C6 - R1UI_N3F_V3F_SUN = 0x85C7 - R1UI_C4F_N3F_V3F_SUN = 0x85C8 - R1UI_T2F_V3F_SUN = 0x85C9 - R1UI_T2F_N3F_V3F_SUN = 0x85CA - R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB - -SUN_slice_accum enum: - SLICE_ACCUM_SUN = 0x85CC - -# SUN_future_use: 0x85CD-0x85CF - -############################################################################### - -# Unknown extension name, not in enumext.spec -# 3Dlabs/Autodesk: 0x85D0-0x85DF -# FACET_NORMAL_AUTODESK = 0x85D0 -# FACET_NORMAL_ARRAY_AUTODESK = 0x85D1 - -############################################################################### - -# Incomplete extension, not in enumext.spec -# SGIX_texture_range: 0x85E0-0x85FB -# RGB_SIGNED_SGIX = 0x85E0 -# RGBA_SIGNED_SGIX = 0x85E1 -# ALPHA_SIGNED_SGIX = 0x85E2 -# LUMINANCE_SIGNED_SGIX = 0x85E3 -# INTENSITY_SIGNED_SGIX = 0x85E4 -# LUMINANCE_ALPHA_SIGNED_SGIX = 0x85E5 -# RGB16_SIGNED_SGIX = 0x85E6 -# RGBA16_SIGNED_SGIX = 0x85E7 -# ALPHA16_SIGNED_SGIX = 0x85E8 -# LUMINANCE16_SIGNED_SGIX = 0x85E9 -# INTENSITY16_SIGNED_SGIX = 0x85EA -# LUMINANCE16_ALPHA16_SIGNED_SGIX = 0x85EB -# RGB_EXTENDED_RANGE_SGIX = 0x85EC -# RGBA_EXTENDED_RANGE_SGIX = 0x85ED -# ALPHA_EXTENDED_RANGE_SGIX = 0x85EE -# LUMINANCE_EXTENDED_RANGE_SGIX = 0x85EF -# INTENSITY_EXTENDED_RANGE_SGIX = 0x85F0 -# LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX = 0x85F1 -# RGB16_EXTENDED_RANGE_SGIX = 0x85F2 -# RGBA16_EXTENDED_RANGE_SGIX = 0x85F3 -# ALPHA16_EXTENDED_RANGE_SGIX = 0x85F4 -# LUMINANCE16_EXTENDED_RANGE_SGIX = 0x85F5 -# INTENSITY16_EXTENDED_RANGE_SGIX = 0x85F6 -# LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX = 0x85F7 -# MIN_LUMINANCE_SGIS = 0x85F8 -# MAX_LUMINANCE_SGIS = 0x85F9 -# MIN_INTENSITY_SGIS = 0x85FA -# MAX_INTENSITY_SGIS = 0x85FB - -############################################################################### - -# SGI_future_use: 0x85FC-0x85FF - -############################################################################### - -# Sun: 0x8600-0x861F - -# SUN_future_use: 0x8600-0x8613 - -SUN_mesh_array enum: 0x8614-0x8615 - QUAD_MESH_SUN = 0x8614 - TRIANGLE_MESH_SUN = 0x8615 - -# SUN_future_use: 0x8614-0x861F - -############################################################################### - -# NVIDIA: 0x8620-0x867F - -NV_vertex_program enum: - VERTEX_PROGRAM_NV = 0x8620 - VERTEX_STATE_PROGRAM_NV = 0x8621 - ATTRIB_ARRAY_SIZE_NV = 0x8623 - ATTRIB_ARRAY_STRIDE_NV = 0x8624 - ATTRIB_ARRAY_TYPE_NV = 0x8625 - CURRENT_ATTRIB_NV = 0x8626 - PROGRAM_LENGTH_NV = 0x8627 - PROGRAM_STRING_NV = 0x8628 - MODELVIEW_PROJECTION_NV = 0x8629 - IDENTITY_NV = 0x862A - INVERSE_NV = 0x862B - TRANSPOSE_NV = 0x862C - INVERSE_TRANSPOSE_NV = 0x862D - MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E - MAX_TRACK_MATRICES_NV = 0x862F - MATRIX0_NV = 0x8630 - MATRIX1_NV = 0x8631 - MATRIX2_NV = 0x8632 - MATRIX3_NV = 0x8633 - MATRIX4_NV = 0x8634 - MATRIX5_NV = 0x8635 - MATRIX6_NV = 0x8636 - MATRIX7_NV = 0x8637 -################## -# -# Reserved: -# -# MATRIX8_NV = 0x8638 -# MATRIX9_NV = 0x8639 -# MATRIX10_NV = 0x863A -# MATRIX11_NV = 0x863B -# MATRIX12_NV = 0x863C -# MATRIX13_NV = 0x863D -# MATRIX14_NV = 0x863E -# MATRIX15_NV = 0x863F -# -################### - CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 - CURRENT_MATRIX_NV = 0x8641 - VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 - VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 - PROGRAM_PARAMETER_NV = 0x8644 - ATTRIB_ARRAY_POINTER_NV = 0x8645 - PROGRAM_TARGET_NV = 0x8646 - PROGRAM_RESIDENT_NV = 0x8647 - TRACK_MATRIX_NV = 0x8648 - TRACK_MATRIX_TRANSFORM_NV = 0x8649 - VERTEX_PROGRAM_BINDING_NV = 0x864A - PROGRAM_ERROR_POSITION_NV = 0x864B - VERTEX_ATTRIB_ARRAY0_NV = 0x8650 - VERTEX_ATTRIB_ARRAY1_NV = 0x8651 - VERTEX_ATTRIB_ARRAY2_NV = 0x8652 - VERTEX_ATTRIB_ARRAY3_NV = 0x8653 - VERTEX_ATTRIB_ARRAY4_NV = 0x8654 - VERTEX_ATTRIB_ARRAY5_NV = 0x8655 - VERTEX_ATTRIB_ARRAY6_NV = 0x8656 - VERTEX_ATTRIB_ARRAY7_NV = 0x8657 - VERTEX_ATTRIB_ARRAY8_NV = 0x8658 - VERTEX_ATTRIB_ARRAY9_NV = 0x8659 - VERTEX_ATTRIB_ARRAY10_NV = 0x865A - VERTEX_ATTRIB_ARRAY11_NV = 0x865B - VERTEX_ATTRIB_ARRAY12_NV = 0x865C - VERTEX_ATTRIB_ARRAY13_NV = 0x865D - VERTEX_ATTRIB_ARRAY14_NV = 0x865E - VERTEX_ATTRIB_ARRAY15_NV = 0x865F - MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 - MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 - MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 - MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 - MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 - MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 - MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 - MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 - MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 - MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 - MAP1_VERTEX_ATTRIB10_4_NV = 0x866A - MAP1_VERTEX_ATTRIB11_4_NV = 0x866B - MAP1_VERTEX_ATTRIB12_4_NV = 0x866C - MAP1_VERTEX_ATTRIB13_4_NV = 0x866D - MAP1_VERTEX_ATTRIB14_4_NV = 0x866E - MAP1_VERTEX_ATTRIB15_4_NV = 0x866F - MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 - MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 - MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 - MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 - MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 - MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 - MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 - MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 - MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 - MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 - MAP2_VERTEX_ATTRIB10_4_NV = 0x867A - MAP2_VERTEX_ATTRIB11_4_NV = 0x867B - MAP2_VERTEX_ATTRIB12_4_NV = 0x867C - MAP2_VERTEX_ATTRIB13_4_NV = 0x867D - MAP2_VERTEX_ATTRIB14_4_NV = 0x867E - MAP2_VERTEX_ATTRIB15_4_NV = 0x867F - -# NV_texture_shader (additional; see below): 0x864C-0x864E - -VERSION_3_2 enum: - PROGRAM_POINT_SIZE = 0x8642 - -ARB_geometry_shader4 enum: (additional; see below) - PROGRAM_POINT_SIZE_ARB = 0x8642 - -NV_geometry_program4 enum: (additional; see below) - PROGRAM_POINT_SIZE_EXT = 0x8642 - -VERSION_3_2 enum: - use ARB_depth_clamp DEPTH_CLAMP - -ARB_depth_clamp enum: - DEPTH_CLAMP = 0x864F - -NV_depth_clamp enum: - DEPTH_CLAMP_NV = 0x864F - -VERSION_2_0 enum: (Promoted from ARB_vertex_shader; only some values) - VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 # VERSION_2_0 - VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 # VERSION_2_0 - VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 # VERSION_2_0 - VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 # VERSION_2_0 - CURRENT_VERTEX_ATTRIB = 0x8626 # VERSION_2_0 - VERTEX_PROGRAM_POINT_SIZE = 0x8642 # VERSION_2_0 - VERTEX_PROGRAM_TWO_SIDE = 0x8643 # VERSION_2_0 - VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 # VERSION_2_0 - -ARB_vertex_program enum: (additional; see above; reuses NV_vertex_program values) -ARB_fragment_program enum: (additional; only some values; see below) -# (Unfortunately, PROGRAM_BINDING_ARB does accidentally reuse 0x8677) - VERTEX_PROGRAM_ARB = 0x8620 - VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622 - VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623 - VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624 - VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625 - CURRENT_VERTEX_ATTRIB_ARB = 0x8626 - PROGRAM_LENGTH_ARB = 0x8627 # ARB_fragment_program - PROGRAM_STRING_ARB = 0x8628 # ARB_fragment_program - MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # ARB_fragment_program - MAX_PROGRAM_MATRICES_ARB = 0x862F # ARB_fragment_program - CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # ARB_fragment_program - CURRENT_MATRIX_ARB = 0x8641 # ARB_fragment_program - VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642 - VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643 - VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645 - PROGRAM_ERROR_POSITION_ARB = 0x864B # ARB_fragment_program - PROGRAM_BINDING_ARB = 0x8677 # ARB_fragment_program - -############################################################################### - -# Pixelfusion: 0x8680-0x869F - -############################################################################### - -# OpenGL ARB: 0x86A0-0x86AF - -# ARB_texture_compression/1.3 (additional; see above): 0x86A0-0x86A3 - -ARB_vertex_blend enum: - MAX_VERTEX_UNITS_ARB = 0x86A4 - ACTIVE_VERTEX_UNITS_ARB = 0x86A5 - WEIGHT_SUM_UNITY_ARB = 0x86A6 - VERTEX_BLEND_ARB = 0x86A7 - CURRENT_WEIGHT_ARB = 0x86A8 - WEIGHT_ARRAY_TYPE_ARB = 0x86A9 - WEIGHT_ARRAY_STRIDE_ARB = 0x86AA - WEIGHT_ARRAY_SIZE_ARB = 0x86AB - WEIGHT_ARRAY_POINTER_ARB = 0x86AC - WEIGHT_ARRAY_ARB = 0x86AD -# Note: MODELVIEW0/1 are defined in other extensions, but not as ARB) - MODELVIEW0_ARB = 0x1700 - MODELVIEW1_ARB = 0x850A - MODELVIEW2_ARB = 0x8722 - MODELVIEW3_ARB = 0x8723 - MODELVIEW4_ARB = 0x8724 - MODELVIEW5_ARB = 0x8725 - MODELVIEW6_ARB = 0x8726 - MODELVIEW7_ARB = 0x8727 - MODELVIEW8_ARB = 0x8728 - MODELVIEW9_ARB = 0x8729 - MODELVIEW10_ARB = 0x872A - MODELVIEW11_ARB = 0x872B - MODELVIEW12_ARB = 0x872C - MODELVIEW13_ARB = 0x872D - MODELVIEW14_ARB = 0x872E - MODELVIEW15_ARB = 0x872F - MODELVIEW16_ARB = 0x8730 - MODELVIEW17_ARB = 0x8731 - MODELVIEW18_ARB = 0x8732 - MODELVIEW19_ARB = 0x8733 - MODELVIEW20_ARB = 0x8734 - MODELVIEW21_ARB = 0x8735 - MODELVIEW22_ARB = 0x8736 - MODELVIEW23_ARB = 0x8737 - MODELVIEW24_ARB = 0x8738 - MODELVIEW25_ARB = 0x8739 - MODELVIEW26_ARB = 0x873A - MODELVIEW27_ARB = 0x873B - MODELVIEW28_ARB = 0x873C - MODELVIEW29_ARB = 0x873D - MODELVIEW30_ARB = 0x873E - MODELVIEW31_ARB = 0x873F - -# Aliases ARB_vertex_blend enums above -OES_matrix_palette enum: (OpenGL ES only; additional; see below) - MAX_VERTEX_UNITS_OES = 0x86A4 - WEIGHT_ARRAY_OES = 0x86AD - WEIGHT_ARRAY_TYPE_OES = 0x86A9 - WEIGHT_ARRAY_STRIDE_OES = 0x86AA - WEIGHT_ARRAY_SIZE_OES = 0x86AB - WEIGHT_ARRAY_POINTER_OES = 0x86AC - -VERSION_1_3 enum: (Promoted for OpenGL 1.3) - DOT3_RGB = 0x86AE - DOT3_RGBA = 0x86AF - -ARB_texture_env_dot3 enum: - DOT3_RGB_ARB = 0x86AE - DOT3_RGBA_ARB = 0x86AF - -IMG_texture_env_enhanced_fixed_function enum: (OpenGL ES only; additional; see below) - DOT3_RGBA_IMG = 0x86AF - -############################################################################### - -# 3Dfx: 0x86B0-0x86BF - -3DFX_texture_compression_FXT1 enum: - COMPRESSED_RGB_FXT1_3DFX = 0x86B0 - COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 - -3DFX_multisample enum: - MULTISAMPLE_3DFX = 0x86B2 - SAMPLE_BUFFERS_3DFX = 0x86B3 - SAMPLES_3DFX = 0x86B4 - MULTISAMPLE_BIT_3DFX = 0x20000000 - -# 3DFX_future_use: 0x86B5-0x86BF - -############################################################################### - -# NVIDIA: 0x86C0-0x871F - -NV_evaluators enum: - EVAL_2D_NV = 0x86C0 - EVAL_TRIANGULAR_2D_NV = 0x86C1 - MAP_TESSELLATION_NV = 0x86C2 - MAP_ATTRIB_U_ORDER_NV = 0x86C3 - MAP_ATTRIB_V_ORDER_NV = 0x86C4 - EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 - EVAL_VERTEX_ATRRIB0_NV = 0x86C6 - EVAL_VERTEX_ATRRIB1_NV = 0x86C7 - EVAL_VERTEX_ATRRIB2_NV = 0x86C8 - EVAL_VERTEX_ATRRIB3_NV = 0x86C9 - EVAL_VERTEX_ATRRIB4_NV = 0x86CA - EVAL_VERTEX_ATRRIB5_NV = 0x86CB - EVAL_VERTEX_ATRRIB6_NV = 0x86CC - EVAL_VERTEX_ATRRIB7_NV = 0x86CD - EVAL_VERTEX_ATRRIB8_NV = 0x86CE - EVAL_VERTEX_ATRRIB9_NV = 0x86CF - EVAL_VERTEX_ATRRIB10_NV = 0x86D0 - EVAL_VERTEX_ATRRIB11_NV = 0x86D1 - EVAL_VERTEX_ATRRIB12_NV = 0x86D2 - EVAL_VERTEX_ATRRIB13_NV = 0x86D3 - EVAL_VERTEX_ATRRIB14_NV = 0x86D4 - EVAL_VERTEX_ATRRIB15_NV = 0x86D5 - MAX_MAP_TESSELLATION_NV = 0x86D6 - MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 - -# NV_future_use: 0x86D8 - -NV_texture_shader enum: - OFFSET_TEXTURE_RECTANGLE_NV = 0x864C - OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D - DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E - RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 - UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA - UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB - DSDT_MAG_INTENSITY_NV = 0x86DC - SHADER_CONSISTENT_NV = 0x86DD - TEXTURE_SHADER_NV = 0x86DE - SHADER_OPERATION_NV = 0x86DF - CULL_MODES_NV = 0x86E0 - OFFSET_TEXTURE_MATRIX_NV = 0x86E1 - OFFSET_TEXTURE_SCALE_NV = 0x86E2 - OFFSET_TEXTURE_BIAS_NV = 0x86E3 - OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV - OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV - OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV - PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 - CONST_EYE_NV = 0x86E5 - PASS_THROUGH_NV = 0x86E6 - CULL_FRAGMENT_NV = 0x86E7 - OFFSET_TEXTURE_2D_NV = 0x86E8 - DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 - DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA - DOT_PRODUCT_NV = 0x86EC - DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED - DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE - DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 - DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 - DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 - DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 - HILO_NV = 0x86F4 - DSDT_NV = 0x86F5 - DSDT_MAG_NV = 0x86F6 - DSDT_MAG_VIB_NV = 0x86F7 - HILO16_NV = 0x86F8 - SIGNED_HILO_NV = 0x86F9 - SIGNED_HILO16_NV = 0x86FA - SIGNED_RGBA_NV = 0x86FB - SIGNED_RGBA8_NV = 0x86FC - SIGNED_RGB_NV = 0x86FE - SIGNED_RGB8_NV = 0x86FF - SIGNED_LUMINANCE_NV = 0x8701 - SIGNED_LUMINANCE8_NV = 0x8702 - SIGNED_LUMINANCE_ALPHA_NV = 0x8703 - SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 - SIGNED_ALPHA_NV = 0x8705 - SIGNED_ALPHA8_NV = 0x8706 - SIGNED_INTENSITY_NV = 0x8707 - SIGNED_INTENSITY8_NV = 0x8708 - DSDT8_NV = 0x8709 - DSDT8_MAG8_NV = 0x870A - DSDT8_MAG8_INTENSITY8_NV = 0x870B - SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C - SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D - HI_SCALE_NV = 0x870E - LO_SCALE_NV = 0x870F - DS_SCALE_NV = 0x8710 - DT_SCALE_NV = 0x8711 - MAGNITUDE_SCALE_NV = 0x8712 - VIBRANCE_SCALE_NV = 0x8713 - HI_BIAS_NV = 0x8714 - LO_BIAS_NV = 0x8715 - DS_BIAS_NV = 0x8716 - DT_BIAS_NV = 0x8717 - MAGNITUDE_BIAS_NV = 0x8718 - VIBRANCE_BIAS_NV = 0x8719 - TEXTURE_BORDER_VALUES_NV = 0x871A - TEXTURE_HI_SIZE_NV = 0x871B - TEXTURE_LO_SIZE_NV = 0x871C - TEXTURE_DS_SIZE_NV = 0x871D - TEXTURE_DT_SIZE_NV = 0x871E - TEXTURE_MAG_SIZE_NV = 0x871F - -NV_texture_shader2 enum: - DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF - -# NV_future_use: 0x86EB -# NV_future_use: 0x86FD -# NV_future_use: 0x8700 - -############################################################################### - -# OpenGL ARB: 0x8720-0x873F - -# ARB_vertex_blend (additional; see above): 0x8720-0x873F - -############################################################################### - -# ATI: 0x8740-0x874F - -EXT_texture_env_dot3 enum: - DOT3_RGB_EXT = 0x8740 - DOT3_RGBA_EXT = 0x8741 - -# There's a collision between AMD_program_binary_Z400 and EXT_texture_env_dot3! -AMD_program_binary_Z400 enum: (OpenGL ES only) - Z400_BINARY_AMD = 0x8740 - -# There's a collision between OES_get_program_binary and EXT_texture_env_dot3! -OES_get_program_binary enum: (OpenGL ES only; additional; see below) - PROGRAM_BINARY_LENGTH_OES = 0x8741 - -ATI_texture_mirror_once enum: - MIRROR_CLAMP_ATI = 0x8742 - MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 - -EXT_texture_mirror_clamp enum: - MIRROR_CLAMP_EXT = 0x8742 - MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 - -ATI_texture_env_combine3 enum: - MODULATE_ADD_ATI = 0x8744 - MODULATE_SIGNED_ADD_ATI = 0x8745 - MODULATE_SUBTRACT_ATI = 0x8746 - -# ATI_future_use: 0x8747-0x874F - -############################################################################### - -# MESA: 0x8750-0x875F - -MESA_packed_depth_stencil enum: - DEPTH_STENCIL_MESA = 0x8750 - UNSIGNED_INT_24_8_MESA = 0x8751 - UNSIGNED_INT_8_24_REV_MESA = 0x8752 - UNSIGNED_SHORT_15_1_MESA = 0x8753 - UNSIGNED_SHORT_1_15_REV_MESA = 0x8754 - -MESA_trace enum: - TRACE_ALL_BITS_MESA = 0xFFFF - TRACE_OPERATIONS_BIT_MESA = 0x0001 - TRACE_PRIMITIVES_BIT_MESA = 0x0002 - TRACE_ARRAYS_BIT_MESA = 0x0004 - TRACE_TEXTURES_BIT_MESA = 0x0008 - TRACE_PIXELS_BIT_MESA = 0x0010 - TRACE_ERRORS_BIT_MESA = 0x0020 - TRACE_MASK_MESA = 0x8755 - TRACE_NAME_MESA = 0x8756 - -MESA_ycbcr_texture enum: - YCBCR_MESA = 0x8757 - -MESA_pack_invert enum: - PACK_INVERT_MESA = 0x8758 - -MESAX_texture_stack enum: - TEXTURE_1D_STACK_MESAX = 0x8759 - TEXTURE_2D_STACK_MESAX = 0x875A - PROXY_TEXTURE_1D_STACK_MESAX = 0x875B - PROXY_TEXTURE_2D_STACK_MESAX = 0x875C - TEXTURE_1D_STACK_BINDING_MESAX = 0x875D - TEXTURE_2D_STACK_BINDING_MESAX = 0x875E - -MESA_shader_debug enum: - DEBUG_OBJECT_MESA = 0x8759 - DEBUG_PRINT_MESA = 0x875A - DEBUG_ASSERT_MESA = 0x875B - -# MESA_future_use: 0x875F - -############################################################################### - -# ATI: 0x8760-0x883F - -ATI_vertex_array_object enum: - STATIC_ATI = 0x8760 - DYNAMIC_ATI = 0x8761 - PRESERVE_ATI = 0x8762 - DISCARD_ATI = 0x8763 - OBJECT_BUFFER_SIZE_ATI = 0x8764 - OBJECT_BUFFER_USAGE_ATI = 0x8765 - ARRAY_OBJECT_BUFFER_ATI = 0x8766 - ARRAY_OBJECT_OFFSET_ATI = 0x8767 - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - BUFFER_SIZE = 0x8764 - BUFFER_USAGE = 0x8765 - -ARB_vertex_buffer_object enum: (additional; aliases some ATI enums; see below) - BUFFER_SIZE_ARB = 0x8764 - BUFFER_USAGE_ARB = 0x8765 - -ATI_element_array enum: - ELEMENT_ARRAY_ATI = 0x8768 - ELEMENT_ARRAY_TYPE_ATI = 0x8769 - ELEMENT_ARRAY_POINTER_ATI = 0x876A - -# @@@ (extends ATI_element_array, I think???) -APPLE_element_array enum: - ELEMENT_ARRAY_APPLE = 0x8768 - ELEMENT_ARRAY_TYPE_APPLE = 0x8769 - ELEMENT_ARRAY_POINTER_APPLE = 0x876A - -ATI_vertex_streams enum: - MAX_VERTEX_STREAMS_ATI = 0x876B - VERTEX_STREAM0_ATI = 0x876C - VERTEX_STREAM1_ATI = 0x876D - VERTEX_STREAM2_ATI = 0x876E - VERTEX_STREAM3_ATI = 0x876F - VERTEX_STREAM4_ATI = 0x8770 - VERTEX_STREAM5_ATI = 0x8771 - VERTEX_STREAM6_ATI = 0x8772 - VERTEX_STREAM7_ATI = 0x8773 - VERTEX_SOURCE_ATI = 0x8774 - -ATI_envmap_bumpmap enum: - BUMP_ROT_MATRIX_ATI = 0x8775 - BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 - BUMP_NUM_TEX_UNITS_ATI = 0x8777 - BUMP_TEX_UNITS_ATI = 0x8778 - DUDV_ATI = 0x8779 - DU8DV8_ATI = 0x877A - BUMP_ENVMAP_ATI = 0x877B - BUMP_TARGET_ATI = 0x877C - -# ATI_future_use: 0x877D-0x877F - -EXT_vertex_shader enum: - VERTEX_SHADER_EXT = 0x8780 - VERTEX_SHADER_BINDING_EXT = 0x8781 - OP_INDEX_EXT = 0x8782 - OP_NEGATE_EXT = 0x8783 - OP_DOT3_EXT = 0x8784 - OP_DOT4_EXT = 0x8785 - OP_MUL_EXT = 0x8786 - OP_ADD_EXT = 0x8787 - OP_MADD_EXT = 0x8788 - OP_FRAC_EXT = 0x8789 - OP_MAX_EXT = 0x878A - OP_MIN_EXT = 0x878B - OP_SET_GE_EXT = 0x878C - OP_SET_LT_EXT = 0x878D - OP_CLAMP_EXT = 0x878E - OP_FLOOR_EXT = 0x878F - OP_ROUND_EXT = 0x8790 - OP_EXP_BASE_2_EXT = 0x8791 - OP_LOG_BASE_2_EXT = 0x8792 - OP_POWER_EXT = 0x8793 - OP_RECIP_EXT = 0x8794 - OP_RECIP_SQRT_EXT = 0x8795 - OP_SUB_EXT = 0x8796 - OP_CROSS_PRODUCT_EXT = 0x8797 - OP_MULTIPLY_MATRIX_EXT = 0x8798 - OP_MOV_EXT = 0x8799 - OUTPUT_VERTEX_EXT = 0x879A - OUTPUT_COLOR0_EXT = 0x879B - OUTPUT_COLOR1_EXT = 0x879C - OUTPUT_TEXTURE_COORD0_EXT = 0x879D - OUTPUT_TEXTURE_COORD1_EXT = 0x879E - OUTPUT_TEXTURE_COORD2_EXT = 0x879F - OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 - OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 - OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 - OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 - OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 - OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 - OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 - OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 - OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 - OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 - OUTPUT_TEXTURE_COORD13_EXT = 0x87AA - OUTPUT_TEXTURE_COORD14_EXT = 0x87AB - OUTPUT_TEXTURE_COORD15_EXT = 0x87AC - OUTPUT_TEXTURE_COORD16_EXT = 0x87AD - OUTPUT_TEXTURE_COORD17_EXT = 0x87AE - OUTPUT_TEXTURE_COORD18_EXT = 0x87AF - OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 - OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 - OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 - OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 - OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 - OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 - OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 - OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 - OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 - OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 - OUTPUT_TEXTURE_COORD29_EXT = 0x87BA - OUTPUT_TEXTURE_COORD30_EXT = 0x87BB - OUTPUT_TEXTURE_COORD31_EXT = 0x87BC - OUTPUT_FOG_EXT = 0x87BD - SCALAR_EXT = 0x87BE - VECTOR_EXT = 0x87BF - MATRIX_EXT = 0x87C0 - VARIANT_EXT = 0x87C1 - INVARIANT_EXT = 0x87C2 - LOCAL_CONSTANT_EXT = 0x87C3 - LOCAL_EXT = 0x87C4 - MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 - MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 - MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 - MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 - MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 - MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA - MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB - MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC - MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD - MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE - VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF - VERTEX_SHADER_VARIANTS_EXT = 0x87D0 - VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 - VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 - VERTEX_SHADER_LOCALS_EXT = 0x87D3 - VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 - X_EXT = 0x87D5 - Y_EXT = 0x87D6 - Z_EXT = 0x87D7 - W_EXT = 0x87D8 - NEGATIVE_X_EXT = 0x87D9 - NEGATIVE_Y_EXT = 0x87DA - NEGATIVE_Z_EXT = 0x87DB - NEGATIVE_W_EXT = 0x87DC - ZERO_EXT = 0x87DD - ONE_EXT = 0x87DE - NEGATIVE_ONE_EXT = 0x87DF - NORMALIZED_RANGE_EXT = 0x87E0 - FULL_RANGE_EXT = 0x87E1 - CURRENT_VERTEX_EXT = 0x87E2 - MVP_MATRIX_EXT = 0x87E3 - VARIANT_VALUE_EXT = 0x87E4 - VARIANT_DATATYPE_EXT = 0x87E5 - VARIANT_ARRAY_STRIDE_EXT = 0x87E6 - VARIANT_ARRAY_TYPE_EXT = 0x87E7 - VARIANT_ARRAY_EXT = 0x87E8 - VARIANT_ARRAY_POINTER_EXT = 0x87E9 - INVARIANT_VALUE_EXT = 0x87EA - INVARIANT_DATATYPE_EXT = 0x87EB - LOCAL_CONSTANT_VALUE_EXT = 0x87EC - LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED - -AMD_compressed_ATC_texture enum: (OpenGL ES only) (additional; see below) - ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE - -ATI_pn_triangles enum: - PN_TRIANGLES_ATI = 0x87F0 - MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 - PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 - PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 - PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 - PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 - PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 - PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 - PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 - -AMD_compressed_3DC_texture enum: (OpenGL ES only) - 3DC_X_AMD = 0x87F9 - 3DC_XY_AMD = 0x87FA - -ATI_meminfo enum: - VBO_FREE_MEMORY_ATI = 0x87FB - TEXTURE_FREE_MEMORY_ATI = 0x87FC - RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD - -OES_get_program_binary enum: (OpenGL ES only; - NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE - PROGRAM_BINARY_FORMATS_OES = 0x87FF - -VERSION_2_0 enum: (Promoted for OpenGL 2.0) - STENCIL_BACK_FUNC = 0x8800 # VERSION_2_0 - STENCIL_BACK_FAIL = 0x8801 # VERSION_2_0 - STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 # VERSION_2_0 - STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 # VERSION_2_0 - STENCIL_BACK_FAIL_ATI = 0x8801 - -ATI_separate_stencil enum: - STENCIL_BACK_FUNC_ATI = 0x8800 - STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 - STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 - -ARB_fragment_program enum: - FRAGMENT_PROGRAM_ARB = 0x8804 - PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 - PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 - PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 - PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 - PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 - PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A - MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B - MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C - MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D - MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E - MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F - MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 - -# ATI_future_use: 0x8811-0x8813 - -VERSION_3_0 enum: - RGBA32F = 0x8814 # VERSION_3_0 - RGB32F = 0x8815 # VERSION_3_0 - RGBA16F = 0x881A # VERSION_3_0 - RGB16F = 0x881B # VERSION_3_0 - -ARB_texture_float enum: - RGBA32F_ARB = 0x8814 - RGB32F_ARB = 0x8815 - ALPHA32F_ARB = 0x8816 - INTENSITY32F_ARB = 0x8817 - LUMINANCE32F_ARB = 0x8818 - LUMINANCE_ALPHA32F_ARB = 0x8819 - RGBA16F_ARB = 0x881A - RGB16F_ARB = 0x881B - ALPHA16F_ARB = 0x881C - INTENSITY16F_ARB = 0x881D - LUMINANCE16F_ARB = 0x881E - LUMINANCE_ALPHA16F_ARB = 0x881F - -ATI_texture_float enum: - RGBA_FLOAT32_ATI = 0x8814 - RGB_FLOAT32_ATI = 0x8815 - ALPHA_FLOAT32_ATI = 0x8816 - INTENSITY_FLOAT32_ATI = 0x8817 - LUMINANCE_FLOAT32_ATI = 0x8818 - LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 - RGBA_FLOAT16_ATI = 0x881A - RGB_FLOAT16_ATI = 0x881B - ALPHA_FLOAT16_ATI = 0x881C - INTENSITY_FLOAT16_ATI = 0x881D - LUMINANCE_FLOAT16_ATI = 0x881E - LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F - -APPLE_float_pixels enum: (additional; see below) - RGBA_FLOAT32_APPLE = 0x8814 - RGB_FLOAT32_APPLE = 0x8815 - ALPHA_FLOAT32_APPLE = 0x8816 - INTENSITY_FLOAT32_APPLE = 0x8817 - LUMINANCE_FLOAT32_APPLE = 0x8818 - LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 - RGBA_FLOAT16_APPLE = 0x881A - RGB_FLOAT16_APPLE = 0x881B - ALPHA_FLOAT16_APPLE = 0x881C - INTENSITY_FLOAT16_APPLE = 0x881D - LUMINANCE_FLOAT16_APPLE = 0x881E - LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F - -ARB_color_buffer_float enum: - RGBA_FLOAT_MODE_ARB = 0x8820 # Equivalent to TYPE_RGBA_FLOAT_ATI - -ATI_pixel_format_float enum: (really WGL_ATI_pixel_format_float) - TYPE_RGBA_FLOAT_ATI = 0x8820 - -# ATI_future_use: 0x8821-0x8822 - -QCOM_writeonly_rendering enum: (OpenGL ES only) - WRITEONLY_RENDERING_QCOM = 0x8823 - -VERSION_2_0 enum: (Promoted for OpenGL 2.0) - MAX_DRAW_BUFFERS = 0x8824 # VERSION_2_0 - DRAW_BUFFER0 = 0x8825 # VERSION_2_0 - DRAW_BUFFER1 = 0x8826 # VERSION_2_0 - DRAW_BUFFER2 = 0x8827 # VERSION_2_0 - DRAW_BUFFER3 = 0x8828 # VERSION_2_0 - DRAW_BUFFER4 = 0x8829 # VERSION_2_0 - DRAW_BUFFER5 = 0x882A # VERSION_2_0 - DRAW_BUFFER6 = 0x882B # VERSION_2_0 - DRAW_BUFFER7 = 0x882C # VERSION_2_0 - DRAW_BUFFER8 = 0x882D # VERSION_2_0 - DRAW_BUFFER9 = 0x882E # VERSION_2_0 - DRAW_BUFFER10 = 0x882F # VERSION_2_0 - DRAW_BUFFER11 = 0x8830 # VERSION_2_0 - DRAW_BUFFER12 = 0x8831 # VERSION_2_0 - DRAW_BUFFER13 = 0x8832 # VERSION_2_0 - DRAW_BUFFER14 = 0x8833 # VERSION_2_0 - DRAW_BUFFER15 = 0x8834 # VERSION_2_0 - -ARB_draw_buffers enum: - MAX_DRAW_BUFFERS_ARB = 0x8824 - DRAW_BUFFER0_ARB = 0x8825 - DRAW_BUFFER1_ARB = 0x8826 - DRAW_BUFFER2_ARB = 0x8827 - DRAW_BUFFER3_ARB = 0x8828 - DRAW_BUFFER4_ARB = 0x8829 - DRAW_BUFFER5_ARB = 0x882A - DRAW_BUFFER6_ARB = 0x882B - DRAW_BUFFER7_ARB = 0x882C - DRAW_BUFFER8_ARB = 0x882D - DRAW_BUFFER9_ARB = 0x882E - DRAW_BUFFER10_ARB = 0x882F - DRAW_BUFFER11_ARB = 0x8830 - DRAW_BUFFER12_ARB = 0x8831 - DRAW_BUFFER13_ARB = 0x8832 - DRAW_BUFFER14_ARB = 0x8833 - DRAW_BUFFER15_ARB = 0x8834 - -ATI_draw_buffers enum: - MAX_DRAW_BUFFERS_ATI = 0x8824 - DRAW_BUFFER0_ATI = 0x8825 - DRAW_BUFFER1_ATI = 0x8826 - DRAW_BUFFER2_ATI = 0x8827 - DRAW_BUFFER3_ATI = 0x8828 - DRAW_BUFFER4_ATI = 0x8829 - DRAW_BUFFER5_ATI = 0x882A - DRAW_BUFFER6_ATI = 0x882B - DRAW_BUFFER7_ATI = 0x882C - DRAW_BUFFER8_ATI = 0x882D - DRAW_BUFFER9_ATI = 0x882E - DRAW_BUFFER10_ATI = 0x882F - DRAW_BUFFER11_ATI = 0x8830 - DRAW_BUFFER12_ATI = 0x8831 - DRAW_BUFFER13_ATI = 0x8832 - DRAW_BUFFER14_ATI = 0x8833 - DRAW_BUFFER15_ATI = 0x8834 - -ATI_pixel_format_float enum: (really WGL_ATI_pixel_format_float) (additional; see above) - COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 - -# ATI_future_use: 0x8836-0x883F - -VERSION_2_0 enum: (Promoted for OpenGL 2.0) - BLEND_EQUATION_ALPHA = 0x883D # VERSION_2_0 - -EXT_blend_equation_separate enum: - BLEND_EQUATION_ALPHA_EXT = 0x883D - -# Aliases EXT_blend_equation_separate enum above -OES_blend_equation_separate enum: (OpenGL ES only) - BLEND_EQUATION_ALPHA_OES = 0x883D - -############################################################################### - -# OpenGL ARB: 0x8840-0x884F - -ARB_matrix_palette enum: - MATRIX_PALETTE_ARB = 0x8840 - MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 - MAX_PALETTE_MATRICES_ARB = 0x8842 - CURRENT_PALETTE_MATRIX_ARB = 0x8843 - MATRIX_INDEX_ARRAY_ARB = 0x8844 - CURRENT_MATRIX_INDEX_ARB = 0x8845 - MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 - MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 - MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 - MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 - -# Aliases ARB_matrix_palette enums above -OES_matrix_palette enum: (OpenGL ES only; additional; see below) - MATRIX_PALETTE_OES = 0x8840 - MAX_PALETTE_MATRICES_OES = 0x8842 - CURRENT_PALETTE_MATRIX_OES = 0x8843 - MATRIX_INDEX_ARRAY_OES = 0x8844 - MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846 - MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847 - MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848 - MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849 - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - TEXTURE_DEPTH_SIZE = 0x884A - DEPTH_TEXTURE_MODE = 0x884B - -ARB_depth_texture enum: - TEXTURE_DEPTH_SIZE_ARB = 0x884A - DEPTH_TEXTURE_MODE_ARB = 0x884B - -VERSION_3_0 enum: (aliases) - COMPARE_REF_TO_TEXTURE = 0x884E # VERSION_3_0 # alias GL_COMPARE_R_TO_TEXTURE_ARB - -VERSION_1_4 enum: (Promoted for OpenGL 1.4) - TEXTURE_COMPARE_MODE = 0x884C - TEXTURE_COMPARE_FUNC = 0x884D - COMPARE_R_TO_TEXTURE = 0x884E - -ARB_shadow enum: - TEXTURE_COMPARE_MODE_ARB = 0x884C - TEXTURE_COMPARE_FUNC_ARB = 0x884D - COMPARE_R_TO_TEXTURE_ARB = 0x884E - -EXT_texture_array enum: (additional; see below) - COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E - -VERSION_3_2 enum: - use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS - -ARB_seamless_cube_map enum: - TEXTURE_CUBE_MAP_SEAMLESS = 0x884F - -############################################################################### - -# NVIDIA: 0x8850-0x891F - -NV_texture_shader3 enum: - OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 - OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 - OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 - OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 - OFFSET_HILO_TEXTURE_2D_NV = 0x8854 - OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 - OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 - OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 - DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 - DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 - DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A - DOT_PRODUCT_PASS_THROUGH_NV = 0x885B - DOT_PRODUCT_TEXTURE_1D_NV = 0x885C - DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D - HILO8_NV = 0x885E - SIGNED_HILO8_NV = 0x885F - FORCE_BLUE_TO_ONE_NV = 0x8860 - -VERSION_2_0 enum: (Promoted for OpenGL 2.0) - POINT_SPRITE = 0x8861 # VERSION_2_0 - COORD_REPLACE = 0x8862 # VERSION_2_0 - -ARB_point_sprite enum: - POINT_SPRITE_ARB = 0x8861 - COORD_REPLACE_ARB = 0x8862 - -NV_point_sprite enum: - POINT_SPRITE_NV = 0x8861 - COORD_REPLACE_NV = 0x8862 - -# Aliases ARB_point_sprite enums above -OES_point_sprite enum: (OpenGL ES only) - POINT_SPRITE_ARB = 0x8861 - COORD_REPLACE_ARB = 0x8862 - -NV_point_sprite enum: - POINT_SPRITE_R_MODE_NV = 0x8863 - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - QUERY_COUNTER_BITS = 0x8864 - CURRENT_QUERY = 0x8865 - QUERY_RESULT = 0x8866 - QUERY_RESULT_AVAILABLE = 0x8867 - -ARB_occlusion_query enum: - QUERY_COUNTER_BITS_ARB = 0x8864 - CURRENT_QUERY_ARB = 0x8865 - QUERY_RESULT_ARB = 0x8866 - QUERY_RESULT_AVAILABLE_ARB = 0x8867 - -NV_occlusion_query enum: - PIXEL_COUNTER_BITS_NV = 0x8864 - CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 - PIXEL_COUNT_NV = 0x8866 - PIXEL_COUNT_AVAILABLE_NV = 0x8867 - -NV_fragment_program enum: - MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 - -VERSION_2_0 enum: (Promoted from ARB_vertex_shader) - MAX_VERTEX_ATTRIBS = 0x8869 # VERSION_2_0 - VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A # VERSION_2_0 - -ARB_vertex_program enum: (additional; see above) - MAX_VERTEX_ATTRIBS_ARB = 0x8869 - VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A - -# NV_future_use: 0x886B-0x886D - -NV_copy_depth_to_color enum: - DEPTH_STENCIL_TO_RGBA_NV = 0x886E - DEPTH_STENCIL_TO_BGRA_NV = 0x886F - -NV_fragment_program enum: (additional; see above) - FRAGMENT_PROGRAM_NV = 0x8870 - MAX_TEXTURE_COORDS_NV = 0x8871 - MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 - FRAGMENT_PROGRAM_BINDING_NV = 0x8873 - PROGRAM_ERROR_STRING_NV = 0x8874 - -VERSION_2_0 enum: (Promoted from ARB_fragment_shader; only some values) - MAX_TEXTURE_COORDS = 0x8871 # VERSION_2_0 - MAX_TEXTURE_IMAGE_UNITS = 0x8872 # VERSION_2_0 - -ARB_vertex_program enum: (additional; see above) -ARB_fragment_program enum: (additional; see above) - MAX_TEXTURE_COORDS_ARB = 0x8871 # ARB_fragment_program - MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872 # ARB_fragment_program - PROGRAM_ERROR_STRING_ARB = 0x8874 # ARB_vertex_program / ARB_fragment_program - PROGRAM_FORMAT_ASCII_ARB = 0x8875 # ARB_vertex_program / ARB_fragment_program - PROGRAM_FORMAT_ARB = 0x8876 # ARB_vertex_program / ARB_fragment_program - -# 0x8877 *should have been* assigned to PROGRAM_BINDING_ARB. Oops. - -NV_pixel_data_range enum: - WRITE_PIXEL_DATA_RANGE_NV = 0x8878 - READ_PIXEL_DATA_RANGE_NV = 0x8879 - WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A - READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B - WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C - READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D - -# NV_future_use: 0x887E-0x887F - -NV_float_buffer enum: - FLOAT_R_NV = 0x8880 - FLOAT_RG_NV = 0x8881 - FLOAT_RGB_NV = 0x8882 - FLOAT_RGBA_NV = 0x8883 - FLOAT_R16_NV = 0x8884 - FLOAT_R32_NV = 0x8885 - FLOAT_RG16_NV = 0x8886 - FLOAT_RG32_NV = 0x8887 - FLOAT_RGB16_NV = 0x8888 - FLOAT_RGB32_NV = 0x8889 - FLOAT_RGBA16_NV = 0x888A - FLOAT_RGBA32_NV = 0x888B - TEXTURE_FLOAT_COMPONENTS_NV = 0x888C - FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D - FLOAT_RGBA_MODE_NV = 0x888E - -NV_texture_expand_normal enum: - TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F - -EXT_depth_bounds_test enum: - DEPTH_BOUNDS_TEST_EXT = 0x8890 - DEPTH_BOUNDS_EXT = 0x8891 - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - ARRAY_BUFFER = 0x8892 - ELEMENT_ARRAY_BUFFER = 0x8893 - ARRAY_BUFFER_BINDING = 0x8894 - ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 - VERTEX_ARRAY_BUFFER_BINDING = 0x8896 - NORMAL_ARRAY_BUFFER_BINDING = 0x8897 - COLOR_ARRAY_BUFFER_BINDING = 0x8898 - INDEX_ARRAY_BUFFER_BINDING = 0x8899 - TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A - EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B - SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C - FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D # alias GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING - FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D - WEIGHT_ARRAY_BUFFER_BINDING = 0x889E - VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F - -ARB_vertex_buffer_object enum: - ARRAY_BUFFER_ARB = 0x8892 - ELEMENT_ARRAY_BUFFER_ARB = 0x8893 - ARRAY_BUFFER_BINDING_ARB = 0x8894 - ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 - VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 - NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 - COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 - INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 - TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A - EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B - SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C - FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D - WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E - VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F - -# Aliases ARB_vertex_buffer_object enum above -OES_matrix_palette enum: (OpenGL ES only; additional; see below) - WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E - -ARB_vertex_program enum: (additional; see above) -ARB_fragment_program enum: (additional; see above) - PROGRAM_INSTRUCTIONS_ARB = 0x88A0 - MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 - PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 - MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 - PROGRAM_TEMPORARIES_ARB = 0x88A4 - MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 - PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 - MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 - PROGRAM_PARAMETERS_ARB = 0x88A8 - MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 - PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA - MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB - PROGRAM_ATTRIBS_ARB = 0x88AC - MAX_PROGRAM_ATTRIBS_ARB = 0x88AD - PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE - MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF - PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 - MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 - PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 - MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 - MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 - MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 - PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 - TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - READ_ONLY = 0x88B8 - WRITE_ONLY = 0x88B9 - READ_WRITE = 0x88BA - BUFFER_ACCESS = 0x88BB - BUFFER_MAPPED = 0x88BC - BUFFER_MAP_POINTER = 0x88BD - -ARB_vertex_buffer_object enum: (additional; see above) - READ_ONLY_ARB = 0x88B8 - WRITE_ONLY_ARB = 0x88B9 - READ_WRITE_ARB = 0x88BA - BUFFER_ACCESS_ARB = 0x88BB - BUFFER_MAPPED_ARB = 0x88BC - BUFFER_MAP_POINTER_ARB = 0x88BD - -# Aliases ARB_vertex_buffer_object enums above -OES_mapbuffer enum: (OpenGL ES only) - WRITE_ONLY_OES = 0x88B9 - BUFFER_ACCESS_OES = 0x88BB - BUFFER_MAPPED_OES = 0x88BC - BUFFER_MAP_POINTER_OES = 0x88BD - -# NV_future_use: 0x88BE - -EXT_timer_query enum: - TIME_ELAPSED_EXT = 0x88BF - -ARB_vertex_program enum: (additional; see above) -ARB_fragment_program enum: (additional; see above) - MATRIX0_ARB = 0x88C0 - MATRIX1_ARB = 0x88C1 - MATRIX2_ARB = 0x88C2 - MATRIX3_ARB = 0x88C3 - MATRIX4_ARB = 0x88C4 - MATRIX5_ARB = 0x88C5 - MATRIX6_ARB = 0x88C6 - MATRIX7_ARB = 0x88C7 - MATRIX8_ARB = 0x88C8 - MATRIX9_ARB = 0x88C9 - MATRIX10_ARB = 0x88CA - MATRIX11_ARB = 0x88CB - MATRIX12_ARB = 0x88CC - MATRIX13_ARB = 0x88CD - MATRIX14_ARB = 0x88CE - MATRIX15_ARB = 0x88CF - MATRIX16_ARB = 0x88D0 - MATRIX17_ARB = 0x88D1 - MATRIX18_ARB = 0x88D2 - MATRIX19_ARB = 0x88D3 - MATRIX20_ARB = 0x88D4 - MATRIX21_ARB = 0x88D5 - MATRIX22_ARB = 0x88D6 - MATRIX23_ARB = 0x88D7 - MATRIX24_ARB = 0x88D8 - MATRIX25_ARB = 0x88D9 - MATRIX26_ARB = 0x88DA - MATRIX27_ARB = 0x88DB - MATRIX28_ARB = 0x88DC - MATRIX29_ARB = 0x88DD - MATRIX30_ARB = 0x88DE - MATRIX31_ARB = 0x88DF - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - STREAM_DRAW = 0x88E0 - STREAM_READ = 0x88E1 - STREAM_COPY = 0x88E2 - STATIC_DRAW = 0x88E4 - STATIC_READ = 0x88E5 - STATIC_COPY = 0x88E6 - DYNAMIC_DRAW = 0x88E8 - DYNAMIC_READ = 0x88E9 - DYNAMIC_COPY = 0x88EA - -ARB_vertex_buffer_object enum: (additional; see above) - STREAM_DRAW_ARB = 0x88E0 - STREAM_READ_ARB = 0x88E1 - STREAM_COPY_ARB = 0x88E2 - STATIC_DRAW_ARB = 0x88E4 - STATIC_READ_ARB = 0x88E5 - STATIC_COPY_ARB = 0x88E6 - DYNAMIC_DRAW_ARB = 0x88E8 - DYNAMIC_READ_ARB = 0x88E9 - DYNAMIC_COPY_ARB = 0x88EA - -VERSION_2_1 enum: - PIXEL_PACK_BUFFER = 0x88EB # VERSION_2_1 - PIXEL_UNPACK_BUFFER = 0x88EC # VERSION_2_1 - PIXEL_PACK_BUFFER_BINDING = 0x88ED # VERSION_2_1 - PIXEL_UNPACK_BUFFER_BINDING = 0x88EF # VERSION_2_1 - -ARB_pixel_buffer_object enum: - PIXEL_PACK_BUFFER_ARB = 0x88EB # ARB_pixel_buffer_object - PIXEL_UNPACK_BUFFER_ARB = 0x88EC # ARB_pixel_buffer_object - PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED # ARB_pixel_buffer_object - PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF # ARB_pixel_buffer_object - -EXT_pixel_buffer_object enum: - PIXEL_PACK_BUFFER_EXT = 0x88EB # EXT_pixel_buffer_object - PIXEL_UNPACK_BUFFER_EXT = 0x88EC # EXT_pixel_buffer_object - PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED # EXT_pixel_buffer_object - PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF # EXT_pixel_buffer_object - -# ARB_future_use: 0x88E3, 0x88E7, 0x88EE -# (for extending ARB_vertex_buffer_object): - -VERSION_3_0 enum: - use ARB_framebuffer_object DEPTH24_STENCIL8 - use ARB_framebuffer_object TEXTURE_STENCIL_SIZE - -ARB_framebuffer_object enum: (note: no ARB suffixes) - DEPTH24_STENCIL8 = 0x88F0 # VERSION_3_0 / ARB_fbo - TEXTURE_STENCIL_SIZE = 0x88F1 # VERSION_3_0 / ARB_fbo - -EXT_packed_depth_stencil enum: (additional; see above) - DEPTH24_STENCIL8_EXT = 0x88F0 - TEXTURE_STENCIL_SIZE_EXT = 0x88F1 - -# Aliases EXT_packed_depth_stencil enum above -OES_packed_depth_stencil enum: (OpenGL ES only; additional; see above) - DEPTH24_STENCIL8_OES = 0x88F0 - -EXT_stencil_clear_tag enum: - STENCIL_TAG_BITS_EXT = 0x88F2 - STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 - -NV_vertex_program2_option enum: (duplicated in NV_fragment_prgoram2 below) - MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 - MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 - -NV_fragment_program2 enum: - MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 - MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 - MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 - MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 - MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 - -# NV_future_use: 0x88F9-0x88FC - -VERSION_3_0 enum: - VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD # VERSION_3_0 - -NV_vertex_program4 enum: - VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD - -ARB_instanced_arrays enum: - VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE - -VERSION_3_0 enum: - MAX_ARRAY_TEXTURE_LAYERS = 0x88FF # VERSION_3_0 - -EXT_texture_array enum: (additional; see below) - MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF - -VERSION_3_0 enum: - MIN_PROGRAM_TEXEL_OFFSET = 0x8904 # VERSION_3_0 - MAX_PROGRAM_TEXEL_OFFSET = 0x8905 # VERSION_3_0 - -NV_gpu_program4 enum: - MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 - MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 - PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 - PROGRAM_RESULT_COMPONENTS_NV = 0x8907 - MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 - MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 - -EXT_stencil_two_side enum: - STENCIL_TEST_TWO_SIDE_EXT = 0x8910 - ACTIVE_STENCIL_FACE_EXT = 0x8911 - -EXT_texture_mirror_clamp enum: (additional; see above): - MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 - -# NV_future_use: 0x8913 - -VERSION_1_5 enum: (Promoted for OpenGL 1.5) - SAMPLES_PASSED = 0x8914 - -ARB_occlusion_query enum: (additional; see above) - SAMPLES_PASSED_ARB = 0x8914 - -# NV_future_use: 0x8915 - -VERSION_3_2 enum: - GEOMETRY_VERTICES_OUT = 0x8916 - GEOMETRY_INPUT_TYPE = 0x8917 - GEOMETRY_OUTPUT_TYPE = 0x8918 - -# NV_future_use: 0x8919 - -VERSION_3_0 enum: - CLAMP_VERTEX_COLOR = 0x891A # VERSION_3_0 - CLAMP_FRAGMENT_COLOR = 0x891B # VERSION_3_0 - CLAMP_READ_COLOR = 0x891C # VERSION_3_0 - FIXED_ONLY = 0x891D # VERSION_3_0 - -ARB_color_buffer_float enum: (additional; see above) - CLAMP_VERTEX_COLOR_ARB = 0x891A - CLAMP_FRAGMENT_COLOR_ARB = 0x891B - CLAMP_READ_COLOR_ARB = 0x891C - FIXED_ONLY_ARB = 0x891D - -# NV_future_use: 0x891E-0x891F - -############################################################################### - -# ATI: 0x8920-0x897F - -ATI_fragment_shader enum: - FRAGMENT_SHADER_ATI = 0x8920 - REG_0_ATI = 0x8921 - REG_1_ATI = 0x8922 - REG_2_ATI = 0x8923 - REG_3_ATI = 0x8924 - REG_4_ATI = 0x8925 - REG_5_ATI = 0x8926 - REG_6_ATI = 0x8927 - REG_7_ATI = 0x8928 - REG_8_ATI = 0x8929 - REG_9_ATI = 0x892A - REG_10_ATI = 0x892B - REG_11_ATI = 0x892C - REG_12_ATI = 0x892D - REG_13_ATI = 0x892E - REG_14_ATI = 0x892F - REG_15_ATI = 0x8930 - REG_16_ATI = 0x8931 - REG_17_ATI = 0x8932 - REG_18_ATI = 0x8933 - REG_19_ATI = 0x8934 - REG_20_ATI = 0x8935 - REG_21_ATI = 0x8936 - REG_22_ATI = 0x8937 - REG_23_ATI = 0x8938 - REG_24_ATI = 0x8939 - REG_25_ATI = 0x893A - REG_26_ATI = 0x893B - REG_27_ATI = 0x893C - REG_28_ATI = 0x893D - REG_29_ATI = 0x893E - REG_30_ATI = 0x893F - REG_31_ATI = 0x8940 - CON_0_ATI = 0x8941 - CON_1_ATI = 0x8942 - CON_2_ATI = 0x8943 - CON_3_ATI = 0x8944 - CON_4_ATI = 0x8945 - CON_5_ATI = 0x8946 - CON_6_ATI = 0x8947 - CON_7_ATI = 0x8948 - CON_8_ATI = 0x8949 - CON_9_ATI = 0x894A - CON_10_ATI = 0x894B - CON_11_ATI = 0x894C - CON_12_ATI = 0x894D - CON_13_ATI = 0x894E - CON_14_ATI = 0x894F - CON_15_ATI = 0x8950 - CON_16_ATI = 0x8951 - CON_17_ATI = 0x8952 - CON_18_ATI = 0x8953 - CON_19_ATI = 0x8954 - CON_20_ATI = 0x8955 - CON_21_ATI = 0x8956 - CON_22_ATI = 0x8957 - CON_23_ATI = 0x8958 - CON_24_ATI = 0x8959 - CON_25_ATI = 0x895A - CON_26_ATI = 0x895B - CON_27_ATI = 0x895C - CON_28_ATI = 0x895D - CON_29_ATI = 0x895E - CON_30_ATI = 0x895F - CON_31_ATI = 0x8960 - MOV_ATI = 0x8961 - ADD_ATI = 0x8963 - MUL_ATI = 0x8964 - SUB_ATI = 0x8965 - DOT3_ATI = 0x8966 - DOT4_ATI = 0x8967 - MAD_ATI = 0x8968 - LERP_ATI = 0x8969 - CND_ATI = 0x896A - CND0_ATI = 0x896B - DOT2_ADD_ATI = 0x896C - SECONDARY_INTERPOLATOR_ATI = 0x896D - NUM_FRAGMENT_REGISTERS_ATI = 0x896E - NUM_FRAGMENT_CONSTANTS_ATI = 0x896F - NUM_PASSES_ATI = 0x8970 - NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 - NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 - NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 - NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 - COLOR_ALPHA_PAIRING_ATI = 0x8975 - SWIZZLE_STR_ATI = 0x8976 - SWIZZLE_STQ_ATI = 0x8977 - SWIZZLE_STR_DR_ATI = 0x8978 - SWIZZLE_STQ_DQ_ATI = 0x8979 - SWIZZLE_STRQ_ATI = 0x897A - SWIZZLE_STRQ_DQ_ATI = 0x897B -# ??? Not clear where to put new types of mask bits yet - RED_BIT_ATI = 0x00000001 - GREEN_BIT_ATI = 0x00000002 - BLUE_BIT_ATI = 0x00000004 - 2X_BIT_ATI = 0x00000001 - 4X_BIT_ATI = 0x00000002 - 8X_BIT_ATI = 0x00000004 - HALF_BIT_ATI = 0x00000008 - QUARTER_BIT_ATI = 0x00000010 - EIGHTH_BIT_ATI = 0x00000020 - SATURATE_BIT_ATI = 0x00000040 - 2X_BIT_ATI = 0x00000001 - COMP_BIT_ATI = 0x00000002 - NEGATE_BIT_ATI = 0x00000004 - BIAS_BIT_ATI = 0x00000008 - -# ATI_future_use: 0x897C-0x897F - -############################################################################### - -# Khronos OpenML WG / OpenGL ES WG: 0x8980-0x898F - -OML_interlace enum: - INTERLACE_OML = 0x8980 - INTERLACE_READ_OML = 0x8981 - -OML_subsample enum: - FORMAT_SUBSAMPLE_24_24_OML = 0x8982 - FORMAT_SUBSAMPLE_244_244_OML = 0x8983 - -OML_resample enum: - PACK_RESAMPLE_OML = 0x8984 - UNPACK_RESAMPLE_OML = 0x8985 - RESAMPLE_REPLICATE_OML = 0x8986 - RESAMPLE_ZERO_FILL_OML = 0x8987 - RESAMPLE_AVERAGE_OML = 0x8988 - RESAMPLE_DECIMATE_OML = 0x8989 - -OES_point_size_array enum: (OpenGL ES only) - POINT_SIZE_ARRAY_TYPE_OES = 0x898A - POINT_SIZE_ARRAY_STRIDE_OES = 0x898B - POINT_SIZE_ARRAY_POINTER_OES = 0x898C - -OES_matrix_get enum: (OpenGL ES only) - MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D - PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E - TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F - -############################################################################### - -# 3dlabs: 0x8990-0x899F - -############################################################################### - -# Matrox: 0x89A0-0x89FF - -############################################################################### - -# Apple: 0x8A00-0x8A7F - -APPLE_vertex_program_evaluators enum: - VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 - VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 - VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 - VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 - VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 - VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 - VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 - VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 - VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 - VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 - -APPLE_fence enum: - DRAW_PIXELS_APPLE = 0x8A0A - FENCE_APPLE = 0x8A0B - -## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name - ELEMENT_ARRAY_APPLE = 0x8A0C - ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D - ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E - -APPLE_float_pixels enum: - COLOR_FLOAT_APPLE = 0x8A0F - -# APPLE_future_use: 0x8A10 -## From Jeremy 2006/10/18 (Bugzilla bug 632) - unknown extension name -# MIN_PBUFFER_VIEWPORT_DIMS_APPLE = 0x8A10 -# ELEMENT_BUFFER_BINDING_APPLE = 0x8A11 -# Apple says the extension that defined ELEMENT_BUFFER_BINDING_APPLE -# never shipped and there's no actual collision with UNIFORM_BUFFER - -VERSION_3_1 enum: - use ARB_uniform_buffer_object UNIFORM_BUFFER - -ARB_uniform_buffer_object enum: (additional; see below) - UNIFORM_BUFFER = 0x8A11 - -APPLE_flush_buffer_range enum: - BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 - BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 - -APPLE_aux_depth_stencil enum: - AUX_DEPTH_STENCIL_APPLE = 0x8A14 - -APPLE_row_bytes enum: - PACK_ROW_BYTES_APPLE = 0x8A15 - UNPACK_ROW_BYTES_APPLE = 0x8A16 - -# APPLE_future_use: 0x8A17-0x8A18 - -APPLE_object_purgeable enum: - RELEASED_APPLE = 0x8A19 - VOLATILE_APPLE = 0x8A1A - RETAINED_APPLE = 0x8A1B - UNDEFINED_APPLE = 0x8A1C - PURGEABLE_APPLE = 0x8A1D - -# APPLE_future_use: 0x8A1E - -APPLE_rgb_422 enum: - RGB_422_APPLE = 0x8A1F - use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_APPLE - use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_REV_APPLE - -# APPLE_future_use: 0x8A20--0x8A27 - -VERSION_3_1 enum: - use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING - use ARB_uniform_buffer_object UNIFORM_BUFFER_START - use ARB_uniform_buffer_object UNIFORM_BUFFER_SIZE - use ARB_uniform_buffer_object MAX_VERTEX_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_GEOMETRY_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_FRAGMENT_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_COMBINED_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_UNIFORM_BUFFER_BINDINGS - use ARB_uniform_buffer_object MAX_UNIFORM_BLOCK_SIZE - use ARB_uniform_buffer_object MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS - use ARB_uniform_buffer_object MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS - use ARB_uniform_buffer_object MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS - use ARB_uniform_buffer_object UNIFORM_BUFFER_OFFSET_ALIGNMENT - use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH - use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCKS - use ARB_uniform_buffer_object UNIFORM_TYPE - use ARB_uniform_buffer_object UNIFORM_SIZE - use ARB_uniform_buffer_object UNIFORM_NAME_LENGTH - use ARB_uniform_buffer_object UNIFORM_BLOCK_INDEX - use ARB_uniform_buffer_object UNIFORM_OFFSET - use ARB_uniform_buffer_object UNIFORM_ARRAY_STRIDE - use ARB_uniform_buffer_object UNIFORM_MATRIX_STRIDE - use ARB_uniform_buffer_object UNIFORM_IS_ROW_MAJOR - use ARB_uniform_buffer_object UNIFORM_BLOCK_BINDING - use ARB_uniform_buffer_object UNIFORM_BLOCK_DATA_SIZE - use ARB_uniform_buffer_object UNIFORM_BLOCK_NAME_LENGTH - use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORMS - use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES - use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER - use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER - use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER - use ARB_uniform_buffer_object INVALID_INDEX - -ARB_uniform_buffer_object enum: - UNIFORM_BUFFER_BINDING = 0x8A28 - UNIFORM_BUFFER_START = 0x8A29 - UNIFORM_BUFFER_SIZE = 0x8A2A - MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B - MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C - MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D - MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E - MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F - MAX_UNIFORM_BLOCK_SIZE = 0x8A30 - MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 - MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 - MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 - UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 - ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 - ACTIVE_UNIFORM_BLOCKS = 0x8A36 - UNIFORM_TYPE = 0x8A37 - UNIFORM_SIZE = 0x8A38 - UNIFORM_NAME_LENGTH = 0x8A39 - UNIFORM_BLOCK_INDEX = 0x8A3A - UNIFORM_OFFSET = 0x8A3B - UNIFORM_ARRAY_STRIDE = 0x8A3C - UNIFORM_MATRIX_STRIDE = 0x8A3D - UNIFORM_IS_ROW_MAJOR = 0x8A3E - UNIFORM_BLOCK_BINDING = 0x8A3F - UNIFORM_BLOCK_DATA_SIZE = 0x8A40 - UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 - UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 - UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 - UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 - UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 - UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 - INVALID_INDEX = 0xFFFFFFFFu - -# APPLE_future_use: 0x8A47-0x8A7F - -############################################################################### - -# Matrox: 0x8A80-0x8AEF - -############################################################################### - -# Chromium (Brian Paul): 0x8AF0-0x8B2F - -############################################################################### - -# ARB HLSL shader extensions: 0x8B30-0x8B8F - - -VERSION_3_1 enum: (Promoted from ARB_shader_objects + ARB_texture_rectangle) - SAMPLER_2D_RECT = 0x8B63 # ARB_shader_objects + ARB_texture_rectangle - SAMPLER_2D_RECT_SHADOW = 0x8B64 # ARB_shader_objects + ARB_texture_rectangle - -#@@ separate extensions -VERSION_2_0 enum: (Promoted for OpenGL 2.0; only some values; renaming in many cases) -ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader enum: -NV_vertex_program3 enum: (reuses 0x8B4C) -##Shader types + room for expansion - FRAGMENT_SHADER = 0x8B30 # VERSION_2_0 - FRAGMENT_SHADER_ARB = 0x8B30 # ARB_fragment_shader - VERTEX_SHADER = 0x8B31 # VERSION_2_0 - VERTEX_SHADER_ARB = 0x8B31 # ARB_vertex_shader -# ARB_future_use: 0x8B32-0x8B3F (for shader types) -##Container types + room for expansion - PROGRAM_OBJECT_ARB = 0x8B40 # ARB_shader_objects -# ARB_future_use: 0x8B41-0x8B47 (for container types) -##Misc. shader enums - SHADER_OBJECT_ARB = 0x8B48 # ARB_shader_objects - MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49 # VERSION_2_0 - MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 # ARB_fragment_shader - MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A # VERSION_2_0 - MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A # ARB_vertex_shader - MAX_VARYING_FLOATS = 0x8B4B # VERSION_2_0 - MAX_VARYING_FLOATS_ARB = 0x8B4B # ARB_vertex_shader - MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C # VERSION_2_0 - MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C # ARB_vertex_shader, NV_vertex_program3 - MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D # VERSION_2_0 - MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D # ARB_vertex_shader - OBJECT_TYPE_ARB = 0x8B4E # ARB_shader_objects - SHADER_TYPE = 0x8B4F # VERSION_2_0 (renamed) - OBJECT_SUBTYPE_ARB = 0x8B4F # ARB_shader_objects -##Attribute types + room for expansion. - FLOAT_VEC2 = 0x8B50 # VERSION_2_0 - FLOAT_VEC2_ARB = 0x8B50 # ARB_shader_objects - FLOAT_VEC3 = 0x8B51 # VERSION_2_0 - FLOAT_VEC3_ARB = 0x8B51 # ARB_shader_objects - FLOAT_VEC4 = 0x8B52 # VERSION_2_0 - FLOAT_VEC4_ARB = 0x8B52 # ARB_shader_objects - INT_VEC2 = 0x8B53 # VERSION_2_0 - INT_VEC2_ARB = 0x8B53 # ARB_shader_objects - INT_VEC3 = 0x8B54 # VERSION_2_0 - INT_VEC3_ARB = 0x8B54 # ARB_shader_objects - INT_VEC4 = 0x8B55 # VERSION_2_0 - INT_VEC4_ARB = 0x8B55 # ARB_shader_objects - BOOL = 0x8B56 # VERSION_2_0 - BOOL_ARB = 0x8B56 # ARB_shader_objects - BOOL_VEC2 = 0x8B57 # VERSION_2_0 - BOOL_VEC2_ARB = 0x8B57 # ARB_shader_objects - BOOL_VEC3 = 0x8B58 # VERSION_2_0 - BOOL_VEC3_ARB = 0x8B58 # ARB_shader_objects - BOOL_VEC4 = 0x8B59 # VERSION_2_0 - BOOL_VEC4_ARB = 0x8B59 # ARB_shader_objects - FLOAT_MAT2 = 0x8B5A # VERSION_2_0 - FLOAT_MAT2_ARB = 0x8B5A # ARB_shader_objects - FLOAT_MAT3 = 0x8B5B # VERSION_2_0 - FLOAT_MAT3_ARB = 0x8B5B # ARB_shader_objects - FLOAT_MAT4 = 0x8B5C # VERSION_2_0 - FLOAT_MAT4_ARB = 0x8B5C # ARB_shader_objects - SAMPLER_1D = 0x8B5D # VERSION_2_0 - SAMPLER_1D_ARB = 0x8B5D # ARB_shader_objects - SAMPLER_2D = 0x8B5E # VERSION_2_0 - SAMPLER_2D_ARB = 0x8B5E # ARB_shader_objects - SAMPLER_3D = 0x8B5F # VERSION_2_0 - SAMPLER_3D_ARB = 0x8B5F # ARB_shader_objects - SAMPLER_CUBE = 0x8B60 # VERSION_2_0 - SAMPLER_CUBE_ARB = 0x8B60 # ARB_shader_objects - SAMPLER_1D_SHADOW = 0x8B61 # VERSION_2_0 - SAMPLER_1D_SHADOW_ARB = 0x8B61 # ARB_shader_objects - SAMPLER_2D_SHADOW = 0x8B62 # VERSION_2_0 - SAMPLER_2D_SHADOW_ARB = 0x8B62 # ARB_shader_objects - SAMPLER_2D_RECT_ARB = 0x8B63 # ARB_shader_objects - SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 # ARB_shader_objects - FLOAT_MAT2x3 = 0x8B65 # VERSION_2_1 - FLOAT_MAT2x4 = 0x8B66 # VERSION_2_1 - FLOAT_MAT3x2 = 0x8B67 # VERSION_2_1 - FLOAT_MAT3x4 = 0x8B68 # VERSION_2_1 - FLOAT_MAT4x2 = 0x8B69 # VERSION_2_1 - FLOAT_MAT4x3 = 0x8B6A # VERSION_2_1 -# ARB_future_use: 0x8B6B-0x8B7F (for attribute types) - DELETE_STATUS = 0x8B80 # VERSION_2_0 (renamed) - OBJECT_DELETE_STATUS_ARB = 0x8B80 # ARB_shader_objects - COMPILE_STATUS = 0x8B81 # VERSION_2_0 (renamed) - OBJECT_COMPILE_STATUS_ARB = 0x8B81 # ARB_shader_objects - LINK_STATUS = 0x8B82 # VERSION_2_0 (renamed) - OBJECT_LINK_STATUS_ARB = 0x8B82 # ARB_shader_objects - VALIDATE_STATUS = 0x8B83 # VERSION_2_0 (renamed) - OBJECT_VALIDATE_STATUS_ARB = 0x8B83 # ARB_shader_objects - INFO_LOG_LENGTH = 0x8B84 # VERSION_2_0 (renamed) - OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 # ARB_shader_objects - ATTACHED_SHADERS = 0x8B85 # VERSION_2_0 (renamed) - OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 # ARB_shader_objects - ACTIVE_UNIFORMS = 0x8B86 # VERSION_2_0 (renamed) - OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 # ARB_shader_objects - ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 # VERSION_2_0 (renamed) - OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 # ARB_shader_objects - SHADER_SOURCE_LENGTH = 0x8B88 # VERSION_2_0 (renamed) - OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 # ARB_shader_objects - ACTIVE_ATTRIBUTES = 0x8B89 # VERSION_2_0 (renamed) - OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 # ARB_vertex_shader - ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A # VERSION_2_0 (renamed) - OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A # ARB_vertex_shader - FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B # VERSION_2_0 - FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B # ARB_fragment_shader - SHADING_LANGUAGE_VERSION = 0x8B8C # VERSION_2_0 - SHADING_LANGUAGE_VERSION_ARB = 0x8B8C # ARB_shading_language_100 - -# Aliases ARB_shader_objects enum above -OES_texture3D enum: (OpenGL ES only; additional; see above) - SAMPLER_3D_OES = 0x8B5F # ARB_shader_objects - -# Aliases ARB_fragment_shader enum above -OES_standard_derivatives enum: (OpenGL ES only) - FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B - -VERSION_3_0 enum: - MAX_VARYING_COMPONENTS = 0x8B4B # VERSION_3_0 # alias GL_MAX_VARYING_FLOATS - -ARB_geometry_shader4 enum: (additional; see below; note: no ARB suffixes) - use VERSION_3_0 MAX_VARYING_COMPONENTS - -EXT_geometry_shader4 enum: (additional; see below) - MAX_VARYING_COMPONENTS_EXT = 0x8B4B - -VERSION_2_0 enum: - CURRENT_PROGRAM = 0x8B8D - -# Aliases CURRENT_PROGRAM -EXT_separate_shader_objects enum: - ACTIVE_PROGRAM_EXT = 0x8B8D - -# ARB_future_use: 0x8B8E-0x8B8F - -############################################################################### - -# Khronos OpenGL ES WG: 0x8B90-0x8B9F - -OES_compressed_paletted_texture enum: (OpenGL ES only) - PALETTE4_RGB8_OES = 0x8B90 - PALETTE4_RGBA8_OES = 0x8B91 - PALETTE4_R5_G6_B5_OES = 0x8B92 - PALETTE4_RGBA4_OES = 0x8B93 - PALETTE4_RGB5_A1_OES = 0x8B94 - PALETTE8_RGB8_OES = 0x8B95 - PALETTE8_RGBA8_OES = 0x8B96 - PALETTE8_R5_G6_B5_OES = 0x8B97 - PALETTE8_RGBA4_OES = 0x8B98 - PALETTE8_RGB5_A1_OES = 0x8B99 - -OES_read_format enum: (OpenGL ES, also implemented in Mesa) - IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A - IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B - -OES_point_size_array enum: (OpenGL ES only; additional; see above) - POINT_SIZE_ARRAY_OES = 0x8B9C - -OES_draw_texture enum: (OpenGL ES only) - TEXTURE_CROP_RECT_OES = 0x8B9D - -OES_matrix_palette enum: (OpenGL ES only) - MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E - -OES_point_size_array enum: (OpenGL ES only; additional; see above) - POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F - -############################################################################### - -# Seaweed: 0x8BA0-0x8BAF - -############################################################################### - -# Mesa: 0x8BB0-0x8BBF -# Probably one of the two 0x8BB4 enums should be 0x8BB5, but the -# extension spec is not complete in any event. -MESA_program_debug enum: - FRAGMENT_PROGRAM_POSITION_MESA = 0x8BB0 - FRAGMENT_PROGRAM_CALLBACK_MESA = 0x8BB1 - FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB2 - FRAGMENT_PROGRAM_CALLBACK_DATA_MESA = 0x8BB3 - VERTEX_PROGRAM_CALLBACK_MESA = 0x8BB4 - VERTEX_PROGRAM_POSITION_MESA = 0x8BB4 - VERTEX_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB6 - VERTEX_PROGRAM_CALLBACK_DATA_MESA = 0x8BB7 - -############################################################################### - -# ATI: 0x8BC0-0x8BFF - -AMD_performance_monitor enum: - COUNTER_TYPE_AMD = 0x8BC0 - COUNTER_RANGE_AMD = 0x8BC1 - UNSIGNED_INT64_AMD = 0x8BC2 - PERCENTAGE_AMD = 0x8BC3 - PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 - PERFMON_RESULT_SIZE_AMD = 0x8BC5 - PERFMON_RESULT_AMD = 0x8BC6 - -# ATI_future_use: 0x8BC7-0x8BD1 - -QCOM_extended_get enum: (OpenGL ES only) - TEXTURE_WIDTH_QCOM = 0x8BD2 - TEXTURE_HEIGHT_QCOM = 0x8BD3 - TEXTURE_DEPTH_QCOM = 0x8BD4 - TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5 - TEXTURE_FORMAT_QCOM = 0x8BD6 - TEXTURE_TYPE_QCOM = 0x8BD7 - TEXTURE_IMAGE_VALID_QCOM = 0x8BD8 - TEXTURE_NUM_LEVELS_QCOM = 0x8BD9 - TEXTURE_TARGET_QCOM = 0x8BDA - TEXTURE_OBJECT_VALID_QCOM = 0x8BDB - STATE_RESTORE = 0x8BDC - -# ATI_future_use: 0x8BDD-0x8BFF - -############################################################################### - -# Imagination Tech.: 0x8C00-0x8C0F - -IMG_texture_compression_pvrtc enum: (OpenGL ES only) - COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00 - COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01 - COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02 - COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 - -IMG_texture_env_enhanced_fixed_function enum: (OpenGL ES only) - MODULATE_COLOR_IMG = 0x8C04 - RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05 - TEXTURE_ALPHA_MODULATE_IMG = 0x8C06 - FACTOR_ALPHA_MODULATE_IMG = 0x8C07 - FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08 - ADD_BLEND_IMG = 0x8C09 - -IMG_shader_binary: (OpenGL ES only) - SGX_BINARY_IMG = 0x8C0A - -# IMG_future_use: 0x8C0B-0x8C0F - -############################################################################### - -# NVIDIA: 0x8C10-0x8C8F (Pat Brown) - -VERSION_3_0 enum: - use ARB_framebuffer_object TEXTURE_RED_TYPE - use ARB_framebuffer_object TEXTURE_GREEN_TYPE - use ARB_framebuffer_object TEXTURE_BLUE_TYPE - use ARB_framebuffer_object TEXTURE_ALPHA_TYPE - use ARB_framebuffer_object TEXTURE_LUMINANCE_TYPE - use ARB_framebuffer_object TEXTURE_INTENSITY_TYPE - use ARB_framebuffer_object TEXTURE_DEPTH_TYPE - use ARB_framebuffer_object UNSIGNED_NORMALIZED - -ARB_framebuffer_object enum: (note: no ARB suffixes) - TEXTURE_RED_TYPE = 0x8C10 # VERSION_3_0 / ARB_fbo - TEXTURE_GREEN_TYPE = 0x8C11 # VERSION_3_0 / ARB_fbo - TEXTURE_BLUE_TYPE = 0x8C12 # VERSION_3_0 / ARB_fbo - TEXTURE_ALPHA_TYPE = 0x8C13 # VERSION_3_0 / ARB_fbo - TEXTURE_LUMINANCE_TYPE = 0x8C14 # VERSION_3_0 / ARB_fbo - TEXTURE_INTENSITY_TYPE = 0x8C15 # VERSION_3_0 / ARB_fbo - TEXTURE_DEPTH_TYPE = 0x8C16 # VERSION_3_0 / ARB_fbo - UNSIGNED_NORMALIZED = 0x8C17 # VERSION_3_0 / ARB_fbo - -ARB_texture_float enum: (additional; see above) - TEXTURE_RED_TYPE_ARB = 0x8C10 - TEXTURE_GREEN_TYPE_ARB = 0x8C11 - TEXTURE_BLUE_TYPE_ARB = 0x8C12 - TEXTURE_ALPHA_TYPE_ARB = 0x8C13 - TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 - TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 - TEXTURE_DEPTH_TYPE_ARB = 0x8C16 - UNSIGNED_NORMALIZED_ARB = 0x8C17 - -VERSION_3_0 enum: - TEXTURE_1D_ARRAY = 0x8C18 # VERSION_3_0 - PROXY_TEXTURE_1D_ARRAY = 0x8C19 # VERSION_3_0 - TEXTURE_2D_ARRAY = 0x8C1A # VERSION_3_0 - PROXY_TEXTURE_2D_ARRAY = 0x8C1B # VERSION_3_0 - TEXTURE_BINDING_1D_ARRAY = 0x8C1C # VERSION_3_0 - TEXTURE_BINDING_2D_ARRAY = 0x8C1D # VERSION_3_0 - -EXT_texture_array enum: - TEXTURE_1D_ARRAY_EXT = 0x8C18 - PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 - TEXTURE_2D_ARRAY_EXT = 0x8C1A - PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B - TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C - TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D - -# NV_future_use: 0x8C1E-0x8C25 - -VERSION_3_2 enum: - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 - -ARB_geometry_shader4 enum: (additional; see below) - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 - -NV_geometry_program4 enum: - GEOMETRY_PROGRAM_NV = 0x8C26 - MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 - MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29 - -VERSION_3_1 enum: - TEXTURE_BUFFER = 0x8C2A - MAX_TEXTURE_BUFFER_SIZE = 0x8C2B - TEXTURE_BINDING_BUFFER = 0x8C2C - TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D - TEXTURE_BUFFER_FORMAT = 0x8C2E - -ARB_texture_buffer_object enum: - TEXTURE_BUFFER_ARB = 0x8C2A - MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B - TEXTURE_BINDING_BUFFER_ARB = 0x8C2C - TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D - TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E - -EXT_texture_buffer_object enum: - TEXTURE_BUFFER_EXT = 0x8C2A - MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B - TEXTURE_BINDING_BUFFER_EXT = 0x8C2C - TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D - TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E - -# NV_future_use: 0x8C2F-0x8C35 - -ARB_sample_shading enum: - SAMPLE_SHADING_ARB = 0x8C36 - MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37 - -# NV_future_use: 0x8C38-0x8C39 - -VERSION_3_0 enum: - R11F_G11F_B10F = 0x8C3A # VERSION_3_0 - UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B # VERSION_3_0 - -EXT_packed_float enum: - R11F_G11F_B10F_EXT = 0x8C3A - UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B - RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C - -VERSION_3_0 enum: - RGB9_E5 = 0x8C3D # VERSION_3_0 - UNSIGNED_INT_5_9_9_9_REV = 0x8C3E # VERSION_3_0 - TEXTURE_SHARED_SIZE = 0x8C3F # VERSION_3_0 - -EXT_texture_shared_exponent enum: - RGB9_E5_EXT = 0x8C3D - UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E - TEXTURE_SHARED_SIZE_EXT = 0x8C3F - -VERSION_2_1 enum: (Generic formats promoted for OpenGL 2.1) - SRGB = 0x8C40 # VERSION_2_1 - SRGB8 = 0x8C41 # VERSION_2_1 - SRGB_ALPHA = 0x8C42 # VERSION_2_1 - SRGB8_ALPHA8 = 0x8C43 # VERSION_2_1 - SLUMINANCE_ALPHA = 0x8C44 # VERSION_2_1 - SLUMINANCE8_ALPHA8 = 0x8C45 # VERSION_2_1 - SLUMINANCE = 0x8C46 # VERSION_2_1 - SLUMINANCE8 = 0x8C47 # VERSION_2_1 - COMPRESSED_SRGB = 0x8C48 # VERSION_2_1 - COMPRESSED_SRGB_ALPHA = 0x8C49 # VERSION_2_1 - COMPRESSED_SLUMINANCE = 0x8C4A # VERSION_2_1 - COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B # VERSION_2_1 - -EXT_texture_sRGB enum: - SRGB_EXT = 0x8C40 # EXT_texture_sRGB - SRGB8_EXT = 0x8C41 # EXT_texture_sRGB - SRGB_ALPHA_EXT = 0x8C42 # EXT_texture_sRGB - SRGB8_ALPHA8_EXT = 0x8C43 # EXT_texture_sRGB - SLUMINANCE_ALPHA_EXT = 0x8C44 # EXT_texture_sRGB - SLUMINANCE8_ALPHA8_EXT = 0x8C45 # EXT_texture_sRGB - SLUMINANCE_EXT = 0x8C46 # EXT_texture_sRGB - SLUMINANCE8_EXT = 0x8C47 # EXT_texture_sRGB - COMPRESSED_SRGB_EXT = 0x8C48 # EXT_texture_sRGB - COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 # EXT_texture_sRGB - COMPRESSED_SLUMINANCE_EXT = 0x8C4A # EXT_texture_sRGB - COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B # EXT_texture_sRGB - COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C - COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D - COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E - COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F - -# NV_future_use: 0x8C50-0x8C6F - -EXT_texture_compression_latc enum: - COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 - COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 - COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 - COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 - -# NV_future_use: 0x8C74-0x8C75 - -#@@ separate extensions -VERSION_3_0 enum: -EXT_transform_feedback enum: -NV_transform_feedback enum: - TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76 # VERSION_3_0 - TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 - BACK_PRIMARY_COLOR_NV = 0x8C77 - BACK_SECONDARY_COLOR_NV = 0x8C78 - TEXTURE_COORD_NV = 0x8C79 - CLIP_DISTANCE_NV = 0x8C7A - VERTEX_ID_NV = 0x8C7B - PRIMITIVE_ID_NV = 0x8C7C - GENERIC_ATTRIB_NV = 0x8C7D - TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E - TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F # VERSION_3_0 - TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F - TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80 # VERSION_3_0 - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 - ACTIVE_VARYINGS_NV = 0x8C81 - ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 - TRANSFORM_FEEDBACK_VARYINGS = 0x8C83 # VERSION_3_0 - TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 - TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 - TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84 # VERSION_3_0 - TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 - TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 - TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85 # VERSION_3_0 - TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 - TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 - TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 - PRIMITIVES_GENERATED = 0x8C87 # VERSION_3_0 - PRIMITIVES_GENERATED_EXT = 0x8C87 - PRIMITIVES_GENERATED_NV = 0x8C87 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88 # VERSION_3_0 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 - RASTERIZER_DISCARD = 0x8C89 # VERSION_3_0 - RASTERIZER_DISCARD_EXT = 0x8C89 - RASTERIZER_DISCARD_NV = 0x8C89 - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A # VERSION_3_0 - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B # VERSION_3_0 - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B - INTERLEAVED_ATTRIBS = 0x8C8C # VERSION_3_0 - INTERLEAVED_ATTRIBS_EXT = 0x8C8C - INTERLEAVED_ATTRIBS_NV = 0x8C8C - SEPARATE_ATTRIBS = 0x8C8D # VERSION_3_0 - SEPARATE_ATTRIBS_EXT = 0x8C8D - SEPARATE_ATTRIBS_NV = 0x8C8D - TRANSFORM_FEEDBACK_BUFFER = 0x8C8E # VERSION_3_0 - TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E - TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E - TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F # VERSION_3_0 - TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F - TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F - -############################################################################### - -# ATI: 0x8C90-0x8C9F (Affie Munshi, OpenGL ES extensions) - -# AMD_future_use: 0x8C90-0x8C91 - -AMD_compressed_ATC_texture enum: (OpenGL ES only) - ATC_RGB_AMD = 0x8C92 - ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93 - -# AMD_future_use: 0x8C94-0x8C9F - -############################################################################### - -# OpenGL ARB: 0x8CA0-0x8CAF - -VERSION_2_0 enum: - POINT_SPRITE_COORD_ORIGIN = 0x8CA0 - LOWER_LEFT = 0x8CA1 - UPPER_LEFT = 0x8CA2 - STENCIL_BACK_REF = 0x8CA3 - STENCIL_BACK_VALUE_MASK = 0x8CA4 - STENCIL_BACK_WRITEMASK = 0x8CA5 - -VERSION_3_0 enum: - use ARB_framebuffer_object FRAMEBUFFER_BINDING - use ARB_framebuffer_object DRAW_FRAMEBUFFER_BINDING - use ARB_framebuffer_object RENDERBUFFER_BINDING - -ARB_framebuffer_object enum: (note: no ARB suffixes) - FRAMEBUFFER_BINDING = 0x8CA6 # VERSION_3_0 / ARB_fbo - DRAW_FRAMEBUFFER_BINDING = 0x8CA6 # VERSION_3_0 / ARB_fbo # alias GL_FRAMEBUFFER_BINDING - RENDERBUFFER_BINDING = 0x8CA7 # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_object enum: (additional; see below) - FRAMEBUFFER_BINDING_EXT = 0x8CA6 - RENDERBUFFER_BINDING_EXT = 0x8CA7 - -EXT_framebuffer_blit enum: (additional; see below) - DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 # EXT_framebuffer_blit # alias GL_FRAMEBUFFER_BINDING_EXT - -# Aliases EXT_framebuffer_object enums above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - FRAMEBUFFER_BINDING_OES = 0x8CA6 - RENDERBUFFER_BINDING_OES = 0x8CA7 - -VERSION_3_0 enum: - use ARB_framebuffer_object READ_FRAMEBUFFER - use ARB_framebuffer_object DRAW_FRAMEBUFFER - use ARB_framebuffer_object READ_FRAMEBUFFER_BINDING - -ARB_framebuffer_object enum: (note: no ARB suffixes) - READ_FRAMEBUFFER = 0x8CA8 # VERSION_3_0 / ARB_fbo - DRAW_FRAMEBUFFER = 0x8CA9 # VERSION_3_0 / ARB_fbo - READ_FRAMEBUFFER_BINDING = 0x8CAA # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_blit enum: - READ_FRAMEBUFFER_EXT = 0x8CA8 - DRAW_FRAMEBUFFER_EXT = 0x8CA9 - DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 # alias GL_FRAMEBUFFER_BINDING_EXT - READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA - -VERSION_3_0 enum: - use ARB_framebuffer_object RENDERBUFFER_SAMPLES - -ARB_framebuffer_object enum: (note: no ARB suffixes) - RENDERBUFFER_SAMPLES = 0x8CAB # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_multisample enum: - RENDERBUFFER_SAMPLES_EXT = 0x8CAB - -NV_framebuffer_multisample_coverage enum: (additional; see below) - RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB - -# All enums except external format are incompatible with NV_depth_buffer_float -VERSION_3_0 enum: -ARB_depth_buffer_float enum: (note: no ARB suffixes) - DEPTH_COMPONENT32F = 0x8CAC - DEPTH32F_STENCIL8 = 0x8CAD - -# ARB_future_use: 0x8CAF - -############################################################################### - -# 3Dlabs: 0x8CB0-0x8CCF (Barthold Lichtenbelt, 2004/12/1) - -############################################################################### - -# OpenGL ARB: 0x8CD0-0x8D5F (Framebuffer object specification + headroom) - -#@@ separate extensions -VERSION_3_0 enum: -ARB_geometry_shader4 enum: (additional; see below; note: no ARB suffixes) -ARB_framebuffer_object enum: (note: no ARB suffixes) -EXT_framebuffer_object enum: (additional; see above) - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 - FRAMEBUFFER_COMPLETE = 0x8CD5 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 - FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 -## Removed 2005/09/26 in revision #117 of the extension: -## FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = 0x8CD8 - FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 - FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB - FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC - FRAMEBUFFER_UNSUPPORTED = 0x8CDD # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD -## Removed 2005/05/31 in revision #113 of the extension: -## FRAMEBUFFER_STATUS_ERROR_EXT = 0x8CDE - MAX_COLOR_ATTACHMENTS = 0x8CDF # VERSION_3_0 / ARB_fbo - MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF - COLOR_ATTACHMENT0 = 0x8CE0 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT0_EXT = 0x8CE0 - COLOR_ATTACHMENT1 = 0x8CE1 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT1_EXT = 0x8CE1 - COLOR_ATTACHMENT2 = 0x8CE2 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT2_EXT = 0x8CE2 - COLOR_ATTACHMENT3 = 0x8CE3 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT3_EXT = 0x8CE3 - COLOR_ATTACHMENT4 = 0x8CE4 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT4_EXT = 0x8CE4 - COLOR_ATTACHMENT5 = 0x8CE5 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT5_EXT = 0x8CE5 - COLOR_ATTACHMENT6 = 0x8CE6 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT6_EXT = 0x8CE6 - COLOR_ATTACHMENT7 = 0x8CE7 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT7_EXT = 0x8CE7 - COLOR_ATTACHMENT8 = 0x8CE8 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT8_EXT = 0x8CE8 - COLOR_ATTACHMENT9 = 0x8CE9 # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT9_EXT = 0x8CE9 - COLOR_ATTACHMENT10 = 0x8CEA # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT10_EXT = 0x8CEA - COLOR_ATTACHMENT11 = 0x8CEB # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT11_EXT = 0x8CEB - COLOR_ATTACHMENT12 = 0x8CEC # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT12_EXT = 0x8CEC - COLOR_ATTACHMENT13 = 0x8CED # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT13_EXT = 0x8CED - COLOR_ATTACHMENT14 = 0x8CEE # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT14_EXT = 0x8CEE - COLOR_ATTACHMENT15 = 0x8CEF # VERSION_3_0 / ARB_fbo - COLOR_ATTACHMENT15_EXT = 0x8CEF -# 0x8CF0-0x8CFF reserved for color attachments 16-31, if needed - DEPTH_ATTACHMENT = 0x8D00 # VERSION_3_0 / ARB_fbo - DEPTH_ATTACHMENT_EXT = 0x8D00 -# 0x8D01-0x8D1F reserved for depth attachments 1-31, if needed - STENCIL_ATTACHMENT = 0x8D20 # VERSION_3_0 / ARB_fbo - STENCIL_ATTACHMENT_EXT = 0x8D20 -# 0x8D21-0x8D3F reserved for stencil attachments 1-31, if needed - FRAMEBUFFER = 0x8D40 # VERSION_3_0 / ARB_fbo - FRAMEBUFFER_EXT = 0x8D40 - RENDERBUFFER = 0x8D41 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_EXT = 0x8D41 - RENDERBUFFER_WIDTH = 0x8D42 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_WIDTH_EXT = 0x8D42 - RENDERBUFFER_HEIGHT = 0x8D43 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_HEIGHT_EXT = 0x8D43 - RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 -# 0x8D45 unused (reserved for STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead) - STENCIL_INDEX1 = 0x8D46 # VERSION_3_0 / ARB_fbo - STENCIL_INDEX1_EXT = 0x8D46 - STENCIL_INDEX4 = 0x8D47 # VERSION_3_0 / ARB_fbo - STENCIL_INDEX4_EXT = 0x8D47 - STENCIL_INDEX8 = 0x8D48 # VERSION_3_0 / ARB_fbo - STENCIL_INDEX8_EXT = 0x8D48 - STENCIL_INDEX16 = 0x8D49 # VERSION_3_0 / ARB_fbo - STENCIL_INDEX16_EXT = 0x8D49 -# 0x8D4A-0x8D4D reserved for additional stencil formats -# Added 2005/05/31 in revision #113 of the extension: - RENDERBUFFER_RED_SIZE = 0x8D50 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_RED_SIZE_EXT = 0x8D50 - RENDERBUFFER_GREEN_SIZE = 0x8D51 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 - RENDERBUFFER_BLUE_SIZE = 0x8D52 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 - RENDERBUFFER_ALPHA_SIZE = 0x8D53 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 - RENDERBUFFER_DEPTH_SIZE = 0x8D54 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 - RENDERBUFFER_STENCIL_SIZE = 0x8D55 # VERSION_3_0 / ARB_fbo - RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 - -# Aliases EXT_framebuffer_object enum above -# @@@??? does this appear in OES_texture3D, or OES_framebuffer_object? -# extension spec & gl2ext.h disagree! -OES_texture3D enum: (OpenGL ES only; additional; see above) - FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 - -# Aliases EXT_framebuffer_object enums above -OES_framebuffer_object enum: (OpenGL ES only; additional; see below) - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0 - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2 - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3 - FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 - FRAMEBUFFER_COMPLETE_OES = 0x8CD5 - FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6 - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7 - FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9 - FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB - FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC - FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD - COLOR_ATTACHMENT0_OES = 0x8CE0 - DEPTH_ATTACHMENT_OES = 0x8D00 - STENCIL_ATTACHMENT_OES = 0x8D20 - FRAMEBUFFER_OES = 0x8D40 - RENDERBUFFER_OES = 0x8D41 - RENDERBUFFER_WIDTH_OES = 0x8D42 - RENDERBUFFER_HEIGHT_OES = 0x8D43 - RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44 - STENCIL_INDEX1_OES = 0x8D46 - STENCIL_INDEX4_OES = 0x8D47 - STENCIL_INDEX8_OES = 0x8D48 - RENDERBUFFER_RED_SIZE_OES = 0x8D50 - RENDERBUFFER_GREEN_SIZE_OES = 0x8D51 - RENDERBUFFER_BLUE_SIZE_OES = 0x8D52 - RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53 - RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54 - RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55 - -OES_stencil1 enum: (OpenGL ES only; additional; see below) - use OES_framebuffer_object STENCIL_INDEX1_OES - -OES_stencil4 enum: (OpenGL ES only; additional; see below) - use OES_framebuffer_object STENCIL_INDEX4_OES - -OES_stencil8 enum: (OpenGL ES only; additional; see below) - use OES_framebuffer_object STENCIL_INDEX8_OES - -VERSION_3_0 enum: -ARB_framebuffer_object enum: (note: no ARB suffixes) -# Added 2006/10/10 in revision #6b of the extension. - FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56 # VERSION_3_0 / ARB_fbo - MAX_SAMPLES = 0x8D57 # VERSION_3_0 / ARB_fbo - -EXT_framebuffer_multisample enum: (additional; see above) - FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56 - MAX_SAMPLES_EXT = 0x8D57 - -# 0x8D58-0x8D5F reserved for additional FBO enums - -NV_geometry_program4 enum: (additional; see above) - FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4 - -############################################################################### - -# Khronos OpenGL ES WG: 0x8D60-0x8D6F - -OES_texture_cube_map enum: (OpenGL ES only) - TEXTURE_GEN_STR_OES = 0x8D60 - -OES_texture_float enum: (OpenGL ES only) - HALF_FLOAT_OES = 0x8D61 - -OES_vertex_half_float enum: (OpenGL ES only) - use OES_texture_float HALF_FLOAT_OES - -OES_framebuffer_object enum: (OpenGL ES only) - RGB565_OES = 0x8D62 - -# Khronos_future_use: 0x8D63 - -OES_compressed_ETC1_RGB8_texture enum: (OpenGL ES only) - ETC1_RGB8_OES = 0x8D64 - -OES_EGL_image_external enum: (OpenGL ES only) (bug 4621) - TEXTURE_EXTERNAL_OES = 0x8D65 - SAMPLER_EXTERNAL_OES = 0x8D66 - TEXTURE_BINDING_EXTERNAL_OES = 0x8D67 - REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68 - -# Khronos_future_use: 0x8D69-0x8D6F - -############################################################################### - -# NVIDIA: 0x8D70-0x8DEF -# Reserved per email from Pat Brown 2005/10/13 - -#@@ separate extensions -VERSION_3_0 enum: -EXT_texture_integer enum: - RGBA32UI = 0x8D70 # VERSION_3_0 - RGBA32UI_EXT = 0x8D70 - RGB32UI = 0x8D71 # VERSION_3_0 - RGB32UI_EXT = 0x8D71 - ALPHA32UI_EXT = 0x8D72 - INTENSITY32UI_EXT = 0x8D73 - LUMINANCE32UI_EXT = 0x8D74 - LUMINANCE_ALPHA32UI_EXT = 0x8D75 - RGBA16UI = 0x8D76 # VERSION_3_0 - RGBA16UI_EXT = 0x8D76 - RGB16UI = 0x8D77 # VERSION_3_0 - RGB16UI_EXT = 0x8D77 - ALPHA16UI_EXT = 0x8D78 - INTENSITY16UI_EXT = 0x8D79 - LUMINANCE16UI_EXT = 0x8D7A - LUMINANCE_ALPHA16UI_EXT = 0x8D7B - RGBA8UI = 0x8D7C # VERSION_3_0 - RGBA8UI_EXT = 0x8D7C - RGB8UI = 0x8D7D # VERSION_3_0 - RGB8UI_EXT = 0x8D7D - ALPHA8UI_EXT = 0x8D7E - INTENSITY8UI_EXT = 0x8D7F - LUMINANCE8UI_EXT = 0x8D80 - LUMINANCE_ALPHA8UI_EXT = 0x8D81 - RGBA32I = 0x8D82 # VERSION_3_0 - RGBA32I_EXT = 0x8D82 - RGB32I = 0x8D83 # VERSION_3_0 - RGB32I_EXT = 0x8D83 - ALPHA32I_EXT = 0x8D84 - INTENSITY32I_EXT = 0x8D85 - LUMINANCE32I_EXT = 0x8D86 - LUMINANCE_ALPHA32I_EXT = 0x8D87 - RGBA16I = 0x8D88 # VERSION_3_0 - RGBA16I_EXT = 0x8D88 - RGB16I = 0x8D89 # VERSION_3_0 - RGB16I_EXT = 0x8D89 - ALPHA16I_EXT = 0x8D8A - INTENSITY16I_EXT = 0x8D8B - LUMINANCE16I_EXT = 0x8D8C - LUMINANCE_ALPHA16I_EXT = 0x8D8D - RGBA8I = 0x8D8E # VERSION_3_0 - RGBA8I_EXT = 0x8D8E - RGB8I = 0x8D8F # VERSION_3_0 - RGB8I_EXT = 0x8D8F - ALPHA8I_EXT = 0x8D90 - INTENSITY8I_EXT = 0x8D91 - LUMINANCE8I_EXT = 0x8D92 - LUMINANCE_ALPHA8I_EXT = 0x8D93 - RED_INTEGER = 0x8D94 # VERSION_3_0 - RED_INTEGER_EXT = 0x8D94 - GREEN_INTEGER = 0x8D95 # VERSION_3_0 - GREEN_INTEGER_EXT = 0x8D95 - BLUE_INTEGER = 0x8D96 # VERSION_3_0 - BLUE_INTEGER_EXT = 0x8D96 - ALPHA_INTEGER = 0x8D97 # VERSION_3_0 - ALPHA_INTEGER_EXT = 0x8D97 - RGB_INTEGER = 0x8D98 # VERSION_3_0 - RGB_INTEGER_EXT = 0x8D98 - RGBA_INTEGER = 0x8D99 # VERSION_3_0 - RGBA_INTEGER_EXT = 0x8D99 - BGR_INTEGER = 0x8D9A # VERSION_3_0 - BGR_INTEGER_EXT = 0x8D9A - BGRA_INTEGER = 0x8D9B # VERSION_3_0 - BGRA_INTEGER_EXT = 0x8D9B - LUMINANCE_INTEGER_EXT = 0x8D9C - LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D - RGBA_INTEGER_MODE_EXT = 0x8D9E - -# NV_future_use: 0x8D9F - -NV_parameter_buffer_object enum: - MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 - MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 - VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 - GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 - FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 - -NV_gpu_program4 enum: (additional; see above) - MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 - MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 - -VERSION_3_2 enum: - FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 - -ARB_geometry_shader4 enum: (additional; see below) - FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 - FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 - -NV_geometry_program4 enum: (additional; see above) - FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8 - FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9 - -# NV_future_use: 0x8DAA - -VERSION_3_0 enum: -ARB_depth_buffer_float enum: (additional; see above; some values different from NV; note: no ARB suffixes) - FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD - -NV_depth_buffer_float enum: - DEPTH_COMPONENT32F_NV = 0x8DAB - DEPTH32F_STENCIL8_NV = 0x8DAC - FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD - DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF - -# NV_future_use: 0x8DAE -# NV_future_use: 0x8DB0-0x8DB8 - -VERSION_3_0 enum: -ARB_framebuffer_sRGB enum: (note: no ARB suffixes) - FRAMEBUFFER_SRGB = 0x8DB9 # VERSION_3_0 / ARB_sRGB - -EXT_framebuffer_sRGB enum: - FRAMEBUFFER_SRGB_EXT = 0x8DB9 - FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA - -VERSION_3_0 enum: -ARB_texture_compression_rgtc enum: (note: no ARB suffixes) - COMPRESSED_RED_RGTC1 = 0x8DBB # VERSION_3_0 / ARB_tcrgtc - COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC # VERSION_3_0 / ARB_tcrgtc - COMPRESSED_RG_RGTC2 = 0x8DBD # VERSION_3_0 / ARB_tcrgtc - COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE # VERSION_3_0 / ARB_tcrgtc - -EXT_texture_compression_rgtc enum: - COMPRESSED_RED_RGTC1_EXT = 0x8DBB - COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC - COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD - COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE - -# NV_future_use: 0x8DBF - -VERSION_3_0 enum: - SAMPLER_1D_ARRAY = 0x8DC0 # VERSION_3_0 - SAMPLER_2D_ARRAY = 0x8DC1 # VERSION_3_0 - SAMPLER_1D_ARRAY_SHADOW = 0x8DC3 # VERSION_3_0 - SAMPLER_2D_ARRAY_SHADOW = 0x8DC4 # VERSION_3_0 - SAMPLER_CUBE_SHADOW = 0x8DC5 # VERSION_3_0 - UNSIGNED_INT_VEC2 = 0x8DC6 # VERSION_3_0 - UNSIGNED_INT_VEC3 = 0x8DC7 # VERSION_3_0 - UNSIGNED_INT_VEC4 = 0x8DC8 # VERSION_3_0 - INT_SAMPLER_1D = 0x8DC9 # VERSION_3_0 - INT_SAMPLER_2D = 0x8DCA # VERSION_3_0 - INT_SAMPLER_3D = 0x8DCB # VERSION_3_0 - INT_SAMPLER_CUBE = 0x8DCC # VERSION_3_0 - INT_SAMPLER_1D_ARRAY = 0x8DCE # VERSION_3_0 - INT_SAMPLER_2D_ARRAY = 0x8DCF # VERSION_3_0 - UNSIGNED_INT_SAMPLER_1D = 0x8DD1 # VERSION_3_0 - UNSIGNED_INT_SAMPLER_2D = 0x8DD2 # VERSION_3_0 - UNSIGNED_INT_SAMPLER_3D = 0x8DD3 # VERSION_3_0 - UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4 # VERSION_3_0 - UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6 # VERSION_3_0 - UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7 # VERSION_3_0 - -VERSION_3_1 enum: (Promoted from EXT_gpu_shader4 + ARB_texture_rectangle / ARB_uniform_buffer_object) - SAMPLER_BUFFER = 0x8DC2 # EXT_gpu_shader4 + ARB_texture_buffer_object - INT_SAMPLER_2D_RECT = 0x8DCD # EXT_gpu_shader4 + ARB_texture_rectangle - INT_SAMPLER_BUFFER = 0x8DD0 # EXT_gpu_shader4 + ARB_texture_buffer_object - UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5 # EXT_gpu_shader4 + ARB_texture_rectangle - UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8 # EXT_gpu_shader4 + ARB_texture_buffer_object - -EXT_gpu_shader4 enum: - SAMPLER_1D_ARRAY_EXT = 0x8DC0 - SAMPLER_2D_ARRAY_EXT = 0x8DC1 - SAMPLER_BUFFER_EXT = 0x8DC2 - SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 - SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 - SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 - UNSIGNED_INT_VEC2_EXT = 0x8DC6 - UNSIGNED_INT_VEC3_EXT = 0x8DC7 - UNSIGNED_INT_VEC4_EXT = 0x8DC8 - INT_SAMPLER_1D_EXT = 0x8DC9 - INT_SAMPLER_2D_EXT = 0x8DCA - INT_SAMPLER_3D_EXT = 0x8DCB - INT_SAMPLER_CUBE_EXT = 0x8DCC - INT_SAMPLER_2D_RECT_EXT = 0x8DCD - INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE - INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF - INT_SAMPLER_BUFFER_EXT = 0x8DD0 - UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 - UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 - UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 - UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 - UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 - UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 - UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 - UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8 - -VERSION_3_2 enum: - GEOMETRY_SHADER = 0x8DD9 - -ARB_geometry_shader4 enum: - GEOMETRY_SHADER_ARB = 0x8DD9 - -EXT_geometry_shader4 enum: - GEOMETRY_SHADER_EXT = 0x8DD9 - -ARB_geometry_shader4 enum: (additional; see above) - GEOMETRY_VERTICES_OUT_ARB = 0x8DDA - GEOMETRY_INPUT_TYPE_ARB = 0x8DDB - GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC - -NV_geometry_program4 enum: (additional; see above) - GEOMETRY_VERTICES_OUT_EXT = 0x8DDA - GEOMETRY_INPUT_TYPE_EXT = 0x8DDB - GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC - -ARB_geometry_shader4 enum: (additional; see above) - MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD - MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE - MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 - -VERSION_3_2 enum: - MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 - -EXT_geometry_shader4 enum: (additional; see above) - MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD - MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE - MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1 - -EXT_bindable_uniform enum: - MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 - MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 - MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 - -# NV_future_use: 0x8DE5-0x8DEC - -EXT_bindable_uniform enum: (additional; see above) - MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED - UNIFORM_BUFFER_EXT = 0x8DEE - UNIFORM_BUFFER_BINDING_EXT = 0x8DEF - -############################################################################### - -# Khronos OpenGL ES WG: 0x8DF0-0x8E0F - -# Khronos_future_use: 0x8DF0-0x8DF5 - -OES_vertex_type_10_10_10_2 enum: (OpenGL ES only) - UNSIGNED_INT_10_10_10_2_OES = 0x8DF6 - INT_10_10_10_2_OES = 0x8DF7 - -# Khronos_future_use: 0x8DF8-0x8E0F - -############################################################################### - -# NVIDIA: 0x8E10-0x8E8F -# Reserved per email from Michael Gold 2006/8/7 - -NV_framebuffer_multisample_coverage enum: - RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 - MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 - MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 - -VERSION_3_0 enum: - QUERY_WAIT = 0x8E13 # VERSION_3_0 - QUERY_NO_WAIT = 0x8E14 # VERSION_3_0 - QUERY_BY_REGION_WAIT = 0x8E15 # VERSION_3_0 - QUERY_BY_REGION_NO_WAIT = 0x8E16 # VERSION_3_0 - -GL_NV_conditional_render enum: - QUERY_WAIT_NV = 0x8E13 - QUERY_NO_WAIT_NV = 0x8E14 - QUERY_BY_REGION_WAIT_NV = 0x8E15 - QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 - -# NV_future_use: 0x8E17-0x8E21 - -NV_transform_feedback2 enum: - TRANSFORM_FEEDBACK_NV = 0x8E22 - TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 - TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 - TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 - -NV_present_video enum: - FRAME_NV = 0x8E26 - FIELDS_NV = 0x8E27 - CURRENT_TIME_NV = 0x8E28 - NUM_FILL_STREAMS_NV = 0x8E29 - PRESENT_TIME_NV = 0x8E2A - PRESENT_DURATION_NV = 0x8E2B - -# NV_future_use: 0x8E2C - -EXT_direct_state_access enum: - PROGRAM_MATRIX_EXT = 0x8E2D - TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E - PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F - -# NV_future_use: 0x8E30-0x8E41 - -EXT_texture_swizzle enum: - TEXTURE_SWIZZLE_R_EXT = 0x8E42 - TEXTURE_SWIZZLE_G_EXT = 0x8E43 - TEXTURE_SWIZZLE_B_EXT = 0x8E44 - TEXTURE_SWIZZLE_A_EXT = 0x8E45 - TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 - -# NV_future_use: 0x8E47-0x8E4B - -VERSION_3_2 enum: - use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION - use ARB_provoking_vertex FIRST_VERTEX_CONVENTION - use ARB_provoking_vertex LAST_VERTEX_CONVENTION - use ARB_provoking_vertex PROVOKING_VERTEX - -ARB_provoking_vertex enum: - QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C - FIRST_VERTEX_CONVENTION = 0x8E4D - LAST_VERTEX_CONVENTION = 0x8E4E - PROVOKING_VERTEX = 0x8E4F - -EXT_provoking_vertex enum: - QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C - FIRST_VERTEX_CONVENTION_EXT = 0x8E4D - LAST_VERTEX_CONVENTION_EXT = 0x8E4E - PROVOKING_VERTEX_EXT = 0x8E4F - -VERSION_3_2 enum: - use ARB_texture_multisample SAMPLE_POSITION - use ARB_texture_multisample SAMPLE_MASK - use ARB_texture_multisample SAMPLE_MASK_VALUE - use ARB_texture_multisample MAX_SAMPLE_MASK_WORDS - -ARB_texture_multisample enum: - SAMPLE_POSITION = 0x8E50 - SAMPLE_MASK = 0x8E51 - SAMPLE_MASK_VALUE = 0x8E52 - MAX_SAMPLE_MASK_WORDS = 0x8E59 - -NV_explicit_multisample enum: - SAMPLE_POSITION_NV = 0x8E50 - SAMPLE_MASK_NV = 0x8E51 - SAMPLE_MASK_VALUE_NV = 0x8E52 - TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 - TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 - TEXTURE_RENDERBUFFER_NV = 0x8E55 - SAMPLER_RENDERBUFFER_NV = 0x8E56 - INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 - UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 - MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 - -# NV_future_use: 0x8E5A-0x8E5D - -ARB_texture_gather enum: - MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E - MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F - -# NV_future_use: 0x8E60-0x8E8F - -############################################################################### - -# QNX: 0x8E90-0x8E9F -# For GL_QNX_texture_tiling, GL_QNX_complex_polygon, GL_QNX_stippled_lines -# (Khronos bug 696) - -# QNX_future_use: 0x8E90-0x8E9F - -############################################################################### - -# Imagination Tech.: 0x8EA0-0x8EAF - -############################################################################### - -# Khronos OpenGL ES WG: 0x8EB0-0x8EBF -# Assigned for Affie Munshi on 2007/07/20 - -############################################################################### - -# Vincent: 0x8EC0-0x8ECF - -############################################################################### - -# NVIDIA: 0x8ED0-0x8F4F -# Assigned for Pat Brown (Khronos bug 3191) - -# NV_future_use: 0x8ED0-0x8F1C - -NV_shader_buffer_load enum: - BUFFER_GPU_ADDRESS_NV = 0x8F1D - -NV_vertex_buffer_unified_memory enum: - VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E - ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F - VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 - VERTEX_ARRAY_ADDRESS_NV = 0x8F21 - NORMAL_ARRAY_ADDRESS_NV = 0x8F22 - COLOR_ARRAY_ADDRESS_NV = 0x8F23 - INDEX_ARRAY_ADDRESS_NV = 0x8F24 - TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 - EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 - SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 - FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 - ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 - VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A - VERTEX_ARRAY_LENGTH_NV = 0x8F2B - NORMAL_ARRAY_LENGTH_NV = 0x8F2C - COLOR_ARRAY_LENGTH_NV = 0x8F2D - INDEX_ARRAY_LENGTH_NV = 0x8F2E - TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F - EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 - SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 - FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 - ELEMENT_ARRAY_LENGTH_NV = 0x8F33 - -NV_shader_buffer_load enum: (additional; see above) - GPU_ADDRESS_NV = 0x8F34 - MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 - -ARB_copy_buffer enum: - COPY_READ_BUFFER = 0x8F36 - COPY_WRITE_BUFFER = 0x8F37 - -VERSION_3_1 enum: - use ARB_copy_buffer COPY_READ_BUFFER - use ARB_copy_buffer COPY_WRITE_BUFFER - -# NVIDIA_future_use: 0x8F38-0x8F4F - -############################################################################### - -# 3Dlabs: 0x8F50-0x8F5F -# Assigned for Jon Kennedy (Khronos public bug 75) - -############################################################################### - -# ARM: 0x8F60-0x8F6F -# Assigned for Remi Pedersen (Khronos bug 3745) - -############################################################################### - -# HI Corp: 0x8F70-0x8F7F -# Assigned for Mark Callow (Khronos bug 4055) - -############################################################################### - -# Zebra Imaging: 0x8F80-0x8F8F -# Assigned for Mike Weiblen (Khronos public bug 91) - -############################################################################### - -# OpenGL ARB: 0x8F90-0x8F9F (SNORM textures, 3.1 primitive restart server state) - -VERSION_3_1 enum: - RED_SNORM = 0x8F90 # VERSION_3_1 - RG_SNORM = 0x8F91 # VERSION_3_1 - RGB_SNORM = 0x8F92 # VERSION_3_1 - RGBA_SNORM = 0x8F93 # VERSION_3_1 - R8_SNORM = 0x8F94 # VERSION_3_1 - RG8_SNORM = 0x8F95 # VERSION_3_1 - RGB8_SNORM = 0x8F96 # VERSION_3_1 - RGBA8_SNORM = 0x8F97 # VERSION_3_1 - R16_SNORM = 0x8F98 # VERSION_3_1 - RG16_SNORM = 0x8F99 # VERSION_3_1 - RGB16_SNORM = 0x8F9A # VERSION_3_1 - RGBA16_SNORM = 0x8F9B # VERSION_3_1 - SIGNED_NORMALIZED = 0x8F9C # VERSION_3_1 - PRIMITIVE_RESTART = 0x8F9D # Different from NV_primitive_restart value - PRIMITIVE_RESTART_INDEX = 0x8F9E # Different from NV_primitive_restart value - -ARB_texture_gather enum: (additional; see above) - MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F - -############################################################################### - -# Qualcomm: 0x8FA0-0x8FBF -# Assigned for Maurice Ribble (Khronos bug 4512) - -QCOM_driver_control enum: (OpenGL ES only) - PERFMON_GLOBAL_MODE_QCOM = 0x8FA0 - -# QCOM_future_use: 0x8FA1-0x8FBF - -############################################################################### - -# Vivante: 0x8FC0-0x8FDF -# Assigned for Frido Garritsen (Khronos bug 4526) - -############################################################################### - -# NVIDIA: 0x8FE0-0x8FFF -# Assigned for Pat Brown (Khronos bug 4935) - -# NV_future_use: 0x8FE0-0x8FFF - -############################################################################### - -# AMD: 0x9000-0x901F -# Assigned for Bill Licea-Kane - -AMD_vertex_shader_tesselator enum: - SAMPLER_BUFFER_AMD = 0x9001 - INT_SAMPLER_BUFFER_AMD = 0x9002 - UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 - TESSELLATION_MODE_AMD = 0x9004 - TESSELLATION_FACTOR_AMD = 0x9005 - DISCRETE_AMD = 0x9006 - CONTINUOUS_AMD = 0x9007 - -ARB_texture_cube_map_array enum: - TEXTURE_CUBE_MAP_ARRAY = 0x9009 - TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A - PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B - SAMPLER_CUBE_MAP_ARRAY = 0x900C - SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D - INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E - UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F - -# AMD_future_use: 0x9008-0x900F - -EXT_texture_snorm enum: - ALPHA_SNORM = 0x9010 - LUMINANCE_SNORM = 0x9011 - LUMINANCE_ALPHA_SNORM = 0x9012 - INTENSITY_SNORM = 0x9013 - ALPHA8_SNORM = 0x9014 - LUMINANCE8_SNORM = 0x9015 - LUMINANCE8_ALPHA8_SNORM = 0x9016 - INTENSITY8_SNORM = 0x9017 - ALPHA16_SNORM = 0x9018 - LUMINANCE16_SNORM = 0x9019 - LUMINANCE16_ALPHA16_SNORM = 0x901A - INTENSITY16_SNORM = 0x901B - -# AMD_future_use: 0x901C-0x901F - -############################################################################### - -# NVIDIA: 0x9020-0x90FF -# Assigned for Pat Brown (Khronos bug 4935) - -NV_video_capture enum: - VIDEO_BUFFER_NV = 0x9020 - VIDEO_BUFFER_BINDING_NV = 0x9021 - FIELD_UPPER_NV = 0x9022 - FIELD_LOWER_NV = 0x9023 - NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 - NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 - VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 - LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 - VIDEO_BUFFER_PITCH_NV = 0x9028 - VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 - VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A - VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B - VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C - VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D - PARTIAL_SUCCESS_NV = 0x902E - SUCCESS_NV = 0x902F - FAILURE_NV = 0x9030 - YCBYCR8_422_NV = 0x9031 - YCBAYCR8A_4224_NV = 0x9032 - Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 - Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 - Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 - Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 - Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 - VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 - VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 - VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A - VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B - VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C - -# NV_future_use: 0x903D-0x90FF - -############################################################################### - -# OpenGL ARB: 0x9100-0x912F - -VERSION_3_2 enum: - use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE - use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE - use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE - use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample TEXTURE_SAMPLES - use ARB_texture_multisample TEXTURE_FIXED_SAMPLE_LOCATIONS - use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample MAX_COLOR_TEXTURE_SAMPLES - use ARB_texture_multisample MAX_DEPTH_TEXTURE_SAMPLES - use ARB_texture_multisample MAX_INTEGER_SAMPLES - -ARB_texture_multisample enum: - TEXTURE_2D_MULTISAMPLE = 0x9100 - PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101 - TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102 - PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103 - TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104 - TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105 - TEXTURE_SAMPLES = 0x9106 - TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107 - SAMPLER_2D_MULTISAMPLE = 0x9108 - INT_SAMPLER_2D_MULTISAMPLE = 0x9109 - UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A - SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B - INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C - UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D - MAX_COLOR_TEXTURE_SAMPLES = 0x910E - MAX_DEPTH_TEXTURE_SAMPLES = 0x910F - MAX_INTEGER_SAMPLES = 0x9110 - -VERSION_3_2 enum: - use ARB_sync MAX_SERVER_WAIT_TIMEOUT - use ARB_sync OBJECT_TYPE - use ARB_sync SYNC_CONDITION - use ARB_sync SYNC_STATUS - use ARB_sync SYNC_FLAGS - use ARB_sync SYNC_FENCE - use ARB_sync SYNC_GPU_COMMANDS_COMPLETE - use ARB_sync UNSIGNALED - use ARB_sync SIGNALED - use ARB_sync ALREADY_SIGNALED - use ARB_sync TIMEOUT_EXPIRED - use ARB_sync CONDITION_SATISFIED - use ARB_sync WAIT_FAILED - use ARB_sync TIMEOUT_IGNORED - use ARB_sync SYNC_FLUSH_COMMANDS_BIT - use ARB_sync TIMEOUT_IGNORED - -ARB_sync enum: - MAX_SERVER_WAIT_TIMEOUT = 0x9111 - OBJECT_TYPE = 0x9112 - SYNC_CONDITION = 0x9113 - SYNC_STATUS = 0x9114 - SYNC_FLAGS = 0x9115 - SYNC_FENCE = 0x9116 - SYNC_GPU_COMMANDS_COMPLETE = 0x9117 - UNSIGNALED = 0x9118 - SIGNALED = 0x9119 - ALREADY_SIGNALED = 0x911A - TIMEOUT_EXPIRED = 0x911B - CONDITION_SATISFIED = 0x911C - WAIT_FAILED = 0x911D - SYNC_FLUSH_COMMANDS_BIT = 0x00000001 - TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFull - -VERSION_3_0 enum: - BUFFER_ACCESS_FLAGS = 0x911F - BUFFER_MAP_LENGTH = 0x9120 - BUFFER_MAP_OFFSET = 0x9121 - -VERSION_3_2 enum: - MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122 - MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 - MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 - MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125 - -VERSION_3_2 enum: - CONTEXT_CORE_PROFILE_BIT = 0x00000001 - CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 - CONTEXT_PROFILE_MASK = 0x9126 - -# ARB_future_use: 0x9127-0x912F - -############################################################################### - -# Imagination Tech.: 0x9130-0x913F (bug 882) - -IMG_program_binary: (OpenGL ES only) - SGX_PROGRAM_BINARY_IMG = 0x9130 - -# IMG_future_use: 0x9131-0x913F - -############################################################################### -### Please remember that new enumerant allocations must be obtained by request -### to the Khronos API registrar (see comments at the top of this file) -### File requests in the Khronos Bugzilla, OpenGL project, Registry component. -############################################################################### - -# Any_vendor_future_use: 0x9140-0xFFFF -# -# This range must be the last range in the file. To generate a new -# range, allocate multiples of 16 from the beginning of the -# Any_vendor_future_use range and update enum.spec - -# (NOTE: first fill the gap from 0x8FE0-0x8FFF before proceeding here) - -############################################################################### - -# ARB: 100000-100999 (GLU enumerants only) -# ARB: 101000-101999 (Conformance tests only) - -############################################################################### - -# IBM: 103000-103999 -# CULL_VERTEX_IBM = 103050 -# VERTEX_ARRAY_LIST_IBM = 103070 -# NORMAL_ARRAY_LIST_IBM = 103071 -# COLOR_ARRAY_LIST_IBM = 103072 -# INDEX_ARRAY_LIST_IBM = 103073 -# TEXTURE_COORD_ARRAY_LIST_IBM = 103074 -# EDGE_FLAG_ARRAY_LIST_IBM = 103075 -# FOG_COORDINATE_ARRAY_LIST_IBM = 103076 -# SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 -# VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 -# NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 -# COLOR_ARRAY_LIST_STRIDE_IBM = 103082 -# INDEX_ARRAY_LIST_STRIDE_IBM = 103083 -# TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 -# EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 -# FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 -# SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 - -############################################################################### - -# NEC: 104000-104999 -# Compaq: 105000-105999 (Compaq was acquired by HP) -# KPC: 106000-106999 (Kubota is out of business) -# PGI: 107000-107999 (Portable was acquired by Template Graphics) -# E&S: 108000-108999 - -############################################################################### diff --git a/src/glx/apple/specs/enumext.spec b/src/glx/apple/specs/enumext.spec deleted file mode 100644 index a89a154ab6..0000000000 --- a/src/glx/apple/specs/enumext.spec +++ /dev/null @@ -1,6195 +0,0 @@ -# List of GL enumerants for glext.h header -# -# This is derived from the master GL enumerant registry (enum.spec). -# -# Unlike enum.spec, enumext.spec is -# (1) Grouped by GL core version or extension number -# (2) While it includes all extension and core enumerants, the -# generator scripts for glext.h leave out VERSION_1_1 -# tokens since it's assumed all today support at least -# OpenGL 1.1 -# (3) Has no 'Extensions' section, since enums are always -# conditionally protected against multiple definition -# by glextenum.pl. -# (4) Is processed by glextenum.pl, which has evolved -# from enum.pl - should merge back into one script. - -# glext.h version number - this should be automatically updated, -# when changing either enum or template spec files. - -############################################################################### -# -# OpenGL 1.0/1.1 enums (there is no VERSION_1_0 token) -# -############################################################################### - -VERSION_1_1 enum: -passthru: /* AttribMask */ - DEPTH_BUFFER_BIT = 0x00000100 # AttribMask - STENCIL_BUFFER_BIT = 0x00000400 # AttribMask - COLOR_BUFFER_BIT = 0x00004000 # AttribMask -passthru: /* Boolean */ - FALSE = 0 # Boolean - TRUE = 1 # Boolean -passthru: /* BeginMode */ - POINTS = 0x0000 # BeginMode - LINES = 0x0001 # BeginMode - LINE_LOOP = 0x0002 # BeginMode - LINE_STRIP = 0x0003 # BeginMode - TRIANGLES = 0x0004 # BeginMode - TRIANGLE_STRIP = 0x0005 # BeginMode - TRIANGLE_FAN = 0x0006 # BeginMode -passthru: /* AlphaFunction */ - NEVER = 0x0200 # AlphaFunction - LESS = 0x0201 # AlphaFunction - EQUAL = 0x0202 # AlphaFunction - LEQUAL = 0x0203 # AlphaFunction - GREATER = 0x0204 # AlphaFunction - NOTEQUAL = 0x0205 # AlphaFunction - GEQUAL = 0x0206 # AlphaFunction - ALWAYS = 0x0207 # AlphaFunction -passthru: /* BlendingFactorDest */ - ZERO = 0 # BlendingFactorDest - ONE = 1 # BlendingFactorDest - SRC_COLOR = 0x0300 # BlendingFactorDest - ONE_MINUS_SRC_COLOR = 0x0301 # BlendingFactorDest - SRC_ALPHA = 0x0302 # BlendingFactorDest - ONE_MINUS_SRC_ALPHA = 0x0303 # BlendingFactorDest - DST_ALPHA = 0x0304 # BlendingFactorDest - ONE_MINUS_DST_ALPHA = 0x0305 # BlendingFactorDest -passthru: /* BlendingFactorSrc */ - DST_COLOR = 0x0306 # BlendingFactorSrc - ONE_MINUS_DST_COLOR = 0x0307 # BlendingFactorSrc - SRC_ALPHA_SATURATE = 0x0308 # BlendingFactorSrc -passthru: /* DrawBufferMode */ - NONE = 0 # DrawBufferMode - FRONT_LEFT = 0x0400 # DrawBufferMode - FRONT_RIGHT = 0x0401 # DrawBufferMode - BACK_LEFT = 0x0402 # DrawBufferMode - BACK_RIGHT = 0x0403 # DrawBufferMode - FRONT = 0x0404 # DrawBufferMode - BACK = 0x0405 # DrawBufferMode - LEFT = 0x0406 # DrawBufferMode - RIGHT = 0x0407 # DrawBufferMode - FRONT_AND_BACK = 0x0408 # DrawBufferMode -passthru: /* ErrorCode */ - NO_ERROR = 0 # ErrorCode - INVALID_ENUM = 0x0500 # ErrorCode - INVALID_VALUE = 0x0501 # ErrorCode - INVALID_OPERATION = 0x0502 # ErrorCode - OUT_OF_MEMORY = 0x0505 # ErrorCode -passthru: /* FrontFaceDirection */ - CW = 0x0900 # FrontFaceDirection - CCW = 0x0901 # FrontFaceDirection -passthru: /* GetPName */ - POINT_SIZE = 0x0B11 # 1 F # GetPName - POINT_SIZE_RANGE = 0x0B12 # 2 F # GetPName - POINT_SIZE_GRANULARITY = 0x0B13 # 1 F # GetPName - LINE_SMOOTH = 0x0B20 # 1 I # GetPName - LINE_WIDTH = 0x0B21 # 1 F # GetPName - LINE_WIDTH_RANGE = 0x0B22 # 2 F # GetPName - LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F # GetPName - POLYGON_SMOOTH = 0x0B41 # 1 I # GetPName - CULL_FACE = 0x0B44 # 1 I # GetPName - CULL_FACE_MODE = 0x0B45 # 1 I # GetPName - FRONT_FACE = 0x0B46 # 1 I # GetPName - DEPTH_RANGE = 0x0B70 # 2 F # GetPName - DEPTH_TEST = 0x0B71 # 1 I # GetPName - DEPTH_WRITEMASK = 0x0B72 # 1 I # GetPName - DEPTH_CLEAR_VALUE = 0x0B73 # 1 F # GetPName - DEPTH_FUNC = 0x0B74 # 1 I # GetPName - STENCIL_TEST = 0x0B90 # 1 I # GetPName - STENCIL_CLEAR_VALUE = 0x0B91 # 1 I # GetPName - STENCIL_FUNC = 0x0B92 # 1 I # GetPName - STENCIL_VALUE_MASK = 0x0B93 # 1 I # GetPName - STENCIL_FAIL = 0x0B94 # 1 I # GetPName - STENCIL_PASS_DEPTH_FAIL = 0x0B95 # 1 I # GetPName - STENCIL_PASS_DEPTH_PASS = 0x0B96 # 1 I # GetPName - STENCIL_REF = 0x0B97 # 1 I # GetPName - STENCIL_WRITEMASK = 0x0B98 # 1 I # GetPName - VIEWPORT = 0x0BA2 # 4 I # GetPName - DITHER = 0x0BD0 # 1 I # GetPName - BLEND_DST = 0x0BE0 # 1 I # GetPName - BLEND_SRC = 0x0BE1 # 1 I # GetPName - BLEND = 0x0BE2 # 1 I # GetPName - LOGIC_OP_MODE = 0x0BF0 # 1 I # GetPName - COLOR_LOGIC_OP = 0x0BF2 # 1 I # GetPName - DRAW_BUFFER = 0x0C01 # 1 I # GetPName - READ_BUFFER = 0x0C02 # 1 I # GetPName - SCISSOR_BOX = 0x0C10 # 4 I # GetPName - SCISSOR_TEST = 0x0C11 # 1 I # GetPName - COLOR_CLEAR_VALUE = 0x0C22 # 4 F # GetPName - COLOR_WRITEMASK = 0x0C23 # 4 I # GetPName - DOUBLEBUFFER = 0x0C32 # 1 I # GetPName - STEREO = 0x0C33 # 1 I # GetPName - LINE_SMOOTH_HINT = 0x0C52 # 1 I # GetPName - POLYGON_SMOOTH_HINT = 0x0C53 # 1 I # GetPName - UNPACK_SWAP_BYTES = 0x0CF0 # 1 I # GetPName - UNPACK_LSB_FIRST = 0x0CF1 # 1 I # GetPName - UNPACK_ROW_LENGTH = 0x0CF2 # 1 I # GetPName - UNPACK_SKIP_ROWS = 0x0CF3 # 1 I # GetPName - UNPACK_SKIP_PIXELS = 0x0CF4 # 1 I # GetPName - UNPACK_ALIGNMENT = 0x0CF5 # 1 I # GetPName - PACK_SWAP_BYTES = 0x0D00 # 1 I # GetPName - PACK_LSB_FIRST = 0x0D01 # 1 I # GetPName - PACK_ROW_LENGTH = 0x0D02 # 1 I # GetPName - PACK_SKIP_ROWS = 0x0D03 # 1 I # GetPName - PACK_SKIP_PIXELS = 0x0D04 # 1 I # GetPName - PACK_ALIGNMENT = 0x0D05 # 1 I # GetPName - MAX_TEXTURE_SIZE = 0x0D33 # 1 I # GetPName - MAX_VIEWPORT_DIMS = 0x0D3A # 2 F # GetPName - SUBPIXEL_BITS = 0x0D50 # 1 I # GetPName - TEXTURE_1D = 0x0DE0 # 1 I # GetPName - TEXTURE_2D = 0x0DE1 # 1 I # GetPName - POLYGON_OFFSET_UNITS = 0x2A00 # 1 F # GetPName - POLYGON_OFFSET_POINT = 0x2A01 # 1 I # GetPName - POLYGON_OFFSET_LINE = 0x2A02 # 1 I # GetPName - POLYGON_OFFSET_FILL = 0x8037 # 1 I # GetPName - POLYGON_OFFSET_FACTOR = 0x8038 # 1 F # GetPName - TEXTURE_BINDING_1D = 0x8068 # 1 I # GetPName - TEXTURE_BINDING_2D = 0x8069 # 1 I # GetPName -passthru: /* GetTextureParameter */ - TEXTURE_WIDTH = 0x1000 # GetTextureParameter - TEXTURE_HEIGHT = 0x1001 # GetTextureParameter - TEXTURE_INTERNAL_FORMAT = 0x1003 # GetTextureParameter - TEXTURE_BORDER_COLOR = 0x1004 # GetTextureParameter - TEXTURE_RED_SIZE = 0x805C # GetTextureParameter - TEXTURE_GREEN_SIZE = 0x805D # GetTextureParameter - TEXTURE_BLUE_SIZE = 0x805E # GetTextureParameter - TEXTURE_ALPHA_SIZE = 0x805F # GetTextureParameter -passthru: /* HintMode */ - DONT_CARE = 0x1100 # HintMode - FASTEST = 0x1101 # HintMode - NICEST = 0x1102 # HintMode -passthru: /* DataType */ - BYTE = 0x1400 # DataType - UNSIGNED_BYTE = 0x1401 # DataType - SHORT = 0x1402 # DataType - UNSIGNED_SHORT = 0x1403 # DataType - INT = 0x1404 # DataType - UNSIGNED_INT = 0x1405 # DataType - FLOAT = 0x1406 # DataType - DOUBLE = 0x140A # DataType -passthru: /* LogicOp */ - CLEAR = 0x1500 # LogicOp - AND = 0x1501 # LogicOp - AND_REVERSE = 0x1502 # LogicOp - COPY = 0x1503 # LogicOp - AND_INVERTED = 0x1504 # LogicOp - NOOP = 0x1505 # LogicOp - XOR = 0x1506 # LogicOp - OR = 0x1507 # LogicOp - NOR = 0x1508 # LogicOp - EQUIV = 0x1509 # LogicOp - INVERT = 0x150A # LogicOp - OR_REVERSE = 0x150B # LogicOp - COPY_INVERTED = 0x150C # LogicOp - OR_INVERTED = 0x150D # LogicOp - NAND = 0x150E # LogicOp - SET = 0x150F # LogicOp -passthru: /* MatrixMode (for gl3.h, FBO attachment type) */ - TEXTURE = 0x1702 # MatrixMode -passthru: /* PixelCopyType */ - COLOR = 0x1800 # PixelCopyType - DEPTH = 0x1801 # PixelCopyType - STENCIL = 0x1802 # PixelCopyType -passthru: /* PixelFormat */ - STENCIL_INDEX = 0x1901 # PixelFormat - DEPTH_COMPONENT = 0x1902 # PixelFormat - RED = 0x1903 # PixelFormat - GREEN = 0x1904 # PixelFormat - BLUE = 0x1905 # PixelFormat - ALPHA = 0x1906 # PixelFormat - RGB = 0x1907 # PixelFormat - RGBA = 0x1908 # PixelFormat -passthru: /* PolygonMode */ - POINT = 0x1B00 # PolygonMode - LINE = 0x1B01 # PolygonMode - FILL = 0x1B02 # PolygonMode -passthru: /* StencilOp */ - KEEP = 0x1E00 # StencilOp - REPLACE = 0x1E01 # StencilOp - INCR = 0x1E02 # StencilOp - DECR = 0x1E03 # StencilOp -passthru: /* StringName */ - VENDOR = 0x1F00 # StringName - RENDERER = 0x1F01 # StringName - VERSION = 0x1F02 # StringName - EXTENSIONS = 0x1F03 # StringName -passthru: /* TextureMagFilter */ - NEAREST = 0x2600 # TextureMagFilter - LINEAR = 0x2601 # TextureMagFilter -passthru: /* TextureMinFilter */ - NEAREST_MIPMAP_NEAREST = 0x2700 # TextureMinFilter - LINEAR_MIPMAP_NEAREST = 0x2701 # TextureMinFilter - NEAREST_MIPMAP_LINEAR = 0x2702 # TextureMinFilter - LINEAR_MIPMAP_LINEAR = 0x2703 # TextureMinFilter -passthru: /* TextureParameterName */ - TEXTURE_MAG_FILTER = 0x2800 # TextureParameterName - TEXTURE_MIN_FILTER = 0x2801 # TextureParameterName - TEXTURE_WRAP_S = 0x2802 # TextureParameterName - TEXTURE_WRAP_T = 0x2803 # TextureParameterName -passthru: /* TextureTarget */ - PROXY_TEXTURE_1D = 0x8063 # TextureTarget - PROXY_TEXTURE_2D = 0x8064 # TextureTarget -passthru: /* TextureWrapMode */ - REPEAT = 0x2901 # TextureWrapMode -passthru: /* PixelInternalFormat */ - R3_G3_B2 = 0x2A10 # PixelInternalFormat - RGB4 = 0x804F # PixelInternalFormat - RGB5 = 0x8050 # PixelInternalFormat - RGB8 = 0x8051 # PixelInternalFormat - RGB10 = 0x8052 # PixelInternalFormat - RGB12 = 0x8053 # PixelInternalFormat - RGB16 = 0x8054 # PixelInternalFormat - RGBA2 = 0x8055 # PixelInternalFormat - RGBA4 = 0x8056 # PixelInternalFormat - RGB5_A1 = 0x8057 # PixelInternalFormat - RGBA8 = 0x8058 # PixelInternalFormat - RGB10_A2 = 0x8059 # PixelInternalFormat - RGBA12 = 0x805A # PixelInternalFormat - RGBA16 = 0x805B # PixelInternalFormat - -VERSION_1_1_DEPRECATED enum: -passthru: /* AttribMask */ - CURRENT_BIT = 0x00000001 # AttribMask - POINT_BIT = 0x00000002 # AttribMask - LINE_BIT = 0x00000004 # AttribMask - POLYGON_BIT = 0x00000008 # AttribMask - POLYGON_STIPPLE_BIT = 0x00000010 # AttribMask - PIXEL_MODE_BIT = 0x00000020 # AttribMask - LIGHTING_BIT = 0x00000040 # AttribMask - FOG_BIT = 0x00000080 # AttribMask - ACCUM_BUFFER_BIT = 0x00000200 # AttribMask - VIEWPORT_BIT = 0x00000800 # AttribMask - TRANSFORM_BIT = 0x00001000 # AttribMask - ENABLE_BIT = 0x00002000 # AttribMask - HINT_BIT = 0x00008000 # AttribMask - EVAL_BIT = 0x00010000 # AttribMask - LIST_BIT = 0x00020000 # AttribMask - TEXTURE_BIT = 0x00040000 # AttribMask - SCISSOR_BIT = 0x00080000 # AttribMask - ALL_ATTRIB_BITS = 0xFFFFFFFF # AttribMask -passthru: /* ClientAttribMask */ - CLIENT_PIXEL_STORE_BIT = 0x00000001 # ClientAttribMask - CLIENT_VERTEX_ARRAY_BIT = 0x00000002 # ClientAttribMask - CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF # ClientAttribMask -passthru: /* BeginMode */ - QUADS = 0x0007 # BeginMode - QUAD_STRIP = 0x0008 # BeginMode - POLYGON = 0x0009 # BeginMode -passthru: /* AccumOp */ - ACCUM = 0x0100 # AccumOp - LOAD = 0x0101 # AccumOp - RETURN = 0x0102 # AccumOp - MULT = 0x0103 # AccumOp - ADD = 0x0104 # AccumOp -passthru: /* DrawBufferMode */ - AUX0 = 0x0409 # DrawBufferMode - AUX1 = 0x040A # DrawBufferMode - AUX2 = 0x040B # DrawBufferMode - AUX3 = 0x040C # DrawBufferMode -passthru: /* ErrorCode */ - STACK_OVERFLOW = 0x0503 # ErrorCode - STACK_UNDERFLOW = 0x0504 # ErrorCode -passthru: /* FeedbackType */ - 2D = 0x0600 # FeedbackType - 3D = 0x0601 # FeedbackType - 3D_COLOR = 0x0602 # FeedbackType - 3D_COLOR_TEXTURE = 0x0603 # FeedbackType - 4D_COLOR_TEXTURE = 0x0604 # FeedbackType -passthru: /* FeedBackToken */ - PASS_THROUGH_TOKEN = 0x0700 # FeedBackToken - POINT_TOKEN = 0x0701 # FeedBackToken - LINE_TOKEN = 0x0702 # FeedBackToken - POLYGON_TOKEN = 0x0703 # FeedBackToken - BITMAP_TOKEN = 0x0704 # FeedBackToken - DRAW_PIXEL_TOKEN = 0x0705 # FeedBackToken - COPY_PIXEL_TOKEN = 0x0706 # FeedBackToken - LINE_RESET_TOKEN = 0x0707 # FeedBackToken -passthru: /* FogMode */ - EXP = 0x0800 # FogMode - EXP2 = 0x0801 # FogMode -passthru: /* GetMapQuery */ - COEFF = 0x0A00 # GetMapQuery - ORDER = 0x0A01 # GetMapQuery - DOMAIN = 0x0A02 # GetMapQuery -passthru: /* GetPixelMap */ - PIXEL_MAP_I_TO_I = 0x0C70 # GetPixelMap - PIXEL_MAP_S_TO_S = 0x0C71 # GetPixelMap - PIXEL_MAP_I_TO_R = 0x0C72 # GetPixelMap - PIXEL_MAP_I_TO_G = 0x0C73 # GetPixelMap - PIXEL_MAP_I_TO_B = 0x0C74 # GetPixelMap - PIXEL_MAP_I_TO_A = 0x0C75 # GetPixelMap - PIXEL_MAP_R_TO_R = 0x0C76 # GetPixelMap - PIXEL_MAP_G_TO_G = 0x0C77 # GetPixelMap - PIXEL_MAP_B_TO_B = 0x0C78 # GetPixelMap - PIXEL_MAP_A_TO_A = 0x0C79 # GetPixelMap -passthru: /* GetPointervPName */ - VERTEX_ARRAY_POINTER = 0x808E # GetPointervPName - NORMAL_ARRAY_POINTER = 0x808F # GetPointervPName - COLOR_ARRAY_POINTER = 0x8090 # GetPointervPName - INDEX_ARRAY_POINTER = 0x8091 # GetPointervPName - TEXTURE_COORD_ARRAY_POINTER = 0x8092 # GetPointervPName - EDGE_FLAG_ARRAY_POINTER = 0x8093 # GetPointervPName - FEEDBACK_BUFFER_POINTER = 0x0DF0 # GetPointervPName - SELECTION_BUFFER_POINTER = 0x0DF3 # GetPointervPName -passthru: /* GetPName */ - CURRENT_COLOR = 0x0B00 # 4 F # GetPName - CURRENT_INDEX = 0x0B01 # 1 F # GetPName - CURRENT_NORMAL = 0x0B02 # 3 F # GetPName - CURRENT_TEXTURE_COORDS = 0x0B03 # 4 F # GetPName - CURRENT_RASTER_COLOR = 0x0B04 # 4 F # GetPName - CURRENT_RASTER_INDEX = 0x0B05 # 1 F # GetPName - CURRENT_RASTER_TEXTURE_COORDS = 0x0B06 # 4 F # GetPName - CURRENT_RASTER_POSITION = 0x0B07 # 4 F # GetPName - CURRENT_RASTER_POSITION_VALID = 0x0B08 # 1 I # GetPName - CURRENT_RASTER_DISTANCE = 0x0B09 # 1 F # GetPName - POINT_SMOOTH = 0x0B10 # 1 I # GetPName - LINE_STIPPLE = 0x0B24 # 1 I # GetPName - LINE_STIPPLE_PATTERN = 0x0B25 # 1 I # GetPName - LINE_STIPPLE_REPEAT = 0x0B26 # 1 I # GetPName - LIST_MODE = 0x0B30 # 1 I # GetPName - MAX_LIST_NESTING = 0x0B31 # 1 I # GetPName - LIST_BASE = 0x0B32 # 1 I # GetPName - LIST_INDEX = 0x0B33 # 1 I # GetPName - POLYGON_MODE = 0x0B40 # 2 I # GetPName - POLYGON_STIPPLE = 0x0B42 # 1 I # GetPName - EDGE_FLAG = 0x0B43 # 1 I # GetPName - LIGHTING = 0x0B50 # 1 I # GetPName - LIGHT_MODEL_LOCAL_VIEWER = 0x0B51 # 1 I # GetPName - LIGHT_MODEL_TWO_SIDE = 0x0B52 # 1 I # GetPName - LIGHT_MODEL_AMBIENT = 0x0B53 # 4 F # GetPName - SHADE_MODEL = 0x0B54 # 1 I # GetPName - COLOR_MATERIAL_FACE = 0x0B55 # 1 I # GetPName - COLOR_MATERIAL_PARAMETER = 0x0B56 # 1 I # GetPName - COLOR_MATERIAL = 0x0B57 # 1 I # GetPName - FOG = 0x0B60 # 1 I # GetPName - FOG_INDEX = 0x0B61 # 1 I # GetPName - FOG_DENSITY = 0x0B62 # 1 F # GetPName - FOG_START = 0x0B63 # 1 F # GetPName - FOG_END = 0x0B64 # 1 F # GetPName - FOG_MODE = 0x0B65 # 1 I # GetPName - FOG_COLOR = 0x0B66 # 4 F # GetPName - ACCUM_CLEAR_VALUE = 0x0B80 # 4 F # GetPName - MATRIX_MODE = 0x0BA0 # 1 I # GetPName - NORMALIZE = 0x0BA1 # 1 I # GetPName - MODELVIEW_STACK_DEPTH = 0x0BA3 # 1 I # GetPName - PROJECTION_STACK_DEPTH = 0x0BA4 # 1 I # GetPName - TEXTURE_STACK_DEPTH = 0x0BA5 # 1 I # GetPName - MODELVIEW_MATRIX = 0x0BA6 # 16 F # GetPName - PROJECTION_MATRIX = 0x0BA7 # 16 F # GetPName - TEXTURE_MATRIX = 0x0BA8 # 16 F # GetPName - ATTRIB_STACK_DEPTH = 0x0BB0 # 1 I # GetPName - CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1 # 1 I # GetPName - ALPHA_TEST = 0x0BC0 # 1 I # GetPName - ALPHA_TEST_FUNC = 0x0BC1 # 1 I # GetPName - ALPHA_TEST_REF = 0x0BC2 # 1 F # GetPName - INDEX_LOGIC_OP = 0x0BF1 # 1 I # GetPName - LOGIC_OP = 0x0BF1 # 1 I # GetPName - AUX_BUFFERS = 0x0C00 # 1 I # GetPName - INDEX_CLEAR_VALUE = 0x0C20 # 1 I # GetPName - INDEX_WRITEMASK = 0x0C21 # 1 I # GetPName - INDEX_MODE = 0x0C30 # 1 I # GetPName - RGBA_MODE = 0x0C31 # 1 I # GetPName - RENDER_MODE = 0x0C40 # 1 I # GetPName - PERSPECTIVE_CORRECTION_HINT = 0x0C50 # 1 I # GetPName - POINT_SMOOTH_HINT = 0x0C51 # 1 I # GetPName - FOG_HINT = 0x0C54 # 1 I # GetPName - TEXTURE_GEN_S = 0x0C60 # 1 I # GetPName - TEXTURE_GEN_T = 0x0C61 # 1 I # GetPName - TEXTURE_GEN_R = 0x0C62 # 1 I # GetPName - TEXTURE_GEN_Q = 0x0C63 # 1 I # GetPName - PIXEL_MAP_I_TO_I_SIZE = 0x0CB0 # 1 I # GetPName - PIXEL_MAP_S_TO_S_SIZE = 0x0CB1 # 1 I # GetPName - PIXEL_MAP_I_TO_R_SIZE = 0x0CB2 # 1 I # GetPName - PIXEL_MAP_I_TO_G_SIZE = 0x0CB3 # 1 I # GetPName - PIXEL_MAP_I_TO_B_SIZE = 0x0CB4 # 1 I # GetPName - PIXEL_MAP_I_TO_A_SIZE = 0x0CB5 # 1 I # GetPName - PIXEL_MAP_R_TO_R_SIZE = 0x0CB6 # 1 I # GetPName - PIXEL_MAP_G_TO_G_SIZE = 0x0CB7 # 1 I # GetPName - PIXEL_MAP_B_TO_B_SIZE = 0x0CB8 # 1 I # GetPName - PIXEL_MAP_A_TO_A_SIZE = 0x0CB9 # 1 I # GetPName - MAP_COLOR = 0x0D10 # 1 I # GetPName - MAP_STENCIL = 0x0D11 # 1 I # GetPName - INDEX_SHIFT = 0x0D12 # 1 I # GetPName - INDEX_OFFSET = 0x0D13 # 1 I # GetPName - RED_SCALE = 0x0D14 # 1 F # GetPName - RED_BIAS = 0x0D15 # 1 F # GetPName - ZOOM_X = 0x0D16 # 1 F # GetPName - ZOOM_Y = 0x0D17 # 1 F # GetPName - GREEN_SCALE = 0x0D18 # 1 F # GetPName - GREEN_BIAS = 0x0D19 # 1 F # GetPName - BLUE_SCALE = 0x0D1A # 1 F # GetPName - BLUE_BIAS = 0x0D1B # 1 F # GetPName - ALPHA_SCALE = 0x0D1C # 1 F # GetPName - ALPHA_BIAS = 0x0D1D # 1 F # GetPName - DEPTH_SCALE = 0x0D1E # 1 F # GetPName - DEPTH_BIAS = 0x0D1F # 1 F # GetPName - MAX_EVAL_ORDER = 0x0D30 # 1 I # GetPName - MAX_LIGHTS = 0x0D31 # 1 I # GetPName - MAX_CLIP_PLANES = 0x0D32 # 1 I # GetPName - MAX_PIXEL_MAP_TABLE = 0x0D34 # 1 I # GetPName - MAX_ATTRIB_STACK_DEPTH = 0x0D35 # 1 I # GetPName - MAX_MODELVIEW_STACK_DEPTH = 0x0D36 # 1 I # GetPName - MAX_NAME_STACK_DEPTH = 0x0D37 # 1 I # GetPName - MAX_PROJECTION_STACK_DEPTH = 0x0D38 # 1 I # GetPName - MAX_TEXTURE_STACK_DEPTH = 0x0D39 # 1 I # GetPName - MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B # 1 I # GetPName - INDEX_BITS = 0x0D51 # 1 I # GetPName - RED_BITS = 0x0D52 # 1 I # GetPName - GREEN_BITS = 0x0D53 # 1 I # GetPName - BLUE_BITS = 0x0D54 # 1 I # GetPName - ALPHA_BITS = 0x0D55 # 1 I # GetPName - DEPTH_BITS = 0x0D56 # 1 I # GetPName - STENCIL_BITS = 0x0D57 # 1 I # GetPName - ACCUM_RED_BITS = 0x0D58 # 1 I # GetPName - ACCUM_GREEN_BITS = 0x0D59 # 1 I # GetPName - ACCUM_BLUE_BITS = 0x0D5A # 1 I # GetPName - ACCUM_ALPHA_BITS = 0x0D5B # 1 I # GetPName - NAME_STACK_DEPTH = 0x0D70 # 1 I # GetPName - AUTO_NORMAL = 0x0D80 # 1 I # GetPName - MAP1_COLOR_4 = 0x0D90 # 1 I # GetPName - MAP1_INDEX = 0x0D91 # 1 I # GetPName - MAP1_NORMAL = 0x0D92 # 1 I # GetPName - MAP1_TEXTURE_COORD_1 = 0x0D93 # 1 I # GetPName - MAP1_TEXTURE_COORD_2 = 0x0D94 # 1 I # GetPName - MAP1_TEXTURE_COORD_3 = 0x0D95 # 1 I # GetPName - MAP1_TEXTURE_COORD_4 = 0x0D96 # 1 I # GetPName - MAP1_VERTEX_3 = 0x0D97 # 1 I # GetPName - MAP1_VERTEX_4 = 0x0D98 # 1 I # GetPName - MAP2_COLOR_4 = 0x0DB0 # 1 I # GetPName - MAP2_INDEX = 0x0DB1 # 1 I # GetPName - MAP2_NORMAL = 0x0DB2 # 1 I # GetPName - MAP2_TEXTURE_COORD_1 = 0x0DB3 # 1 I # GetPName - MAP2_TEXTURE_COORD_2 = 0x0DB4 # 1 I # GetPName - MAP2_TEXTURE_COORD_3 = 0x0DB5 # 1 I # GetPName - MAP2_TEXTURE_COORD_4 = 0x0DB6 # 1 I # GetPName - MAP2_VERTEX_3 = 0x0DB7 # 1 I # GetPName - MAP2_VERTEX_4 = 0x0DB8 # 1 I # GetPName - MAP1_GRID_DOMAIN = 0x0DD0 # 2 F # GetPName - MAP1_GRID_SEGMENTS = 0x0DD1 # 1 I # GetPName - MAP2_GRID_DOMAIN = 0x0DD2 # 4 F # GetPName - MAP2_GRID_SEGMENTS = 0x0DD3 # 2 I # GetPName - FEEDBACK_BUFFER_SIZE = 0x0DF1 # 1 I # GetPName - FEEDBACK_BUFFER_TYPE = 0x0DF2 # 1 I # GetPName - SELECTION_BUFFER_SIZE = 0x0DF4 # 1 I # GetPName - VERTEX_ARRAY = 0x8074 # 1 I # GetPName - NORMAL_ARRAY = 0x8075 # 1 I # GetPName - COLOR_ARRAY = 0x8076 # 1 I # GetPName - INDEX_ARRAY = 0x8077 # 1 I # GetPName - TEXTURE_COORD_ARRAY = 0x8078 # 1 I # GetPName - EDGE_FLAG_ARRAY = 0x8079 # 1 I # GetPName - VERTEX_ARRAY_SIZE = 0x807A # 1 I # GetPName - VERTEX_ARRAY_TYPE = 0x807B # 1 I # GetPName - VERTEX_ARRAY_STRIDE = 0x807C # 1 I # GetPName - NORMAL_ARRAY_TYPE = 0x807E # 1 I # GetPName - NORMAL_ARRAY_STRIDE = 0x807F # 1 I # GetPName - COLOR_ARRAY_SIZE = 0x8081 # 1 I # GetPName - COLOR_ARRAY_TYPE = 0x8082 # 1 I # GetPName - COLOR_ARRAY_STRIDE = 0x8083 # 1 I # GetPName - INDEX_ARRAY_TYPE = 0x8085 # 1 I # GetPName - INDEX_ARRAY_STRIDE = 0x8086 # 1 I # GetPName - TEXTURE_COORD_ARRAY_SIZE = 0x8088 # 1 I # GetPName - TEXTURE_COORD_ARRAY_TYPE = 0x8089 # 1 I # GetPName - TEXTURE_COORD_ARRAY_STRIDE = 0x808A # 1 I # GetPName - EDGE_FLAG_ARRAY_STRIDE = 0x808C # 1 I # GetPName -passthru: /* GetTextureParameter */ - TEXTURE_COMPONENTS = 0x1003 # GetTextureParameter - TEXTURE_BORDER = 0x1005 # GetTextureParameter - TEXTURE_LUMINANCE_SIZE = 0x8060 # GetTextureParameter - TEXTURE_INTENSITY_SIZE = 0x8061 # GetTextureParameter - TEXTURE_PRIORITY = 0x8066 # GetTextureParameter - TEXTURE_RESIDENT = 0x8067 # GetTextureParameter -passthru: /* LightParameter */ - AMBIENT = 0x1200 # LightParameter - DIFFUSE = 0x1201 # LightParameter - SPECULAR = 0x1202 # LightParameter - POSITION = 0x1203 # LightParameter - SPOT_DIRECTION = 0x1204 # LightParameter - SPOT_EXPONENT = 0x1205 # LightParameter - SPOT_CUTOFF = 0x1206 # LightParameter - CONSTANT_ATTENUATION = 0x1207 # LightParameter - LINEAR_ATTENUATION = 0x1208 # LightParameter - QUADRATIC_ATTENUATION = 0x1209 # LightParameter -passthru: /* ListMode */ - COMPILE = 0x1300 # ListMode - COMPILE_AND_EXECUTE = 0x1301 # ListMode -passthru: /* DataType */ - 2_BYTES = 0x1407 # DataType - 3_BYTES = 0x1408 # DataType - 4_BYTES = 0x1409 # DataType -passthru: /* MaterialParameter */ - EMISSION = 0x1600 # MaterialParameter - SHININESS = 0x1601 # MaterialParameter - AMBIENT_AND_DIFFUSE = 0x1602 # MaterialParameter - COLOR_INDEXES = 0x1603 # MaterialParameter -passthru: /* MatrixMode */ - MODELVIEW = 0x1700 # MatrixMode - PROJECTION = 0x1701 # MatrixMode -passthru: /* PixelFormat */ - COLOR_INDEX = 0x1900 # PixelFormat - LUMINANCE = 0x1909 # PixelFormat - LUMINANCE_ALPHA = 0x190A # PixelFormat -passthru: /* PixelType */ - BITMAP = 0x1A00 # PixelType -passthru: /* RenderingMode */ - RENDER = 0x1C00 # RenderingMode - FEEDBACK = 0x1C01 # RenderingMode - SELECT = 0x1C02 # RenderingMode -passthru: /* ShadingModel */ - FLAT = 0x1D00 # ShadingModel - SMOOTH = 0x1D01 # ShadingModel -passthru: /* TextureCoordName */ - S = 0x2000 # TextureCoordName - T = 0x2001 # TextureCoordName - R = 0x2002 # TextureCoordName - Q = 0x2003 # TextureCoordName -passthru: /* TextureEnvMode */ - MODULATE = 0x2100 # TextureEnvMode - DECAL = 0x2101 # TextureEnvMode -passthru: /* TextureEnvParameter */ - TEXTURE_ENV_MODE = 0x2200 # TextureEnvParameter - TEXTURE_ENV_COLOR = 0x2201 # TextureEnvParameter -passthru: /* TextureEnvTarget */ - TEXTURE_ENV = 0x2300 # TextureEnvTarget -passthru: /* TextureGenMode */ - EYE_LINEAR = 0x2400 # TextureGenMode - OBJECT_LINEAR = 0x2401 # TextureGenMode - SPHERE_MAP = 0x2402 # TextureGenMode -passthru: /* TextureGenParameter */ - TEXTURE_GEN_MODE = 0x2500 # TextureGenParameter - OBJECT_PLANE = 0x2501 # TextureGenParameter - EYE_PLANE = 0x2502 # TextureGenParameter -passthru: /* TextureWrapMode */ - CLAMP = 0x2900 # TextureWrapMode -passthru: /* PixelInternalFormat */ - ALPHA4 = 0x803B # PixelInternalFormat - ALPHA8 = 0x803C # PixelInternalFormat - ALPHA12 = 0x803D # PixelInternalFormat - ALPHA16 = 0x803E # PixelInternalFormat - LUMINANCE4 = 0x803F # PixelInternalFormat - LUMINANCE8 = 0x8040 # PixelInternalFormat - LUMINANCE12 = 0x8041 # PixelInternalFormat - LUMINANCE16 = 0x8042 # PixelInternalFormat - LUMINANCE4_ALPHA4 = 0x8043 # PixelInternalFormat - LUMINANCE6_ALPHA2 = 0x8044 # PixelInternalFormat - LUMINANCE8_ALPHA8 = 0x8045 # PixelInternalFormat - LUMINANCE12_ALPHA4 = 0x8046 # PixelInternalFormat - LUMINANCE12_ALPHA12 = 0x8047 # PixelInternalFormat - LUMINANCE16_ALPHA16 = 0x8048 # PixelInternalFormat - INTENSITY = 0x8049 # PixelInternalFormat - INTENSITY4 = 0x804A # PixelInternalFormat - INTENSITY8 = 0x804B # PixelInternalFormat - INTENSITY12 = 0x804C # PixelInternalFormat - INTENSITY16 = 0x804D # PixelInternalFormat -passthru: /* InterleavedArrayFormat */ - V2F = 0x2A20 # InterleavedArrayFormat - V3F = 0x2A21 # InterleavedArrayFormat - C4UB_V2F = 0x2A22 # InterleavedArrayFormat - C4UB_V3F = 0x2A23 # InterleavedArrayFormat - C3F_V3F = 0x2A24 # InterleavedArrayFormat - N3F_V3F = 0x2A25 # InterleavedArrayFormat - C4F_N3F_V3F = 0x2A26 # InterleavedArrayFormat - T2F_V3F = 0x2A27 # InterleavedArrayFormat - T4F_V4F = 0x2A28 # InterleavedArrayFormat - T2F_C4UB_V3F = 0x2A29 # InterleavedArrayFormat - T2F_C3F_V3F = 0x2A2A # InterleavedArrayFormat - T2F_N3F_V3F = 0x2A2B # InterleavedArrayFormat - T2F_C4F_N3F_V3F = 0x2A2C # InterleavedArrayFormat - T4F_C4F_N3F_V4F = 0x2A2D # InterleavedArrayFormat -passthru: /* ClipPlaneName */ - CLIP_PLANE0 = 0x3000 # 1 I # ClipPlaneName - CLIP_PLANE1 = 0x3001 # 1 I # ClipPlaneName - CLIP_PLANE2 = 0x3002 # 1 I # ClipPlaneName - CLIP_PLANE3 = 0x3003 # 1 I # ClipPlaneName - CLIP_PLANE4 = 0x3004 # 1 I # ClipPlaneName - CLIP_PLANE5 = 0x3005 # 1 I # ClipPlaneName -passthru: /* LightName */ - LIGHT0 = 0x4000 # 1 I # LightName - LIGHT1 = 0x4001 # 1 I # LightName - LIGHT2 = 0x4002 # 1 I # LightName - LIGHT3 = 0x4003 # 1 I # LightName - LIGHT4 = 0x4004 # 1 I # LightName - LIGHT5 = 0x4005 # 1 I # LightName - LIGHT6 = 0x4006 # 1 I # LightName - LIGHT7 = 0x4007 # 1 I # LightName - - -############################################################################### -# -# OpenGL 1.2 enums -# -############################################################################### - -VERSION_1_2 enum: - UNSIGNED_BYTE_3_3_2 = 0x8032 # Equivalent to EXT_packed_pixels - UNSIGNED_SHORT_4_4_4_4 = 0x8033 - UNSIGNED_SHORT_5_5_5_1 = 0x8034 - UNSIGNED_INT_8_8_8_8 = 0x8035 - UNSIGNED_INT_10_10_10_2 = 0x8036 - TEXTURE_BINDING_3D = 0x806A # 1 I - PACK_SKIP_IMAGES = 0x806B # 1 I - PACK_IMAGE_HEIGHT = 0x806C # 1 F - UNPACK_SKIP_IMAGES = 0x806D # 1 I - UNPACK_IMAGE_HEIGHT = 0x806E # 1 F - TEXTURE_3D = 0x806F # 1 I - PROXY_TEXTURE_3D = 0x8070 - TEXTURE_DEPTH = 0x8071 - TEXTURE_WRAP_R = 0x8072 - MAX_3D_TEXTURE_SIZE = 0x8073 # 1 I - UNSIGNED_BYTE_2_3_3_REV = 0x8362 # New for OpenGL 1.2 - UNSIGNED_SHORT_5_6_5 = 0x8363 - UNSIGNED_SHORT_5_6_5_REV = 0x8364 - UNSIGNED_SHORT_4_4_4_4_REV = 0x8365 - UNSIGNED_SHORT_1_5_5_5_REV = 0x8366 - UNSIGNED_INT_8_8_8_8_REV = 0x8367 - UNSIGNED_INT_2_10_10_10_REV = 0x8368 - BGR = 0x80E0 - BGRA = 0x80E1 - MAX_ELEMENTS_VERTICES = 0x80E8 - MAX_ELEMENTS_INDICES = 0x80E9 - CLAMP_TO_EDGE = 0x812F # Equivalent to SGIS_texture_edge_clamp - TEXTURE_MIN_LOD = 0x813A # Equivalent to SGIS_texture_lod - TEXTURE_MAX_LOD = 0x813B - TEXTURE_BASE_LEVEL = 0x813C - TEXTURE_MAX_LEVEL = 0x813D - SMOOTH_POINT_SIZE_RANGE = 0x0B12 # 2 F - SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13 # 1 F - SMOOTH_LINE_WIDTH_RANGE = 0x0B22 # 2 F - SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23 # 1 F - ALIASED_LINE_WIDTH_RANGE = 0x846E # 2 F - -VERSION_1_2_DEPRECATED enum: - RESCALE_NORMAL = 0x803A # 1 I # Equivalent to EXT_rescale_normal - LIGHT_MODEL_COLOR_CONTROL = 0x81F8 # 1 I - SINGLE_COLOR = 0x81F9 - SEPARATE_SPECULAR_COLOR = 0x81FA - ALIASED_POINT_SIZE_RANGE = 0x846D # 2 F - -ARB_imaging enum: - CONSTANT_COLOR = 0x8001 # Equivalent to EXT_blend_color - ONE_MINUS_CONSTANT_COLOR = 0x8002 - CONSTANT_ALPHA = 0x8003 - ONE_MINUS_CONSTANT_ALPHA = 0x8004 - BLEND_COLOR = 0x8005 # 4 F - FUNC_ADD = 0x8006 # Equivalent to EXT_blend_minmax - MIN = 0x8007 - MAX = 0x8008 - BLEND_EQUATION = 0x8009 # 1 I - FUNC_SUBTRACT = 0x800A # Equivalent to EXT_blend_subtract - FUNC_REVERSE_SUBTRACT = 0x800B - -ARB_imaging_DEPRECATED enum: - CONVOLUTION_1D = 0x8010 # 1 I # Equivalent to EXT_convolution - CONVOLUTION_2D = 0x8011 # 1 I - SEPARABLE_2D = 0x8012 # 1 I - CONVOLUTION_BORDER_MODE = 0x8013 - CONVOLUTION_FILTER_SCALE = 0x8014 - CONVOLUTION_FILTER_BIAS = 0x8015 - REDUCE = 0x8016 - CONVOLUTION_FORMAT = 0x8017 - CONVOLUTION_WIDTH = 0x8018 - CONVOLUTION_HEIGHT = 0x8019 - MAX_CONVOLUTION_WIDTH = 0x801A - MAX_CONVOLUTION_HEIGHT = 0x801B - POST_CONVOLUTION_RED_SCALE = 0x801C # 1 F - POST_CONVOLUTION_GREEN_SCALE = 0x801D # 1 F - POST_CONVOLUTION_BLUE_SCALE = 0x801E # 1 F - POST_CONVOLUTION_ALPHA_SCALE = 0x801F # 1 F - POST_CONVOLUTION_RED_BIAS = 0x8020 # 1 F - POST_CONVOLUTION_GREEN_BIAS = 0x8021 # 1 F - POST_CONVOLUTION_BLUE_BIAS = 0x8022 # 1 F - POST_CONVOLUTION_ALPHA_BIAS = 0x8023 # 1 F - HISTOGRAM = 0x8024 # 1 I # Equivalent to EXT_histogram - PROXY_HISTOGRAM = 0x8025 - HISTOGRAM_WIDTH = 0x8026 - HISTOGRAM_FORMAT = 0x8027 - HISTOGRAM_RED_SIZE = 0x8028 - HISTOGRAM_GREEN_SIZE = 0x8029 - HISTOGRAM_BLUE_SIZE = 0x802A - HISTOGRAM_ALPHA_SIZE = 0x802B - HISTOGRAM_LUMINANCE_SIZE = 0x802C - HISTOGRAM_SINK = 0x802D - MINMAX = 0x802E # 1 I - MINMAX_FORMAT = 0x802F - MINMAX_SINK = 0x8030 - TABLE_TOO_LARGE = 0x8031 - COLOR_MATRIX = 0x80B1 # 16 F # Equivalent to SGI_color_matrix - COLOR_MATRIX_STACK_DEPTH = 0x80B2 # 1 I - MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 # 1 I - POST_COLOR_MATRIX_RED_SCALE = 0x80B4 # 1 F - POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 # 1 F - POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 # 1 F - POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 # 1 F - POST_COLOR_MATRIX_RED_BIAS = 0x80B8 # 1 F - POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 # 1 F - POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA # 1 F - POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB # 1 F - COLOR_TABLE = 0x80D0 # 1 I # Equivalent to SGI_color_table - POST_CONVOLUTION_COLOR_TABLE = 0x80D1 # 1 I - POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 # 1 I - PROXY_COLOR_TABLE = 0x80D3 - PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 - PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 - COLOR_TABLE_SCALE = 0x80D6 - COLOR_TABLE_BIAS = 0x80D7 - COLOR_TABLE_FORMAT = 0x80D8 - COLOR_TABLE_WIDTH = 0x80D9 - COLOR_TABLE_RED_SIZE = 0x80DA - COLOR_TABLE_GREEN_SIZE = 0x80DB - COLOR_TABLE_BLUE_SIZE = 0x80DC - COLOR_TABLE_ALPHA_SIZE = 0x80DD - COLOR_TABLE_LUMINANCE_SIZE = 0x80DE - COLOR_TABLE_INTENSITY_SIZE = 0x80DF - CONSTANT_BORDER = 0x8151 - REPLICATE_BORDER = 0x8153 - CONVOLUTION_BORDER_COLOR = 0x8154 - - -############################################################################### -# -# OpenGL 1.3 enums -# -############################################################################### - -VERSION_1_3 enum: - TEXTURE0 = 0x84C0 # Promoted from ARB_multitexture - TEXTURE1 = 0x84C1 - TEXTURE2 = 0x84C2 - TEXTURE3 = 0x84C3 - TEXTURE4 = 0x84C4 - TEXTURE5 = 0x84C5 - TEXTURE6 = 0x84C6 - TEXTURE7 = 0x84C7 - TEXTURE8 = 0x84C8 - TEXTURE9 = 0x84C9 - TEXTURE10 = 0x84CA - TEXTURE11 = 0x84CB - TEXTURE12 = 0x84CC - TEXTURE13 = 0x84CD - TEXTURE14 = 0x84CE - TEXTURE15 = 0x84CF - TEXTURE16 = 0x84D0 - TEXTURE17 = 0x84D1 - TEXTURE18 = 0x84D2 - TEXTURE19 = 0x84D3 - TEXTURE20 = 0x84D4 - TEXTURE21 = 0x84D5 - TEXTURE22 = 0x84D6 - TEXTURE23 = 0x84D7 - TEXTURE24 = 0x84D8 - TEXTURE25 = 0x84D9 - TEXTURE26 = 0x84DA - TEXTURE27 = 0x84DB - TEXTURE28 = 0x84DC - TEXTURE29 = 0x84DD - TEXTURE30 = 0x84DE - TEXTURE31 = 0x84DF - ACTIVE_TEXTURE = 0x84E0 # 1 I - MULTISAMPLE = 0x809D # Promoted from ARB_multisample - SAMPLE_ALPHA_TO_COVERAGE = 0x809E - SAMPLE_ALPHA_TO_ONE = 0x809F - SAMPLE_COVERAGE = 0x80A0 - SAMPLE_BUFFERS = 0x80A8 - SAMPLES = 0x80A9 - SAMPLE_COVERAGE_VALUE = 0x80AA - SAMPLE_COVERAGE_INVERT = 0x80AB - TEXTURE_CUBE_MAP = 0x8513 - TEXTURE_BINDING_CUBE_MAP = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A - PROXY_TEXTURE_CUBE_MAP = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C - COMPRESSED_RGB = 0x84ED - COMPRESSED_RGBA = 0x84EE - TEXTURE_COMPRESSION_HINT = 0x84EF - TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0 - TEXTURE_COMPRESSED = 0x86A1 - NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 - COMPRESSED_TEXTURE_FORMATS = 0x86A3 - CLAMP_TO_BORDER = 0x812D # Promoted from ARB_texture_border_clamp - -VERSION_1_3_DEPRECATED enum: - CLIENT_ACTIVE_TEXTURE = 0x84E1 # 1 I - MAX_TEXTURE_UNITS = 0x84E2 # 1 I - TRANSPOSE_MODELVIEW_MATRIX = 0x84E3 # 16 F # Promoted from ARB_transpose_matrix - TRANSPOSE_PROJECTION_MATRIX = 0x84E4 # 16 F - TRANSPOSE_TEXTURE_MATRIX = 0x84E5 # 16 F - TRANSPOSE_COLOR_MATRIX = 0x84E6 # 16 F - MULTISAMPLE_BIT = 0x20000000 - NORMAL_MAP = 0x8511 # Promoted from ARB_texture_cube_map - REFLECTION_MAP = 0x8512 - COMPRESSED_ALPHA = 0x84E9 # Promoted from ARB_texture_compression - COMPRESSED_LUMINANCE = 0x84EA - COMPRESSED_LUMINANCE_ALPHA = 0x84EB - COMPRESSED_INTENSITY = 0x84EC - COMBINE = 0x8570 # Promoted from ARB_texture_env_combine - COMBINE_RGB = 0x8571 - COMBINE_ALPHA = 0x8572 - SOURCE0_RGB = 0x8580 - SOURCE1_RGB = 0x8581 - SOURCE2_RGB = 0x8582 - SOURCE0_ALPHA = 0x8588 - SOURCE1_ALPHA = 0x8589 - SOURCE2_ALPHA = 0x858A - OPERAND0_RGB = 0x8590 - OPERAND1_RGB = 0x8591 - OPERAND2_RGB = 0x8592 - OPERAND0_ALPHA = 0x8598 - OPERAND1_ALPHA = 0x8599 - OPERAND2_ALPHA = 0x859A - RGB_SCALE = 0x8573 - ADD_SIGNED = 0x8574 - INTERPOLATE = 0x8575 - SUBTRACT = 0x84E7 - CONSTANT = 0x8576 - PRIMARY_COLOR = 0x8577 - PREVIOUS = 0x8578 - DOT3_RGB = 0x86AE # Promoted from ARB_texture_env_dot3 - DOT3_RGBA = 0x86AF - - -############################################################################### -# -# OpenGL 1.4 enums -# -############################################################################### - -VERSION_1_4 enum: - BLEND_DST_RGB = 0x80C8 - BLEND_SRC_RGB = 0x80C9 - BLEND_DST_ALPHA = 0x80CA - BLEND_SRC_ALPHA = 0x80CB - POINT_FADE_THRESHOLD_SIZE = 0x8128 # 1 F - DEPTH_COMPONENT16 = 0x81A5 - DEPTH_COMPONENT24 = 0x81A6 - DEPTH_COMPONENT32 = 0x81A7 - MIRRORED_REPEAT = 0x8370 - MAX_TEXTURE_LOD_BIAS = 0x84FD - TEXTURE_LOD_BIAS = 0x8501 - INCR_WRAP = 0x8507 - DECR_WRAP = 0x8508 - TEXTURE_DEPTH_SIZE = 0x884A - TEXTURE_COMPARE_MODE = 0x884C - TEXTURE_COMPARE_FUNC = 0x884D - -VERSION_1_4_DEPRECATED enum: - POINT_SIZE_MIN = 0x8126 # 1 F - POINT_SIZE_MAX = 0x8127 # 1 F - POINT_DISTANCE_ATTENUATION = 0x8129 # 3 F - GENERATE_MIPMAP = 0x8191 - GENERATE_MIPMAP_HINT = 0x8192 # 1 I - FOG_COORDINATE_SOURCE = 0x8450 # 1 I - FOG_COORDINATE = 0x8451 - FRAGMENT_DEPTH = 0x8452 - CURRENT_FOG_COORDINATE = 0x8453 # 1 F - FOG_COORDINATE_ARRAY_TYPE = 0x8454 # 1 I - FOG_COORDINATE_ARRAY_STRIDE = 0x8455 # 1 I - FOG_COORDINATE_ARRAY_POINTER = 0x8456 - FOG_COORDINATE_ARRAY = 0x8457 # 1 I - COLOR_SUM = 0x8458 # 1 I - CURRENT_SECONDARY_COLOR = 0x8459 # 3 F - SECONDARY_COLOR_ARRAY_SIZE = 0x845A # 1 I - SECONDARY_COLOR_ARRAY_TYPE = 0x845B # 1 I - SECONDARY_COLOR_ARRAY_STRIDE = 0x845C # 1 I - SECONDARY_COLOR_ARRAY_POINTER = 0x845D - SECONDARY_COLOR_ARRAY = 0x845E # 1 I - TEXTURE_FILTER_CONTROL = 0x8500 - DEPTH_TEXTURE_MODE = 0x884B - COMPARE_R_TO_TEXTURE = 0x884E - - -############################################################################### -# -# OpenGL 1.5 enums -# -############################################################################### - -VERSION_1_5 enum: - BUFFER_SIZE = 0x8764 # ARB_vertex_buffer_object - BUFFER_USAGE = 0x8765 # ARB_vertex_buffer_object - QUERY_COUNTER_BITS = 0x8864 # ARB_occlusion_query - CURRENT_QUERY = 0x8865 # ARB_occlusion_query - QUERY_RESULT = 0x8866 # ARB_occlusion_query - QUERY_RESULT_AVAILABLE = 0x8867 # ARB_occlusion_query - ARRAY_BUFFER = 0x8892 # ARB_vertex_buffer_object - ELEMENT_ARRAY_BUFFER = 0x8893 # ARB_vertex_buffer_object - ARRAY_BUFFER_BINDING = 0x8894 # ARB_vertex_buffer_object - ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 # ARB_vertex_buffer_object - VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F # ARB_vertex_buffer_object - READ_ONLY = 0x88B8 # ARB_vertex_buffer_object - WRITE_ONLY = 0x88B9 # ARB_vertex_buffer_object - READ_WRITE = 0x88BA # ARB_vertex_buffer_object - BUFFER_ACCESS = 0x88BB # ARB_vertex_buffer_object - BUFFER_MAPPED = 0x88BC # ARB_vertex_buffer_object - BUFFER_MAP_POINTER = 0x88BD # ARB_vertex_buffer_object - STREAM_DRAW = 0x88E0 # ARB_vertex_buffer_object - STREAM_READ = 0x88E1 # ARB_vertex_buffer_object - STREAM_COPY = 0x88E2 # ARB_vertex_buffer_object - STATIC_DRAW = 0x88E4 # ARB_vertex_buffer_object - STATIC_READ = 0x88E5 # ARB_vertex_buffer_object - STATIC_COPY = 0x88E6 # ARB_vertex_buffer_object - DYNAMIC_DRAW = 0x88E8 # ARB_vertex_buffer_object - DYNAMIC_READ = 0x88E9 # ARB_vertex_buffer_object - DYNAMIC_COPY = 0x88EA # ARB_vertex_buffer_object - SAMPLES_PASSED = 0x8914 # ARB_occlusion_query - -VERSION_1_5_DEPRECATED enum: - VERTEX_ARRAY_BUFFER_BINDING = 0x8896 # ARB_vertex_buffer_object - NORMAL_ARRAY_BUFFER_BINDING = 0x8897 # ARB_vertex_buffer_object - COLOR_ARRAY_BUFFER_BINDING = 0x8898 # ARB_vertex_buffer_object - INDEX_ARRAY_BUFFER_BINDING = 0x8899 # ARB_vertex_buffer_object - TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A # ARB_vertex_buffer_object - EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B # ARB_vertex_buffer_object - SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C # ARB_vertex_buffer_object - FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D # ARB_vertex_buffer_object - WEIGHT_ARRAY_BUFFER_BINDING = 0x889E # ARB_vertex_buffer_object - FOG_COORD_SRC = 0x8450 # alias GL_FOG_COORDINATE_SOURCE - FOG_COORD = 0x8451 # alias GL_FOG_COORDINATE - CURRENT_FOG_COORD = 0x8453 # alias GL_CURRENT_FOG_COORDINATE - FOG_COORD_ARRAY_TYPE = 0x8454 # alias GL_FOG_COORDINATE_ARRAY_TYPE - FOG_COORD_ARRAY_STRIDE = 0x8455 # alias GL_FOG_COORDINATE_ARRAY_STRIDE - FOG_COORD_ARRAY_POINTER = 0x8456 # alias GL_FOG_COORDINATE_ARRAY_POINTER - FOG_COORD_ARRAY = 0x8457 # alias GL_FOG_COORDINATE_ARRAY - FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D # alias GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -# New naming scheme - SRC0_RGB = 0x8580 # alias GL_SOURCE0_RGB - SRC1_RGB = 0x8581 # alias GL_SOURCE1_RGB - SRC2_RGB = 0x8582 # alias GL_SOURCE2_RGB - SRC0_ALPHA = 0x8588 # alias GL_SOURCE0_ALPHA - SRC1_ALPHA = 0x8589 # alias GL_SOURCE1_ALPHA - SRC2_ALPHA = 0x858A # alias GL_SOURCE2_ALPHA - -############################################################################### -# -# OpenGL 2.0 enums -# -############################################################################### - -VERSION_2_0 enum: - BLEND_EQUATION_RGB = 0x8009 # EXT_blend_equation_separate # alias GL_BLEND_EQUATION - VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 # ARB_vertex_shader - VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 # ARB_vertex_shader - VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 # ARB_vertex_shader - VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 # ARB_vertex_shader - CURRENT_VERTEX_ATTRIB = 0x8626 # ARB_vertex_shader - VERTEX_PROGRAM_POINT_SIZE = 0x8642 # ARB_vertex_shader - VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 # ARB_vertex_shader - STENCIL_BACK_FUNC = 0x8800 # ARB_stencil_two_side - STENCIL_BACK_FAIL = 0x8801 # ARB_stencil_two_side - STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 # ARB_stencil_two_side - STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 # ARB_stencil_two_side - MAX_DRAW_BUFFERS = 0x8824 # ARB_draw_buffers - DRAW_BUFFER0 = 0x8825 # ARB_draw_buffers - DRAW_BUFFER1 = 0x8826 # ARB_draw_buffers - DRAW_BUFFER2 = 0x8827 # ARB_draw_buffers - DRAW_BUFFER3 = 0x8828 # ARB_draw_buffers - DRAW_BUFFER4 = 0x8829 # ARB_draw_buffers - DRAW_BUFFER5 = 0x882A # ARB_draw_buffers - DRAW_BUFFER6 = 0x882B # ARB_draw_buffers - DRAW_BUFFER7 = 0x882C # ARB_draw_buffers - DRAW_BUFFER8 = 0x882D # ARB_draw_buffers - DRAW_BUFFER9 = 0x882E # ARB_draw_buffers - DRAW_BUFFER10 = 0x882F # ARB_draw_buffers - DRAW_BUFFER11 = 0x8830 # ARB_draw_buffers - DRAW_BUFFER12 = 0x8831 # ARB_draw_buffers - DRAW_BUFFER13 = 0x8832 # ARB_draw_buffers - DRAW_BUFFER14 = 0x8833 # ARB_draw_buffers - DRAW_BUFFER15 = 0x8834 # ARB_draw_buffers - BLEND_EQUATION_ALPHA = 0x883D # EXT_blend_equation_separate - MAX_VERTEX_ATTRIBS = 0x8869 # ARB_vertex_shader - VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A # ARB_vertex_shader - MAX_TEXTURE_IMAGE_UNITS = 0x8872 # ARB_vertex_shader, ARB_fragment_shader - FRAGMENT_SHADER = 0x8B30 # ARB_fragment_shader - VERTEX_SHADER = 0x8B31 # ARB_vertex_shader - MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49 # ARB_fragment_shader - MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A # ARB_vertex_shader - MAX_VARYING_FLOATS = 0x8B4B # ARB_vertex_shader - MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C # ARB_vertex_shader - MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D # ARB_vertex_shader - SHADER_TYPE = 0x8B4F # ARB_shader_objects - FLOAT_VEC2 = 0x8B50 # ARB_shader_objects - FLOAT_VEC3 = 0x8B51 # ARB_shader_objects - FLOAT_VEC4 = 0x8B52 # ARB_shader_objects - INT_VEC2 = 0x8B53 # ARB_shader_objects - INT_VEC3 = 0x8B54 # ARB_shader_objects - INT_VEC4 = 0x8B55 # ARB_shader_objects - BOOL = 0x8B56 # ARB_shader_objects - BOOL_VEC2 = 0x8B57 # ARB_shader_objects - BOOL_VEC3 = 0x8B58 # ARB_shader_objects - BOOL_VEC4 = 0x8B59 # ARB_shader_objects - FLOAT_MAT2 = 0x8B5A # ARB_shader_objects - FLOAT_MAT3 = 0x8B5B # ARB_shader_objects - FLOAT_MAT4 = 0x8B5C # ARB_shader_objects - SAMPLER_1D = 0x8B5D # ARB_shader_objects - SAMPLER_2D = 0x8B5E # ARB_shader_objects - SAMPLER_3D = 0x8B5F # ARB_shader_objects - SAMPLER_CUBE = 0x8B60 # ARB_shader_objects - SAMPLER_1D_SHADOW = 0x8B61 # ARB_shader_objects - SAMPLER_2D_SHADOW = 0x8B62 # ARB_shader_objects - DELETE_STATUS = 0x8B80 # ARB_shader_objects - COMPILE_STATUS = 0x8B81 # ARB_shader_objects - LINK_STATUS = 0x8B82 # ARB_shader_objects - VALIDATE_STATUS = 0x8B83 # ARB_shader_objects - INFO_LOG_LENGTH = 0x8B84 # ARB_shader_objects - ATTACHED_SHADERS = 0x8B85 # ARB_shader_objects - ACTIVE_UNIFORMS = 0x8B86 # ARB_shader_objects - ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 # ARB_shader_objects - SHADER_SOURCE_LENGTH = 0x8B88 # ARB_shader_objects - ACTIVE_ATTRIBUTES = 0x8B89 # ARB_vertex_shader - ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A # ARB_vertex_shader - FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B # ARB_fragment_shader - SHADING_LANGUAGE_VERSION = 0x8B8C # ARB_shading_language_100 - CURRENT_PROGRAM = 0x8B8D # ARB_shader_objects (added for 2.0) - POINT_SPRITE_COORD_ORIGIN = 0x8CA0 # ARB_point_sprite (added for 2.0) - LOWER_LEFT = 0x8CA1 # ARB_point_sprite (added for 2.0) - UPPER_LEFT = 0x8CA2 # ARB_point_sprite (added for 2.0) - STENCIL_BACK_REF = 0x8CA3 # ARB_stencil_two_side - STENCIL_BACK_VALUE_MASK = 0x8CA4 # ARB_stencil_two_side - STENCIL_BACK_WRITEMASK = 0x8CA5 # ARB_stencil_two_side - -VERSION_2_0_DEPRECATED enum: - VERTEX_PROGRAM_TWO_SIDE = 0x8643 # ARB_vertex_shader - POINT_SPRITE = 0x8861 # ARB_point_sprite - COORD_REPLACE = 0x8862 # ARB_point_sprite - MAX_TEXTURE_COORDS = 0x8871 # ARB_vertex_shader, ARB_fragment_shader - - -############################################################################### -# -# OpenGL 2.1 enums -# -############################################################################### - -VERSION_2_1 enum: - PIXEL_PACK_BUFFER = 0x88EB # ARB_pixel_buffer_object - PIXEL_UNPACK_BUFFER = 0x88EC # ARB_pixel_buffer_object - PIXEL_PACK_BUFFER_BINDING = 0x88ED # ARB_pixel_buffer_object - PIXEL_UNPACK_BUFFER_BINDING = 0x88EF # ARB_pixel_buffer_object - FLOAT_MAT2x3 = 0x8B65 # New for 2.1 - FLOAT_MAT2x4 = 0x8B66 # New for 2.1 - FLOAT_MAT3x2 = 0x8B67 # New for 2.1 - FLOAT_MAT3x4 = 0x8B68 # New for 2.1 - FLOAT_MAT4x2 = 0x8B69 # New for 2.1 - FLOAT_MAT4x3 = 0x8B6A # New for 2.1 - SRGB = 0x8C40 # EXT_texture_sRGB - SRGB8 = 0x8C41 # EXT_texture_sRGB - SRGB_ALPHA = 0x8C42 # EXT_texture_sRGB - SRGB8_ALPHA8 = 0x8C43 # EXT_texture_sRGB - COMPRESSED_SRGB = 0x8C48 # EXT_texture_sRGB - COMPRESSED_SRGB_ALPHA = 0x8C49 # EXT_texture_sRGB - -VERSION_2_1_DEPRECATED enum: - CURRENT_RASTER_SECONDARY_COLOR = 0x845F # New for 2.1 - SLUMINANCE_ALPHA = 0x8C44 # EXT_texture_sRGB - SLUMINANCE8_ALPHA8 = 0x8C45 # EXT_texture_sRGB - SLUMINANCE = 0x8C46 # EXT_texture_sRGB - SLUMINANCE8 = 0x8C47 # EXT_texture_sRGB - COMPRESSED_SLUMINANCE = 0x8C4A # EXT_texture_sRGB - COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B # EXT_texture_sRGB - - -############################################################################### -# -# OpenGL 3.0 enums -# -############################################################################### - -VERSION_3_0 enum: - COMPARE_REF_TO_TEXTURE = 0x884E # alias GL_COMPARE_R_TO_TEXTURE_ARB - CLIP_DISTANCE0 = 0x3000 # alias GL_CLIP_PLANE0 - CLIP_DISTANCE1 = 0x3001 # alias GL_CLIP_PLANE1 - CLIP_DISTANCE2 = 0x3002 # alias GL_CLIP_PLANE2 - CLIP_DISTANCE3 = 0x3003 # alias GL_CLIP_PLANE3 - CLIP_DISTANCE4 = 0x3004 # alias GL_CLIP_PLANE4 - CLIP_DISTANCE5 = 0x3005 # alias GL_CLIP_PLANE5 - CLIP_DISTANCE6 = 0x3006 - CLIP_DISTANCE7 = 0x3007 - MAX_CLIP_DISTANCES = 0x0D32 # alias GL_MAX_CLIP_PLANES - MAJOR_VERSION = 0x821B - MINOR_VERSION = 0x821C - NUM_EXTENSIONS = 0x821D - CONTEXT_FLAGS = 0x821E - DEPTH_BUFFER = 0x8223 - STENCIL_BUFFER = 0x8224 - COMPRESSED_RED = 0x8225 - COMPRESSED_RG = 0x8226 - CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001 - RGBA32F = 0x8814 - RGB32F = 0x8815 - RGBA16F = 0x881A - RGB16F = 0x881B - VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD - MAX_ARRAY_TEXTURE_LAYERS = 0x88FF - MIN_PROGRAM_TEXEL_OFFSET = 0x8904 - MAX_PROGRAM_TEXEL_OFFSET = 0x8905 - CLAMP_READ_COLOR = 0x891C - FIXED_ONLY = 0x891D - MAX_VARYING_COMPONENTS = 0x8B4B # alias GL_MAX_VARYING_FLOATS - TEXTURE_1D_ARRAY = 0x8C18 - PROXY_TEXTURE_1D_ARRAY = 0x8C19 - TEXTURE_2D_ARRAY = 0x8C1A - PROXY_TEXTURE_2D_ARRAY = 0x8C1B - TEXTURE_BINDING_1D_ARRAY = 0x8C1C - TEXTURE_BINDING_2D_ARRAY = 0x8C1D - R11F_G11F_B10F = 0x8C3A - UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B - RGB9_E5 = 0x8C3D - UNSIGNED_INT_5_9_9_9_REV = 0x8C3E - TEXTURE_SHARED_SIZE = 0x8C3F - TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76 - TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80 - TRANSFORM_FEEDBACK_VARYINGS = 0x8C83 - TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84 - TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85 - PRIMITIVES_GENERATED = 0x8C87 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88 - RASTERIZER_DISCARD = 0x8C89 - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B - INTERLEAVED_ATTRIBS = 0x8C8C - SEPARATE_ATTRIBS = 0x8C8D - TRANSFORM_FEEDBACK_BUFFER = 0x8C8E - TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F - RGBA32UI = 0x8D70 - RGB32UI = 0x8D71 - RGBA16UI = 0x8D76 - RGB16UI = 0x8D77 - RGBA8UI = 0x8D7C - RGB8UI = 0x8D7D - RGBA32I = 0x8D82 - RGB32I = 0x8D83 - RGBA16I = 0x8D88 - RGB16I = 0x8D89 - RGBA8I = 0x8D8E - RGB8I = 0x8D8F - RED_INTEGER = 0x8D94 - GREEN_INTEGER = 0x8D95 - BLUE_INTEGER = 0x8D96 - RGB_INTEGER = 0x8D98 - RGBA_INTEGER = 0x8D99 - BGR_INTEGER = 0x8D9A - BGRA_INTEGER = 0x8D9B - SAMPLER_1D_ARRAY = 0x8DC0 - SAMPLER_2D_ARRAY = 0x8DC1 - SAMPLER_1D_ARRAY_SHADOW = 0x8DC3 - SAMPLER_2D_ARRAY_SHADOW = 0x8DC4 - SAMPLER_CUBE_SHADOW = 0x8DC5 - UNSIGNED_INT_VEC2 = 0x8DC6 - UNSIGNED_INT_VEC3 = 0x8DC7 - UNSIGNED_INT_VEC4 = 0x8DC8 - INT_SAMPLER_1D = 0x8DC9 - INT_SAMPLER_2D = 0x8DCA - INT_SAMPLER_3D = 0x8DCB - INT_SAMPLER_CUBE = 0x8DCC - INT_SAMPLER_1D_ARRAY = 0x8DCE - INT_SAMPLER_2D_ARRAY = 0x8DCF - UNSIGNED_INT_SAMPLER_1D = 0x8DD1 - UNSIGNED_INT_SAMPLER_2D = 0x8DD2 - UNSIGNED_INT_SAMPLER_3D = 0x8DD3 - UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4 - UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6 - UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7 - QUERY_WAIT = 0x8E13 - QUERY_NO_WAIT = 0x8E14 - QUERY_BY_REGION_WAIT = 0x8E15 - QUERY_BY_REGION_NO_WAIT = 0x8E16 - BUFFER_ACCESS_FLAGS = 0x911F - BUFFER_MAP_LENGTH = 0x9120 - BUFFER_MAP_OFFSET = 0x9121 -passthru: /* Reuse tokens from ARB_depth_buffer_float */ - use ARB_depth_buffer_float DEPTH_COMPONENT32F - use ARB_depth_buffer_float DEPTH32F_STENCIL8 - use ARB_depth_buffer_float FLOAT_32_UNSIGNED_INT_24_8_REV -passthru: /* Reuse tokens from ARB_framebuffer_object */ - use ARB_framebuffer_object INVALID_FRAMEBUFFER_OPERATION - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_RED_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_GREEN_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_BLUE_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE - use ARB_framebuffer_object FRAMEBUFFER_DEFAULT - use ARB_framebuffer_object FRAMEBUFFER_UNDEFINED - use ARB_framebuffer_object DEPTH_STENCIL_ATTACHMENT - use ARB_framebuffer_object INDEX - use ARB_framebuffer_object MAX_RENDERBUFFER_SIZE - use ARB_framebuffer_object DEPTH_STENCIL - use ARB_framebuffer_object UNSIGNED_INT_24_8 - use ARB_framebuffer_object DEPTH24_STENCIL8 - use ARB_framebuffer_object TEXTURE_STENCIL_SIZE - use ARB_framebuffer_object TEXTURE_RED_TYPE - use ARB_framebuffer_object TEXTURE_GREEN_TYPE - use ARB_framebuffer_object TEXTURE_BLUE_TYPE - use ARB_framebuffer_object TEXTURE_ALPHA_TYPE - use ARB_framebuffer_object TEXTURE_DEPTH_TYPE - use ARB_framebuffer_object UNSIGNED_NORMALIZED - use ARB_framebuffer_object FRAMEBUFFER_BINDING - use ARB_framebuffer_object DRAW_FRAMEBUFFER_BINDING - use ARB_framebuffer_object RENDERBUFFER_BINDING - use ARB_framebuffer_object READ_FRAMEBUFFER - use ARB_framebuffer_object DRAW_FRAMEBUFFER - use ARB_framebuffer_object READ_FRAMEBUFFER_BINDING - use ARB_framebuffer_object RENDERBUFFER_SAMPLES - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_OBJECT_NAME - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER - use ARB_framebuffer_object FRAMEBUFFER_COMPLETE - use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_ATTACHMENT - use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT - use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER - use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_READ_BUFFER - use ARB_framebuffer_object FRAMEBUFFER_UNSUPPORTED - use ARB_framebuffer_object MAX_COLOR_ATTACHMENTS - use ARB_framebuffer_object COLOR_ATTACHMENT0 - use ARB_framebuffer_object COLOR_ATTACHMENT1 - use ARB_framebuffer_object COLOR_ATTACHMENT2 - use ARB_framebuffer_object COLOR_ATTACHMENT3 - use ARB_framebuffer_object COLOR_ATTACHMENT4 - use ARB_framebuffer_object COLOR_ATTACHMENT5 - use ARB_framebuffer_object COLOR_ATTACHMENT6 - use ARB_framebuffer_object COLOR_ATTACHMENT7 - use ARB_framebuffer_object COLOR_ATTACHMENT8 - use ARB_framebuffer_object COLOR_ATTACHMENT9 - use ARB_framebuffer_object COLOR_ATTACHMENT10 - use ARB_framebuffer_object COLOR_ATTACHMENT11 - use ARB_framebuffer_object COLOR_ATTACHMENT12 - use ARB_framebuffer_object COLOR_ATTACHMENT13 - use ARB_framebuffer_object COLOR_ATTACHMENT14 - use ARB_framebuffer_object COLOR_ATTACHMENT15 - use ARB_framebuffer_object DEPTH_ATTACHMENT - use ARB_framebuffer_object STENCIL_ATTACHMENT - use ARB_framebuffer_object FRAMEBUFFER - use ARB_framebuffer_object RENDERBUFFER - use ARB_framebuffer_object RENDERBUFFER_WIDTH - use ARB_framebuffer_object RENDERBUFFER_HEIGHT - use ARB_framebuffer_object RENDERBUFFER_INTERNAL_FORMAT - use ARB_framebuffer_object STENCIL_INDEX1 - use ARB_framebuffer_object STENCIL_INDEX4 - use ARB_framebuffer_object STENCIL_INDEX8 - use ARB_framebuffer_object STENCIL_INDEX16 - use ARB_framebuffer_object RENDERBUFFER_RED_SIZE - use ARB_framebuffer_object RENDERBUFFER_GREEN_SIZE - use ARB_framebuffer_object RENDERBUFFER_BLUE_SIZE - use ARB_framebuffer_object RENDERBUFFER_ALPHA_SIZE - use ARB_framebuffer_object RENDERBUFFER_DEPTH_SIZE - use ARB_framebuffer_object RENDERBUFFER_STENCIL_SIZE - use ARB_framebuffer_object FRAMEBUFFER_INCOMPLETE_MULTISAMPLE - use ARB_framebuffer_object MAX_SAMPLES -passthru: /* Reuse tokens from ARB_framebuffer_sRGB */ - use ARB_framebuffer_sRGB FRAMEBUFFER_SRGB -passthru: /* Reuse tokens from ARB_half_float_vertex */ - use ARB_half_float_vertex HALF_FLOAT -passthru: /* Reuse tokens from ARB_map_buffer_range */ - use ARB_map_buffer_range MAP_READ_BIT - use ARB_map_buffer_range MAP_WRITE_BIT - use ARB_map_buffer_range MAP_INVALIDATE_RANGE_BIT - use ARB_map_buffer_range MAP_INVALIDATE_BUFFER_BIT - use ARB_map_buffer_range MAP_FLUSH_EXPLICIT_BIT - use ARB_map_buffer_range MAP_UNSYNCHRONIZED_BIT -passthru: /* Reuse tokens from ARB_texture_compression_rgtc */ - use ARB_texture_compression_rgtc COMPRESSED_RED_RGTC1 - use ARB_texture_compression_rgtc COMPRESSED_SIGNED_RED_RGTC1 - use ARB_texture_compression_rgtc COMPRESSED_RG_RGTC2 - use ARB_texture_compression_rgtc COMPRESSED_SIGNED_RG_RGTC2 -passthru: /* Reuse tokens from ARB_texture_rg */ - use ARB_texture_rg RG - use ARB_texture_rg RG_INTEGER - use ARB_texture_rg R8 - use ARB_texture_rg R16 - use ARB_texture_rg RG8 - use ARB_texture_rg RG16 - use ARB_texture_rg R16F - use ARB_texture_rg R32F - use ARB_texture_rg RG16F - use ARB_texture_rg RG32F - use ARB_texture_rg R8I - use ARB_texture_rg R8UI - use ARB_texture_rg R16I - use ARB_texture_rg R16UI - use ARB_texture_rg R32I - use ARB_texture_rg R32UI - use ARB_texture_rg RG8I - use ARB_texture_rg RG8UI - use ARB_texture_rg RG16I - use ARB_texture_rg RG16UI - use ARB_texture_rg RG32I - use ARB_texture_rg RG32UI -passthru: /* Reuse tokens from ARB_vertex_array_object */ - use ARB_vertex_array_object VERTEX_ARRAY_BINDING - -VERSION_3_0_DEPRECATED enum: - CLAMP_VERTEX_COLOR = 0x891A - CLAMP_FRAGMENT_COLOR = 0x891B - ALPHA_INTEGER = 0x8D97 -passthru: /* Reuse tokens from ARB_framebuffer_object */ - use ARB_framebuffer_object TEXTURE_LUMINANCE_TYPE - use ARB_framebuffer_object TEXTURE_INTENSITY_TYPE - - -############################################################################### -# -# OpenGL 3.1 enums -# -############################################################################### - -VERSION_3_1 enum: - SAMPLER_2D_RECT = 0x8B63 # ARB_shader_objects + ARB_texture_rectangle - SAMPLER_2D_RECT_SHADOW = 0x8B64 # ARB_shader_objects + ARB_texture_rectangle - SAMPLER_BUFFER = 0x8DC2 # EXT_gpu_shader4 + ARB_texture_buffer_object - INT_SAMPLER_2D_RECT = 0x8DCD # EXT_gpu_shader4 + ARB_texture_rectangle - INT_SAMPLER_BUFFER = 0x8DD0 # EXT_gpu_shader4 + ARB_texture_buffer_object - UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5 # EXT_gpu_shader4 + ARB_texture_rectangle - UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8 # EXT_gpu_shader4 + ARB_texture_buffer_object - TEXTURE_BUFFER = 0x8C2A # ARB_texture_buffer_object - MAX_TEXTURE_BUFFER_SIZE = 0x8C2B # ARB_texture_buffer_object - TEXTURE_BINDING_BUFFER = 0x8C2C # ARB_texture_buffer_object - TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D # ARB_texture_buffer_object - TEXTURE_BUFFER_FORMAT = 0x8C2E # ARB_texture_buffer_object - TEXTURE_RECTANGLE = 0x84F5 # ARB_texture_rectangle - TEXTURE_BINDING_RECTANGLE = 0x84F6 # ARB_texture_rectangle - PROXY_TEXTURE_RECTANGLE = 0x84F7 # ARB_texture_rectangle - MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8 # ARB_texture_rectangle - RED_SNORM = 0x8F90 # 3.1 - RG_SNORM = 0x8F91 # 3.1 - RGB_SNORM = 0x8F92 # 3.1 - RGBA_SNORM = 0x8F93 # 3.1 - R8_SNORM = 0x8F94 # 3.1 - RG8_SNORM = 0x8F95 # 3.1 - RGB8_SNORM = 0x8F96 # 3.1 - RGBA8_SNORM = 0x8F97 # 3.1 - R16_SNORM = 0x8F98 # 3.1 - RG16_SNORM = 0x8F99 # 3.1 - RGB16_SNORM = 0x8F9A # 3.1 - RGBA16_SNORM = 0x8F9B # 3.1 - SIGNED_NORMALIZED = 0x8F9C # 3.1 - PRIMITIVE_RESTART = 0x8F9D # 3.1 (different from NV_primitive_restart) - PRIMITIVE_RESTART_INDEX = 0x8F9E # 3.1 (different from NV_primitive_restart) -passthru: /* Reuse tokens from ARB_copy_buffer */ - use ARB_copy_buffer COPY_READ_BUFFER - use ARB_copy_buffer COPY_WRITE_BUFFER -passthru: /* Would reuse tokens from ARB_draw_instanced, but it has none */ -passthru: /* Reuse tokens from ARB_uniform_buffer_object */ - use ARB_uniform_buffer_object UNIFORM_BUFFER - use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING - use ARB_uniform_buffer_object UNIFORM_BUFFER_START - use ARB_uniform_buffer_object UNIFORM_BUFFER_SIZE - use ARB_uniform_buffer_object MAX_VERTEX_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_FRAGMENT_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_COMBINED_UNIFORM_BLOCKS - use ARB_uniform_buffer_object MAX_UNIFORM_BUFFER_BINDINGS - use ARB_uniform_buffer_object MAX_UNIFORM_BLOCK_SIZE - use ARB_uniform_buffer_object MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS - use ARB_uniform_buffer_object MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS - use ARB_uniform_buffer_object UNIFORM_BUFFER_OFFSET_ALIGNMENT - use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH - use ARB_uniform_buffer_object ACTIVE_UNIFORM_BLOCKS - use ARB_uniform_buffer_object UNIFORM_TYPE - use ARB_uniform_buffer_object UNIFORM_SIZE - use ARB_uniform_buffer_object UNIFORM_NAME_LENGTH - use ARB_uniform_buffer_object UNIFORM_BLOCK_INDEX - use ARB_uniform_buffer_object UNIFORM_OFFSET - use ARB_uniform_buffer_object UNIFORM_ARRAY_STRIDE - use ARB_uniform_buffer_object UNIFORM_MATRIX_STRIDE - use ARB_uniform_buffer_object UNIFORM_IS_ROW_MAJOR - use ARB_uniform_buffer_object UNIFORM_BLOCK_BINDING - use ARB_uniform_buffer_object UNIFORM_BLOCK_DATA_SIZE - use ARB_uniform_buffer_object UNIFORM_BLOCK_NAME_LENGTH - use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORMS - use ARB_uniform_buffer_object UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES - use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER - use ARB_uniform_buffer_object UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER - use ARB_uniform_buffer_object INVALID_INDEX - - -############################################################################### -# -# OpenGL 3.2 enums -# -############################################################################### - -VERSION_3_2 enum: - CONTEXT_CORE_PROFILE_BIT = 0x00000001 - CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 - LINES_ADJACENCY = 0x000A - LINE_STRIP_ADJACENCY = 0x000B - TRIANGLES_ADJACENCY = 0x000C - TRIANGLE_STRIP_ADJACENCY = 0x000D - PROGRAM_POINT_SIZE = 0x8642 - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 - FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 - GEOMETRY_SHADER = 0x8DD9 - GEOMETRY_VERTICES_OUT = 0x8916 - GEOMETRY_INPUT_TYPE = 0x8917 - GEOMETRY_OUTPUT_TYPE = 0x8918 - MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 - MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122 - MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 - MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 - MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125 - CONTEXT_PROFILE_MASK = 0x9126 - use VERSION_3_0 MAX_VARYING_COMPONENTS - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER -passthru: /* Reuse tokens from ARB_depth_clamp */ - use ARB_depth_clamp DEPTH_CLAMP -passthru: /* Would reuse tokens from ARB_draw_elements_base_vertex, but it has none */ -passthru: /* Would reuse tokens from ARB_fragment_coord_conventions, but it has none */ -passthru: /* Reuse tokens from ARB_provoking_vertex */ - use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION - use ARB_provoking_vertex FIRST_VERTEX_CONVENTION - use ARB_provoking_vertex LAST_VERTEX_CONVENTION - use ARB_provoking_vertex PROVOKING_VERTEX -passthru: /* Reuse tokens from ARB_seamless_cube_map */ - use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS -passthru: /* Reuse tokens from ARB_sync */ - use ARB_sync MAX_SERVER_WAIT_TIMEOUT - use ARB_sync OBJECT_TYPE - use ARB_sync SYNC_CONDITION - use ARB_sync SYNC_STATUS - use ARB_sync SYNC_FLAGS - use ARB_sync SYNC_FENCE - use ARB_sync SYNC_GPU_COMMANDS_COMPLETE - use ARB_sync UNSIGNALED - use ARB_sync SIGNALED - use ARB_sync ALREADY_SIGNALED - use ARB_sync TIMEOUT_EXPIRED - use ARB_sync CONDITION_SATISFIED - use ARB_sync WAIT_FAILED - use ARB_sync TIMEOUT_IGNORED - use ARB_sync SYNC_FLUSH_COMMANDS_BIT - use ARB_sync TIMEOUT_IGNORED -passthru: /* Reuse tokens from ARB_texture_multisample */ - use ARB_texture_multisample SAMPLE_POSITION - use ARB_texture_multisample SAMPLE_MASK - use ARB_texture_multisample SAMPLE_MASK_VALUE - use ARB_texture_multisample MAX_SAMPLE_MASK_WORDS - use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE - use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE - use ARB_texture_multisample TEXTURE_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE - use ARB_texture_multisample TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample TEXTURE_SAMPLES - use ARB_texture_multisample TEXTURE_FIXED_SAMPLE_LOCATIONS - use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE - use ARB_texture_multisample SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample INT_SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY - use ARB_texture_multisample MAX_COLOR_TEXTURE_SAMPLES - use ARB_texture_multisample MAX_DEPTH_TEXTURE_SAMPLES - use ARB_texture_multisample MAX_INTEGER_SAMPLES -passthru: /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ - -############################################################################### -# -# ARB extensions, in ARB extension order -# -############################################################################### - -############################################################################### - -# ARB Extension #1 -ARB_multitexture enum: - TEXTURE0_ARB = 0x84C0 - TEXTURE1_ARB = 0x84C1 - TEXTURE2_ARB = 0x84C2 - TEXTURE3_ARB = 0x84C3 - TEXTURE4_ARB = 0x84C4 - TEXTURE5_ARB = 0x84C5 - TEXTURE6_ARB = 0x84C6 - TEXTURE7_ARB = 0x84C7 - TEXTURE8_ARB = 0x84C8 - TEXTURE9_ARB = 0x84C9 - TEXTURE10_ARB = 0x84CA - TEXTURE11_ARB = 0x84CB - TEXTURE12_ARB = 0x84CC - TEXTURE13_ARB = 0x84CD - TEXTURE14_ARB = 0x84CE - TEXTURE15_ARB = 0x84CF - TEXTURE16_ARB = 0x84D0 - TEXTURE17_ARB = 0x84D1 - TEXTURE18_ARB = 0x84D2 - TEXTURE19_ARB = 0x84D3 - TEXTURE20_ARB = 0x84D4 - TEXTURE21_ARB = 0x84D5 - TEXTURE22_ARB = 0x84D6 - TEXTURE23_ARB = 0x84D7 - TEXTURE24_ARB = 0x84D8 - TEXTURE25_ARB = 0x84D9 - TEXTURE26_ARB = 0x84DA - TEXTURE27_ARB = 0x84DB - TEXTURE28_ARB = 0x84DC - TEXTURE29_ARB = 0x84DD - TEXTURE30_ARB = 0x84DE - TEXTURE31_ARB = 0x84DF - ACTIVE_TEXTURE_ARB = 0x84E0 # 1 I - CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 # 1 I - MAX_TEXTURE_UNITS_ARB = 0x84E2 # 1 I - -############################################################################### - -# No new tokens -# ARB Extension #2 - GLX_ARB_get_proc_address - -############################################################################### - -# ARB Extension #3 -ARB_transpose_matrix enum: - TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 # 16 F - TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 # 16 F - TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 # 16 F - TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 # 16 F - -############################################################################### - -# No new tokens -# ARB Extension #4 - WGL_ARB_buffer_region - -############################################################################### - -# ARB Extension #5 -ARB_multisample enum: - MULTISAMPLE_ARB = 0x809D - SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E - SAMPLE_ALPHA_TO_ONE_ARB = 0x809F - SAMPLE_COVERAGE_ARB = 0x80A0 - SAMPLE_BUFFERS_ARB = 0x80A8 - SAMPLES_ARB = 0x80A9 - SAMPLE_COVERAGE_VALUE_ARB = 0x80AA - SAMPLE_COVERAGE_INVERT_ARB = 0x80AB - MULTISAMPLE_BIT_ARB = 0x20000000 - -############################################################################### - -# No new tokens -# ARB Extension #6 -ARB_texture_env_add enum: - -############################################################################### - -# ARB Extension #7 -ARB_texture_cube_map enum: - NORMAL_MAP_ARB = 0x8511 - REFLECTION_MAP_ARB = 0x8512 - TEXTURE_CUBE_MAP_ARB = 0x8513 - TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A - PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C - -############################################################################### - -# No new tokens -# ARB Extension #8 - WGL_ARB_extensions_string -# ARB Extension #9 - WGL_ARB_pixel_format -# ARB Extension #10 - WGL_ARB_make_current_read -# ARB Extension #11 - WGL_ARB_pbuffer - -############################################################################### - -# ARB Extension #12 -ARB_texture_compression enum: - COMPRESSED_ALPHA_ARB = 0x84E9 - COMPRESSED_LUMINANCE_ARB = 0x84EA - COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB - COMPRESSED_INTENSITY_ARB = 0x84EC - COMPRESSED_RGB_ARB = 0x84ED - COMPRESSED_RGBA_ARB = 0x84EE - TEXTURE_COMPRESSION_HINT_ARB = 0x84EF - TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 - TEXTURE_COMPRESSED_ARB = 0x86A1 - NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 - COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 - -############################################################################### - -# ARB Extension #13 -# Promoted from #36 SGIS_texture_border_clamp -ARB_texture_border_clamp enum: - CLAMP_TO_BORDER_ARB = 0x812D - -############################################################################### - -# ARB Extension #14 - promoted from #54 EXT_point_parameters -# Promoted from #54 {SGIS,EXT}_point_parameters -ARB_point_parameters enum: - POINT_SIZE_MIN_ARB = 0x8126 # 1 F - POINT_SIZE_MAX_ARB = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 # 1 F - POINT_DISTANCE_ATTENUATION_ARB = 0x8129 # 3 F - -############################################################################### - -# ARB Extension #15 -ARB_vertex_blend enum: - MAX_VERTEX_UNITS_ARB = 0x86A4 - ACTIVE_VERTEX_UNITS_ARB = 0x86A5 - WEIGHT_SUM_UNITY_ARB = 0x86A6 - VERTEX_BLEND_ARB = 0x86A7 - CURRENT_WEIGHT_ARB = 0x86A8 - WEIGHT_ARRAY_TYPE_ARB = 0x86A9 - WEIGHT_ARRAY_STRIDE_ARB = 0x86AA - WEIGHT_ARRAY_SIZE_ARB = 0x86AB - WEIGHT_ARRAY_POINTER_ARB = 0x86AC - WEIGHT_ARRAY_ARB = 0x86AD - MODELVIEW0_ARB = 0x1700 - MODELVIEW1_ARB = 0x850A - MODELVIEW2_ARB = 0x8722 - MODELVIEW3_ARB = 0x8723 - MODELVIEW4_ARB = 0x8724 - MODELVIEW5_ARB = 0x8725 - MODELVIEW6_ARB = 0x8726 - MODELVIEW7_ARB = 0x8727 - MODELVIEW8_ARB = 0x8728 - MODELVIEW9_ARB = 0x8729 - MODELVIEW10_ARB = 0x872A - MODELVIEW11_ARB = 0x872B - MODELVIEW12_ARB = 0x872C - MODELVIEW13_ARB = 0x872D - MODELVIEW14_ARB = 0x872E - MODELVIEW15_ARB = 0x872F - MODELVIEW16_ARB = 0x8730 - MODELVIEW17_ARB = 0x8731 - MODELVIEW18_ARB = 0x8732 - MODELVIEW19_ARB = 0x8733 - MODELVIEW20_ARB = 0x8734 - MODELVIEW21_ARB = 0x8735 - MODELVIEW22_ARB = 0x8736 - MODELVIEW23_ARB = 0x8737 - MODELVIEW24_ARB = 0x8738 - MODELVIEW25_ARB = 0x8739 - MODELVIEW26_ARB = 0x873A - MODELVIEW27_ARB = 0x873B - MODELVIEW28_ARB = 0x873C - MODELVIEW29_ARB = 0x873D - MODELVIEW30_ARB = 0x873E - MODELVIEW31_ARB = 0x873F - -############################################################################### - -# ARB Extension #16 -ARB_matrix_palette enum: - MATRIX_PALETTE_ARB = 0x8840 - MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 - MAX_PALETTE_MATRICES_ARB = 0x8842 - CURRENT_PALETTE_MATRIX_ARB = 0x8843 - MATRIX_INDEX_ARRAY_ARB = 0x8844 - CURRENT_MATRIX_INDEX_ARB = 0x8845 - MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 - MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 - MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 - MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 - -############################################################################### - -# ARB Extension #17 -# Shares enum values with EXT_texture_env_combine -ARB_texture_env_combine enum: - COMBINE_ARB = 0x8570 - COMBINE_RGB_ARB = 0x8571 - COMBINE_ALPHA_ARB = 0x8572 - SOURCE0_RGB_ARB = 0x8580 - SOURCE1_RGB_ARB = 0x8581 - SOURCE2_RGB_ARB = 0x8582 - SOURCE0_ALPHA_ARB = 0x8588 - SOURCE1_ALPHA_ARB = 0x8589 - SOURCE2_ALPHA_ARB = 0x858A - OPERAND0_RGB_ARB = 0x8590 - OPERAND1_RGB_ARB = 0x8591 - OPERAND2_RGB_ARB = 0x8592 - OPERAND0_ALPHA_ARB = 0x8598 - OPERAND1_ALPHA_ARB = 0x8599 - OPERAND2_ALPHA_ARB = 0x859A - RGB_SCALE_ARB = 0x8573 - ADD_SIGNED_ARB = 0x8574 - INTERPOLATE_ARB = 0x8575 - SUBTRACT_ARB = 0x84E7 - CONSTANT_ARB = 0x8576 - PRIMARY_COLOR_ARB = 0x8577 - PREVIOUS_ARB = 0x8578 - -############################################################################### - -# No new tokens -# ARB Extension #18 -ARB_texture_env_crossbar enum: - -############################################################################### - -# ARB Extension #19 -# Promoted from #220 EXT_texture_env_dot3; enum values changed -ARB_texture_env_dot3 enum: - DOT3_RGB_ARB = 0x86AE - DOT3_RGBA_ARB = 0x86AF - -############################################################################### - -# No new tokens -# ARB Extension #20 - WGL_ARB_render_texture - -############################################################################### - -# ARB Extension #21 -ARB_texture_mirrored_repeat enum: - MIRRORED_REPEAT_ARB = 0x8370 - -############################################################################### - -# ARB Extension #22 -ARB_depth_texture enum: - DEPTH_COMPONENT16_ARB = 0x81A5 - DEPTH_COMPONENT24_ARB = 0x81A6 - DEPTH_COMPONENT32_ARB = 0x81A7 - TEXTURE_DEPTH_SIZE_ARB = 0x884A - DEPTH_TEXTURE_MODE_ARB = 0x884B - -############################################################################### - -# ARB Extension #23 -ARB_shadow enum: - TEXTURE_COMPARE_MODE_ARB = 0x884C - TEXTURE_COMPARE_FUNC_ARB = 0x884D - COMPARE_R_TO_TEXTURE_ARB = 0x884E - -############################################################################### - -# ARB Extension #24 -ARB_shadow_ambient enum: - TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF - -############################################################################### - -# No new tokens -# ARB Extension #25 -ARB_window_pos enum: - -############################################################################### - -# ARB Extension #26 -# ARB_vertex_program enums are shared by ARB_fragment_program are so marked. -# Unfortunately, PROGRAM_BINDING_ARB does accidentally reuse 0x8677 - -# this was a spec editing typo that's now uncorrectable. -ARB_vertex_program enum: - COLOR_SUM_ARB = 0x8458 - VERTEX_PROGRAM_ARB = 0x8620 - VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622 - VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623 - VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624 - VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625 - CURRENT_VERTEX_ATTRIB_ARB = 0x8626 - PROGRAM_LENGTH_ARB = 0x8627 # shared - PROGRAM_STRING_ARB = 0x8628 # shared - MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # shared - MAX_PROGRAM_MATRICES_ARB = 0x862F # shared - CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # shared - CURRENT_MATRIX_ARB = 0x8641 # shared - VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642 - VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643 - VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645 - PROGRAM_ERROR_POSITION_ARB = 0x864B # shared - PROGRAM_BINDING_ARB = 0x8677 # shared - MAX_VERTEX_ATTRIBS_ARB = 0x8869 - VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A - PROGRAM_ERROR_STRING_ARB = 0x8874 # shared - PROGRAM_FORMAT_ASCII_ARB = 0x8875 # shared - PROGRAM_FORMAT_ARB = 0x8876 # shared - PROGRAM_INSTRUCTIONS_ARB = 0x88A0 # shared - MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 # shared - PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 # shared - MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 # shared - PROGRAM_TEMPORARIES_ARB = 0x88A4 # shared - MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 # shared - PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 # shared - MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 # shared - PROGRAM_PARAMETERS_ARB = 0x88A8 # shared - MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 # shared - PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA # shared - MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB # shared - PROGRAM_ATTRIBS_ARB = 0x88AC # shared - MAX_PROGRAM_ATTRIBS_ARB = 0x88AD # shared - PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE # shared - MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF # shared - PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 # shared - MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 # shared - PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 # shared - MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 # shared - MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 # shared - MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 # shared - PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 # shared - TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 # shared - MATRIX0_ARB = 0x88C0 # shared - MATRIX1_ARB = 0x88C1 # shared - MATRIX2_ARB = 0x88C2 # shared - MATRIX3_ARB = 0x88C3 # shared - MATRIX4_ARB = 0x88C4 # shared - MATRIX5_ARB = 0x88C5 # shared - MATRIX6_ARB = 0x88C6 # shared - MATRIX7_ARB = 0x88C7 # shared - MATRIX8_ARB = 0x88C8 # shared - MATRIX9_ARB = 0x88C9 # shared - MATRIX10_ARB = 0x88CA # shared - MATRIX11_ARB = 0x88CB # shared - MATRIX12_ARB = 0x88CC # shared - MATRIX13_ARB = 0x88CD # shared - MATRIX14_ARB = 0x88CE # shared - MATRIX15_ARB = 0x88CF # shared - MATRIX16_ARB = 0x88D0 # shared - MATRIX17_ARB = 0x88D1 # shared - MATRIX18_ARB = 0x88D2 # shared - MATRIX19_ARB = 0x88D3 # shared - MATRIX20_ARB = 0x88D4 # shared - MATRIX21_ARB = 0x88D5 # shared - MATRIX22_ARB = 0x88D6 # shared - MATRIX23_ARB = 0x88D7 # shared - MATRIX24_ARB = 0x88D8 # shared - MATRIX25_ARB = 0x88D9 # shared - MATRIX26_ARB = 0x88DA # shared - MATRIX27_ARB = 0x88DB # shared - MATRIX28_ARB = 0x88DC # shared - MATRIX29_ARB = 0x88DD # shared - MATRIX30_ARB = 0x88DE # shared - MATRIX31_ARB = 0x88DF # shared - -############################################################################### - -# ARB Extension #27 -# Some ARB_fragment_program enums are shared with ARB_vertex_program, -# and are only included in that #define block, for now. -ARB_fragment_program enum: -# PROGRAM_LENGTH_ARB = 0x8627 # shared -# PROGRAM_STRING_ARB = 0x8628 # shared -# MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E # shared -# MAX_PROGRAM_MATRICES_ARB = 0x862F # shared -# CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 # shared -# CURRENT_MATRIX_ARB = 0x8641 # shared -# PROGRAM_ERROR_POSITION_ARB = 0x864B # shared -# PROGRAM_BINDING_ARB = 0x8677 # shared - FRAGMENT_PROGRAM_ARB = 0x8804 - PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 - PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 - PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 - PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 - PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 - PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A - MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B - MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C - MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D - MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E - MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F - MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 - MAX_TEXTURE_COORDS_ARB = 0x8871 - MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872 -# PROGRAM_ERROR_STRING_ARB = 0x8874 # shared -# PROGRAM_FORMAT_ASCII_ARB = 0x8875 # shared -# PROGRAM_FORMAT_ARB = 0x8876 # shared -# PROGRAM_INSTRUCTIONS_ARB = 0x88A0 # shared -# MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 # shared -# PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 # shared -# MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 # shared -# PROGRAM_TEMPORARIES_ARB = 0x88A4 # shared -# MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 # shared -# PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 # shared -# MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 # shared -# PROGRAM_PARAMETERS_ARB = 0x88A8 # shared -# MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 # shared -# PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA # shared -# MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB # shared -# PROGRAM_ATTRIBS_ARB = 0x88AC # shared -# MAX_PROGRAM_ATTRIBS_ARB = 0x88AD # shared -# PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE # shared -# MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF # shared -# PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 # shared -# MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 # shared -# PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 # shared -# MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 # shared -# MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 # shared -# MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 # shared -# PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 # shared -# TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 # shared -# MATRIX0_ARB = 0x88C0 # shared -# MATRIX1_ARB = 0x88C1 # shared -# MATRIX2_ARB = 0x88C2 # shared -# MATRIX3_ARB = 0x88C3 # shared -# MATRIX4_ARB = 0x88C4 # shared -# MATRIX5_ARB = 0x88C5 # shared -# MATRIX6_ARB = 0x88C6 # shared -# MATRIX7_ARB = 0x88C7 # shared -# MATRIX8_ARB = 0x88C8 # shared -# MATRIX9_ARB = 0x88C9 # shared -# MATRIX10_ARB = 0x88CA # shared -# MATRIX11_ARB = 0x88CB # shared -# MATRIX12_ARB = 0x88CC # shared -# MATRIX13_ARB = 0x88CD # shared -# MATRIX14_ARB = 0x88CE # shared -# MATRIX15_ARB = 0x88CF # shared -# MATRIX16_ARB = 0x88D0 # shared -# MATRIX17_ARB = 0x88D1 # shared -# MATRIX18_ARB = 0x88D2 # shared -# MATRIX19_ARB = 0x88D3 # shared -# MATRIX20_ARB = 0x88D4 # shared -# MATRIX21_ARB = 0x88D5 # shared -# MATRIX22_ARB = 0x88D6 # shared -# MATRIX23_ARB = 0x88D7 # shared -# MATRIX24_ARB = 0x88D8 # shared -# MATRIX25_ARB = 0x88D9 # shared -# MATRIX26_ARB = 0x88DA # shared -# MATRIX27_ARB = 0x88DB # shared -# MATRIX28_ARB = 0x88DC # shared -# MATRIX29_ARB = 0x88DD # shared -# MATRIX30_ARB = 0x88DE # shared -# MATRIX31_ARB = 0x88DF # shared - - -############################################################################### - -# ARB Extension #28 -ARB_vertex_buffer_object enum: - BUFFER_SIZE_ARB = 0x8764 - BUFFER_USAGE_ARB = 0x8765 - ARRAY_BUFFER_ARB = 0x8892 - ELEMENT_ARRAY_BUFFER_ARB = 0x8893 - ARRAY_BUFFER_BINDING_ARB = 0x8894 - ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 - VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 - NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 - COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 - INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 - TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A - EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B - SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C - FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D - WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E - VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F - READ_ONLY_ARB = 0x88B8 - WRITE_ONLY_ARB = 0x88B9 - READ_WRITE_ARB = 0x88BA - BUFFER_ACCESS_ARB = 0x88BB - BUFFER_MAPPED_ARB = 0x88BC - BUFFER_MAP_POINTER_ARB = 0x88BD - STREAM_DRAW_ARB = 0x88E0 - STREAM_READ_ARB = 0x88E1 - STREAM_COPY_ARB = 0x88E2 - STATIC_DRAW_ARB = 0x88E4 - STATIC_READ_ARB = 0x88E5 - STATIC_COPY_ARB = 0x88E6 - DYNAMIC_DRAW_ARB = 0x88E8 - DYNAMIC_READ_ARB = 0x88E9 - DYNAMIC_COPY_ARB = 0x88EA - -############################################################################### - -# ARB Extension #29 -ARB_occlusion_query enum: - QUERY_COUNTER_BITS_ARB = 0x8864 - CURRENT_QUERY_ARB = 0x8865 - QUERY_RESULT_ARB = 0x8866 - QUERY_RESULT_AVAILABLE_ARB = 0x8867 - SAMPLES_PASSED_ARB = 0x8914 - -############################################################################### - -# ARB Extension #30 -ARB_shader_objects enum: - PROGRAM_OBJECT_ARB = 0x8B40 - SHADER_OBJECT_ARB = 0x8B48 - OBJECT_TYPE_ARB = 0x8B4E - OBJECT_SUBTYPE_ARB = 0x8B4F - FLOAT_VEC2_ARB = 0x8B50 - FLOAT_VEC3_ARB = 0x8B51 - FLOAT_VEC4_ARB = 0x8B52 - INT_VEC2_ARB = 0x8B53 - INT_VEC3_ARB = 0x8B54 - INT_VEC4_ARB = 0x8B55 - BOOL_ARB = 0x8B56 - BOOL_VEC2_ARB = 0x8B57 - BOOL_VEC3_ARB = 0x8B58 - BOOL_VEC4_ARB = 0x8B59 - FLOAT_MAT2_ARB = 0x8B5A - FLOAT_MAT3_ARB = 0x8B5B - FLOAT_MAT4_ARB = 0x8B5C - SAMPLER_1D_ARB = 0x8B5D - SAMPLER_2D_ARB = 0x8B5E - SAMPLER_3D_ARB = 0x8B5F - SAMPLER_CUBE_ARB = 0x8B60 - SAMPLER_1D_SHADOW_ARB = 0x8B61 - SAMPLER_2D_SHADOW_ARB = 0x8B62 - SAMPLER_2D_RECT_ARB = 0x8B63 - SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 - OBJECT_DELETE_STATUS_ARB = 0x8B80 - OBJECT_COMPILE_STATUS_ARB = 0x8B81 - OBJECT_LINK_STATUS_ARB = 0x8B82 - OBJECT_VALIDATE_STATUS_ARB = 0x8B83 - OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 - OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 - OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 - OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 - OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 - -############################################################################### - -# ARB Extension #31 -# Additional enums are reused from ARB_vertex/fragment_program and ARB_shader_objects -ARB_vertex_shader enum: - VERTEX_SHADER_ARB = 0x8B31 - MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A - MAX_VARYING_FLOATS_ARB = 0x8B4B - MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C - MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D - OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 - OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A - -############################################################################### - -# ARB Extension #32 -# Additional enums are reused from ARB_fragment_program and ARB_shader_objects -ARB_fragment_shader enum: - FRAGMENT_SHADER_ARB = 0x8B30 - MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 - FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B - -############################################################################### - -# ARB Extension #33 -ARB_shading_language_100 enum: - SHADING_LANGUAGE_VERSION_ARB = 0x8B8C - -############################################################################### - -# ARB Extension #34 -# No new tokens -ARB_texture_non_power_of_two enum: - -############################################################################### - -# ARB Extension #35 -ARB_point_sprite enum: - POINT_SPRITE_ARB = 0x8861 - COORD_REPLACE_ARB = 0x8862 - -############################################################################### - -# ARB Extension #36 -# No new tokens -ARB_fragment_program_shadow enum: - -############################################################################### - -# ARB Extension #37 -ARB_draw_buffers enum: - MAX_DRAW_BUFFERS_ARB = 0x8824 - DRAW_BUFFER0_ARB = 0x8825 - DRAW_BUFFER1_ARB = 0x8826 - DRAW_BUFFER2_ARB = 0x8827 - DRAW_BUFFER3_ARB = 0x8828 - DRAW_BUFFER4_ARB = 0x8829 - DRAW_BUFFER5_ARB = 0x882A - DRAW_BUFFER6_ARB = 0x882B - DRAW_BUFFER7_ARB = 0x882C - DRAW_BUFFER8_ARB = 0x882D - DRAW_BUFFER9_ARB = 0x882E - DRAW_BUFFER10_ARB = 0x882F - DRAW_BUFFER11_ARB = 0x8830 - DRAW_BUFFER12_ARB = 0x8831 - DRAW_BUFFER13_ARB = 0x8832 - DRAW_BUFFER14_ARB = 0x8833 - DRAW_BUFFER15_ARB = 0x8834 - -############################################################################### - -# ARB Extension #38 -ARB_texture_rectangle enum: - TEXTURE_RECTANGLE_ARB = 0x84F5 - TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 - PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 - MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 - -############################################################################### - -# ARB Extension #39 -ARB_color_buffer_float enum: - RGBA_FLOAT_MODE_ARB = 0x8820 - CLAMP_VERTEX_COLOR_ARB = 0x891A - CLAMP_FRAGMENT_COLOR_ARB = 0x891B - CLAMP_READ_COLOR_ARB = 0x891C - FIXED_ONLY_ARB = 0x891D - -############################################################################### - -# ARB Extension #40 -ARB_half_float_pixel enum: - HALF_FLOAT_ARB = 0x140B - -############################################################################### - -# ARB Extension #41 -ARB_texture_float enum: - TEXTURE_RED_TYPE_ARB = 0x8C10 - TEXTURE_GREEN_TYPE_ARB = 0x8C11 - TEXTURE_BLUE_TYPE_ARB = 0x8C12 - TEXTURE_ALPHA_TYPE_ARB = 0x8C13 - TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 - TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 - TEXTURE_DEPTH_TYPE_ARB = 0x8C16 - UNSIGNED_NORMALIZED_ARB = 0x8C17 - RGBA32F_ARB = 0x8814 - RGB32F_ARB = 0x8815 - ALPHA32F_ARB = 0x8816 - INTENSITY32F_ARB = 0x8817 - LUMINANCE32F_ARB = 0x8818 - LUMINANCE_ALPHA32F_ARB = 0x8819 - RGBA16F_ARB = 0x881A - RGB16F_ARB = 0x881B - ALPHA16F_ARB = 0x881C - INTENSITY16F_ARB = 0x881D - LUMINANCE16F_ARB = 0x881E - LUMINANCE_ALPHA16F_ARB = 0x881F - -############################################################################### - -# ARB Extension #42 -ARB_pixel_buffer_object enum: - PIXEL_PACK_BUFFER_ARB = 0x88EB - PIXEL_UNPACK_BUFFER_ARB = 0x88EC - PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED - PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF - -############################################################################### - -# ARB Extension #43 -ARB_depth_buffer_float enum: - DEPTH_COMPONENT32F = 0x8CAC - DEPTH32F_STENCIL8 = 0x8CAD - FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD - -############################################################################### - -# ARB Extension #44 -# No new tokens -ARB_draw_instanced enum: - -############################################################################### - -# ARB Extension #45 -ARB_framebuffer_object enum: - INVALID_FRAMEBUFFER_OPERATION = 0x0506 - FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210 - FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211 - FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212 - FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213 - FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214 - FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215 - FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216 - FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217 - FRAMEBUFFER_DEFAULT = 0x8218 - FRAMEBUFFER_UNDEFINED = 0x8219 - DEPTH_STENCIL_ATTACHMENT = 0x821A - MAX_RENDERBUFFER_SIZE = 0x84E8 - DEPTH_STENCIL = 0x84F9 - UNSIGNED_INT_24_8 = 0x84FA - DEPTH24_STENCIL8 = 0x88F0 - TEXTURE_STENCIL_SIZE = 0x88F1 - TEXTURE_RED_TYPE = 0x8C10 - TEXTURE_GREEN_TYPE = 0x8C11 - TEXTURE_BLUE_TYPE = 0x8C12 - TEXTURE_ALPHA_TYPE = 0x8C13 - TEXTURE_DEPTH_TYPE = 0x8C16 - UNSIGNED_NORMALIZED = 0x8C17 - FRAMEBUFFER_BINDING = 0x8CA6 - DRAW_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING - RENDERBUFFER_BINDING = 0x8CA7 - READ_FRAMEBUFFER = 0x8CA8 - DRAW_FRAMEBUFFER = 0x8CA9 - READ_FRAMEBUFFER_BINDING = 0x8CAA - RENDERBUFFER_SAMPLES = 0x8CAB - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4 - FRAMEBUFFER_COMPLETE = 0x8CD5 - FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB - FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC - FRAMEBUFFER_UNSUPPORTED = 0x8CDD - MAX_COLOR_ATTACHMENTS = 0x8CDF - COLOR_ATTACHMENT0 = 0x8CE0 - COLOR_ATTACHMENT1 = 0x8CE1 - COLOR_ATTACHMENT2 = 0x8CE2 - COLOR_ATTACHMENT3 = 0x8CE3 - COLOR_ATTACHMENT4 = 0x8CE4 - COLOR_ATTACHMENT5 = 0x8CE5 - COLOR_ATTACHMENT6 = 0x8CE6 - COLOR_ATTACHMENT7 = 0x8CE7 - COLOR_ATTACHMENT8 = 0x8CE8 - COLOR_ATTACHMENT9 = 0x8CE9 - COLOR_ATTACHMENT10 = 0x8CEA - COLOR_ATTACHMENT11 = 0x8CEB - COLOR_ATTACHMENT12 = 0x8CEC - COLOR_ATTACHMENT13 = 0x8CED - COLOR_ATTACHMENT14 = 0x8CEE - COLOR_ATTACHMENT15 = 0x8CEF - DEPTH_ATTACHMENT = 0x8D00 - STENCIL_ATTACHMENT = 0x8D20 - FRAMEBUFFER = 0x8D40 - RENDERBUFFER = 0x8D41 - RENDERBUFFER_WIDTH = 0x8D42 - RENDERBUFFER_HEIGHT = 0x8D43 - RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 - STENCIL_INDEX1 = 0x8D46 - STENCIL_INDEX4 = 0x8D47 - STENCIL_INDEX8 = 0x8D48 - STENCIL_INDEX16 = 0x8D49 - RENDERBUFFER_RED_SIZE = 0x8D50 - RENDERBUFFER_GREEN_SIZE = 0x8D51 - RENDERBUFFER_BLUE_SIZE = 0x8D52 - RENDERBUFFER_ALPHA_SIZE = 0x8D53 - RENDERBUFFER_DEPTH_SIZE = 0x8D54 - RENDERBUFFER_STENCIL_SIZE = 0x8D55 - FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56 - MAX_SAMPLES = 0x8D57 - -ARB_framebuffer_object_DEPRECATED enum: - INDEX = 0x8222 - TEXTURE_LUMINANCE_TYPE = 0x8C14 - TEXTURE_INTENSITY_TYPE = 0x8C15 - -############################################################################### - -# ARB Extension #46 -ARB_framebuffer_sRGB enum: - FRAMEBUFFER_SRGB = 0x8DB9 - -############################################################################### - -# ARB Extension #47 -ARB_geometry_shader4 enum: - LINES_ADJACENCY_ARB = 0x000A - LINE_STRIP_ADJACENCY_ARB = 0x000B - TRIANGLES_ADJACENCY_ARB = 0x000C - TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D - PROGRAM_POINT_SIZE_ARB = 0x8642 - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 - FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 - FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 - GEOMETRY_SHADER_ARB = 0x8DD9 - GEOMETRY_VERTICES_OUT_ARB = 0x8DDA - GEOMETRY_INPUT_TYPE_ARB = 0x8DDB - GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC - MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD - MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE - MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 - use VERSION_3_0 MAX_VARYING_COMPONENTS - use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER - -############################################################################### - -# ARB Extension #48 -ARB_half_float_vertex enum: - HALF_FLOAT = 0x140B - -############################################################################### - -# ARB Extension #49 -ARB_instanced_arrays enum: - VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE - -############################################################################### - -# ARB Extension #50 -ARB_map_buffer_range enum: - MAP_READ_BIT = 0x0001 - MAP_WRITE_BIT = 0x0002 - MAP_INVALIDATE_RANGE_BIT = 0x0004 - MAP_INVALIDATE_BUFFER_BIT = 0x0008 - MAP_FLUSH_EXPLICIT_BIT = 0x0010 - MAP_UNSYNCHRONIZED_BIT = 0x0020 - -############################################################################### - -# ARB Extension #51 -ARB_texture_buffer_object enum: - TEXTURE_BUFFER_ARB = 0x8C2A - MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B - TEXTURE_BINDING_BUFFER_ARB = 0x8C2C - TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D - TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E - -############################################################################### - -# ARB Extension #52 -ARB_texture_compression_rgtc enum: - COMPRESSED_RED_RGTC1 = 0x8DBB - COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC - COMPRESSED_RG_RGTC2 = 0x8DBD - COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE - -############################################################################### - -# ARB Extension #53 -ARB_texture_rg enum: - RG = 0x8227 - RG_INTEGER = 0x8228 - R8 = 0x8229 - R16 = 0x822A - RG8 = 0x822B - RG16 = 0x822C - R16F = 0x822D - R32F = 0x822E - RG16F = 0x822F - RG32F = 0x8230 - R8I = 0x8231 - R8UI = 0x8232 - R16I = 0x8233 - R16UI = 0x8234 - R32I = 0x8235 - R32UI = 0x8236 - RG8I = 0x8237 - RG8UI = 0x8238 - RG16I = 0x8239 - RG16UI = 0x823A - RG32I = 0x823B - RG32UI = 0x823C - -############################################################################### - -# ARB Extension #54 -ARB_vertex_array_object enum: - VERTEX_ARRAY_BINDING = 0x85B5 - -############################################################################### - -# No new tokens -# ARB Extension #55 - WGL_ARB_create_context -# ARB Extension #56 - GLX_ARB_create_context - -############################################################################### - -# ARB Extension #57 -ARB_uniform_buffer_object enum: - UNIFORM_BUFFER = 0x8A11 - UNIFORM_BUFFER_BINDING = 0x8A28 - UNIFORM_BUFFER_START = 0x8A29 - UNIFORM_BUFFER_SIZE = 0x8A2A - MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B - MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C - MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D - MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E - MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F - MAX_UNIFORM_BLOCK_SIZE = 0x8A30 - MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 - MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 - MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 - UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 - ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 - ACTIVE_UNIFORM_BLOCKS = 0x8A36 - UNIFORM_TYPE = 0x8A37 - UNIFORM_SIZE = 0x8A38 - UNIFORM_NAME_LENGTH = 0x8A39 - UNIFORM_BLOCK_INDEX = 0x8A3A - UNIFORM_OFFSET = 0x8A3B - UNIFORM_ARRAY_STRIDE = 0x8A3C - UNIFORM_MATRIX_STRIDE = 0x8A3D - UNIFORM_IS_ROW_MAJOR = 0x8A3E - UNIFORM_BLOCK_BINDING = 0x8A3F - UNIFORM_BLOCK_DATA_SIZE = 0x8A40 - UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 - UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 - UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 - UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 - UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 - UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 - INVALID_INDEX = 0xFFFFFFFFu - -############################################################################### - -# ARB Extension #58 -# No new tokens -ARB_compatibility enum: -passthru: /* ARB_compatibility just defines tokens from core 3.0 */ - -############################################################################### - -# ARB Extension #59 -ARB_copy_buffer enum: - COPY_READ_BUFFER = 0x8F36 - COPY_WRITE_BUFFER = 0x8F37 - -############################################################################### - -# ARB Extension #60 -# No new tokens -ARB_shader_texture_lod enum: - -############################################################################### - -# ARB Extension #61 -ARB_depth_clamp enum: - DEPTH_CLAMP = 0x864F - -############################################################################### - -# No new tokens -# ARB Extension #62 -ARB_draw_elements_base_vertex enum: - -############################################################################### - -# No new tokens -# ARB Extension #63 -ARB_fragment_coord_conventions enum: - -############################################################################### - -# ARB Extension #64 -ARB_provoking_vertex enum: - QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C - FIRST_VERTEX_CONVENTION = 0x8E4D - LAST_VERTEX_CONVENTION = 0x8E4E - PROVOKING_VERTEX = 0x8E4F - -############################################################################### - -# ARB Extension #65 -ARB_seamless_cube_map enum: - TEXTURE_CUBE_MAP_SEAMLESS = 0x884F - -############################################################################### - -# ARB Extension #66 -ARB_sync enum: - MAX_SERVER_WAIT_TIMEOUT = 0x9111 - OBJECT_TYPE = 0x9112 - SYNC_CONDITION = 0x9113 - SYNC_STATUS = 0x9114 - SYNC_FLAGS = 0x9115 - SYNC_FENCE = 0x9116 - SYNC_GPU_COMMANDS_COMPLETE = 0x9117 - UNSIGNALED = 0x9118 - SIGNALED = 0x9119 - ALREADY_SIGNALED = 0x911A - TIMEOUT_EXPIRED = 0x911B - CONDITION_SATISFIED = 0x911C - WAIT_FAILED = 0x911D - SYNC_FLUSH_COMMANDS_BIT = 0x00000001 - TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFFull - -############################################################################### - -# ARB Extension #67 -ARB_texture_multisample enum: - SAMPLE_POSITION = 0x8E50 - SAMPLE_MASK = 0x8E51 - SAMPLE_MASK_VALUE = 0x8E52 - MAX_SAMPLE_MASK_WORDS = 0x8E59 - TEXTURE_2D_MULTISAMPLE = 0x9100 - PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101 - TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102 - PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103 - TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104 - TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105 - TEXTURE_SAMPLES = 0x9106 - TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107 - SAMPLER_2D_MULTISAMPLE = 0x9108 - INT_SAMPLER_2D_MULTISAMPLE = 0x9109 - UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A - SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B - INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C - UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D - MAX_COLOR_TEXTURE_SAMPLES = 0x910E - MAX_DEPTH_TEXTURE_SAMPLES = 0x910F - MAX_INTEGER_SAMPLES = 0x9110 - -############################################################################### - -# ARB Extension #68 -ARB_vertex_array_bgra enum: - use VERSION_1_2 BGRA - -############################################################################### - -# No new tokens -# ARB Extension #69 -ARB_draw_buffers_blend enum: - -############################################################################### - -# ARB Extension #70 -ARB_sample_shading enum: - SAMPLE_SHADING = 0x8C36 - MIN_SAMPLE_SHADING_VALUE = 0x8C37 - -############################################################################### - -# ARB Extension #71 -ARB_texture_cube_map_array enum: - TEXTURE_CUBE_MAP_ARRAY = 0x9009 - TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A - PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B - SAMPLER_CUBE_MAP_ARRAY = 0x900C - SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D - INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E - UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F - -############################################################################### - -# ARB Extension #72 -ARB_texture_gather enum: - MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E - MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F - MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F - -############################################################################### - -# No new tokens -# ARB Extension #73 -ARB_texture_query_lod enum: - -############################################################################### - -# No new tokens -# ARB Extension #74 - WGL_ARB_create_context_profile -# ARB Extension #75 - GLX_ARB_create_context_profile - -############################################################################### -# -# non-ARB extensions follow, in registry order -# -############################################################################### - -############################################################################### - -# Extension #1 -EXT_abgr enum: - ABGR_EXT = 0x8000 - -############################################################################### - -# Extension #2 -EXT_blend_color enum: - CONSTANT_COLOR_EXT = 0x8001 - ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 - CONSTANT_ALPHA_EXT = 0x8003 - ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 - BLEND_COLOR_EXT = 0x8005 # 4 F - -############################################################################### - -# Extension #3 -EXT_polygon_offset enum: - POLYGON_OFFSET_EXT = 0x8037 - POLYGON_OFFSET_FACTOR_EXT = 0x8038 - POLYGON_OFFSET_BIAS_EXT = 0x8039 # 1 F - -############################################################################### - -# Extension #4 -EXT_texture enum: - ALPHA4_EXT = 0x803B - ALPHA8_EXT = 0x803C - ALPHA12_EXT = 0x803D - ALPHA16_EXT = 0x803E - LUMINANCE4_EXT = 0x803F - LUMINANCE8_EXT = 0x8040 - LUMINANCE12_EXT = 0x8041 - LUMINANCE16_EXT = 0x8042 - LUMINANCE4_ALPHA4_EXT = 0x8043 - LUMINANCE6_ALPHA2_EXT = 0x8044 - LUMINANCE8_ALPHA8_EXT = 0x8045 - LUMINANCE12_ALPHA4_EXT = 0x8046 - LUMINANCE12_ALPHA12_EXT = 0x8047 - LUMINANCE16_ALPHA16_EXT = 0x8048 - INTENSITY_EXT = 0x8049 - INTENSITY4_EXT = 0x804A - INTENSITY8_EXT = 0x804B - INTENSITY12_EXT = 0x804C - INTENSITY16_EXT = 0x804D - RGB2_EXT = 0x804E - RGB4_EXT = 0x804F - RGB5_EXT = 0x8050 - RGB8_EXT = 0x8051 - RGB10_EXT = 0x8052 - RGB12_EXT = 0x8053 - RGB16_EXT = 0x8054 - RGBA2_EXT = 0x8055 - RGBA4_EXT = 0x8056 - RGB5_A1_EXT = 0x8057 - RGBA8_EXT = 0x8058 - RGB10_A2_EXT = 0x8059 - RGBA12_EXT = 0x805A - RGBA16_EXT = 0x805B - TEXTURE_RED_SIZE_EXT = 0x805C - TEXTURE_GREEN_SIZE_EXT = 0x805D - TEXTURE_BLUE_SIZE_EXT = 0x805E - TEXTURE_ALPHA_SIZE_EXT = 0x805F - TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 - TEXTURE_INTENSITY_SIZE_EXT = 0x8061 - REPLACE_EXT = 0x8062 - PROXY_TEXTURE_1D_EXT = 0x8063 - PROXY_TEXTURE_2D_EXT = 0x8064 - TEXTURE_TOO_LARGE_EXT = 0x8065 - -############################################################################### - -# Extension #5 - skipped - -############################################################################### - -# Extension #6 -EXT_texture3D enum: - PACK_SKIP_IMAGES_EXT = 0x806B # 1 I - PACK_IMAGE_HEIGHT_EXT = 0x806C # 1 F - UNPACK_SKIP_IMAGES_EXT = 0x806D # 1 I - UNPACK_IMAGE_HEIGHT_EXT = 0x806E # 1 F - TEXTURE_3D_EXT = 0x806F # 1 I - PROXY_TEXTURE_3D_EXT = 0x8070 - TEXTURE_DEPTH_EXT = 0x8071 - TEXTURE_WRAP_R_EXT = 0x8072 - MAX_3D_TEXTURE_SIZE_EXT = 0x8073 # 1 I - -############################################################################### - -# Extension #7 -SGIS_texture_filter4 enum: - FILTER4_SGIS = 0x8146 - TEXTURE_FILTER4_SIZE_SGIS = 0x8147 - -############################################################################### - -# Extension #8 - skipped - -############################################################################### - -# No new tokens -# Extension #9 -EXT_subtexture enum: - -############################################################################### - -# No new tokens -# Extension #10 -EXT_copy_texture enum: - -############################################################################### - -# Extension #11 -EXT_histogram enum: - HISTOGRAM_EXT = 0x8024 # 1 I - PROXY_HISTOGRAM_EXT = 0x8025 - HISTOGRAM_WIDTH_EXT = 0x8026 - HISTOGRAM_FORMAT_EXT = 0x8027 - HISTOGRAM_RED_SIZE_EXT = 0x8028 - HISTOGRAM_GREEN_SIZE_EXT = 0x8029 - HISTOGRAM_BLUE_SIZE_EXT = 0x802A - HISTOGRAM_ALPHA_SIZE_EXT = 0x802B - HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C - HISTOGRAM_SINK_EXT = 0x802D - MINMAX_EXT = 0x802E # 1 I - MINMAX_FORMAT_EXT = 0x802F - MINMAX_SINK_EXT = 0x8030 - TABLE_TOO_LARGE_EXT = 0x8031 - -############################################################################### - -# Extension #12 -EXT_convolution enum: - CONVOLUTION_1D_EXT = 0x8010 # 1 I - CONVOLUTION_2D_EXT = 0x8011 # 1 I - SEPARABLE_2D_EXT = 0x8012 # 1 I - CONVOLUTION_BORDER_MODE_EXT = 0x8013 - CONVOLUTION_FILTER_SCALE_EXT = 0x8014 - CONVOLUTION_FILTER_BIAS_EXT = 0x8015 - REDUCE_EXT = 0x8016 - CONVOLUTION_FORMAT_EXT = 0x8017 - CONVOLUTION_WIDTH_EXT = 0x8018 - CONVOLUTION_HEIGHT_EXT = 0x8019 - MAX_CONVOLUTION_WIDTH_EXT = 0x801A - MAX_CONVOLUTION_HEIGHT_EXT = 0x801B - POST_CONVOLUTION_RED_SCALE_EXT = 0x801C # 1 F - POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D # 1 F - POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E # 1 F - POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F # 1 F - POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 # 1 F - POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 # 1 F - POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 # 1 F - POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 # 1 F - -############################################################################### - -# Extension #13 -SGI_color_matrix enum: - COLOR_MATRIX_SGI = 0x80B1 # 16 F - COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 # 1 I - MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 # 1 I - POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 # 1 F - POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 # 1 F - POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 # 1 F - POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 # 1 F - POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 # 1 F - POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 # 1 F - POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA # 1 F - POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB # 1 F - -############################################################################### - -# Extension #14 -SGI_color_table enum: - COLOR_TABLE_SGI = 0x80D0 # 1 I - POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 # 1 I - POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 # 1 I - PROXY_COLOR_TABLE_SGI = 0x80D3 - PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 - PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 - COLOR_TABLE_SCALE_SGI = 0x80D6 - COLOR_TABLE_BIAS_SGI = 0x80D7 - COLOR_TABLE_FORMAT_SGI = 0x80D8 - COLOR_TABLE_WIDTH_SGI = 0x80D9 - COLOR_TABLE_RED_SIZE_SGI = 0x80DA - COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB - COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC - COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD - COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE - COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF - -############################################################################### - -# Extension #15 -SGIS_pixel_texture enum: - PIXEL_TEXTURE_SGIS = 0x8353 # 1 I - PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 # 1 I - PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 # 1 I - PIXEL_GROUP_COLOR_SGIS = 0x8356 # 1 I - -############################################################################### - -# Extension #15a -SGIX_pixel_texture enum: - PIXEL_TEX_GEN_SGIX = 0x8139 # 1 I - PIXEL_TEX_GEN_MODE_SGIX = 0x832B # 1 I - -############################################################################### - -# Extension #16 -SGIS_texture4D enum: - PACK_SKIP_VOLUMES_SGIS = 0x8130 # 1 I - PACK_IMAGE_DEPTH_SGIS = 0x8131 # 1 I - UNPACK_SKIP_VOLUMES_SGIS = 0x8132 # 1 I - UNPACK_IMAGE_DEPTH_SGIS = 0x8133 # 1 I - TEXTURE_4D_SGIS = 0x8134 # 1 I - PROXY_TEXTURE_4D_SGIS = 0x8135 - TEXTURE_4DSIZE_SGIS = 0x8136 - TEXTURE_WRAP_Q_SGIS = 0x8137 - MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 # 1 I - TEXTURE_4D_BINDING_SGIS = 0x814F # 1 I - -############################################################################### - -# Extension #17 -SGI_texture_color_table enum: - TEXTURE_COLOR_TABLE_SGI = 0x80BC # 1 I - PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD - -############################################################################### - -# Extension #18 -EXT_cmyka enum: - CMYK_EXT = 0x800C - CMYKA_EXT = 0x800D - PACK_CMYK_HINT_EXT = 0x800E # 1 I - UNPACK_CMYK_HINT_EXT = 0x800F # 1 I - -############################################################################### - -# Extension #19 - skipped - -############################################################################### - -# Extension #20 -EXT_texture_object enum: - TEXTURE_PRIORITY_EXT = 0x8066 - TEXTURE_RESIDENT_EXT = 0x8067 - TEXTURE_1D_BINDING_EXT = 0x8068 - TEXTURE_2D_BINDING_EXT = 0x8069 - TEXTURE_3D_BINDING_EXT = 0x806A # 1 I - -############################################################################### - -# Extension #21 -SGIS_detail_texture enum: - DETAIL_TEXTURE_2D_SGIS = 0x8095 - DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 # 1 I - LINEAR_DETAIL_SGIS = 0x8097 - LINEAR_DETAIL_ALPHA_SGIS = 0x8098 - LINEAR_DETAIL_COLOR_SGIS = 0x8099 - DETAIL_TEXTURE_LEVEL_SGIS = 0x809A - DETAIL_TEXTURE_MODE_SGIS = 0x809B - DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C - -############################################################################### - -# Extension #22 -SGIS_sharpen_texture enum: - LINEAR_SHARPEN_SGIS = 0x80AD - LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE - LINEAR_SHARPEN_COLOR_SGIS = 0x80AF - SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 - -############################################################################### - -# Extension #23 -EXT_packed_pixels enum: - UNSIGNED_BYTE_3_3_2_EXT = 0x8032 - UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 - UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 - UNSIGNED_INT_8_8_8_8_EXT = 0x8035 - UNSIGNED_INT_10_10_10_2_EXT = 0x8036 - -############################################################################### - -# Extension #24 -SGIS_texture_lod enum: - TEXTURE_MIN_LOD_SGIS = 0x813A - TEXTURE_MAX_LOD_SGIS = 0x813B - TEXTURE_BASE_LEVEL_SGIS = 0x813C - TEXTURE_MAX_LEVEL_SGIS = 0x813D - -############################################################################### - -# Extension #25 -SGIS_multisample enum: - MULTISAMPLE_SGIS = 0x809D # 1 I - SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E # 1 I - SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F # 1 I - SAMPLE_MASK_SGIS = 0x80A0 # 1 I - 1PASS_SGIS = 0x80A1 - 2PASS_0_SGIS = 0x80A2 - 2PASS_1_SGIS = 0x80A3 - 4PASS_0_SGIS = 0x80A4 - 4PASS_1_SGIS = 0x80A5 - 4PASS_2_SGIS = 0x80A6 - 4PASS_3_SGIS = 0x80A7 - SAMPLE_BUFFERS_SGIS = 0x80A8 # 1 I - SAMPLES_SGIS = 0x80A9 # 1 I - SAMPLE_MASK_VALUE_SGIS = 0x80AA # 1 F - SAMPLE_MASK_INVERT_SGIS = 0x80AB # 1 I - SAMPLE_PATTERN_SGIS = 0x80AC # 1 I - -############################################################################### - -# Extension #26 - no specification? -# SGIS_premultiply_blend enum: - -############################################################################## - -# Extension #27 -# Diamond ships an otherwise identical IBM_rescale_normal extension; -# Dan Brokenshire says this is deprecated and should not be advertised. -EXT_rescale_normal enum: - RESCALE_NORMAL_EXT = 0x803A # 1 I - -############################################################################### - -# Extension #28 - GLX_EXT_visual_info - -############################################################################### - -# Extension #29 - skipped - -############################################################################### - -# Extension #30 -EXT_vertex_array enum: - VERTEX_ARRAY_EXT = 0x8074 - NORMAL_ARRAY_EXT = 0x8075 - COLOR_ARRAY_EXT = 0x8076 - INDEX_ARRAY_EXT = 0x8077 - TEXTURE_COORD_ARRAY_EXT = 0x8078 - EDGE_FLAG_ARRAY_EXT = 0x8079 - VERTEX_ARRAY_SIZE_EXT = 0x807A - VERTEX_ARRAY_TYPE_EXT = 0x807B - VERTEX_ARRAY_STRIDE_EXT = 0x807C - VERTEX_ARRAY_COUNT_EXT = 0x807D # 1 I - NORMAL_ARRAY_TYPE_EXT = 0x807E - NORMAL_ARRAY_STRIDE_EXT = 0x807F - NORMAL_ARRAY_COUNT_EXT = 0x8080 # 1 I - COLOR_ARRAY_SIZE_EXT = 0x8081 - COLOR_ARRAY_TYPE_EXT = 0x8082 - COLOR_ARRAY_STRIDE_EXT = 0x8083 - COLOR_ARRAY_COUNT_EXT = 0x8084 # 1 I - INDEX_ARRAY_TYPE_EXT = 0x8085 - INDEX_ARRAY_STRIDE_EXT = 0x8086 - INDEX_ARRAY_COUNT_EXT = 0x8087 # 1 I - TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 - TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 - TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A - TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B # 1 I - EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C - EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D # 1 I - VERTEX_ARRAY_POINTER_EXT = 0x808E - NORMAL_ARRAY_POINTER_EXT = 0x808F - COLOR_ARRAY_POINTER_EXT = 0x8090 - INDEX_ARRAY_POINTER_EXT = 0x8091 - TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 - EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 - -############################################################################### - -# Extension #31 -EXT_misc_attribute enum: -# MISC_BIT = 0x???? - -############################################################################### - -# Extension #32 -SGIS_generate_mipmap enum: - GENERATE_MIPMAP_SGIS = 0x8191 - GENERATE_MIPMAP_HINT_SGIS = 0x8192 # 1 I - -############################################################################### - -# Extension #33 -SGIX_clipmap enum: - LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 - TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 - TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 - TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 - TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 - TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 - TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 - MAX_CLIPMAP_DEPTH_SGIX = 0x8177 # 1 I - MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 # 1 I - NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D - NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E - LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F - -############################################################################### - -# Extension #34 -SGIX_shadow enum: - TEXTURE_COMPARE_SGIX = 0x819A - TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B - TEXTURE_LEQUAL_R_SGIX = 0x819C - TEXTURE_GEQUAL_R_SGIX = 0x819D - -############################################################################### - -# Extension #35 -SGIS_texture_edge_clamp enum: - CLAMP_TO_EDGE_SGIS = 0x812F - -############################################################################### - -# Extension #36 -# Promoted to ARB_texture_border_clamp -SGIS_texture_border_clamp enum: - CLAMP_TO_BORDER_SGIS = 0x812D - -############################################################################### - -# Extension #37 -EXT_blend_minmax enum: - FUNC_ADD_EXT = 0x8006 - MIN_EXT = 0x8007 - MAX_EXT = 0x8008 - BLEND_EQUATION_EXT = 0x8009 # 1 I - -############################################################################### - -# Extension #38 -EXT_blend_subtract enum: - FUNC_SUBTRACT_EXT = 0x800A - FUNC_REVERSE_SUBTRACT_EXT = 0x800B - -############################################################################### - -# No new tokens -# Extension #39 -EXT_blend_logic_op enum: - -############################################################################### - -# Extension #40 - GLX_SGI_swap_control -# Extension #41 - GLX_SGI_video_sync -# Extension #42 - GLX_SGI_make_current_read -# Extension #43 - GLX_SGIX_video_source -# Extension #44 - GLX_EXT_visual_rating - -############################################################################### - -# Extension #45 -SGIX_interlace enum: - INTERLACE_SGIX = 0x8094 # 1 I - -############################################################################### - -# Extension #46 -SGIX_pixel_tiles enum: - PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E # 1 I - PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F # 1 I - PIXEL_TILE_WIDTH_SGIX = 0x8140 # 1 I - PIXEL_TILE_HEIGHT_SGIX = 0x8141 # 1 I - PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 # 1 I - PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 # 1 I - PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 # 1 I - PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 # 1 I - -############################################################################### - -# Extension #47 - GLX_EXT_import_context - -############################################################################### - -# Extension #48 - skipped - -############################################################################### - -# Extension #49 - GLX_SGIX_fbconfig -# Extension #50 - GLX_SGIX_pbuffer - -############################################################################### - -# Extension #51 -SGIS_texture_select enum: - DUAL_ALPHA4_SGIS = 0x8110 - DUAL_ALPHA8_SGIS = 0x8111 - DUAL_ALPHA12_SGIS = 0x8112 - DUAL_ALPHA16_SGIS = 0x8113 - DUAL_LUMINANCE4_SGIS = 0x8114 - DUAL_LUMINANCE8_SGIS = 0x8115 - DUAL_LUMINANCE12_SGIS = 0x8116 - DUAL_LUMINANCE16_SGIS = 0x8117 - DUAL_INTENSITY4_SGIS = 0x8118 - DUAL_INTENSITY8_SGIS = 0x8119 - DUAL_INTENSITY12_SGIS = 0x811A - DUAL_INTENSITY16_SGIS = 0x811B - DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C - DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D - QUAD_ALPHA4_SGIS = 0x811E - QUAD_ALPHA8_SGIS = 0x811F - QUAD_LUMINANCE4_SGIS = 0x8120 - QUAD_LUMINANCE8_SGIS = 0x8121 - QUAD_INTENSITY4_SGIS = 0x8122 - QUAD_INTENSITY8_SGIS = 0x8123 - DUAL_TEXTURE_SELECT_SGIS = 0x8124 - QUAD_TEXTURE_SELECT_SGIS = 0x8125 - -############################################################################### - -# Extension #52 -SGIX_sprite enum: - SPRITE_SGIX = 0x8148 # 1 I - SPRITE_MODE_SGIX = 0x8149 # 1 I - SPRITE_AXIS_SGIX = 0x814A # 3 F - SPRITE_TRANSLATION_SGIX = 0x814B # 3 F - SPRITE_AXIAL_SGIX = 0x814C - SPRITE_OBJECT_ALIGNED_SGIX = 0x814D - SPRITE_EYE_ALIGNED_SGIX = 0x814E - -############################################################################### - -# Extension #53 -SGIX_texture_multi_buffer enum: - TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E - -############################################################################### - -# Extension #54 -# EXT form promoted from SGIS form; both are included -EXT_point_parameters enum: - POINT_SIZE_MIN_EXT = 0x8126 # 1 F - POINT_SIZE_MAX_EXT = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 # 1 F - DISTANCE_ATTENUATION_EXT = 0x8129 # 3 F - -SGIS_point_parameters enum: - POINT_SIZE_MIN_SGIS = 0x8126 # 1 F - POINT_SIZE_MAX_SGIS = 0x8127 # 1 F - POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 # 1 F - DISTANCE_ATTENUATION_SGIS = 0x8129 # 3 F - -############################################################################### - -# Extension #55 -SGIX_instruments enum: - INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 - INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 # 1 I - -############################################################################### - -# Extension #56 -SGIX_texture_scale_bias enum: - POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 - POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A - POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B # 2 F - POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C # 2 F - -############################################################################### - -# Extension #57 -SGIX_framezoom enum: - FRAMEZOOM_SGIX = 0x818B # 1 I - FRAMEZOOM_FACTOR_SGIX = 0x818C # 1 I - MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D # 1 I - -############################################################################### - -# No new tokens -# Extension #58 -SGIX_tag_sample_buffer enum: - -############################################################################### - -# Extension #59 -FfdMaskSGIX enum: - TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 - GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 -SGIX_polynomial_ffd enum: - GEOMETRY_DEFORMATION_SGIX = 0x8194 - TEXTURE_DEFORMATION_SGIX = 0x8195 - DEFORMATIONS_MASK_SGIX = 0x8196 # 1 I - MAX_DEFORMATION_ORDER_SGIX = 0x8197 - -############################################################################### - -# Extension #60 -SGIX_reference_plane enum: - REFERENCE_PLANE_SGIX = 0x817D # 1 I - REFERENCE_PLANE_EQUATION_SGIX = 0x817E # 4 F - -############################################################################### - -# No new tokens -# Extension #61 -SGIX_flush_raster enum: - -############################################################################### - -# Extension #62 - GLX_SGIX_cushion - -############################################################################### - -# Extension #63 -SGIX_depth_texture enum: - DEPTH_COMPONENT16_SGIX = 0x81A5 - DEPTH_COMPONENT24_SGIX = 0x81A6 - DEPTH_COMPONENT32_SGIX = 0x81A7 - -############################################################################### - -# Extension #64 -SGIS_fog_function enum: - FOG_FUNC_SGIS = 0x812A - FOG_FUNC_POINTS_SGIS = 0x812B # 1 I - MAX_FOG_FUNC_POINTS_SGIS = 0x812C # 1 I - -############################################################################### - -# Extension #65 -SGIX_fog_offset enum: - FOG_OFFSET_SGIX = 0x8198 # 1 I - FOG_OFFSET_VALUE_SGIX = 0x8199 # 4 F - -############################################################################### - -# Extension #66 -HP_image_transform enum: - IMAGE_SCALE_X_HP = 0x8155 - IMAGE_SCALE_Y_HP = 0x8156 - IMAGE_TRANSLATE_X_HP = 0x8157 - IMAGE_TRANSLATE_Y_HP = 0x8158 - IMAGE_ROTATE_ANGLE_HP = 0x8159 - IMAGE_ROTATE_ORIGIN_X_HP = 0x815A - IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B - IMAGE_MAG_FILTER_HP = 0x815C - IMAGE_MIN_FILTER_HP = 0x815D - IMAGE_CUBIC_WEIGHT_HP = 0x815E - CUBIC_HP = 0x815F - AVERAGE_HP = 0x8160 - IMAGE_TRANSFORM_2D_HP = 0x8161 - POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162 - PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163 - -############################################################################### - -# Extension #67 -HP_convolution_border_modes enum: - IGNORE_BORDER_HP = 0x8150 - CONSTANT_BORDER_HP = 0x8151 - REPLICATE_BORDER_HP = 0x8153 - CONVOLUTION_BORDER_COLOR_HP = 0x8154 - -############################################################################### - -# Extension #68 -# (Unknown token values???) -INGR_palette_buffer enum: - -############################################################################### - -# Extension #69 -SGIX_texture_add_env enum: - TEXTURE_ENV_BIAS_SGIX = 0x80BE - -############################################################################### - -# Extension #70 - skipped -# Extension #71 - skipped -# Extension #72 - skipped -# Extension #73 - skipped - -############################################################################### - -# No new tokens -# Extension #74 -EXT_color_subtable enum: - -############################################################################### - -# Extension #75 - GLU_EXT_object_space_tess - -############################################################################### - -# Extension #76 -PGI_vertex_hints enum: - VERTEX_DATA_HINT_PGI = 0x1A22A - VERTEX_CONSISTENT_HINT_PGI = 0x1A22B - MATERIAL_SIDE_HINT_PGI = 0x1A22C - MAX_VERTEX_HINT_PGI = 0x1A22D - COLOR3_BIT_PGI = 0x00010000 - COLOR4_BIT_PGI = 0x00020000 - EDGEFLAG_BIT_PGI = 0x00040000 - INDEX_BIT_PGI = 0x00080000 - MAT_AMBIENT_BIT_PGI = 0x00100000 - MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000 - MAT_DIFFUSE_BIT_PGI = 0x00400000 - MAT_EMISSION_BIT_PGI = 0x00800000 - MAT_COLOR_INDEXES_BIT_PGI = 0x01000000 - MAT_SHININESS_BIT_PGI = 0x02000000 - MAT_SPECULAR_BIT_PGI = 0x04000000 - NORMAL_BIT_PGI = 0x08000000 - TEXCOORD1_BIT_PGI = 0x10000000 - TEXCOORD2_BIT_PGI = 0x20000000 - TEXCOORD3_BIT_PGI = 0x40000000 - TEXCOORD4_BIT_PGI = 0x80000000 - VERTEX23_BIT_PGI = 0x00000004 - VERTEX4_BIT_PGI = 0x00000008 - -############################################################################### - -# Extension #77 -PGI_misc_hints enum: - PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8 - CONSERVE_MEMORY_HINT_PGI = 0x1A1FD - RECLAIM_MEMORY_HINT_PGI = 0x1A1FE - NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202 - NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203 - NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204 - ALWAYS_FAST_HINT_PGI = 0x1A20C - ALWAYS_SOFT_HINT_PGI = 0x1A20D - ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E - ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F - ALLOW_DRAW_FRG_HINT_PGI = 0x1A210 - ALLOW_DRAW_MEM_HINT_PGI = 0x1A211 - STRICT_DEPTHFUNC_HINT_PGI = 0x1A216 - STRICT_LIGHTING_HINT_PGI = 0x1A217 - STRICT_SCISSOR_HINT_PGI = 0x1A218 - FULL_STIPPLE_HINT_PGI = 0x1A219 - CLIP_NEAR_HINT_PGI = 0x1A220 - CLIP_FAR_HINT_PGI = 0x1A221 - WIDE_LINE_HINT_PGI = 0x1A222 - BACK_NORMALS_HINT_PGI = 0x1A223 - -############################################################################### - -# Extension #78 -EXT_paletted_texture enum: - COLOR_INDEX1_EXT = 0x80E2 - COLOR_INDEX2_EXT = 0x80E3 - COLOR_INDEX4_EXT = 0x80E4 - COLOR_INDEX8_EXT = 0x80E5 - COLOR_INDEX12_EXT = 0x80E6 - COLOR_INDEX16_EXT = 0x80E7 - TEXTURE_INDEX_SIZE_EXT = 0x80ED - -############################################################################### - -# Extension #79 -EXT_clip_volume_hint enum: - CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0 - -############################################################################### - -# Extension #80 -SGIX_list_priority enum: - LIST_PRIORITY_SGIX = 0x8182 - -############################################################################### - -# Extension #81 -SGIX_ir_instrument1 enum: - IR_INSTRUMENT1_SGIX = 0x817F # 1 I - -############################################################################### - -# Extension #82 -SGIX_calligraphic_fragment enum: - CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 # 1 I - -############################################################################### - -# Extension #83 - GLX_SGIX_video_resize - -############################################################################### - -# Extension #84 -SGIX_texture_lod_bias enum: - TEXTURE_LOD_BIAS_S_SGIX = 0x818E - TEXTURE_LOD_BIAS_T_SGIX = 0x818F - TEXTURE_LOD_BIAS_R_SGIX = 0x8190 - -############################################################################### - -# Extension #85 - skipped - -############################################################################### - -# Extension #86 - GLX_SGIX_dmbuffer - -############################################################################### - -# Extension #87 - skipped -# Extension #88 - skipped -# Extension #89 - skipped - -############################################################################### - -# Extension #90 -SGIX_shadow_ambient enum: - SHADOW_AMBIENT_SGIX = 0x80BF - -############################################################################### - -# Extension #91 - GLX_SGIX_swap_group -# Extension #92 - GLX_SGIX_swap_barrier - -############################################################################### - -# No new tokens -# Extension #93 -EXT_index_texture enum: - -############################################################################### - -# Extension #94 -# Promoted from SGI? -EXT_index_material enum: - INDEX_MATERIAL_EXT = 0x81B8 - INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 - INDEX_MATERIAL_FACE_EXT = 0x81BA - -############################################################################### - -# Extension #95 -# Promoted from SGI? -EXT_index_func enum: - INDEX_TEST_EXT = 0x81B5 - INDEX_TEST_FUNC_EXT = 0x81B6 - INDEX_TEST_REF_EXT = 0x81B7 - -############################################################################### - -# Extension #96 -# Promoted from SGI? -EXT_index_array_formats enum: - IUI_V2F_EXT = 0x81AD - IUI_V3F_EXT = 0x81AE - IUI_N3F_V2F_EXT = 0x81AF - IUI_N3F_V3F_EXT = 0x81B0 - T2F_IUI_V2F_EXT = 0x81B1 - T2F_IUI_V3F_EXT = 0x81B2 - T2F_IUI_N3F_V2F_EXT = 0x81B3 - T2F_IUI_N3F_V3F_EXT = 0x81B4 - -############################################################################### - -# Extension #97 -# Promoted from SGI? -EXT_compiled_vertex_array enum: - ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 - ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 - -############################################################################### - -# Extension #98 -# Promoted from SGI? -EXT_cull_vertex enum: - CULL_VERTEX_EXT = 0x81AA - CULL_VERTEX_EYE_POSITION_EXT = 0x81AB - CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC - -############################################################################### - -# Extension #99 - skipped - -############################################################################### - -# Extension #100 - GLU_EXT_nurbs_tessellator - -############################################################################### - -# Extension #101 -SGIX_ycrcb enum: - YCRCB_422_SGIX = 0x81BB - YCRCB_444_SGIX = 0x81BC - -############################################################################### - -# Extension #102 -SGIX_fragment_lighting enum: - FRAGMENT_LIGHTING_SGIX = 0x8400 # 1 I - FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 # 1 I - FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 # 1 I - FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 # 1 I - MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 # 1 I - MAX_ACTIVE_LIGHTS_SGIX = 0x8405 # 1 I - CURRENT_RASTER_NORMAL_SGIX = 0x8406 # 1 I - LIGHT_ENV_MODE_SGIX = 0x8407 # 1 I - FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 # 1 I - FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 # 1 I - FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A # 4 F - FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B # 1 I - FRAGMENT_LIGHT0_SGIX = 0x840C # 1 I - FRAGMENT_LIGHT1_SGIX = 0x840D - FRAGMENT_LIGHT2_SGIX = 0x840E - FRAGMENT_LIGHT3_SGIX = 0x840F - FRAGMENT_LIGHT4_SGIX = 0x8410 - FRAGMENT_LIGHT5_SGIX = 0x8411 - FRAGMENT_LIGHT6_SGIX = 0x8412 - FRAGMENT_LIGHT7_SGIX = 0x8413 - -############################################################################### - -# Extension #103 - skipped -# Extension #104 - skipped -# Extension #105 - skipped -# Extension #106 - skipped -# Extension #107 - skipped -# Extension #108 - skipped -# Extension #109 - skipped - -############################################################################### - -# Extension #110 -IBM_rasterpos_clip enum: - RASTER_POSITION_UNCLIPPED_IBM = 0x19262 - -############################################################################### - -# Extension #111 -HP_texture_lighting enum: - TEXTURE_LIGHTING_MODE_HP = 0x8167 - TEXTURE_POST_SPECULAR_HP = 0x8168 - TEXTURE_PRE_SPECULAR_HP = 0x8169 - -############################################################################### - -# Extension #112 -EXT_draw_range_elements enum: - MAX_ELEMENTS_VERTICES_EXT = 0x80E8 - MAX_ELEMENTS_INDICES_EXT = 0x80E9 - -############################################################################### - -# Extension #113 -WIN_phong_shading enum: - PHONG_WIN = 0x80EA - PHONG_HINT_WIN = 0x80EB - -############################################################################### - -# Extension #114 -WIN_specular_fog enum: - FOG_SPECULAR_TEXTURE_WIN = 0x80EC - -############################################################################### - -# Extension #115 - skipped -# Extension #116 - skipped - -############################################################################### - -# Extension #117 -EXT_light_texture enum: - FRAGMENT_MATERIAL_EXT = 0x8349 - FRAGMENT_NORMAL_EXT = 0x834A - FRAGMENT_COLOR_EXT = 0x834C - ATTENUATION_EXT = 0x834D - SHADOW_ATTENUATION_EXT = 0x834E - TEXTURE_APPLICATION_MODE_EXT = 0x834F # 1 I - TEXTURE_LIGHT_EXT = 0x8350 # 1 I - TEXTURE_MATERIAL_FACE_EXT = 0x8351 # 1 I - TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 # 1 I - use EXT_fog_coord FRAGMENT_DEPTH_EXT - -############################################################################### - -# Extension #118 - skipped - -############################################################################### - -# Extension #119 -SGIX_blend_alpha_minmax enum: - ALPHA_MIN_SGIX = 0x8320 - ALPHA_MAX_SGIX = 0x8321 - -############################################################################### - -# Extension #120 - skipped -# Extension #121 - skipped -# Extension #122 - skipped -# Extension #123 - skipped -# Extension #124 - skipped -# Extension #125 - skipped - -############################################################################### - -# Extension #126 -SGIX_impact_pixel_texture enum: - PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184 - PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185 - PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186 - PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187 - PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188 - PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189 - PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A - -############################################################################### - -# Extension #127 - skipped -# Extension #128 - skipped - -############################################################################### - -# Extension #129 -EXT_bgra enum: - BGR_EXT = 0x80E0 - BGRA_EXT = 0x80E1 - -############################################################################### - -# Extension #130 - skipped -# Extension #131 - skipped - -############################################################################### - -# Extension #132 -SGIX_async enum: - ASYNC_MARKER_SGIX = 0x8329 - -############################################################################### - -# Extension #133 -SGIX_async_pixel enum: - ASYNC_TEX_IMAGE_SGIX = 0x835C - ASYNC_DRAW_PIXELS_SGIX = 0x835D - ASYNC_READ_PIXELS_SGIX = 0x835E - MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F - MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 - MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 - -############################################################################### - -# Extension #134 -SGIX_async_histogram enum: - ASYNC_HISTOGRAM_SGIX = 0x832C - MAX_ASYNC_HISTOGRAM_SGIX = 0x832D - -############################################################################### - -# Intel has not implemented this; enums never assigned -# Extension #135 -INTEL_texture_scissor enum: -# TEXTURE_SCISSOR_INTEL = 0x???? -# TEXTURE_SCISSOR_INTEL = 0x???? -# TEXTURE_SCISSOR_FUNC_INTEL = 0x???? -# TEXTURE_SCISSOR_S_INTEL = 0x???? -# TEXTURE_SCISSOR_T_INTEL = 0x???? -# TEXTURE_SCISSOR_R_INTEL = 0x???? - -############################################################################### - -# Extension #136 -INTEL_parallel_arrays enum: - PARALLEL_ARRAYS_INTEL = 0x83F4 - VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 - NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 - COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 - TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 - -############################################################################### - -# Extension #137 -HP_occlusion_test enum: - OCCLUSION_TEST_HP = 0x8165 - OCCLUSION_TEST_RESULT_HP = 0x8166 - -############################################################################### - -# Extension #138 -EXT_pixel_transform enum: - PIXEL_TRANSFORM_2D_EXT = 0x8330 - PIXEL_MAG_FILTER_EXT = 0x8331 - PIXEL_MIN_FILTER_EXT = 0x8332 - PIXEL_CUBIC_WEIGHT_EXT = 0x8333 - CUBIC_EXT = 0x8334 - AVERAGE_EXT = 0x8335 - PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 - MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 - PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 - -############################################################################### - -# Unknown enum values -# Extension #139 -EXT_pixel_transform_color_table enum: - -# PIXEL_TRANSFORM_COLOR_TABLE_EXT -# PROXY_PIXEL_TRANSFORM_COLOR_TABLE_EXT - -############################################################################### - -# Extension #140 - skipped - -############################################################################### - -# Extension #141 -EXT_shared_texture_palette enum: - SHARED_TEXTURE_PALETTE_EXT = 0x81FB - -############################################################################### - -# Extension #142 - GLX_SGIS_blended_overlay - -############################################################################### - -# Extension #143 - SGIS_shared_multisample -# MULTISAMPLE_SUB_RECT_POSITION_SGIS = -# MULTISAMPLE_SUB_RECT_DIMS_SGIS = - -############################################################################### - -# Extension #144 -EXT_separate_specular_color enum: - LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 - SINGLE_COLOR_EXT = 0x81F9 - SEPARATE_SPECULAR_COLOR_EXT = 0x81FA - -############################################################################### - -# Extension #145 -EXT_secondary_color enum: - COLOR_SUM_EXT = 0x8458 # 1 I - CURRENT_SECONDARY_COLOR_EXT = 0x8459 # 3 F - SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A # 1 I - SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B # 1 I - SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C # 1 I - SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D - SECONDARY_COLOR_ARRAY_EXT = 0x845E # 1 I - -############################################################################### - -# Dead extension - EXT_texture_env_combine was finished instead -# Extension #146 -#EXT_texture_env enum: - -############################################################################### - -# Extension #147 -EXT_texture_perturb_normal enum: - PERTURB_EXT = 0x85AE - TEXTURE_NORMAL_EXT = 0x85AF - -############################################################################### - -# No new tokens -# Extension #148 -# Diamond ships an otherwise identical IBM_multi_draw_arrays extension; -# Dan Brokenshire says this is deprecated and should not be advertised. -EXT_multi_draw_arrays enum: - -############################################################################### - -# Extension #149 -EXT_fog_coord enum: - FOG_COORDINATE_SOURCE_EXT = 0x8450 # 1 I - FOG_COORDINATE_EXT = 0x8451 - FRAGMENT_DEPTH_EXT = 0x8452 - CURRENT_FOG_COORDINATE_EXT = 0x8453 # 1 F - FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 # 1 I - FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 # 1 I - FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 - FOG_COORDINATE_ARRAY_EXT = 0x8457 # 1 I - -############################################################################### - -# Extension #150 - skipped -# Extension #151 - skipped -# Extension #152 - skipped -# Extension #153 - skipped -# Extension #154 - skipped - -############################################################################### - -# Extension #155 -REND_screen_coordinates enum: - SCREEN_COORDINATES_REND = 0x8490 - INVERTED_SCREEN_W_REND = 0x8491 - -############################################################################### - -# Extension #156 -EXT_coordinate_frame enum: - TANGENT_ARRAY_EXT = 0x8439 - BINORMAL_ARRAY_EXT = 0x843A - CURRENT_TANGENT_EXT = 0x843B - CURRENT_BINORMAL_EXT = 0x843C - TANGENT_ARRAY_TYPE_EXT = 0x843E - TANGENT_ARRAY_STRIDE_EXT = 0x843F - BINORMAL_ARRAY_TYPE_EXT = 0x8440 - BINORMAL_ARRAY_STRIDE_EXT = 0x8441 - TANGENT_ARRAY_POINTER_EXT = 0x8442 - BINORMAL_ARRAY_POINTER_EXT = 0x8443 - MAP1_TANGENT_EXT = 0x8444 - MAP2_TANGENT_EXT = 0x8445 - MAP1_BINORMAL_EXT = 0x8446 - MAP2_BINORMAL_EXT = 0x8447 - -############################################################################### - -# Extension #157 - skipped - -############################################################################### - -# Extension #158 -EXT_texture_env_combine enum: - COMBINE_EXT = 0x8570 - COMBINE_RGB_EXT = 0x8571 - COMBINE_ALPHA_EXT = 0x8572 - RGB_SCALE_EXT = 0x8573 - ADD_SIGNED_EXT = 0x8574 - INTERPOLATE_EXT = 0x8575 - CONSTANT_EXT = 0x8576 - PRIMARY_COLOR_EXT = 0x8577 - PREVIOUS_EXT = 0x8578 - SOURCE0_RGB_EXT = 0x8580 - SOURCE1_RGB_EXT = 0x8581 - SOURCE2_RGB_EXT = 0x8582 - SOURCE0_ALPHA_EXT = 0x8588 - SOURCE1_ALPHA_EXT = 0x8589 - SOURCE2_ALPHA_EXT = 0x858A - OPERAND0_RGB_EXT = 0x8590 - OPERAND1_RGB_EXT = 0x8591 - OPERAND2_RGB_EXT = 0x8592 - OPERAND0_ALPHA_EXT = 0x8598 - OPERAND1_ALPHA_EXT = 0x8599 - OPERAND2_ALPHA_EXT = 0x859A - -############################################################################### - -# Extension #159 -APPLE_specular_vector enum: - LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 - -############################################################################### - -# Extension #160 -APPLE_transform_hint enum: - TRANSFORM_HINT_APPLE = 0x85B1 - -############################################################################### - -# Extension #161 -SGIX_fog_scale enum: - FOG_SCALE_SGIX = 0x81FC - FOG_SCALE_VALUE_SGIX = 0x81FD - -############################################################################### - -# Extension #162 - skipped - -############################################################################### - -# Extension #163 -SUNX_constant_data enum: - UNPACK_CONSTANT_DATA_SUNX = 0x81D5 - TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 - -############################################################################### - -# Extension #164 -SUN_global_alpha enum: - GLOBAL_ALPHA_SUN = 0x81D9 - GLOBAL_ALPHA_FACTOR_SUN = 0x81DA - -############################################################################### - -# Extension #165 -SUN_triangle_list enum: - RESTART_SUN = 0x0001 - REPLACE_MIDDLE_SUN = 0x0002 - REPLACE_OLDEST_SUN = 0x0003 - TRIANGLE_LIST_SUN = 0x81D7 - REPLACEMENT_CODE_SUN = 0x81D8 - REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 - REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 - REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 - REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 - R1UI_V3F_SUN = 0x85C4 - R1UI_C4UB_V3F_SUN = 0x85C5 - R1UI_C3F_V3F_SUN = 0x85C6 - R1UI_N3F_V3F_SUN = 0x85C7 - R1UI_C4F_N3F_V3F_SUN = 0x85C8 - R1UI_T2F_V3F_SUN = 0x85C9 - R1UI_T2F_N3F_V3F_SUN = 0x85CA - R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB - -############################################################################### - -# No new tokens -# Extension #166 -SUN_vertex enum: - -############################################################################### - -# Extension #167 - WGL_EXT_display_color_table -# Extension #168 - WGL_EXT_extensions_string -# Extension #169 - WGL_EXT_make_current_read -# Extension #170 - WGL_EXT_pixel_format -# Extension #171 - WGL_EXT_pbuffer -# Extension #172 - WGL_EXT_swap_control - -############################################################################### - -# Extension #173 -EXT_blend_func_separate enum: - BLEND_DST_RGB_EXT = 0x80C8 - BLEND_SRC_RGB_EXT = 0x80C9 - BLEND_DST_ALPHA_EXT = 0x80CA - BLEND_SRC_ALPHA_EXT = 0x80CB - -############################################################################### - -# Extension #174 -INGR_color_clamp enum: - RED_MIN_CLAMP_INGR = 0x8560 - GREEN_MIN_CLAMP_INGR = 0x8561 - BLUE_MIN_CLAMP_INGR = 0x8562 - ALPHA_MIN_CLAMP_INGR = 0x8563 - RED_MAX_CLAMP_INGR = 0x8564 - GREEN_MAX_CLAMP_INGR = 0x8565 - BLUE_MAX_CLAMP_INGR = 0x8566 - ALPHA_MAX_CLAMP_INGR = 0x8567 - -############################################################################### - -# Extension #175 -INGR_interlace_read enum: - INTERLACE_READ_INGR = 0x8568 - -############################################################################### - -# Extension #176 -EXT_stencil_wrap enum: - INCR_WRAP_EXT = 0x8507 - DECR_WRAP_EXT = 0x8508 - -############################################################################### - -# Extension #177 - skipped - -############################################################################### - -# Extension #178 -EXT_422_pixels enum: - 422_EXT = 0x80CC - 422_REV_EXT = 0x80CD - 422_AVERAGE_EXT = 0x80CE - 422_REV_AVERAGE_EXT = 0x80CF - -############################################################################### - -# Extension #179 -NV_texgen_reflection enum: - NORMAL_MAP_NV = 0x8511 - REFLECTION_MAP_NV = 0x8512 - -############################################################################### - -# Extension #180 - skipped -# Extension #181 - skipped - -############################################################################### - -# Is this shipping? No extension number assigned. -# Extension #? -EXT_texture_cube_map enum: - NORMAL_MAP_EXT = 0x8511 - REFLECTION_MAP_EXT = 0x8512 - TEXTURE_CUBE_MAP_EXT = 0x8513 - TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 - TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 - TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 - TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 - TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 - TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 - TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A - PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B - MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C - -############################################################################### - -# Extension #182 -SUN_convolution_border_modes enum: - WRAP_BORDER_SUN = 0x81D4 - -############################################################################### - -# Extension #183 - GLX_SUN_transparent_index - -############################################################################### - -# Extension #184 - skipped - -############################################################################### - -# No new tokens -# Extension #185 -EXT_texture_env_add enum: - -############################################################################### - -# Extension #186 -EXT_texture_lod_bias enum: - MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD - TEXTURE_FILTER_CONTROL_EXT = 0x8500 - TEXTURE_LOD_BIAS_EXT = 0x8501 - -############################################################################### - -# Extension #187 -EXT_texture_filter_anisotropic enum: - TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE - MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF - -############################################################################### - -# Extension #188 -EXT_vertex_weighting enum: - MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH - MODELVIEW1_STACK_DEPTH_EXT = 0x8502 - MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX - MODELVIEW1_MATRIX_EXT = 0x8506 - VERTEX_WEIGHTING_EXT = 0x8509 - MODELVIEW0_EXT = GL_MODELVIEW - MODELVIEW1_EXT = 0x850A - CURRENT_VERTEX_WEIGHT_EXT = 0x850B - VERTEX_WEIGHT_ARRAY_EXT = 0x850C - VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D - VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E - VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F - VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 - -############################################################################### - -# Extension #189 -NV_light_max_exponent enum: - MAX_SHININESS_NV = 0x8504 - MAX_SPOT_EXPONENT_NV = 0x8505 - -############################################################################### - -# Extension #190 -NV_vertex_array_range enum: - VERTEX_ARRAY_RANGE_NV = 0x851D - VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E - VERTEX_ARRAY_RANGE_VALID_NV = 0x851F - MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 - VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 - -############################################################################### - -# Extension #191 -NV_register_combiners enum: - REGISTER_COMBINERS_NV = 0x8522 - VARIABLE_A_NV = 0x8523 - VARIABLE_B_NV = 0x8524 - VARIABLE_C_NV = 0x8525 - VARIABLE_D_NV = 0x8526 - VARIABLE_E_NV = 0x8527 - VARIABLE_F_NV = 0x8528 - VARIABLE_G_NV = 0x8529 - CONSTANT_COLOR0_NV = 0x852A - CONSTANT_COLOR1_NV = 0x852B - PRIMARY_COLOR_NV = 0x852C - SECONDARY_COLOR_NV = 0x852D - SPARE0_NV = 0x852E - SPARE1_NV = 0x852F - DISCARD_NV = 0x8530 - E_TIMES_F_NV = 0x8531 - SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 - UNSIGNED_IDENTITY_NV = 0x8536 - UNSIGNED_INVERT_NV = 0x8537 - EXPAND_NORMAL_NV = 0x8538 - EXPAND_NEGATE_NV = 0x8539 - HALF_BIAS_NORMAL_NV = 0x853A - HALF_BIAS_NEGATE_NV = 0x853B - SIGNED_IDENTITY_NV = 0x853C - SIGNED_NEGATE_NV = 0x853D - SCALE_BY_TWO_NV = 0x853E - SCALE_BY_FOUR_NV = 0x853F - SCALE_BY_ONE_HALF_NV = 0x8540 - BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 - COMBINER_INPUT_NV = 0x8542 - COMBINER_MAPPING_NV = 0x8543 - COMBINER_COMPONENT_USAGE_NV = 0x8544 - COMBINER_AB_DOT_PRODUCT_NV = 0x8545 - COMBINER_CD_DOT_PRODUCT_NV = 0x8546 - COMBINER_MUX_SUM_NV = 0x8547 - COMBINER_SCALE_NV = 0x8548 - COMBINER_BIAS_NV = 0x8549 - COMBINER_AB_OUTPUT_NV = 0x854A - COMBINER_CD_OUTPUT_NV = 0x854B - COMBINER_SUM_OUTPUT_NV = 0x854C - MAX_GENERAL_COMBINERS_NV = 0x854D - NUM_GENERAL_COMBINERS_NV = 0x854E - COLOR_SUM_CLAMP_NV = 0x854F - COMBINER0_NV = 0x8550 - COMBINER1_NV = 0x8551 - COMBINER2_NV = 0x8552 - COMBINER3_NV = 0x8553 - COMBINER4_NV = 0x8554 - COMBINER5_NV = 0x8555 - COMBINER6_NV = 0x8556 - COMBINER7_NV = 0x8557 - use ARB_multitexture TEXTURE0_ARB - use ARB_multitexture TEXTURE1_ARB - use BlendingFactorDest ZERO - use DrawBufferMode NONE - use GetPName FOG - -############################################################################### - -# Extension #192 -NV_fog_distance enum: - FOG_DISTANCE_MODE_NV = 0x855A - EYE_RADIAL_NV = 0x855B - EYE_PLANE_ABSOLUTE_NV = 0x855C - use TextureGenParameter EYE_PLANE - -############################################################################### - -# Extension #193 -NV_texgen_emboss enum: - EMBOSS_LIGHT_NV = 0x855D - EMBOSS_CONSTANT_NV = 0x855E - EMBOSS_MAP_NV = 0x855F - -############################################################################### - -# No new tokens -# Extension #194 -NV_blend_square enum: - -############################################################################### - -# Extension #195 -NV_texture_env_combine4 enum: - COMBINE4_NV = 0x8503 - SOURCE3_RGB_NV = 0x8583 - SOURCE3_ALPHA_NV = 0x858B - OPERAND3_RGB_NV = 0x8593 - OPERAND3_ALPHA_NV = 0x859B - -############################################################################### - -# No new tokens -# Extension #196 -MESA_resize_buffers enum: - -############################################################################### - -# No new tokens -# Extension #197 -MESA_window_pos enum: - -############################################################################### - -# Extension #198 -EXT_texture_compression_s3tc enum: - COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0 - COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1 - COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 - COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 - -############################################################################### - -# Extension #199 -IBM_cull_vertex enum: - CULL_VERTEX_IBM = 103050 - -############################################################################### - -# No new tokens -# Extension #200 -IBM_multimode_draw_arrays enum: - -############################################################################### - -# Extension #201 -IBM_vertex_array_lists enum: - VERTEX_ARRAY_LIST_IBM = 103070 - NORMAL_ARRAY_LIST_IBM = 103071 - COLOR_ARRAY_LIST_IBM = 103072 - INDEX_ARRAY_LIST_IBM = 103073 - TEXTURE_COORD_ARRAY_LIST_IBM = 103074 - EDGE_FLAG_ARRAY_LIST_IBM = 103075 - FOG_COORDINATE_ARRAY_LIST_IBM = 103076 - SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 - VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 - NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 - COLOR_ARRAY_LIST_STRIDE_IBM = 103082 - INDEX_ARRAY_LIST_STRIDE_IBM = 103083 - TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 - EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 - FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 - SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 - -############################################################################### - -# Extension #202 -SGIX_subsample enum: - PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 - UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 - PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 - PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 - PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 - -############################################################################### - -# Extension #203 -SGIX_ycrcb_subsample enum: - PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 - UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 - PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 - PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 - PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 - -############################################################################### - -# Extension #204 -SGIX_ycrcba enum: - YCRCB_SGIX = 0x8318 - YCRCBA_SGIX = 0x8319 - -############################################################################### - -# Extension #205 -SGI_depth_pass_instrument enum: - DEPTH_PASS_INSTRUMENT_SGIX = 0x8310 - DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311 - DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312 - -############################################################################### - -# Extension #206 -3DFX_texture_compression_FXT1 enum: - COMPRESSED_RGB_FXT1_3DFX = 0x86B0 - COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 - -############################################################################### - -# Extension #207 -3DFX_multisample enum: - MULTISAMPLE_3DFX = 0x86B2 - SAMPLE_BUFFERS_3DFX = 0x86B3 - SAMPLES_3DFX = 0x86B4 - MULTISAMPLE_BIT_3DFX = 0x20000000 - -############################################################################### - -# No new tokens -# Extension #208 -3DFX_tbuffer enum: - -############################################################################### - -# Extension #209 -EXT_multisample enum: - MULTISAMPLE_EXT = 0x809D - SAMPLE_ALPHA_TO_MASK_EXT = 0x809E - SAMPLE_ALPHA_TO_ONE_EXT = 0x809F - SAMPLE_MASK_EXT = 0x80A0 - 1PASS_EXT = 0x80A1 - 2PASS_0_EXT = 0x80A2 - 2PASS_1_EXT = 0x80A3 - 4PASS_0_EXT = 0x80A4 - 4PASS_1_EXT = 0x80A5 - 4PASS_2_EXT = 0x80A6 - 4PASS_3_EXT = 0x80A7 - SAMPLE_BUFFERS_EXT = 0x80A8 # 1 I - SAMPLES_EXT = 0x80A9 # 1 I - SAMPLE_MASK_VALUE_EXT = 0x80AA # 1 F - SAMPLE_MASK_INVERT_EXT = 0x80AB # 1 I - SAMPLE_PATTERN_EXT = 0x80AC # 1 I - MULTISAMPLE_BIT_EXT = 0x20000000 - -############################################################################### - -# Extension #210 -SGIX_vertex_preclip enum: - VERTEX_PRECLIP_SGIX = 0x83EE - VERTEX_PRECLIP_HINT_SGIX = 0x83EF - -############################################################################### - -# Extension #211 -SGIX_convolution_accuracy enum: - CONVOLUTION_HINT_SGIX = 0x8316 # 1 I - -############################################################################### - -# Extension #212 -SGIX_resample enum: - PACK_RESAMPLE_SGIX = 0x842C - UNPACK_RESAMPLE_SGIX = 0x842D - RESAMPLE_REPLICATE_SGIX = 0x842E - RESAMPLE_ZERO_FILL_SGIX = 0x842F - RESAMPLE_DECIMATE_SGIX = 0x8430 - -############################################################################### - -# Extension #213 -SGIS_point_line_texgen enum: - EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 - OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 - EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 - OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 - EYE_POINT_SGIS = 0x81F4 - OBJECT_POINT_SGIS = 0x81F5 - EYE_LINE_SGIS = 0x81F6 - OBJECT_LINE_SGIS = 0x81F7 - -############################################################################### - -# Extension #214 -SGIS_texture_color_mask enum: - TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF - -############################################################################### - -# Extension #220 -# Promoted to ARB_texture_env_dot3, enum values changed -EXT_texture_env_dot3 enum: - DOT3_RGB_EXT = 0x8740 - DOT3_RGBA_EXT = 0x8741 - -############################################################################### - -# Extension #221 -ATI_texture_mirror_once enum: - MIRROR_CLAMP_ATI = 0x8742 - MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 - -############################################################################### - -# Extension #222 -NV_fence enum: - ALL_COMPLETED_NV = 0x84F2 - FENCE_STATUS_NV = 0x84F3 - FENCE_CONDITION_NV = 0x84F4 - -############################################################################### - -# Extension #224 -IBM_texture_mirrored_repeat enum: - MIRRORED_REPEAT_IBM = 0x8370 - -############################################################################### - -# Extension #225 -NV_evaluators enum: - EVAL_2D_NV = 0x86C0 - EVAL_TRIANGULAR_2D_NV = 0x86C1 - MAP_TESSELLATION_NV = 0x86C2 - MAP_ATTRIB_U_ORDER_NV = 0x86C3 - MAP_ATTRIB_V_ORDER_NV = 0x86C4 - EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 - EVAL_VERTEX_ATTRIB0_NV = 0x86C6 - EVAL_VERTEX_ATTRIB1_NV = 0x86C7 - EVAL_VERTEX_ATTRIB2_NV = 0x86C8 - EVAL_VERTEX_ATTRIB3_NV = 0x86C9 - EVAL_VERTEX_ATTRIB4_NV = 0x86CA - EVAL_VERTEX_ATTRIB5_NV = 0x86CB - EVAL_VERTEX_ATTRIB6_NV = 0x86CC - EVAL_VERTEX_ATTRIB7_NV = 0x86CD - EVAL_VERTEX_ATTRIB8_NV = 0x86CE - EVAL_VERTEX_ATTRIB9_NV = 0x86CF - EVAL_VERTEX_ATTRIB10_NV = 0x86D0 - EVAL_VERTEX_ATTRIB11_NV = 0x86D1 - EVAL_VERTEX_ATTRIB12_NV = 0x86D2 - EVAL_VERTEX_ATTRIB13_NV = 0x86D3 - EVAL_VERTEX_ATTRIB14_NV = 0x86D4 - EVAL_VERTEX_ATTRIB15_NV = 0x86D5 - MAX_MAP_TESSELLATION_NV = 0x86D6 - MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 - -############################################################################### - -# Extension #226 -NV_packed_depth_stencil enum: - DEPTH_STENCIL_NV = 0x84F9 - UNSIGNED_INT_24_8_NV = 0x84FA - -############################################################################### - -# Extension #227 -NV_register_combiners2 enum: - PER_STAGE_CONSTANTS_NV = 0x8535 - -############################################################################### - -# No new tokens -# Extension #228 -NV_texture_compression_vtc enum: - -############################################################################### - -# Extension #229 -NV_texture_rectangle enum: - TEXTURE_RECTANGLE_NV = 0x84F5 - TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 - PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 - MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 - -############################################################################### - -# Extension #230 -NV_texture_shader enum: - OFFSET_TEXTURE_RECTANGLE_NV = 0x864C - OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D - DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E - RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 - UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA - UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB - DSDT_MAG_INTENSITY_NV = 0x86DC - SHADER_CONSISTENT_NV = 0x86DD - TEXTURE_SHADER_NV = 0x86DE - SHADER_OPERATION_NV = 0x86DF - CULL_MODES_NV = 0x86E0 - OFFSET_TEXTURE_MATRIX_NV = 0x86E1 - OFFSET_TEXTURE_SCALE_NV = 0x86E2 - OFFSET_TEXTURE_BIAS_NV = 0x86E3 - OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV - OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV - OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV - PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 - CONST_EYE_NV = 0x86E5 - PASS_THROUGH_NV = 0x86E6 - CULL_FRAGMENT_NV = 0x86E7 - OFFSET_TEXTURE_2D_NV = 0x86E8 - DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 - DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA - DOT_PRODUCT_NV = 0x86EC - DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED - DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE - DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 - DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 - DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 - DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 - HILO_NV = 0x86F4 - DSDT_NV = 0x86F5 - DSDT_MAG_NV = 0x86F6 - DSDT_MAG_VIB_NV = 0x86F7 - HILO16_NV = 0x86F8 - SIGNED_HILO_NV = 0x86F9 - SIGNED_HILO16_NV = 0x86FA - SIGNED_RGBA_NV = 0x86FB - SIGNED_RGBA8_NV = 0x86FC - SIGNED_RGB_NV = 0x86FE - SIGNED_RGB8_NV = 0x86FF - SIGNED_LUMINANCE_NV = 0x8701 - SIGNED_LUMINANCE8_NV = 0x8702 - SIGNED_LUMINANCE_ALPHA_NV = 0x8703 - SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 - SIGNED_ALPHA_NV = 0x8705 - SIGNED_ALPHA8_NV = 0x8706 - SIGNED_INTENSITY_NV = 0x8707 - SIGNED_INTENSITY8_NV = 0x8708 - DSDT8_NV = 0x8709 - DSDT8_MAG8_NV = 0x870A - DSDT8_MAG8_INTENSITY8_NV = 0x870B - SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C - SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D - HI_SCALE_NV = 0x870E - LO_SCALE_NV = 0x870F - DS_SCALE_NV = 0x8710 - DT_SCALE_NV = 0x8711 - MAGNITUDE_SCALE_NV = 0x8712 - VIBRANCE_SCALE_NV = 0x8713 - HI_BIAS_NV = 0x8714 - LO_BIAS_NV = 0x8715 - DS_BIAS_NV = 0x8716 - DT_BIAS_NV = 0x8717 - MAGNITUDE_BIAS_NV = 0x8718 - VIBRANCE_BIAS_NV = 0x8719 - TEXTURE_BORDER_VALUES_NV = 0x871A - TEXTURE_HI_SIZE_NV = 0x871B - TEXTURE_LO_SIZE_NV = 0x871C - TEXTURE_DS_SIZE_NV = 0x871D - TEXTURE_DT_SIZE_NV = 0x871E - TEXTURE_MAG_SIZE_NV = 0x871F - -############################################################################### - -# Extension #231 -NV_texture_shader2 enum: - DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF - -############################################################################### - -# Extension #232 -NV_vertex_array_range2 enum: - VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 - -############################################################################### - -# Extension #233 -NV_vertex_program enum: - VERTEX_PROGRAM_NV = 0x8620 - VERTEX_STATE_PROGRAM_NV = 0x8621 - ATTRIB_ARRAY_SIZE_NV = 0x8623 - ATTRIB_ARRAY_STRIDE_NV = 0x8624 - ATTRIB_ARRAY_TYPE_NV = 0x8625 - CURRENT_ATTRIB_NV = 0x8626 - PROGRAM_LENGTH_NV = 0x8627 - PROGRAM_STRING_NV = 0x8628 - MODELVIEW_PROJECTION_NV = 0x8629 - IDENTITY_NV = 0x862A - INVERSE_NV = 0x862B - TRANSPOSE_NV = 0x862C - INVERSE_TRANSPOSE_NV = 0x862D - MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E - MAX_TRACK_MATRICES_NV = 0x862F - MATRIX0_NV = 0x8630 - MATRIX1_NV = 0x8631 - MATRIX2_NV = 0x8632 - MATRIX3_NV = 0x8633 - MATRIX4_NV = 0x8634 - MATRIX5_NV = 0x8635 - MATRIX6_NV = 0x8636 - MATRIX7_NV = 0x8637 -################## -# -# Reserved: -# -# MATRIX8_NV = 0x8638 -# MATRIX9_NV = 0x8639 -# MATRIX10_NV = 0x863A -# MATRIX11_NV = 0x863B -# MATRIX12_NV = 0x863C -# MATRIX13_NV = 0x863D -# MATRIX14_NV = 0x863E -# MATRIX15_NV = 0x863F -# -################### - CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 - CURRENT_MATRIX_NV = 0x8641 - VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 - VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 - PROGRAM_PARAMETER_NV = 0x8644 - ATTRIB_ARRAY_POINTER_NV = 0x8645 - PROGRAM_TARGET_NV = 0x8646 - PROGRAM_RESIDENT_NV = 0x8647 - TRACK_MATRIX_NV = 0x8648 - TRACK_MATRIX_TRANSFORM_NV = 0x8649 - VERTEX_PROGRAM_BINDING_NV = 0x864A - PROGRAM_ERROR_POSITION_NV = 0x864B - VERTEX_ATTRIB_ARRAY0_NV = 0x8650 - VERTEX_ATTRIB_ARRAY1_NV = 0x8651 - VERTEX_ATTRIB_ARRAY2_NV = 0x8652 - VERTEX_ATTRIB_ARRAY3_NV = 0x8653 - VERTEX_ATTRIB_ARRAY4_NV = 0x8654 - VERTEX_ATTRIB_ARRAY5_NV = 0x8655 - VERTEX_ATTRIB_ARRAY6_NV = 0x8656 - VERTEX_ATTRIB_ARRAY7_NV = 0x8657 - VERTEX_ATTRIB_ARRAY8_NV = 0x8658 - VERTEX_ATTRIB_ARRAY9_NV = 0x8659 - VERTEX_ATTRIB_ARRAY10_NV = 0x865A - VERTEX_ATTRIB_ARRAY11_NV = 0x865B - VERTEX_ATTRIB_ARRAY12_NV = 0x865C - VERTEX_ATTRIB_ARRAY13_NV = 0x865D - VERTEX_ATTRIB_ARRAY14_NV = 0x865E - VERTEX_ATTRIB_ARRAY15_NV = 0x865F - MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 - MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 - MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 - MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 - MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 - MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 - MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 - MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 - MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 - MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 - MAP1_VERTEX_ATTRIB10_4_NV = 0x866A - MAP1_VERTEX_ATTRIB11_4_NV = 0x866B - MAP1_VERTEX_ATTRIB12_4_NV = 0x866C - MAP1_VERTEX_ATTRIB13_4_NV = 0x866D - MAP1_VERTEX_ATTRIB14_4_NV = 0x866E - MAP1_VERTEX_ATTRIB15_4_NV = 0x866F - MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 - MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 - MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 - MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 - MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 - MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 - MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 - MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 - MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 - MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 - MAP2_VERTEX_ATTRIB10_4_NV = 0x867A - MAP2_VERTEX_ATTRIB11_4_NV = 0x867B - MAP2_VERTEX_ATTRIB12_4_NV = 0x867C - MAP2_VERTEX_ATTRIB13_4_NV = 0x867D - MAP2_VERTEX_ATTRIB14_4_NV = 0x867E - MAP2_VERTEX_ATTRIB15_4_NV = 0x867F - -############################################################################### - -# Extension #235 -SGIX_texture_coordinate_clamp enum: - TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 - TEXTURE_MAX_CLAMP_T_SGIX = 0x836A - TEXTURE_MAX_CLAMP_R_SGIX = 0x836B - -############################################################################### - -# Extension #236 -SGIX_scalebias_hint enum: - SCALEBIAS_HINT_SGIX = 0x8322 - -############################################################################### - -# Extension #237 - GLX_OML_swap_method -# Extension #238 - GLX_OML_sync_control - -############################################################################### - -# Extension #239 -OML_interlace enum: - INTERLACE_OML = 0x8980 - INTERLACE_READ_OML = 0x8981 - -############################################################################### - -# Extension #240 -OML_subsample enum: - FORMAT_SUBSAMPLE_24_24_OML = 0x8982 - FORMAT_SUBSAMPLE_244_244_OML = 0x8983 - -############################################################################### - -# Extension #241 -OML_resample enum: - PACK_RESAMPLE_OML = 0x8984 - UNPACK_RESAMPLE_OML = 0x8985 - RESAMPLE_REPLICATE_OML = 0x8986 - RESAMPLE_ZERO_FILL_OML = 0x8987 - RESAMPLE_AVERAGE_OML = 0x8988 - RESAMPLE_DECIMATE_OML = 0x8989 - -############################################################################### - -# Extension #242 - WGL_OML_sync_control - -############################################################################### - -# Extension #243 -NV_copy_depth_to_color enum: - DEPTH_STENCIL_TO_RGBA_NV = 0x886E - DEPTH_STENCIL_TO_BGRA_NV = 0x886F - -############################################################################### - -# Extension #244 -ATI_envmap_bumpmap enum: - BUMP_ROT_MATRIX_ATI = 0x8775 - BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 - BUMP_NUM_TEX_UNITS_ATI = 0x8777 - BUMP_TEX_UNITS_ATI = 0x8778 - DUDV_ATI = 0x8779 - DU8DV8_ATI = 0x877A - BUMP_ENVMAP_ATI = 0x877B - BUMP_TARGET_ATI = 0x877C - -############################################################################### - -# Extension #245 -ATI_fragment_shader enum: - FRAGMENT_SHADER_ATI = 0x8920 - REG_0_ATI = 0x8921 - REG_1_ATI = 0x8922 - REG_2_ATI = 0x8923 - REG_3_ATI = 0x8924 - REG_4_ATI = 0x8925 - REG_5_ATI = 0x8926 - REG_6_ATI = 0x8927 - REG_7_ATI = 0x8928 - REG_8_ATI = 0x8929 - REG_9_ATI = 0x892A - REG_10_ATI = 0x892B - REG_11_ATI = 0x892C - REG_12_ATI = 0x892D - REG_13_ATI = 0x892E - REG_14_ATI = 0x892F - REG_15_ATI = 0x8930 - REG_16_ATI = 0x8931 - REG_17_ATI = 0x8932 - REG_18_ATI = 0x8933 - REG_19_ATI = 0x8934 - REG_20_ATI = 0x8935 - REG_21_ATI = 0x8936 - REG_22_ATI = 0x8937 - REG_23_ATI = 0x8938 - REG_24_ATI = 0x8939 - REG_25_ATI = 0x893A - REG_26_ATI = 0x893B - REG_27_ATI = 0x893C - REG_28_ATI = 0x893D - REG_29_ATI = 0x893E - REG_30_ATI = 0x893F - REG_31_ATI = 0x8940 - CON_0_ATI = 0x8941 - CON_1_ATI = 0x8942 - CON_2_ATI = 0x8943 - CON_3_ATI = 0x8944 - CON_4_ATI = 0x8945 - CON_5_ATI = 0x8946 - CON_6_ATI = 0x8947 - CON_7_ATI = 0x8948 - CON_8_ATI = 0x8949 - CON_9_ATI = 0x894A - CON_10_ATI = 0x894B - CON_11_ATI = 0x894C - CON_12_ATI = 0x894D - CON_13_ATI = 0x894E - CON_14_ATI = 0x894F - CON_15_ATI = 0x8950 - CON_16_ATI = 0x8951 - CON_17_ATI = 0x8952 - CON_18_ATI = 0x8953 - CON_19_ATI = 0x8954 - CON_20_ATI = 0x8955 - CON_21_ATI = 0x8956 - CON_22_ATI = 0x8957 - CON_23_ATI = 0x8958 - CON_24_ATI = 0x8959 - CON_25_ATI = 0x895A - CON_26_ATI = 0x895B - CON_27_ATI = 0x895C - CON_28_ATI = 0x895D - CON_29_ATI = 0x895E - CON_30_ATI = 0x895F - CON_31_ATI = 0x8960 - MOV_ATI = 0x8961 - ADD_ATI = 0x8963 - MUL_ATI = 0x8964 - SUB_ATI = 0x8965 - DOT3_ATI = 0x8966 - DOT4_ATI = 0x8967 - MAD_ATI = 0x8968 - LERP_ATI = 0x8969 - CND_ATI = 0x896A - CND0_ATI = 0x896B - DOT2_ADD_ATI = 0x896C - SECONDARY_INTERPOLATOR_ATI = 0x896D - NUM_FRAGMENT_REGISTERS_ATI = 0x896E - NUM_FRAGMENT_CONSTANTS_ATI = 0x896F - NUM_PASSES_ATI = 0x8970 - NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 - NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 - NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 - NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 - COLOR_ALPHA_PAIRING_ATI = 0x8975 - SWIZZLE_STR_ATI = 0x8976 - SWIZZLE_STQ_ATI = 0x8977 - SWIZZLE_STR_DR_ATI = 0x8978 - SWIZZLE_STQ_DQ_ATI = 0x8979 - SWIZZLE_STRQ_ATI = 0x897A - SWIZZLE_STRQ_DQ_ATI = 0x897B - RED_BIT_ATI = 0x00000001 - GREEN_BIT_ATI = 0x00000002 - BLUE_BIT_ATI = 0x00000004 - 2X_BIT_ATI = 0x00000001 - 4X_BIT_ATI = 0x00000002 - 8X_BIT_ATI = 0x00000004 - HALF_BIT_ATI = 0x00000008 - QUARTER_BIT_ATI = 0x00000010 - EIGHTH_BIT_ATI = 0x00000020 - SATURATE_BIT_ATI = 0x00000040 - 2X_BIT_ATI = 0x00000001 - COMP_BIT_ATI = 0x00000002 - NEGATE_BIT_ATI = 0x00000004 - BIAS_BIT_ATI = 0x00000008 - -############################################################################### - -# Extension #246 -ATI_pn_triangles enum: - PN_TRIANGLES_ATI = 0x87F0 - MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 - PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 - PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 - PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 - PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 - PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 - PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 - PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 - -############################################################################### - -# Extension #247 -ATI_vertex_array_object enum: - STATIC_ATI = 0x8760 - DYNAMIC_ATI = 0x8761 - PRESERVE_ATI = 0x8762 - DISCARD_ATI = 0x8763 - OBJECT_BUFFER_SIZE_ATI = 0x8764 - OBJECT_BUFFER_USAGE_ATI = 0x8765 - ARRAY_OBJECT_BUFFER_ATI = 0x8766 - ARRAY_OBJECT_OFFSET_ATI = 0x8767 - -############################################################################### - -# Extension #248 -EXT_vertex_shader enum: - VERTEX_SHADER_EXT = 0x8780 - VERTEX_SHADER_BINDING_EXT = 0x8781 - OP_INDEX_EXT = 0x8782 - OP_NEGATE_EXT = 0x8783 - OP_DOT3_EXT = 0x8784 - OP_DOT4_EXT = 0x8785 - OP_MUL_EXT = 0x8786 - OP_ADD_EXT = 0x8787 - OP_MADD_EXT = 0x8788 - OP_FRAC_EXT = 0x8789 - OP_MAX_EXT = 0x878A - OP_MIN_EXT = 0x878B - OP_SET_GE_EXT = 0x878C - OP_SET_LT_EXT = 0x878D - OP_CLAMP_EXT = 0x878E - OP_FLOOR_EXT = 0x878F - OP_ROUND_EXT = 0x8790 - OP_EXP_BASE_2_EXT = 0x8791 - OP_LOG_BASE_2_EXT = 0x8792 - OP_POWER_EXT = 0x8793 - OP_RECIP_EXT = 0x8794 - OP_RECIP_SQRT_EXT = 0x8795 - OP_SUB_EXT = 0x8796 - OP_CROSS_PRODUCT_EXT = 0x8797 - OP_MULTIPLY_MATRIX_EXT = 0x8798 - OP_MOV_EXT = 0x8799 - OUTPUT_VERTEX_EXT = 0x879A - OUTPUT_COLOR0_EXT = 0x879B - OUTPUT_COLOR1_EXT = 0x879C - OUTPUT_TEXTURE_COORD0_EXT = 0x879D - OUTPUT_TEXTURE_COORD1_EXT = 0x879E - OUTPUT_TEXTURE_COORD2_EXT = 0x879F - OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 - OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 - OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 - OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 - OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 - OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 - OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 - OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 - OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 - OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 - OUTPUT_TEXTURE_COORD13_EXT = 0x87AA - OUTPUT_TEXTURE_COORD14_EXT = 0x87AB - OUTPUT_TEXTURE_COORD15_EXT = 0x87AC - OUTPUT_TEXTURE_COORD16_EXT = 0x87AD - OUTPUT_TEXTURE_COORD17_EXT = 0x87AE - OUTPUT_TEXTURE_COORD18_EXT = 0x87AF - OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 - OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 - OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 - OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 - OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 - OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 - OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 - OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 - OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 - OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 - OUTPUT_TEXTURE_COORD29_EXT = 0x87BA - OUTPUT_TEXTURE_COORD30_EXT = 0x87BB - OUTPUT_TEXTURE_COORD31_EXT = 0x87BC - OUTPUT_FOG_EXT = 0x87BD - SCALAR_EXT = 0x87BE - VECTOR_EXT = 0x87BF - MATRIX_EXT = 0x87C0 - VARIANT_EXT = 0x87C1 - INVARIANT_EXT = 0x87C2 - LOCAL_CONSTANT_EXT = 0x87C3 - LOCAL_EXT = 0x87C4 - MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 - MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 - MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 - MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 - MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 - MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA - MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB - MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC - MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD - MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE - VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF - VERTEX_SHADER_VARIANTS_EXT = 0x87D0 - VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 - VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 - VERTEX_SHADER_LOCALS_EXT = 0x87D3 - VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 - X_EXT = 0x87D5 - Y_EXT = 0x87D6 - Z_EXT = 0x87D7 - W_EXT = 0x87D8 - NEGATIVE_X_EXT = 0x87D9 - NEGATIVE_Y_EXT = 0x87DA - NEGATIVE_Z_EXT = 0x87DB - NEGATIVE_W_EXT = 0x87DC - ZERO_EXT = 0x87DD - ONE_EXT = 0x87DE - NEGATIVE_ONE_EXT = 0x87DF - NORMALIZED_RANGE_EXT = 0x87E0 - FULL_RANGE_EXT = 0x87E1 - CURRENT_VERTEX_EXT = 0x87E2 - MVP_MATRIX_EXT = 0x87E3 - VARIANT_VALUE_EXT = 0x87E4 - VARIANT_DATATYPE_EXT = 0x87E5 - VARIANT_ARRAY_STRIDE_EXT = 0x87E6 - VARIANT_ARRAY_TYPE_EXT = 0x87E7 - VARIANT_ARRAY_EXT = 0x87E8 - VARIANT_ARRAY_POINTER_EXT = 0x87E9 - INVARIANT_VALUE_EXT = 0x87EA - INVARIANT_DATATYPE_EXT = 0x87EB - LOCAL_CONSTANT_VALUE_EXT = 0x87EC - LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED - -############################################################################### - -# Extension #249 -ATI_vertex_streams enum: - MAX_VERTEX_STREAMS_ATI = 0x876B - VERTEX_STREAM0_ATI = 0x876C - VERTEX_STREAM1_ATI = 0x876D - VERTEX_STREAM2_ATI = 0x876E - VERTEX_STREAM3_ATI = 0x876F - VERTEX_STREAM4_ATI = 0x8770 - VERTEX_STREAM5_ATI = 0x8771 - VERTEX_STREAM6_ATI = 0x8772 - VERTEX_STREAM7_ATI = 0x8773 - VERTEX_SOURCE_ATI = 0x8774 - -############################################################################### - -# Extension #250 - WGL_I3D_digital_video_control -# Extension #251 - WGL_I3D_gamma -# Extension #252 - WGL_I3D_genlock -# Extension #253 - WGL_I3D_image_buffer -# Extension #254 - WGL_I3D_swap_frame_lock -# Extension #255 - WGL_I3D_swap_frame_usage - -############################################################################### - -# Extension #256 -ATI_element_array enum: - ELEMENT_ARRAY_ATI = 0x8768 - ELEMENT_ARRAY_TYPE_ATI = 0x8769 - ELEMENT_ARRAY_POINTER_ATI = 0x876A - -############################################################################### - -# Extension #257 -SUN_mesh_array enum: - QUAD_MESH_SUN = 0x8614 - TRIANGLE_MESH_SUN = 0x8615 - -############################################################################### - -# Extension #258 -SUN_slice_accum enum: - SLICE_ACCUM_SUN = 0x85CC - -############################################################################### - -# Extension #259 -NV_multisample_filter_hint enum: - MULTISAMPLE_FILTER_HINT_NV = 0x8534 - -############################################################################### - -# Extension #260 -NV_depth_clamp enum: - DEPTH_CLAMP_NV = 0x864F - -############################################################################### - -# Extension #261 -NV_occlusion_query enum: - PIXEL_COUNTER_BITS_NV = 0x8864 - CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 - PIXEL_COUNT_NV = 0x8866 - PIXEL_COUNT_AVAILABLE_NV = 0x8867 - -############################################################################### - -# Extension #262 -NV_point_sprite enum: - POINT_SPRITE_NV = 0x8861 - COORD_REPLACE_NV = 0x8862 - POINT_SPRITE_R_MODE_NV = 0x8863 - -############################################################################### - -# Extension #263 - WGL_NV_render_depth_texture -# Extension #264 - WGL_NV_render_texture_rectangle - -############################################################################### - -# Extension #265 -NV_texture_shader3 enum: - OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 - OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 - OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 - OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 - OFFSET_HILO_TEXTURE_2D_NV = 0x8854 - OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 - OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 - OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 - DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 - DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 - DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A - DOT_PRODUCT_PASS_THROUGH_NV = 0x885B - DOT_PRODUCT_TEXTURE_1D_NV = 0x885C - DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D - HILO8_NV = 0x885E - SIGNED_HILO8_NV = 0x885F - FORCE_BLUE_TO_ONE_NV = 0x8860 - -############################################################################### - -# No new tokens -# Extension #266 -NV_vertex_program1_1 enum: - -############################################################################### - -# No new tokens -# Extension #267 -EXT_shadow_funcs enum: - -############################################################################### - -# Extension #268 -EXT_stencil_two_side enum: - STENCIL_TEST_TWO_SIDE_EXT = 0x8910 - ACTIVE_STENCIL_FACE_EXT = 0x8911 - -############################################################################### - -# Extension #269 -ATI_text_fragment_shader enum: - TEXT_FRAGMENT_SHADER_ATI = 0x8200 - -############################################################################### - -# Extension #270 -APPLE_client_storage enum: - UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 - -############################################################################### - -# Extension #271 -# (extends ATI_element_array???) -APPLE_element_array enum: - ELEMENT_ARRAY_APPLE = 0x8768 - ELEMENT_ARRAY_TYPE_APPLE = 0x8769 - ELEMENT_ARRAY_POINTER_APPLE = 0x876A - -############################################################################### - -# Extension #272 -# ??? BUFFER_OBJECT_APPLE appears to be part of the shipping extension, -# but is not in the spec in the registry. Also appears in -# APPLE_object_purgeable below. -APPLE_fence enum: - DRAW_PIXELS_APPLE = 0x8A0A - FENCE_APPLE = 0x8A0B - -############################################################################### - -# Extension #273 -APPLE_vertex_array_object enum: - VERTEX_ARRAY_BINDING_APPLE = 0x85B5 - -############################################################################### - -# Extension #274 -# (How does this interact with NV_vertex_array_range???) -APPLE_vertex_array_range enum: - VERTEX_ARRAY_RANGE_APPLE = 0x851D - VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E - VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F - VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 - STORAGE_CACHED_APPLE = 0x85BE - STORAGE_SHARED_APPLE = 0x85BF - -############################################################################### - -# Extension #275 -APPLE_ycbcr_422 enum: - YCBCR_422_APPLE = 0x85B9 - UNSIGNED_SHORT_8_8_APPLE = 0x85BA - UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB - -############################################################################### - -# Extension #276 -S3_s3tc enum: - RGB_S3TC = 0x83A0 - RGB4_S3TC = 0x83A1 - RGBA_S3TC = 0x83A2 - RGBA4_S3TC = 0x83A3 - -############################################################################### - -# Extension #277 -ATI_draw_buffers enum: - MAX_DRAW_BUFFERS_ATI = 0x8824 - DRAW_BUFFER0_ATI = 0x8825 - DRAW_BUFFER1_ATI = 0x8826 - DRAW_BUFFER2_ATI = 0x8827 - DRAW_BUFFER3_ATI = 0x8828 - DRAW_BUFFER4_ATI = 0x8829 - DRAW_BUFFER5_ATI = 0x882A - DRAW_BUFFER6_ATI = 0x882B - DRAW_BUFFER7_ATI = 0x882C - DRAW_BUFFER8_ATI = 0x882D - DRAW_BUFFER9_ATI = 0x882E - DRAW_BUFFER10_ATI = 0x882F - DRAW_BUFFER11_ATI = 0x8830 - DRAW_BUFFER12_ATI = 0x8831 - DRAW_BUFFER13_ATI = 0x8832 - DRAW_BUFFER14_ATI = 0x8833 - DRAW_BUFFER15_ATI = 0x8834 - -############################################################################### - -# Extension #278 -# This is really a WGL extension, but if defined there are -# some associated GL enumerants. -ATI_pixel_format_float enum: - TYPE_RGBA_FLOAT_ATI = 0x8820 - COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 - -############################################################################### - -# Extension #279 -ATI_texture_env_combine3 enum: - MODULATE_ADD_ATI = 0x8744 - MODULATE_SIGNED_ADD_ATI = 0x8745 - MODULATE_SUBTRACT_ATI = 0x8746 - -############################################################################### - -# Extension #280 -ATI_texture_float enum: - RGBA_FLOAT32_ATI = 0x8814 - RGB_FLOAT32_ATI = 0x8815 - ALPHA_FLOAT32_ATI = 0x8816 - INTENSITY_FLOAT32_ATI = 0x8817 - LUMINANCE_FLOAT32_ATI = 0x8818 - LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 - RGBA_FLOAT16_ATI = 0x881A - RGB_FLOAT16_ATI = 0x881B - ALPHA_FLOAT16_ATI = 0x881C - INTENSITY_FLOAT16_ATI = 0x881D - LUMINANCE_FLOAT16_ATI = 0x881E - LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F - -############################################################################### - -# Extension #281 (also WGL_NV_float_buffer) -NV_float_buffer enum: - FLOAT_R_NV = 0x8880 - FLOAT_RG_NV = 0x8881 - FLOAT_RGB_NV = 0x8882 - FLOAT_RGBA_NV = 0x8883 - FLOAT_R16_NV = 0x8884 - FLOAT_R32_NV = 0x8885 - FLOAT_RG16_NV = 0x8886 - FLOAT_RG32_NV = 0x8887 - FLOAT_RGB16_NV = 0x8888 - FLOAT_RGB32_NV = 0x8889 - FLOAT_RGBA16_NV = 0x888A - FLOAT_RGBA32_NV = 0x888B - TEXTURE_FLOAT_COMPONENTS_NV = 0x888C - FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D - FLOAT_RGBA_MODE_NV = 0x888E - -############################################################################### - -# Extension #282 -NV_fragment_program enum: - MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 - FRAGMENT_PROGRAM_NV = 0x8870 - MAX_TEXTURE_COORDS_NV = 0x8871 - MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 - FRAGMENT_PROGRAM_BINDING_NV = 0x8873 - PROGRAM_ERROR_STRING_NV = 0x8874 - -############################################################################### - -# Extension #283 -NV_half_float enum: - HALF_FLOAT_NV = 0x140B - -############################################################################### - -# Extension #284 -NV_pixel_data_range enum: - WRITE_PIXEL_DATA_RANGE_NV = 0x8878 - READ_PIXEL_DATA_RANGE_NV = 0x8879 - WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A - READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B - WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C - READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D - -############################################################################### - -# Extension #285 -NV_primitive_restart enum: - PRIMITIVE_RESTART_NV = 0x8558 - PRIMITIVE_RESTART_INDEX_NV = 0x8559 - -############################################################################### - -# Extension #286 -NV_texture_expand_normal enum: - TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F - -############################################################################### - -# No new tokens -# Extension #287 -NV_vertex_program2 enum: - -############################################################################### - -# No new tokens -# Extension #288 -ATI_map_object_buffer enum: - -############################################################################### - -# Extension #289 -ATI_separate_stencil enum: - STENCIL_BACK_FUNC_ATI = 0x8800 - STENCIL_BACK_FAIL_ATI = 0x8801 - STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 - STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 - -############################################################################### - -# No new tokens -# Extension #290 -ATI_vertex_attrib_array_object enum: - -############################################################################### - -# No new tokens -# Extension #291 - OpenGL ES only, not in glext.h -# OES_byte_coordinates enum: - -############################################################################### - -# Extension #292 - OpenGL ES only, not in glext.h -# OES_fixed_point enum: -# FIXED_OES = 0x140C - -############################################################################### - -# No new tokens -# Extension #293 - OpenGL ES only, not in glext.h -# OES_single_precision enum: - -############################################################################### - -# Extension #294 - OpenGL ES only, not in glext.h -# OES_compressed_paletted_texture enum: -# PALETTE4_RGB8_OES = 0x8B90 -# PALETTE4_RGBA8_OES = 0x8B91 -# PALETTE4_R5_G6_B5_OES = 0x8B92 -# PALETTE4_RGBA4_OES = 0x8B93 -# PALETTE4_RGB5_A1_OES = 0x8B94 -# PALETTE8_RGB8_OES = 0x8B95 -# PALETTE8_RGBA8_OES = 0x8B96 -# PALETTE8_R5_G6_B5_OES = 0x8B97 -# PALETTE8_RGBA4_OES = 0x8B98 -# PALETTE8_RGB5_A1_OES = 0x8B99 - -############################################################################### - -# Extension #295 - This is an OpenGL ES extension, but also implemented in Mesa -OES_read_format enum: - IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A - IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B - -############################################################################### - -# No new tokens -# Extension #296 - OpenGL ES only, not in glext.h -# OES_query_matrix enum: - -############################################################################### - -# Extension #297 -EXT_depth_bounds_test enum: - DEPTH_BOUNDS_TEST_EXT = 0x8890 - DEPTH_BOUNDS_EXT = 0x8891 - -############################################################################### - -# Extension #298 -EXT_texture_mirror_clamp enum: - MIRROR_CLAMP_EXT = 0x8742 - MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 - MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 - -############################################################################### - -# Extension #299 -EXT_blend_equation_separate enum: - BLEND_EQUATION_RGB_EXT = 0x8009 # alias GL_BLEND_EQUATION_EXT - BLEND_EQUATION_ALPHA_EXT = 0x883D - -############################################################################### - -# Extension #300 -MESA_pack_invert enum: - PACK_INVERT_MESA = 0x8758 - -############################################################################### - -# Extension #301 -MESA_ycbcr_texture enum: - UNSIGNED_SHORT_8_8_MESA = 0x85BA - UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB - YCBCR_MESA = 0x8757 - -############################################################################### - -# Extension #302 -EXT_pixel_buffer_object enum: - PIXEL_PACK_BUFFER_EXT = 0x88EB - PIXEL_UNPACK_BUFFER_EXT = 0x88EC - PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED - PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF - -############################################################################### - -# No new tokens -# Extension #303 -NV_fragment_program_option enum: - -############################################################################### - -# Extension #304 -NV_fragment_program2 enum: - MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 - MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 - MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 - MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 - MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 - -############################################################################### - -# Extension #305 -NV_vertex_program2_option enum: - use NV_fragment_program2 MAX_PROGRAM_EXEC_INSTRUCTIONS_NV - use NV_fragment_program2 MAX_PROGRAM_CALL_DEPTH_NV - -############################################################################### - -# Extension #306 -NV_vertex_program3 enum: - use ARB_vertex_shader MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB - -############################################################################### - -# Extension #307 - GLX_SGIX_hyperpipe -# Extension #308 - GLX_MESA_agp_offset -# Extension #309 - GL_EXT_texture_compression_dxt1 (OpenGL ES only, subset of _s3tc version) - -############################################################################### - -# Extension #310 -EXT_framebuffer_object enum: - INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 - MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 - FRAMEBUFFER_BINDING_EXT = 0x8CA6 - RENDERBUFFER_BINDING_EXT = 0x8CA7 - FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 - FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 - FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 - FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 - FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 - FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 -## Removed 2005/09/26 in revision #117 of the extension: -## FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = 0x8CD8 - FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 - FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB - FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC - FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD -## Removed 2005/05/31 in revision #113 of the extension: -## FRAMEBUFFER_STATUS_ERROR_EXT = 0x8CDE - MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF - COLOR_ATTACHMENT0_EXT = 0x8CE0 - COLOR_ATTACHMENT1_EXT = 0x8CE1 - COLOR_ATTACHMENT2_EXT = 0x8CE2 - COLOR_ATTACHMENT3_EXT = 0x8CE3 - COLOR_ATTACHMENT4_EXT = 0x8CE4 - COLOR_ATTACHMENT5_EXT = 0x8CE5 - COLOR_ATTACHMENT6_EXT = 0x8CE6 - COLOR_ATTACHMENT7_EXT = 0x8CE7 - COLOR_ATTACHMENT8_EXT = 0x8CE8 - COLOR_ATTACHMENT9_EXT = 0x8CE9 - COLOR_ATTACHMENT10_EXT = 0x8CEA - COLOR_ATTACHMENT11_EXT = 0x8CEB - COLOR_ATTACHMENT12_EXT = 0x8CEC - COLOR_ATTACHMENT13_EXT = 0x8CED - COLOR_ATTACHMENT14_EXT = 0x8CEE - COLOR_ATTACHMENT15_EXT = 0x8CEF - DEPTH_ATTACHMENT_EXT = 0x8D00 - STENCIL_ATTACHMENT_EXT = 0x8D20 - FRAMEBUFFER_EXT = 0x8D40 - RENDERBUFFER_EXT = 0x8D41 - RENDERBUFFER_WIDTH_EXT = 0x8D42 - RENDERBUFFER_HEIGHT_EXT = 0x8D43 - RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 -# removed STENCIL_INDEX_EXT = 0x8D45 in rev. #114 of the spec - STENCIL_INDEX1_EXT = 0x8D46 - STENCIL_INDEX4_EXT = 0x8D47 - STENCIL_INDEX8_EXT = 0x8D48 - STENCIL_INDEX16_EXT = 0x8D49 - RENDERBUFFER_RED_SIZE_EXT = 0x8D50 - RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 - RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 - RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 - RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 - RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 - -############################################################################### - -# No new tokens -# Extension #311 -GREMEDY_string_marker enum: - -############################################################################### - -# Extension #312 -EXT_packed_depth_stencil enum: - DEPTH_STENCIL_EXT = 0x84F9 - UNSIGNED_INT_24_8_EXT = 0x84FA - DEPTH24_STENCIL8_EXT = 0x88F0 - TEXTURE_STENCIL_SIZE_EXT = 0x88F1 - -############################################################################### - -# Extension #313 - WGL_3DL_stereo_control - -############################################################################### - -# Extension #314 -EXT_stencil_clear_tag enum: - STENCIL_TAG_BITS_EXT = 0x88F2 - STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 - -############################################################################### - -# Extension #315 -EXT_texture_sRGB enum: - SRGB_EXT = 0x8C40 - SRGB8_EXT = 0x8C41 - SRGB_ALPHA_EXT = 0x8C42 - SRGB8_ALPHA8_EXT = 0x8C43 - SLUMINANCE_ALPHA_EXT = 0x8C44 - SLUMINANCE8_ALPHA8_EXT = 0x8C45 - SLUMINANCE_EXT = 0x8C46 - SLUMINANCE8_EXT = 0x8C47 - COMPRESSED_SRGB_EXT = 0x8C48 - COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 - COMPRESSED_SLUMINANCE_EXT = 0x8C4A - COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B - COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C - COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D - COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E - COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F - -############################################################################### - -# Extension #316 -EXT_framebuffer_blit enum: - READ_FRAMEBUFFER_EXT = 0x8CA8 - DRAW_FRAMEBUFFER_EXT = 0x8CA9 - DRAW_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT - READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA - -############################################################################### - -# Extension #317 -EXT_framebuffer_multisample enum: - RENDERBUFFER_SAMPLES_EXT = 0x8CAB - FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56 - MAX_SAMPLES_EXT = 0x8D57 - -############################################################################### - -# Extension #318 -MESAX_texture_stack enum: - TEXTURE_1D_STACK_MESAX = 0x8759 - TEXTURE_2D_STACK_MESAX = 0x875A - PROXY_TEXTURE_1D_STACK_MESAX = 0x875B - PROXY_TEXTURE_2D_STACK_MESAX = 0x875C - TEXTURE_1D_STACK_BINDING_MESAX = 0x875D - TEXTURE_2D_STACK_BINDING_MESAX = 0x875E - -############################################################################### - -# Extension #319 -EXT_timer_query enum: - TIME_ELAPSED_EXT = 0x88BF - -############################################################################### - -# No new tokens -# Extension #320 -EXT_gpu_program_parameters enum: - -############################################################################### - -# Extension #321 -APPLE_flush_buffer_range enum: - BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 - BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 - -############################################################################### - -# Extension #322 -NV_gpu_program4 enum: - MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 - MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 - PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 - PROGRAM_RESULT_COMPONENTS_NV = 0x8907 - MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 - MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 - MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 - MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 - -############################################################################### - -# Extension #323 -NV_geometry_program4 enum: - LINES_ADJACENCY_EXT = 0x000A - LINE_STRIP_ADJACENCY_EXT = 0x000B - TRIANGLES_ADJACENCY_EXT = 0x000C - TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D - GEOMETRY_PROGRAM_NV = 0x8C26 - MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 - MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 - GEOMETRY_VERTICES_OUT_EXT = 0x8DDA - GEOMETRY_INPUT_TYPE_EXT = 0x8DDB - GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC - MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29 - FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7 - FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8 - FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9 - FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4 - PROGRAM_POINT_SIZE_EXT = 0x8642 - -############################################################################### - -# Extension #324 -EXT_geometry_shader4 enum: - GEOMETRY_SHADER_EXT = 0x8DD9 - use NV_geometry_program4 GEOMETRY_VERTICES_OUT_EXT - use NV_geometry_program4 GEOMETRY_INPUT_TYPE_EXT - use NV_geometry_program4 GEOMETRY_OUTPUT_TYPE_EXT - use NV_geometry_program4 MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT - MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD - MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE - MAX_VARYING_COMPONENTS_EXT = 0x8B4B - MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF - MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0 - MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1 - use NV_geometry_program4 LINES_ADJACENCY_EXT - use NV_geometry_program4 LINE_STRIP_ADJACENCY_EXT - use NV_geometry_program4 TRIANGLES_ADJACENCY_EXT - use NV_geometry_program4 TRIANGLE_STRIP_ADJACENCY_EXT - use NV_geometry_program4 FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT - use NV_geometry_program4 FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT - use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_LAYERED_EXT - use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT - use NV_geometry_program4 PROGRAM_POINT_SIZE_EXT - -############################################################################### - -# Extension #325 -NV_vertex_program4 enum: - VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD - -############################################################################### - -# Extension #326 -EXT_gpu_shader4 enum: - SAMPLER_1D_ARRAY_EXT = 0x8DC0 - SAMPLER_2D_ARRAY_EXT = 0x8DC1 - SAMPLER_BUFFER_EXT = 0x8DC2 - SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 - SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 - SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 - UNSIGNED_INT_VEC2_EXT = 0x8DC6 - UNSIGNED_INT_VEC3_EXT = 0x8DC7 - UNSIGNED_INT_VEC4_EXT = 0x8DC8 - INT_SAMPLER_1D_EXT = 0x8DC9 - INT_SAMPLER_2D_EXT = 0x8DCA - INT_SAMPLER_3D_EXT = 0x8DCB - INT_SAMPLER_CUBE_EXT = 0x8DCC - INT_SAMPLER_2D_RECT_EXT = 0x8DCD - INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE - INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF - INT_SAMPLER_BUFFER_EXT = 0x8DD0 - UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 - UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 - UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 - UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 - UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 - UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 - UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 - UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8 - -############################################################################### - -# No new tokens -# Extension #327 -EXT_draw_instanced enum: - -############################################################################### - -# Extension #328 -EXT_packed_float enum: - R11F_G11F_B10F_EXT = 0x8C3A - UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B - RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C - -############################################################################### - -# Extension #329 -EXT_texture_array enum: - TEXTURE_1D_ARRAY_EXT = 0x8C18 - PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 - TEXTURE_2D_ARRAY_EXT = 0x8C1A - PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B - TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C - TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D - MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF - COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E - use NV_geometry_program4 FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT - -############################################################################### - -# Extension #330 -EXT_texture_buffer_object enum: - TEXTURE_BUFFER_EXT = 0x8C2A - MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B - TEXTURE_BINDING_BUFFER_EXT = 0x8C2C - TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D - TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E - -############################################################################### - -# Extension #331 -EXT_texture_compression_latc enum: - COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 - COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 - COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 - COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 - -############################################################################### - -# Extension #332 -EXT_texture_compression_rgtc enum: - COMPRESSED_RED_RGTC1_EXT = 0x8DBB - COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC - COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD - COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE - -############################################################################### - -# Extension #333 -EXT_texture_shared_exponent enum: - RGB9_E5_EXT = 0x8C3D - UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E - TEXTURE_SHARED_SIZE_EXT = 0x8C3F - -############################################################################### - -# Extension #334 -NV_depth_buffer_float enum: - DEPTH_COMPONENT32F_NV = 0x8DAB - DEPTH32F_STENCIL8_NV = 0x8DAC - FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD - DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF - -############################################################################### - -# No new tokens -# Extension #335 -NV_fragment_program4 enum: - -############################################################################### - -# Extension #336 -NV_framebuffer_multisample_coverage enum: - RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB - RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 - MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 - MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 - -############################################################################### - -# Extension #337 -# ??? Also WGL/GLX extensions ??? -EXT_framebuffer_sRGB enum: - FRAMEBUFFER_SRGB_EXT = 0x8DB9 - FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA - -############################################################################### - -# No new tokens -# Extension #338 -NV_geometry_shader4 enum: - -############################################################################### - -# Extension #339 -NV_parameter_buffer_object enum: - MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 - MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 - VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 - GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 - FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 - -############################################################################### - -# No new tokens -# Extension #340 -EXT_draw_buffers2 enum: - -############################################################################### - -# Extension #341 -NV_transform_feedback enum: - BACK_PRIMARY_COLOR_NV = 0x8C77 - BACK_SECONDARY_COLOR_NV = 0x8C78 - TEXTURE_COORD_NV = 0x8C79 - CLIP_DISTANCE_NV = 0x8C7A - VERTEX_ID_NV = 0x8C7B - PRIMITIVE_ID_NV = 0x8C7C - GENERIC_ATTRIB_NV = 0x8C7D - TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E - TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 - ACTIVE_VARYINGS_NV = 0x8C81 - ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 - TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 - TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 - TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 - TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 - PRIMITIVES_GENERATED_NV = 0x8C87 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 - RASTERIZER_DISCARD_NV = 0x8C89 - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B - INTERLEAVED_ATTRIBS_NV = 0x8C8C - SEPARATE_ATTRIBS_NV = 0x8C8D - TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E - TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F - -############################################################################### - -# Extension #342 -EXT_bindable_uniform enum: - MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 - MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 - MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 - MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED - UNIFORM_BUFFER_EXT = 0x8DEE - UNIFORM_BUFFER_BINDING_EXT = 0x8DEF - -############################################################################### - -# Extension #343 -EXT_texture_integer enum: - RGBA32UI_EXT = 0x8D70 - RGB32UI_EXT = 0x8D71 - ALPHA32UI_EXT = 0x8D72 - INTENSITY32UI_EXT = 0x8D73 - LUMINANCE32UI_EXT = 0x8D74 - LUMINANCE_ALPHA32UI_EXT = 0x8D75 - RGBA16UI_EXT = 0x8D76 - RGB16UI_EXT = 0x8D77 - ALPHA16UI_EXT = 0x8D78 - INTENSITY16UI_EXT = 0x8D79 - LUMINANCE16UI_EXT = 0x8D7A - LUMINANCE_ALPHA16UI_EXT = 0x8D7B - RGBA8UI_EXT = 0x8D7C - RGB8UI_EXT = 0x8D7D - ALPHA8UI_EXT = 0x8D7E - INTENSITY8UI_EXT = 0x8D7F - LUMINANCE8UI_EXT = 0x8D80 - LUMINANCE_ALPHA8UI_EXT = 0x8D81 - RGBA32I_EXT = 0x8D82 - RGB32I_EXT = 0x8D83 - ALPHA32I_EXT = 0x8D84 - INTENSITY32I_EXT = 0x8D85 - LUMINANCE32I_EXT = 0x8D86 - LUMINANCE_ALPHA32I_EXT = 0x8D87 - RGBA16I_EXT = 0x8D88 - RGB16I_EXT = 0x8D89 - ALPHA16I_EXT = 0x8D8A - INTENSITY16I_EXT = 0x8D8B - LUMINANCE16I_EXT = 0x8D8C - LUMINANCE_ALPHA16I_EXT = 0x8D8D - RGBA8I_EXT = 0x8D8E - RGB8I_EXT = 0x8D8F - ALPHA8I_EXT = 0x8D90 - INTENSITY8I_EXT = 0x8D91 - LUMINANCE8I_EXT = 0x8D92 - LUMINANCE_ALPHA8I_EXT = 0x8D93 - RED_INTEGER_EXT = 0x8D94 - GREEN_INTEGER_EXT = 0x8D95 - BLUE_INTEGER_EXT = 0x8D96 - ALPHA_INTEGER_EXT = 0x8D97 - RGB_INTEGER_EXT = 0x8D98 - RGBA_INTEGER_EXT = 0x8D99 - BGR_INTEGER_EXT = 0x8D9A - BGRA_INTEGER_EXT = 0x8D9B - LUMINANCE_INTEGER_EXT = 0x8D9C - LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D - RGBA_INTEGER_MODE_EXT = 0x8D9E - -############################################################################### - -# Extension #344 - GLX_EXT_texture_from_pixmap - -############################################################################### - -# No new tokens -# Extension #345 -GREMEDY_frame_terminator enum: - -############################################################################### - -# Extension #346 -NV_conditional_render enum: - QUERY_WAIT_NV = 0x8E13 - QUERY_NO_WAIT_NV = 0x8E14 - QUERY_BY_REGION_WAIT_NV = 0x8E15 - QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 - -############################################################################### - -# Extension #347 -NV_present_video enum: - FRAME_NV = 0x8E26 - FIELDS_NV = 0x8E27 - CURRENT_TIME_NV = 0x8E28 - NUM_FILL_STREAMS_NV = 0x8E29 - PRESENT_TIME_NV = 0x8E2A - PRESENT_DURATION_NV = 0x8E2B - -############################################################################### - -# Extension #348 - GLX_NV_video_out -# Extension #349 - WGL_NV_video_out -# Extension #350 - GLX_NV_swap_group -# Extension #351 - WGL_NV_swap_group - -############################################################################### - -# Extension #352 -EXT_transform_feedback enum: - TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E - TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 - TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 - TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F - INTERLEAVED_ATTRIBS_EXT = 0x8C8C - SEPARATE_ATTRIBS_EXT = 0x8C8D - PRIMITIVES_GENERATED_EXT = 0x8C87 - TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 - RASTERIZER_DISCARD_EXT = 0x8C89 - MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A - MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B - MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 - TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 - TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F - TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 - -############################################################################### - -# Extension #353 -EXT_direct_state_access enum: - PROGRAM_MATRIX_EXT = 0x8E2D - TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E - PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F - -############################################################################### - -# Extension #354 -EXT_vertex_array_bgra enum: - use VERSION_1_2 BGRA - -############################################################################### - -# Extension #355 - WGL_NV_gpu_affinity - -############################################################################### - -# Extension #356 -EXT_texture_swizzle enum: - TEXTURE_SWIZZLE_R_EXT = 0x8E42 - TEXTURE_SWIZZLE_G_EXT = 0x8E43 - TEXTURE_SWIZZLE_B_EXT = 0x8E44 - TEXTURE_SWIZZLE_A_EXT = 0x8E45 - TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 - -############################################################################### - -# Extension #357 -NV_explicit_multisample enum: - SAMPLE_POSITION_NV = 0x8E50 - SAMPLE_MASK_NV = 0x8E51 - SAMPLE_MASK_VALUE_NV = 0x8E52 - TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 - TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 - TEXTURE_RENDERBUFFER_NV = 0x8E55 - SAMPLER_RENDERBUFFER_NV = 0x8E56 - INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 - UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 - MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 - -############################################################################### - -# Extension #358 -NV_transform_feedback2 enum: - TRANSFORM_FEEDBACK_NV = 0x8E22 - TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 - TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 - TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 - -############################################################################### - -# Extension #359 -ATI_meminfo enum: - VBO_FREE_MEMORY_ATI = 0x87FB - TEXTURE_FREE_MEMORY_ATI = 0x87FC - RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD - -############################################################################### - -# Extension #360 -AMD_performance_monitor enum: - COUNTER_TYPE_AMD = 0x8BC0 - COUNTER_RANGE_AMD = 0x8BC1 - UNSIGNED_INT64_AMD = 0x8BC2 - PERCENTAGE_AMD = 0x8BC3 - PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 - PERFMON_RESULT_SIZE_AMD = 0x8BC5 - PERFMON_RESULT_AMD = 0x8BC6 - -############################################################################### - -# Extension #361 - WGL_AMD_gpu_association - -############################################################################### - -# No new tokens -# Extension #362 -AMD_texture_texture4 enum: - -############################################################################### - -# Extension #363 -AMD_vertex_shader_tesselator enum: - SAMPLER_BUFFER_AMD = 0x9001 - INT_SAMPLER_BUFFER_AMD = 0x9002 - UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 - TESSELLATION_MODE_AMD = 0x9004 - TESSELLATION_FACTOR_AMD = 0x9005 - DISCRETE_AMD = 0x9006 - CONTINUOUS_AMD = 0x9007 - -############################################################################### - -# Extension #364 -EXT_provoking_vertex enum: - QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C - FIRST_VERTEX_CONVENTION_EXT = 0x8E4D - LAST_VERTEX_CONVENTION_EXT = 0x8E4E - PROVOKING_VERTEX_EXT = 0x8E4F - -############################################################################### - -# Extension #365 -EXT_texture_snorm enum: - ALPHA_SNORM = 0x9010 - LUMINANCE_SNORM = 0x9011 - LUMINANCE_ALPHA_SNORM = 0x9012 - INTENSITY_SNORM = 0x9013 - ALPHA8_SNORM = 0x9014 - LUMINANCE8_SNORM = 0x9015 - LUMINANCE8_ALPHA8_SNORM = 0x9016 - INTENSITY8_SNORM = 0x9017 - ALPHA16_SNORM = 0x9018 - LUMINANCE16_SNORM = 0x9019 - LUMINANCE16_ALPHA16_SNORM = 0x901A - INTENSITY16_SNORM = 0x901B - use VERSION_3_1 RED_SNORM - use VERSION_3_1 RG_SNORM - use VERSION_3_1 RGB_SNORM - use VERSION_3_1 RGBA_SNORM - use VERSION_3_1 R8_SNORM - use VERSION_3_1 RG8_SNORM - use VERSION_3_1 RGB8_SNORM - use VERSION_3_1 RGBA8_SNORM - use VERSION_3_1 R16_SNORM - use VERSION_3_1 RG16_SNORM - use VERSION_3_1 RGB16_SNORM - use VERSION_3_1 RGBA16_SNORM - use VERSION_3_1 SIGNED_NORMALIZED - -############################################################################### - -# No new tokens -# Extension #366 -AMD_draw_buffers_blend enum: - -############################################################################### - -# Extension #367 -APPLE_texture_range enum: - TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 - TEXTURE_RANGE_POINTER_APPLE = 0x85B8 - TEXTURE_STORAGE_HINT_APPLE = 0x85BC - STORAGE_PRIVATE_APPLE = 0x85BD - use APPLE_vertex_array_range STORAGE_CACHED_APPLE - use APPLE_vertex_array_range STORAGE_SHARED_APPLE - -############################################################################### - -# Extension #368 -APPLE_float_pixels enum: - HALF_APPLE = 0x140B - RGBA_FLOAT32_APPLE = 0x8814 - RGB_FLOAT32_APPLE = 0x8815 - ALPHA_FLOAT32_APPLE = 0x8816 - INTENSITY_FLOAT32_APPLE = 0x8817 - LUMINANCE_FLOAT32_APPLE = 0x8818 - LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 - RGBA_FLOAT16_APPLE = 0x881A - RGB_FLOAT16_APPLE = 0x881B - ALPHA_FLOAT16_APPLE = 0x881C - INTENSITY_FLOAT16_APPLE = 0x881D - LUMINANCE_FLOAT16_APPLE = 0x881E - LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F - COLOR_FLOAT_APPLE = 0x8A0F - -############################################################################### - -# Extension #369 -APPLE_vertex_program_evaluators enum: - VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 - VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 - VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 - VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 - VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 - VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 - VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 - VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 - VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 - VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 - -############################################################################### - -# Extension #370 -APPLE_aux_depth_stencil enum: - AUX_DEPTH_STENCIL_APPLE = 0x8A14 - -############################################################################### - -# Extension #371 -APPLE_object_purgeable enum: - BUFFER_OBJECT_APPLE = 0x85B3 - RELEASED_APPLE = 0x8A19 - VOLATILE_APPLE = 0x8A1A - RETAINED_APPLE = 0x8A1B - UNDEFINED_APPLE = 0x8A1C - PURGEABLE_APPLE = 0x8A1D - -############################################################################### - -# Extension #372 -APPLE_row_bytes enum: - PACK_ROW_BYTES_APPLE = 0x8A15 - UNPACK_ROW_BYTES_APPLE = 0x8A16 - -############################################################################### - -# Extension #373 -APPLE_rgb_422 enum: - RGB_422_APPLE = 0x8A1F - use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_APPLE - use APPLE_ycbcr_422 UNSIGNED_SHORT_8_8_REV_APPLE - -############################################################################### - -# Extension #374 - -NV_video_capture enum: - VIDEO_BUFFER_NV = 0x9020 - VIDEO_BUFFER_BINDING_NV = 0x9021 - FIELD_UPPER_NV = 0x9022 - FIELD_LOWER_NV = 0x9023 - NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 - NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 - VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 - LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 - VIDEO_BUFFER_PITCH_NV = 0x9028 - VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 - VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A - VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B - VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C - VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D - PARTIAL_SUCCESS_NV = 0x902E - SUCCESS_NV = 0x902F - FAILURE_NV = 0x9030 - YCBYCR8_422_NV = 0x9031 - YCBAYCR8A_4224_NV = 0x9032 - Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 - Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 - Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 - Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 - Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 - VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 - VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 - VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A - VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B - VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C - -############################################################################### - -# Extension #375 - GLX_EXT_swap_control - -############################################################################### - -# No new tokens -# Extension #376 - also GLX_NV_copy_image, WGL_NV_copy_image -NV_copy_image enum: - -############################################################################### - -# Extension #377 -EXT_separate_shader_objects enum: - ACTIVE_PROGRAM_EXT = 0x8B8D - -############################################################################### - -# No new tokens -# Extension #378 -NV_parameter_buffer_object2 enum: - -############################################################################### - -# Extension #379 -NV_shader_buffer_load enum: - BUFFER_GPU_ADDRESS_NV = 0x8F1D - GPU_ADDRESS_NV = 0x8F34 - MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 - -############################################################################### - -# Extension #380 -NV_vertex_buffer_unified_memory enum: - VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E - ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F - VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 - VERTEX_ARRAY_ADDRESS_NV = 0x8F21 - NORMAL_ARRAY_ADDRESS_NV = 0x8F22 - COLOR_ARRAY_ADDRESS_NV = 0x8F23 - INDEX_ARRAY_ADDRESS_NV = 0x8F24 - TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 - EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 - SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 - FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 - ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 - VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A - VERTEX_ARRAY_LENGTH_NV = 0x8F2B - NORMAL_ARRAY_LENGTH_NV = 0x8F2C - COLOR_ARRAY_LENGTH_NV = 0x8F2D - INDEX_ARRAY_LENGTH_NV = 0x8F2E - TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F - EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 - SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 - FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 - ELEMENT_ARRAY_LENGTH_NV = 0x8F33 - -############################################################################### - -# No new tokens -# Extension #381 -NV_texture_barrier enum: diff --git a/src/glx/apple/specs/gl.spec b/src/glx/apple/specs/gl.spec deleted file mode 100644 index 98f364d53e..0000000000 --- a/src/glx/apple/specs/gl.spec +++ /dev/null @@ -1,26844 +0,0 @@ -# gl.spec file -# DON'T REMOVE PREVIOUS LINE!!! libspec depends on it! -# -# Copyright (c) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. -# Copyright (c) 2006-2009 The Khronos Group Inc. -# -# This document is licensed under the SGI Free Software B License Version -# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - - -required-props: -# Description of a parameter -param: retval retained -# Display list flags -dlflags: notlistable handcode -# GLX implementation flags -glxflags: client-intercept client-handcode server-handcode EXT SGI ignore ARB -# Vector ('v') equivalent form of a command taking 1-4 explicit xyzw/rgba arguments -vectorequiv: * -# Category this function falls in. While there are many categories for -# early GL 1.0 functions, later functions just have a core version -# (e.g. VERSION_major_minor) or extension name for the category. -category: display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform VERSION_1_0 VERSION_1_0_DEPRECATED VERSION_1_1 VERSION_1_1_DEPRECATED VERSION_1_2 VERSION_1_2_DEPRECATED VERSION_1_3 VERSION_1_3_DEPRECATED VERSION_1_4 VERSION_1_4_DEPRECATED VERSION_1_5 VERSION_2_0 VERSION_2_1 VERSION_3_0 VERSION_3_0_DEPRECATED VERSION_3_1 VERSION_3_2 ATI_element_array ATI_envmap_bumpmap ATI_fragment_shader ATI_pn_triangles ATI_vertex_array_object ATI_vertex_streams EXT_blend_color EXT_blend_minmax EXT_convolution EXT_copy_texture EXT_histogram EXT_polygon_offset EXT_subtexture EXT_texture3D EXT_texture_object EXT_vertex_array EXT_vertex_shader SGIS_detail_texture SGIS_multisample SGIS_pixel_texture ARB_point_parameters EXT_point_parameters SGIS_point_parameters SGIS_sharpen_texture SGIS_texture4D SGIS_texture_filter4 SGIX_async SGIX_flush_raster SGIX_fragment_lighting SGIX_framezoom SGIX_igloo_interface SGIX_instruments SGIX_list_priority SGIX_pixel_texture SGIX_polynomial_ffd SGIX_reference_plane SGIX_sprite SGIX_tag_sample_buffer SGI_color_table ARB_multitexture ARB_multisample ARB_texture_compression ARB_transpose_matrix ARB_vertex_blend ARB_matrix_palette EXT_compiled_vertex_array EXT_cull_vertex EXT_index_func EXT_index_material EXT_draw_range_elements EXT_vertex_weighting INGR_blend_func_separate NV_evaluators NV_fence NV_occlusion_query NV_point_sprite NV_register_combiners NV_register_combiners2 NV_vertex_array_range NV_vertex_program NV_vertex_program1_1_dcc MESA_resize_buffers MESA_window_pos PGI_misc_hints EXT_fog_coord EXT_blend_func_separate EXT_color_subtable EXT_coordinate_frame EXT_light_texture EXT_multi_draw_arrays EXT_paletted_texture EXT_pixel_transform EXT_secondary_color EXT_texture_perturb_normal HP_image_transform IBM_multimode_draw_arrays IBM_vertex_array_lists INTEL_parallel_arrays SUNX_constant_data SUN_global_alpha SUN_mesh_array SUN_triangle_list SUN_vertex 3DFX_tbuffer EXT_multisample SGIS_fog_function SGIS_texture_color_mask ARB_window_pos EXT_stencil_two_side EXT_depth_bounds_test EXT_blend_equation_separate ARB_vertex_program ARB_fragment_program ARB_vertex_buffer_object ARB_occlusion_query ARB_shader_objects ARB_vertex_shader ARB_fragment_shader S3_s3tc ATI_draw_buffers ATI_texture_env_combine3 ATI_texture_float NV_float_buffer NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart NV_texture_expand_normal NV_texture_expand_normal NV_vertex_program2 APPLE_element_array APPLE_fence APPLE_vertex_array_object APPLE_vertex_array_range ATI_draw_buffers NV_fragment_program NV_half_float NV_pixel_data_range NV_primitive_restart ATI_map_object_buffer ATI_separate_stencil ATI_vertex_attrib_array_object ARB_draw_buffers ARB_texture_rectangle ARB_color_buffer_float EXT_framebuffer_object GREMEDY_string_marker EXT_stencil_clear_tag EXT_framebuffer_blit EXT_framebuffer_multisample MESAX_texture_stack EXT_timer_query EXT_gpu_program_parameters APPLE_flush_buffer_range NV_gpu_program4 NV_geometry_program4 EXT_geometry_shader4 NV_vertex_program4 EXT_gpu_shader4 EXT_draw_instanced EXT_texture_buffer_object NV_depth_buffer_float NV_framebuffer_multisample_coverage NV_parameter_buffer_object EXT_draw_buffers2 NV_transform_feedback EXT_bindable_uniform EXT_texture_integer GREMEDY_frame_terminator NV_conditional_render NV_present_video EXT_transform_feedback ARB_depth_buffer_float ARB_draw_instanced ARB_framebuffer_object ARB_framebuffer_sRGB ARB_geometry_shader4 ARB_half_float_vertex ARB_instanced_arrays ARB_map_buffer_range ARB_texture_buffer_object ARB_texture_compression_rgtc ARB_texture_rg ARB_vertex_array_object EXT_direct_state_access EXT_vertex_array_bgra EXT_texture_swizzle NV_explicit_multisample NV_transform_feedback2 ATI_meminfo AMD_performance_monitor AMD_vertex_shader_tesselator EXT_provoking_vertex ARB_uniform_buffer_object ARB_copy_buffer EXT_texture_snorm AMD_draw_buffers_blend APPLE_texture_range APPLE_float_pixels APPLE_vertex_program_evaluators APPLE_aux_depth_stencil APPLE_object_purgeable APPLE_row_bytes ARB_draw_elements_base_vertex ARB_provoking_vertex ARB_sync ARB_texture_multisample ARB_draw_buffers_blend ARB_sample_shading NV_video_capture NV_copy_image EXT_separate_shader_objects NV_parameter_buffer_object2 NV_shader_buffer_load NV_vertex_buffer_unified_memory NV_texture_barrier - -# Categories for extensions with no functions - need not be included now -# ARB_texture_env_add ARB_texture_cube_map ARB_texture_border_clamp -# ARB_shading_language_100 ARB_texture_non_power_of_two ARB_point_sprite -# ARB_half_float_pixel ARB_texture_float ARB_pixel_buffer_object EXT_abgr -# EXT_texture SGI_color_matrix SGI_texture_color_table EXT_cmyka -# EXT_packed_pixels SGIS_texture_lod EXT_rescale_normal EXT_misc_attribute -# SGIS_generate_mipmap SGIX_clipmap SGIX_shadow SGIS_texture_edge_clamp -# SGIS_texture_border_clamp EXT_blend_subtract EXT_blend_logic_op -# SGIX_async_histogram SGIX_async_pixel SGIX_interlace SGIX_pixel_tiles -# SGIX_texture_select SGIX_texture_multi_buffer SGIX_texture_scale_bias -# SGIX_depth_texture SGIX_fog_offset HP_convolution_border_modes -# SGIX_texture_add_env PGI_vertex_hints EXT_clip_volume_hint -# SGIX_ir_instrument1 SGIX_calligraphic_fragment SGIX_texture_lod_bias -# SGIX_shadow_ambient EXT_index_texture EXT_index_array_formats SGIX_ycrcb -# IBM_rasterpos_clip HP_texture_lighting WIN_phong_shading -# WIN_specular_fog SGIX_blend_alpha_minmax EXT_bgra HP_occlusion_test -# EXT_pixel_transform_color_table EXT_shared_texture_palette -# EXT_separate_specular_color EXT_texture_env REND_screen_coordinates -# EXT_texture_env_combine APPLE_specular_vector APPLE_transform_hint -# SGIX_fog_scale INGR_color_clamp INGR_interlace_read EXT_stencil_wrap -# EXT_422_pixels NV_texgen_reflection SUN_convolution_border_modes -# SUN_slice_accum EXT_texture_env_add EXT_texture_lod_bias -# EXT_texture_filter_anisotropic NV_light_max_exponent NV_fog_distance -# NV_texgen_emboss NV_blend_square NV_texture_env_combine4 -# NV_packed_depth_stencil NV_texture_compression_vtc NV_texture_rectangle -# NV_texture_shader NV_texture_shader2 NV_vertex_array_range2 -# IBM_cull_vertex SGIX_subsample SGIX_ycrcba SGIX_ycrcb_subsample -# SGIX_depth_pass_instrument 3DFX_texture_compression_FXT1 -# 3DFX_multisample SGIX_vertex_preclip SGIX_convolution_accuracy -# SGIX_resample SGIX_scalebias_hint SGIX_texture_coordinate_clamp -# EXT_shadow_funcs MESA_pack_invert MESA_ycbcr_texture EXT_packed_float -# EXT_texture_array EXT_texture_compression_latc -# EXT_texture_compression_rgtc EXT_texture_shared_exponent -# NV_fragment_program4 EXT_framebuffer_sRGB NV_geometry_shader4 -# EXT_vertex_array_bgra ARB_depth_clamp ARB_fragment_coord_conventions -# ARB_seamless_cube_map ARB_vertex_array_bgra ARB_texture_cube_map_array -# ARB_texture_gather ARB_texture_query_lod - -# Core version in which a function was introduced, or against -# which an extension can be implemented -version: 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.1 3.0 3.1 3.2 -# Core version in which a function was removed -deprecated: 3.1 -# GLX Single, Rendering, or Vendor Private opcode -glxsingle: * -glxropcode: * -glxvendorpriv: * -# WGL implementation flags (incomplete) -wglflags: client-handcode server-handcode small-data batchable -# Drivers in which this is implemented (very incomplete) -extension: future not_implemented soft WINSOFT NV10 NV20 NV50 -# Function this aliases (indistinguishable to the GL) -alias: * -# Mesa dispatch table offset (incomplete) -offset: * -# These properties are picked up from NVIDIA .spec files, we don't use them -glfflags: * -beginend: * -glxvectorequiv: * -subcategory: * -glextmask: * - -############################################################################### -# -# glxsingle, glxropcode, and other GLX allocations to vendors -# are used here, but the master registry for GLX is in -# /ogl/trunk/doc/registry/extensions.reserved -# -# XFree86 dispatch offsets: 0-645 -# 578-641 NV_vertex_program -# GLS opcodes: 0x0030-0x0269 -# -############################################################################### - -############################################################################### -# -# things to remember when adding an extension command -# -# - append new ARB and non-ARB extensions to the appropriate portion of -# the spec file, in extension number order. -# - use tabs, not spaces -# - set glxflags to "ignore" until GLX is updated to support the new command -# - add new data types to typemaps/spec2wire.map -# - add extension name in alphabetical order to category list -# - add commands within an extension in spec order -# - use existing command entries as a model (where possible) -# - when reserving new glxropcodes, update -# gfx/lib/opengl/doc/glspec/extensions.reserved to indicate this -# -############################################################################### - -# New type declarations - -passthru: #include - -passthru: #ifndef GL_VERSION_2_0 -passthru: /* GL type for program/shader text */ -passthru: typedef char GLchar; -passthru: #endif -passthru: -passthru: #ifndef GL_VERSION_1_5 -passthru: /* GL types for handling large vertex buffer objects */ -passthru: typedef ptrdiff_t GLintptr; -passthru: typedef ptrdiff_t GLsizeiptr; -passthru: #endif -passthru: -passthru: #ifndef GL_ARB_vertex_buffer_object -passthru: /* GL types for handling large vertex buffer objects */ -passthru: typedef ptrdiff_t GLintptrARB; -passthru: typedef ptrdiff_t GLsizeiptrARB; -passthru: #endif -passthru: -passthru: #ifndef GL_ARB_shader_objects -passthru: /* GL types for program/shader text and shader object handles */ -passthru: typedef char GLcharARB; -passthru: typedef unsigned int GLhandleARB; -passthru: #endif -passthru: -passthru: /* GL type for "half" precision (s10e5) float data in host memory */ -passthru: #ifndef GL_ARB_half_float_pixel -passthru: typedef unsigned short GLhalfARB; -passthru: #endif -passthru: -passthru: #ifndef GL_NV_half_float -passthru: typedef unsigned short GLhalfNV; -passthru: #endif -passthru: -passthru: #ifndef GLEXT_64_TYPES_DEFINED -passthru: /* This code block is duplicated in glxext.h, so must be protected */ -passthru: #define GLEXT_64_TYPES_DEFINED -passthru: /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -passthru: /* (as used in the GL_EXT_timer_query extension). */ -passthru: #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -passthru: #include -passthru: #elif defined(__sun__) || defined(__digital__) -passthru: #include -passthru: #if defined(__STDC__) -passthru: #if defined(__arch64__) || defined(_LP64) -passthru: typedef long int int64_t; -passthru: typedef unsigned long int uint64_t; -passthru: #else -passthru: typedef long long int int64_t; -passthru: typedef unsigned long long int uint64_t; -passthru: #endif /* __arch64__ */ -passthru: #endif /* __STDC__ */ -passthru: #elif defined( __VMS ) || defined(__sgi) -passthru: #include -passthru: #elif defined(__SCO__) || defined(__USLC__) -passthru: #include -passthru: #elif defined(__UNIXOS2__) || defined(__SOL64__) -passthru: typedef long int int32_t; -passthru: typedef long long int int64_t; -passthru: typedef unsigned long long int uint64_t; -passthru: #elif defined(_WIN32) && defined(__GNUC__) -passthru: #include -passthru: #elif defined(_WIN32) -passthru: typedef __int32 int32_t; -passthru: typedef __int64 int64_t; -passthru: typedef unsigned __int64 uint64_t; -passthru: #else -passthru: /* Fallback if nothing above works */ -passthru: #include -passthru: #endif -passthru: #endif -passthru: -passthru: #ifndef GL_EXT_timer_query -passthru: typedef int64_t GLint64EXT; -passthru: typedef uint64_t GLuint64EXT; -passthru: #endif -passthru: -passthru: #ifndef ARB_sync -passthru: typedef int64_t GLint64; -passthru: typedef uint64_t GLuint64; -passthru: typedef struct __GLsync *GLsync; -passthru: #endif -passthru: - -############################################################################### -############################################################################### -# -# OpenGL 1.0 commands -# -############################################################################### -############################################################################### - -############################################################################### -# -# drawing-control commands -# -############################################################################### - -CullFace(mode) - return void - param mode CullFaceMode in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 79 - offset 152 - -FrontFace(mode) - return void - param mode FrontFaceDirection in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 84 - offset 157 - -Hint(target, mode) - return void - param target HintTarget in value - param mode HintMode in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 85 - offset 158 - -LineWidth(width) - return void - param width CheckedFloat32 in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 95 - offset 168 - -PointSize(size) - return void - param size CheckedFloat32 in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 100 - offset 173 - -PolygonMode(face, mode) - return void - param face MaterialFace in value - param mode PolygonMode in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 101 - offset 174 - -Scissor(x, y, width, height) - return void - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 103 - offset 176 - -TexParameterf(target, pname, param) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedFloat32 in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 105 - wglflags small-data - offset 178 - -TexParameterfv(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 106 - wglflags small-data - offset 179 - -TexParameteri(target, pname, param) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedInt32 in value - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 107 - wglflags small-data - offset 180 - -TexParameteriv(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0 # old: drawing-control - version 1.0 - glxropcode 108 - wglflags small-data - offset 181 - -TexImage1D(target, level, internalformat, width, border, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureComponentCount in value - param width SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category VERSION_1_0 # old: drawing-control - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - glxropcode 109 - wglflags client-handcode server-handcode - offset 182 - -TexImage2D(target, level, internalformat, width, height, border, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureComponentCount in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category VERSION_1_0 # old: drawing-control - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - glxropcode 110 - wglflags client-handcode server-handcode - offset 183 - -############################################################################### -# -# framebuf commands -# -############################################################################### - -DrawBuffer(mode) - return void - param mode DrawBufferMode in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 126 - offset 202 - -Clear(mask) - return void - param mask ClearBufferMask in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 127 - offset 203 - -ClearColor(red, green, blue, alpha) - return void - param red ClampedColorF in value - param green ClampedColorF in value - param blue ClampedColorF in value - param alpha ClampedColorF in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 130 - offset 206 - -ClearStencil(s) - return void - param s StencilValue in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 131 - offset 207 - -ClearDepth(depth) - return void - param depth ClampedFloat64 in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 132 - offset 208 - -StencilMask(mask) - return void - param mask MaskedStencilValue in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 133 - offset 209 - -ColorMask(red, green, blue, alpha) - return void - param red Boolean in value - param green Boolean in value - param blue Boolean in value - param alpha Boolean in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 134 - offset 210 - -DepthMask(flag) - return void - param flag Boolean in value - category VERSION_1_0 # old: framebuf - version 1.0 - glxropcode 135 - offset 211 - -############################################################################### -# -# misc commands -# -############################################################################### - -Disable(cap) - return void - param cap EnableCap in value - category VERSION_1_0 # old: misc - version 1.0 - dlflags handcode - glxflags client-handcode client-intercept - glxropcode 138 - offset 214 - -Enable(cap) - return void - param cap EnableCap in value - category VERSION_1_0 # old: misc - version 1.0 - dlflags handcode - glxflags client-handcode client-intercept - glxropcode 139 - offset 215 - -Finish() - return void - dlflags notlistable - glxflags client-handcode server-handcode - category VERSION_1_0 # old: misc - version 1.0 - glxsingle 108 - offset 216 - -Flush() - return void - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - category VERSION_1_0 # old: misc - version 1.0 - glxsingle 142 - offset 217 - -############################################################################### -# -# pixel-op commands -# -############################################################################### - -BlendFunc(sfactor, dfactor) - return void - param sfactor BlendingFactorSrc in value - param dfactor BlendingFactorDest in value - category VERSION_1_0 # old: pixel-op - version 1.0 - glxropcode 160 - offset 241 - -LogicOp(opcode) - return void - param opcode LogicOp in value - category VERSION_1_0 # old: pixel-op - version 1.0 - glxropcode 161 - offset 242 - -StencilFunc(func, ref, mask) - return void - param func StencilFunction in value - param ref ClampedStencilValue in value - param mask MaskedStencilValue in value - category VERSION_1_0 # old: pixel-op - version 1.0 - glxropcode 162 - offset 243 - -StencilOp(fail, zfail, zpass) - return void - param fail StencilOp in value - param zfail StencilOp in value - param zpass StencilOp in value - category VERSION_1_0 # old: pixel-op - version 1.0 - glxropcode 163 - offset 244 - -DepthFunc(func) - return void - param func DepthFunction in value - category VERSION_1_0 # old: pixel-op - version 1.0 - glxropcode 164 - offset 245 - -############################################################################### -# -# pixel-rw commands -# -############################################################################### - -PixelStoref(pname, param) - return void - param pname PixelStoreParameter in value - param param CheckedFloat32 in value - dlflags notlistable - glxflags client-handcode - category VERSION_1_0 # old: pixel-rw - version 1.0 - glxsingle 109 - wglflags batchable - offset 249 - -PixelStorei(pname, param) - return void - param pname PixelStoreParameter in value - param param CheckedInt32 in value - dlflags notlistable - glxflags client-handcode - category VERSION_1_0 # old: pixel-rw - version 1.0 - glxsingle 110 - wglflags batchable - offset 250 - -ReadBuffer(mode) - return void - param mode ReadBufferMode in value - category VERSION_1_0 # old: pixel-rw - version 1.0 - glxropcode 171 - offset 254 - -ReadPixels(x, y, width, height, format, type, pixels) - return void - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void out array [COMPSIZE(format/type/width/height)] - category VERSION_1_0 # old: pixel-rw - dlflags notlistable - glxflags client-handcode server-handcode - version 1.0 - glxsingle 111 - wglflags client-handcode server-handcode - offset 256 - -############################################################################### -# -# state-req commands -# -############################################################################### - -GetBooleanv(pname, params) - return void - param pname GetPName in value - param params Boolean out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode - version 1.0 - glxsingle 112 - wglflags small-data - offset 258 - -GetDoublev(pname, params) - return void - param pname GetPName in value - param params Float64 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode - version 1.0 - glxsingle 114 - wglflags small-data - offset 260 - -GetError() - return ErrorCode - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode - version 1.0 - glxsingle 115 - offset 261 - -GetFloatv(pname, params) - return void - param pname GetPName in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode - version 1.0 - glxsingle 116 - wglflags small-data - offset 262 - -GetIntegerv(pname, params) - return void - param pname GetPName in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode - version 1.0 - glxsingle 117 - wglflags small-data - offset 263 - -GetString(name) - return String - param name StringName in value - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode server-handcode - version 1.0 - glxsingle 129 - wglflags client-handcode server-handcode - offset 275 - -GetTexImage(target, level, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void out array [COMPSIZE(target/level/format/type)] - category VERSION_1_0 # old: state-req - dlflags notlistable - glxflags client-handcode server-handcode - version 1.0 - glxsingle 135 - wglflags client-handcode server-handcode - offset 281 - -GetTexParameterfv(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - version 1.0 - glxsingle 136 - wglflags small-data - offset 282 - -GetTexParameteriv(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - version 1.0 - glxsingle 137 - wglflags small-data - offset 283 - -GetTexLevelParameterfv(target, level, pname, params) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - version 1.0 - glxsingle 138 - wglflags small-data - offset 284 - -GetTexLevelParameteriv(target, level, pname, params) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0 # old: state-req - dlflags notlistable - version 1.0 - glxsingle 139 - wglflags small-data - offset 285 - -IsEnabled(cap) - return Boolean - param cap EnableCap in value - category VERSION_1_0 # old: state-req - dlflags notlistable - version 1.0 - glxflags client-handcode client-intercept - glxsingle 140 - offset 286 - -############################################################################### -# -# xform commands -# -############################################################################### - -DepthRange(near, far) - return void - param near ClampedFloat64 in value - param far ClampedFloat64 in value - category VERSION_1_0 # old: xform - version 1.0 - glxropcode 174 - offset 288 - -Viewport(x, y, width, height) - return void - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category VERSION_1_0 # old: xform - version 1.0 - glxropcode 191 - offset 305 - -############################################################################### -############################################################################### -# -# OpenGL 1.0 deprecated commands -# -############################################################################### -############################################################################### - -# display-list commands - -NewList(list, mode) - return void - param list List in value - param mode ListMode in value - dlflags notlistable - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxsingle 101 - wglflags batchable - offset 0 - -EndList() - return void - dlflags notlistable - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxsingle 102 - wglflags batchable - offset 1 - -CallList(list) - return void - param list List in value - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxropcode 1 - offset 2 - -CallLists(n, type, lists) - return void - param n SizeI in value - param type ListNameType in value - param lists Void in array [COMPSIZE(n/type)] - category VERSION_1_0_DEPRECATED # old: display-list - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 2 - offset 3 - -DeleteLists(list, range) - return void - param list List in value - param range SizeI in value - dlflags notlistable - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxsingle 103 - wglflags batchable - offset 4 - -GenLists(range) - return List - param range SizeI in value - dlflags notlistable - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxsingle 104 - offset 5 - -ListBase(base) - return void - param base List in value - category VERSION_1_0_DEPRECATED # old: display-list - version 1.0 - deprecated 3.1 - glxropcode 3 - offset 6 - -# drawing commands - -Begin(mode) - return void - param mode BeginMode in value - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 4 - offset 7 - -Bitmap(width, height, xorig, yorig, xmove, ymove, bitmap) - return void - param width SizeI in value - param height SizeI in value - param xorig CoordF in value - param yorig CoordF in value - param xmove CoordF in value - param ymove CoordF in value - param bitmap UInt8 in array [COMPSIZE(width/height)] - category VERSION_1_0_DEPRECATED # old: drawing - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 5 - wglflags client-handcode server-handcode - offset 8 - -Color3b(red, green, blue) - return void - param red ColorB in value - param green ColorB in value - param blue ColorB in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3bv - version 1.0 - deprecated 3.1 - offset 9 - -Color3bv(v) - return void - param v ColorB in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 6 - offset 10 - -Color3d(red, green, blue) - return void - param red ColorD in value - param green ColorD in value - param blue ColorD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3dv - version 1.0 - deprecated 3.1 - offset 11 - -Color3dv(v) - return void - param v ColorD in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 7 - offset 12 - -Color3f(red, green, blue) - return void - param red ColorF in value - param green ColorF in value - param blue ColorF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3fv - version 1.0 - deprecated 3.1 - offset 13 - -Color3fv(v) - return void - param v ColorF in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 8 - offset 14 - -Color3i(red, green, blue) - return void - param red ColorI in value - param green ColorI in value - param blue ColorI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3iv - version 1.0 - deprecated 3.1 - offset 15 - -Color3iv(v) - return void - param v ColorI in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 9 - offset 16 - -Color3s(red, green, blue) - return void - param red ColorS in value - param green ColorS in value - param blue ColorS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3sv - version 1.0 - deprecated 3.1 - offset 17 - -Color3sv(v) - return void - param v ColorS in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 10 - offset 18 - -Color3ub(red, green, blue) - return void - param red ColorUB in value - param green ColorUB in value - param blue ColorUB in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3ubv - version 1.0 - deprecated 3.1 - offset 19 - -Color3ubv(v) - return void - param v ColorUB in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 11 - offset 20 - -Color3ui(red, green, blue) - return void - param red ColorUI in value - param green ColorUI in value - param blue ColorUI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3uiv - version 1.0 - deprecated 3.1 - offset 21 - -Color3uiv(v) - return void - param v ColorUI in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 12 - offset 22 - -Color3us(red, green, blue) - return void - param red ColorUS in value - param green ColorUS in value - param blue ColorUS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color3usv - version 1.0 - deprecated 3.1 - offset 23 - -Color3usv(v) - return void - param v ColorUS in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 13 - offset 24 - -Color4b(red, green, blue, alpha) - return void - param red ColorB in value - param green ColorB in value - param blue ColorB in value - param alpha ColorB in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4bv - version 1.0 - deprecated 3.1 - offset 25 - -Color4bv(v) - return void - param v ColorB in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 14 - offset 26 - -Color4d(red, green, blue, alpha) - return void - param red ColorD in value - param green ColorD in value - param blue ColorD in value - param alpha ColorD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4dv - version 1.0 - deprecated 3.1 - offset 27 - -Color4dv(v) - return void - param v ColorD in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 15 - offset 28 - -Color4f(red, green, blue, alpha) - return void - param red ColorF in value - param green ColorF in value - param blue ColorF in value - param alpha ColorF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4fv - version 1.0 - deprecated 3.1 - offset 29 - -Color4fv(v) - return void - param v ColorF in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 16 - offset 30 - -Color4i(red, green, blue, alpha) - return void - param red ColorI in value - param green ColorI in value - param blue ColorI in value - param alpha ColorI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4iv - version 1.0 - deprecated 3.1 - offset 31 - -Color4iv(v) - return void - param v ColorI in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 17 - offset 32 - -Color4s(red, green, blue, alpha) - return void - param red ColorS in value - param green ColorS in value - param blue ColorS in value - param alpha ColorS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4sv - version 1.0 - deprecated 3.1 - offset 33 - -Color4sv(v) - return void - param v ColorS in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 18 - offset 34 - -Color4ub(red, green, blue, alpha) - return void - param red ColorUB in value - param green ColorUB in value - param blue ColorUB in value - param alpha ColorUB in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4ubv - version 1.0 - deprecated 3.1 - offset 35 - -Color4ubv(v) - return void - param v ColorUB in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 19 - offset 36 - -Color4ui(red, green, blue, alpha) - return void - param red ColorUI in value - param green ColorUI in value - param blue ColorUI in value - param alpha ColorUI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4uiv - version 1.0 - deprecated 3.1 - offset 37 - -Color4uiv(v) - return void - param v ColorUI in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 20 - offset 38 - -Color4us(red, green, blue, alpha) - return void - param red ColorUS in value - param green ColorUS in value - param blue ColorUS in value - param alpha ColorUS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Color4usv - version 1.0 - deprecated 3.1 - offset 39 - -Color4usv(v) - return void - param v ColorUS in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 21 - offset 40 - -EdgeFlag(flag) - return void - param flag Boolean in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv EdgeFlagv - version 1.0 - deprecated 3.1 - offset 41 - -EdgeFlagv(flag) - return void - param flag Boolean in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 22 - offset 42 - -End() - return void - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 23 - offset 43 - -Indexd(c) - return void - param c ColorIndexValueD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Indexdv - version 1.0 - deprecated 3.1 - offset 44 - -Indexdv(c) - return void - param c ColorIndexValueD in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 24 - offset 45 - -Indexf(c) - return void - param c ColorIndexValueF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Indexfv - version 1.0 - deprecated 3.1 - offset 46 - -Indexfv(c) - return void - param c ColorIndexValueF in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 25 - offset 47 - -Indexi(c) - return void - param c ColorIndexValueI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Indexiv - version 1.0 - deprecated 3.1 - offset 48 - -Indexiv(c) - return void - param c ColorIndexValueI in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 26 - offset 49 - -Indexs(c) - return void - param c ColorIndexValueS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Indexsv - version 1.0 - deprecated 3.1 - offset 50 - -Indexsv(c) - return void - param c ColorIndexValueS in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 27 - offset 51 - -Normal3b(nx, ny, nz) - return void - param nx Int8 in value - param ny Int8 in value - param nz Int8 in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Normal3bv - version 1.0 - deprecated 3.1 - offset 52 - -Normal3bv(v) - return void - param v Int8 in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 28 - offset 53 - -Normal3d(nx, ny, nz) - return void - param nx CoordD in value - param ny CoordD in value - param nz CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Normal3dv - version 1.0 - deprecated 3.1 - offset 54 - -Normal3dv(v) - return void - param v CoordD in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 29 - offset 55 - -Normal3f(nx, ny, nz) - return void - param nx CoordF in value - param ny CoordF in value - param nz CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Normal3fv - version 1.0 - deprecated 3.1 - offset 56 - -Normal3fv(v) - return void - param v CoordF in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 30 - offset 57 - -Normal3i(nx, ny, nz) - return void - param nx Int32 in value - param ny Int32 in value - param nz Int32 in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Normal3iv - version 1.0 - deprecated 3.1 - offset 58 - -Normal3iv(v) - return void - param v Int32 in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 31 - offset 59 - -Normal3s(nx, ny, nz) - return void - param nx Int16 in value - param ny Int16 in value - param nz Int16 in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Normal3sv - version 1.0 - deprecated 3.1 - offset 60 - -Normal3sv(v) - return void - param v Int16 in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 32 - offset 61 - -RasterPos2d(x, y) - return void - param x CoordD in value - param y CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos2dv - version 1.0 - deprecated 3.1 - offset 62 - -RasterPos2dv(v) - return void - param v CoordD in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 33 - offset 63 - -RasterPos2f(x, y) - return void - param x CoordF in value - param y CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos2fv - version 1.0 - deprecated 3.1 - offset 64 - -RasterPos2fv(v) - return void - param v CoordF in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 34 - offset 65 - -RasterPos2i(x, y) - return void - param x CoordI in value - param y CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos2iv - version 1.0 - deprecated 3.1 - offset 66 - -RasterPos2iv(v) - return void - param v CoordI in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 35 - offset 67 - -RasterPos2s(x, y) - return void - param x CoordS in value - param y CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos2sv - version 1.0 - deprecated 3.1 - offset 68 - -RasterPos2sv(v) - return void - param v CoordS in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 36 - offset 69 - -RasterPos3d(x, y, z) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - vectorequiv RasterPos3dv - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - offset 70 - -RasterPos3dv(v) - return void - param v CoordD in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 37 - offset 71 - -RasterPos3f(x, y, z) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos3fv - version 1.0 - deprecated 3.1 - offset 72 - -RasterPos3fv(v) - return void - param v CoordF in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 38 - offset 73 - -RasterPos3i(x, y, z) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos3iv - version 1.0 - deprecated 3.1 - offset 74 - -RasterPos3iv(v) - return void - param v CoordI in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 39 - offset 75 - -RasterPos3s(x, y, z) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos3sv - version 1.0 - deprecated 3.1 - offset 76 - -RasterPos3sv(v) - return void - param v CoordS in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 40 - offset 77 - -RasterPos4d(x, y, z, w) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - param w CoordD in value - vectorequiv RasterPos4dv - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - offset 78 - -RasterPos4dv(v) - return void - param v CoordD in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 41 - offset 79 - -RasterPos4f(x, y, z, w) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - param w CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos4fv - version 1.0 - deprecated 3.1 - offset 80 - -RasterPos4fv(v) - return void - param v CoordF in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 42 - offset 81 - -RasterPos4i(x, y, z, w) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - param w CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos4iv - version 1.0 - deprecated 3.1 - offset 82 - -RasterPos4iv(v) - return void - param v CoordI in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 43 - offset 83 - -RasterPos4s(x, y, z, w) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - param w CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv RasterPos4sv - version 1.0 - deprecated 3.1 - offset 84 - -RasterPos4sv(v) - return void - param v CoordS in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 44 - offset 85 - -Rectd(x1, y1, x2, y2) - return void - param x1 CoordD in value - param y1 CoordD in value - param x2 CoordD in value - param y2 CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Rectdv - version 1.0 - deprecated 3.1 - offset 86 - -Rectdv(v1, v2) - return void - param v1 CoordD in array [2] - param v2 CoordD in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 45 - offset 87 - -Rectf(x1, y1, x2, y2) - return void - param x1 CoordF in value - param y1 CoordF in value - param x2 CoordF in value - param y2 CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Rectfv - version 1.0 - deprecated 3.1 - offset 88 - -Rectfv(v1, v2) - return void - param v1 CoordF in array [2] - param v2 CoordF in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 46 - offset 89 - -Recti(x1, y1, x2, y2) - return void - param x1 CoordI in value - param y1 CoordI in value - param x2 CoordI in value - param y2 CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Rectiv - version 1.0 - deprecated 3.1 - offset 90 - -Rectiv(v1, v2) - return void - param v1 CoordI in array [2] - param v2 CoordI in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 47 - offset 91 - -Rects(x1, y1, x2, y2) - return void - param x1 CoordS in value - param y1 CoordS in value - param x2 CoordS in value - param y2 CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Rectsv - version 1.0 - deprecated 3.1 - offset 92 - -Rectsv(v1, v2) - return void - param v1 CoordS in array [2] - param v2 CoordS in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 48 - offset 93 - -TexCoord1d(s) - return void - param s CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord1dv - version 1.0 - deprecated 3.1 - offset 94 - -TexCoord1dv(v) - return void - param v CoordD in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 49 - offset 95 - -TexCoord1f(s) - return void - param s CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord1fv - version 1.0 - deprecated 3.1 - offset 96 - -TexCoord1fv(v) - return void - param v CoordF in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 50 - offset 97 - -TexCoord1i(s) - return void - param s CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord1iv - version 1.0 - deprecated 3.1 - offset 98 - -TexCoord1iv(v) - return void - param v CoordI in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 51 - offset 99 - -TexCoord1s(s) - return void - param s CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord1sv - version 1.0 - deprecated 3.1 - offset 100 - -TexCoord1sv(v) - return void - param v CoordS in array [1] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 52 - offset 101 - -TexCoord2d(s, t) - return void - param s CoordD in value - param t CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord2dv - version 1.0 - deprecated 3.1 - offset 102 - -TexCoord2dv(v) - return void - param v CoordD in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 53 - offset 103 - -TexCoord2f(s, t) - return void - param s CoordF in value - param t CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord2fv - version 1.0 - deprecated 3.1 - offset 104 - -TexCoord2fv(v) - return void - param v CoordF in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 54 - offset 105 - -TexCoord2i(s, t) - return void - param s CoordI in value - param t CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord2iv - version 1.0 - deprecated 3.1 - offset 106 - -TexCoord2iv(v) - return void - param v CoordI in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 55 - offset 107 - -TexCoord2s(s, t) - return void - param s CoordS in value - param t CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord2sv - version 1.0 - deprecated 3.1 - offset 108 - -TexCoord2sv(v) - return void - param v CoordS in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 56 - offset 109 - -TexCoord3d(s, t, r) - return void - param s CoordD in value - param t CoordD in value - param r CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord3dv - version 1.0 - deprecated 3.1 - offset 110 - -TexCoord3dv(v) - return void - param v CoordD in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 57 - offset 111 - -TexCoord3f(s, t, r) - return void - param s CoordF in value - param t CoordF in value - param r CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord3fv - version 1.0 - deprecated 3.1 - offset 112 - -TexCoord3fv(v) - return void - param v CoordF in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 58 - offset 113 - -TexCoord3i(s, t, r) - return void - param s CoordI in value - param t CoordI in value - param r CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord3iv - version 1.0 - deprecated 3.1 - offset 114 - -TexCoord3iv(v) - return void - param v CoordI in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 59 - offset 115 - -TexCoord3s(s, t, r) - return void - param s CoordS in value - param t CoordS in value - param r CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord3sv - version 1.0 - deprecated 3.1 - offset 116 - -TexCoord3sv(v) - return void - param v CoordS in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 60 - offset 117 - -TexCoord4d(s, t, r, q) - return void - param s CoordD in value - param t CoordD in value - param r CoordD in value - param q CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord4dv - version 1.0 - deprecated 3.1 - offset 118 - -TexCoord4dv(v) - return void - param v CoordD in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 61 - offset 119 - -TexCoord4f(s, t, r, q) - return void - param s CoordF in value - param t CoordF in value - param r CoordF in value - param q CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord4fv - version 1.0 - deprecated 3.1 - offset 120 - -TexCoord4fv(v) - return void - param v CoordF in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 62 - offset 121 - -TexCoord4i(s, t, r, q) - return void - param s CoordI in value - param t CoordI in value - param r CoordI in value - param q CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord4iv - version 1.0 - deprecated 3.1 - offset 122 - -TexCoord4iv(v) - return void - param v CoordI in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 63 - offset 123 - -TexCoord4s(s, t, r, q) - return void - param s CoordS in value - param t CoordS in value - param r CoordS in value - param q CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv TexCoord4sv - version 1.0 - deprecated 3.1 - offset 124 - -TexCoord4sv(v) - return void - param v CoordS in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 64 - offset 125 - -Vertex2d(x, y) - return void - param x CoordD in value - param y CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex2dv - version 1.0 - deprecated 3.1 - offset 126 - -Vertex2dv(v) - return void - param v CoordD in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 65 - offset 127 - -Vertex2f(x, y) - return void - param x CoordF in value - param y CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex2fv - version 1.0 - deprecated 3.1 - offset 128 - -Vertex2fv(v) - return void - param v CoordF in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 66 - offset 129 - -Vertex2i(x, y) - return void - param x CoordI in value - param y CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex2iv - version 1.0 - deprecated 3.1 - offset 130 - -Vertex2iv(v) - return void - param v CoordI in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 67 - offset 131 - -Vertex2s(x, y) - return void - param x CoordS in value - param y CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex2sv - version 1.0 - deprecated 3.1 - offset 132 - -Vertex2sv(v) - return void - param v CoordS in array [2] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 68 - offset 133 - -Vertex3d(x, y, z) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex3dv - version 1.0 - deprecated 3.1 - offset 134 - -Vertex3dv(v) - return void - param v CoordD in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 69 - offset 135 - -Vertex3f(x, y, z) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex3fv - version 1.0 - deprecated 3.1 - offset 136 - -Vertex3fv(v) - return void - param v CoordF in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 70 - offset 137 - -Vertex3i(x, y, z) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex3iv - version 1.0 - deprecated 3.1 - offset 138 - -Vertex3iv(v) - return void - param v CoordI in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 71 - offset 139 - -Vertex3s(x, y, z) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex3sv - version 1.0 - deprecated 3.1 - offset 140 - -Vertex3sv(v) - return void - param v CoordS in array [3] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 72 - offset 141 - -Vertex4d(x, y, z, w) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - param w CoordD in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex4dv - version 1.0 - deprecated 3.1 - offset 142 - -Vertex4dv(v) - return void - param v CoordD in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 73 - offset 143 - -Vertex4f(x, y, z, w) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - param w CoordF in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex4fv - version 1.0 - deprecated 3.1 - offset 144 - -Vertex4fv(v) - return void - param v CoordF in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 74 - offset 145 - -Vertex4i(x, y, z, w) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - param w CoordI in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex4iv - version 1.0 - deprecated 3.1 - offset 146 - -Vertex4iv(v) - return void - param v CoordI in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 75 - offset 147 - -Vertex4s(x, y, z, w) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - param w CoordS in value - category VERSION_1_0_DEPRECATED # old: drawing - vectorequiv Vertex4sv - version 1.0 - deprecated 3.1 - offset 148 - -Vertex4sv(v) - return void - param v CoordS in array [4] - category VERSION_1_0_DEPRECATED # old: drawing - version 1.0 - deprecated 3.1 - glxropcode 76 - offset 149 - -ClipPlane(plane, equation) - return void - param plane ClipPlaneName in value - param equation Float64 in array [4] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 77 - offset 150 - -ColorMaterial(face, mode) - return void - param face MaterialFace in value - param mode ColorMaterialParameter in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 78 - offset 151 - -Fogf(pname, param) - return void - param pname FogParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 80 - wglflags small-data - offset 153 - -Fogfv(pname, params) - return void - param pname FogParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 81 - wglflags small-data - offset 154 - -Fogi(pname, param) - return void - param pname FogParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 82 - wglflags small-data - offset 155 - -Fogiv(pname, params) - return void - param pname FogParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 83 - wglflags small-data - offset 156 - -Lightf(light, pname, param) - return void - param light LightName in value - param pname LightParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 86 - wglflags small-data - offset 159 - -Lightfv(light, pname, params) - return void - param light LightName in value - param pname LightParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 87 - wglflags small-data - offset 160 - -Lighti(light, pname, param) - return void - param light LightName in value - param pname LightParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 88 - wglflags small-data - offset 161 - -Lightiv(light, pname, params) - return void - param light LightName in value - param pname LightParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 89 - wglflags small-data - offset 162 - -LightModelf(pname, param) - return void - param pname LightModelParameter in value - param param Float32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 90 - wglflags small-data - offset 163 - -LightModelfv(pname, params) - return void - param pname LightModelParameter in value - param params Float32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 91 - wglflags small-data - offset 164 - -LightModeli(pname, param) - return void - param pname LightModelParameter in value - param param Int32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 92 - wglflags small-data - offset 165 - -LightModeliv(pname, params) - return void - param pname LightModelParameter in value - param params Int32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 93 - wglflags small-data - offset 166 - -LineStipple(factor, pattern) - return void - param factor CheckedInt32 in value - param pattern LineStipple in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 94 - offset 167 - -Materialf(face, pname, param) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 96 - wglflags small-data - offset 169 - -Materialfv(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 97 - wglflags small-data - offset 170 - -Materiali(face, pname, param) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 98 - wglflags small-data - offset 171 - -Materialiv(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 99 - wglflags small-data - offset 172 - -PolygonStipple(mask) - return void - param mask UInt8 in array [COMPSIZE()] - category VERSION_1_0_DEPRECATED # old: drawing-control - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 102 - wglflags client-handcode server-handcode - offset 175 - -ShadeModel(mode) - return void - param mode ShadingModel in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 104 - offset 177 - -TexEnvf(target, pname, param) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 111 - wglflags small-data - offset 184 - -TexEnvfv(target, pname, params) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 112 - wglflags small-data - offset 185 - -TexEnvi(target, pname, param) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 113 - wglflags small-data - offset 186 - -TexEnviv(target, pname, params) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 114 - wglflags small-data - offset 187 - -TexGend(coord, pname, param) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param Float64 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 115 - wglflags small-data - offset 188 - -TexGendv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float64 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 116 - wglflags small-data - offset 189 - -TexGenf(coord, pname, param) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 117 - wglflags small-data - offset 190 - -TexGenfv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 118 - wglflags small-data - offset 191 - -TexGeni(coord, pname, param) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 119 - wglflags small-data - offset 192 - -TexGeniv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: drawing-control - version 1.0 - deprecated 3.1 - glxropcode 120 - wglflags small-data - offset 193 - -# feedback commands - -FeedbackBuffer(size, type, buffer) - return void - param size SizeI in value - param type FeedbackType in value - param buffer FeedbackElement out array [size] retained - dlflags notlistable - glxflags client-handcode server-handcode - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxsingle 105 - wglflags client-handcode server-handcode batchable - offset 194 - -SelectBuffer(size, buffer) - return void - param size SizeI in value - param buffer SelectName out array [size] retained - dlflags notlistable - glxflags client-handcode server-handcode - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxsingle 106 - wglflags client-handcode server-handcode batchable - offset 195 - -RenderMode(mode) - return Int32 - param mode RenderingMode in value - category VERSION_1_0_DEPRECATED # old: feedback - dlflags notlistable - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxsingle 107 - wglflags client-handcode server-handcode - offset 196 - -InitNames() - return void - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxropcode 121 - offset 197 - -LoadName(name) - return void - param name SelectName in value - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxropcode 122 - offset 198 - -PassThrough(token) - return void - param token FeedbackElement in value - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxropcode 123 - offset 199 - -PopName() - return void - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxropcode 124 - offset 200 - -PushName(name) - return void - param name SelectName in value - category VERSION_1_0_DEPRECATED # old: feedback - version 1.0 - deprecated 3.1 - glxropcode 125 - offset 201 - -ClearAccum(red, green, blue, alpha) - return void - param red Float32 in value - param green Float32 in value - param blue Float32 in value - param alpha Float32 in value - category VERSION_1_0_DEPRECATED # old: framebuf - version 1.0 - deprecated 3.1 - glxropcode 128 - offset 204 - -ClearIndex(c) - return void - param c MaskedColorIndexValueF in value - category VERSION_1_0_DEPRECATED # old: framebuf - version 1.0 - deprecated 3.1 - glxropcode 129 - offset 205 - -IndexMask(mask) - return void - param mask MaskedColorIndexValueI in value - category VERSION_1_0_DEPRECATED # old: framebuf - version 1.0 - deprecated 3.1 - glxropcode 136 - offset 212 - -Accum(op, value) - return void - param op AccumOp in value - param value CoordF in value - category VERSION_1_0_DEPRECATED # old: misc - version 1.0 - deprecated 3.1 - glxropcode 137 - offset 213 - -PopAttrib() - return void - category VERSION_1_0_DEPRECATED # old: misc - version 1.0 - deprecated 3.1 - glxropcode 141 - offset 218 - -PushAttrib(mask) - return void - param mask AttribMask in value - category VERSION_1_0_DEPRECATED # old: misc - version 1.0 - deprecated 3.1 - glxropcode 142 - offset 219 - -# modeling commands - -Map1d(target, u1, u2, stride, order, points) - return void - param target MapTarget in value - param u1 CoordD in value - param u2 CoordD in value - param stride Int32 in value - param order CheckedInt32 in value - param points CoordD in array [COMPSIZE(target/stride/order)] - category VERSION_1_0_DEPRECATED # old: modeling - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 143 - wglflags client-handcode server-handcode - offset 220 - -Map1f(target, u1, u2, stride, order, points) - return void - param target MapTarget in value - param u1 CoordF in value - param u2 CoordF in value - param stride Int32 in value - param order CheckedInt32 in value - param points CoordF in array [COMPSIZE(target/stride/order)] - category VERSION_1_0_DEPRECATED # old: modeling - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 144 - wglflags client-handcode server-handcode - offset 221 - -Map2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) - return void - param target MapTarget in value - param u1 CoordD in value - param u2 CoordD in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordD in value - param v2 CoordD in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param points CoordD in array [COMPSIZE(target/ustride/uorder/vstride/vorder)] - category VERSION_1_0_DEPRECATED # old: modeling - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 145 - wglflags client-handcode server-handcode - offset 222 - -Map2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) - return void - param target MapTarget in value - param u1 CoordF in value - param u2 CoordF in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordF in value - param v2 CoordF in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param points CoordF in array [COMPSIZE(target/ustride/uorder/vstride/vorder)] - category VERSION_1_0_DEPRECATED # old: modeling - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 146 - wglflags client-handcode server-handcode - offset 223 - -MapGrid1d(un, u1, u2) - return void - param un Int32 in value - param u1 CoordD in value - param u2 CoordD in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 147 - offset 224 - -MapGrid1f(un, u1, u2) - return void - param un Int32 in value - param u1 CoordF in value - param u2 CoordF in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 148 - offset 225 - -MapGrid2d(un, u1, u2, vn, v1, v2) - return void - param un Int32 in value - param u1 CoordD in value - param u2 CoordD in value - param vn Int32 in value - param v1 CoordD in value - param v2 CoordD in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 149 - offset 226 - -MapGrid2f(un, u1, u2, vn, v1, v2) - return void - param un Int32 in value - param u1 CoordF in value - param u2 CoordF in value - param vn Int32 in value - param v1 CoordF in value - param v2 CoordF in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 150 - offset 227 - -EvalCoord1d(u) - return void - param u CoordD in value - category VERSION_1_0_DEPRECATED # old: modeling - vectorequiv EvalCoord1dv - version 1.0 - deprecated 3.1 - offset 228 - -EvalCoord1dv(u) - return void - param u CoordD in array [1] - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 151 - offset 229 - -EvalCoord1f(u) - return void - param u CoordF in value - category VERSION_1_0_DEPRECATED # old: modeling - vectorequiv EvalCoord1fv - version 1.0 - deprecated 3.1 - offset 230 - -EvalCoord1fv(u) - return void - param u CoordF in array [1] - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 152 - offset 231 - -EvalCoord2d(u, v) - return void - param u CoordD in value - param v CoordD in value - category VERSION_1_0_DEPRECATED # old: modeling - vectorequiv EvalCoord2dv - version 1.0 - deprecated 3.1 - offset 232 - -EvalCoord2dv(u) - return void - param u CoordD in array [2] - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 153 - offset 233 - -EvalCoord2f(u, v) - return void - param u CoordF in value - param v CoordF in value - category VERSION_1_0_DEPRECATED # old: modeling - vectorequiv EvalCoord2fv - version 1.0 - deprecated 3.1 - offset 234 - -EvalCoord2fv(u) - return void - param u CoordF in array [2] - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 154 - offset 235 - -EvalMesh1(mode, i1, i2) - return void - param mode MeshMode1 in value - param i1 CheckedInt32 in value - param i2 CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 155 - offset 236 - -EvalPoint1(i) - return void - param i Int32 in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 156 - offset 237 - -EvalMesh2(mode, i1, i2, j1, j2) - return void - param mode MeshMode2 in value - param i1 CheckedInt32 in value - param i2 CheckedInt32 in value - param j1 CheckedInt32 in value - param j2 CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 157 - offset 238 - -EvalPoint2(i, j) - return void - param i CheckedInt32 in value - param j CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: modeling - version 1.0 - deprecated 3.1 - glxropcode 158 - offset 239 - -AlphaFunc(func, ref) - return void - param func AlphaFunction in value - param ref ClampedFloat32 in value - category VERSION_1_0_DEPRECATED # old: pixel-op - version 1.0 - deprecated 3.1 - glxropcode 159 - offset 240 - -PixelZoom(xfactor, yfactor) - return void - param xfactor Float32 in value - param yfactor Float32 in value - category VERSION_1_0_DEPRECATED # old: pixel-rw - version 1.0 - deprecated 3.1 - glxropcode 165 - offset 246 - -PixelTransferf(pname, param) - return void - param pname PixelTransferParameter in value - param param CheckedFloat32 in value - category VERSION_1_0_DEPRECATED # old: pixel-rw - version 1.0 - deprecated 3.1 - glxropcode 166 - offset 247 - -PixelTransferi(pname, param) - return void - param pname PixelTransferParameter in value - param param CheckedInt32 in value - category VERSION_1_0_DEPRECATED # old: pixel-rw - version 1.0 - deprecated 3.1 - glxropcode 167 - offset 248 - -PixelMapfv(map, mapsize, values) - return void - param map PixelMap in value - param mapsize CheckedInt32 in value - param values Float32 in array [mapsize] - category VERSION_1_0_DEPRECATED # old: pixel-rw - glxflags client-handcode - version 1.0 - deprecated 3.1 - glxropcode 168 - offset 251 - -PixelMapuiv(map, mapsize, values) - return void - param map PixelMap in value - param mapsize CheckedInt32 in value - param values UInt32 in array [mapsize] - category VERSION_1_0_DEPRECATED # old: pixel-rw - glxflags client-handcode - version 1.0 - deprecated 3.1 - glxropcode 169 - offset 252 - -PixelMapusv(map, mapsize, values) - return void - param map PixelMap in value - param mapsize CheckedInt32 in value - param values UInt16 in array [mapsize] - category VERSION_1_0_DEPRECATED # old: pixel-rw - glxflags client-handcode - version 1.0 - deprecated 3.1 - glxropcode 170 - offset 253 - -CopyPixels(x, y, width, height, type) - return void - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param type PixelCopyType in value - category VERSION_1_0_DEPRECATED # old: pixel-rw - version 1.0 - deprecated 3.1 - glxropcode 172 - offset 255 - -DrawPixels(width, height, format, type, pixels) - return void - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category VERSION_1_0_DEPRECATED # old: pixel-rw - dlflags handcode - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxropcode 173 - wglflags client-handcode server-handcode - offset 257 - -GetClipPlane(plane, equation) - return void - param plane ClipPlaneName in value - param equation Float64 out array [4] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 113 - glxflags client-handcode server-handcode - offset 259 - -GetLightfv(light, pname, params) - return void - param light LightName in value - param pname LightParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 118 - wglflags small-data - offset 264 - -GetLightiv(light, pname, params) - return void - param light LightName in value - param pname LightParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 119 - wglflags small-data - offset 265 - -GetMapdv(target, query, v) - return void - param target MapTarget in value - param query GetMapQuery in value - param v Float64 out array [COMPSIZE(target/query)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 120 - offset 266 - -GetMapfv(target, query, v) - return void - param target MapTarget in value - param query GetMapQuery in value - param v Float32 out array [COMPSIZE(target/query)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 121 - offset 267 - -GetMapiv(target, query, v) - return void - param target MapTarget in value - param query GetMapQuery in value - param v Int32 out array [COMPSIZE(target/query)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 122 - offset 268 - -GetMaterialfv(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 123 - wglflags small-data - offset 269 - -GetMaterialiv(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 124 - wglflags small-data - offset 270 - -GetPixelMapfv(map, values) - return void - param map PixelMap in value - param values Float32 out array [COMPSIZE(map)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 125 - offset 271 - -GetPixelMapuiv(map, values) - return void - param map PixelMap in value - param values UInt32 out array [COMPSIZE(map)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 126 - offset 272 - -GetPixelMapusv(map, values) - return void - param map PixelMap in value - param values UInt16 out array [COMPSIZE(map)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 127 - offset 273 - -GetPolygonStipple(mask) - return void - param mask UInt8 out array [COMPSIZE()] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - glxflags client-handcode server-handcode - version 1.0 - deprecated 3.1 - glxsingle 128 - wglflags client-handcode server-handcode - offset 274 - -GetTexEnvfv(target, pname, params) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 130 - wglflags small-data - offset 276 - -GetTexEnviv(target, pname, params) - return void - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 131 - wglflags small-data - offset 277 - -GetTexGendv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float64 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 132 - wglflags small-data - offset 278 - -GetTexGenfv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 133 - wglflags small-data - offset 279 - -GetTexGeniv(coord, pname, params) - return void - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 134 - wglflags small-data - offset 280 - -IsList(list) - return Boolean - param list List in value - category VERSION_1_0_DEPRECATED # old: state-req - dlflags notlistable - version 1.0 - deprecated 3.1 - glxsingle 141 - offset 287 - -Frustum(left, right, bottom, top, zNear, zFar) - return void - param left Float64 in value - param right Float64 in value - param bottom Float64 in value - param top Float64 in value - param zNear Float64 in value - param zFar Float64 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 175 - offset 289 - -LoadIdentity() - return void - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 176 - offset 290 - -LoadMatrixf(m) - return void - param m Float32 in array [16] - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 177 - offset 291 - -LoadMatrixd(m) - return void - param m Float64 in array [16] - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 178 - offset 292 - -MatrixMode(mode) - return void - param mode MatrixMode in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 179 - offset 293 - -MultMatrixf(m) - return void - param m Float32 in array [16] - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 180 - offset 294 - -MultMatrixd(m) - return void - param m Float64 in array [16] - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 181 - offset 295 - -Ortho(left, right, bottom, top, zNear, zFar) - return void - param left Float64 in value - param right Float64 in value - param bottom Float64 in value - param top Float64 in value - param zNear Float64 in value - param zFar Float64 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 182 - offset 296 - -PopMatrix() - return void - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 183 - offset 297 - -PushMatrix() - return void - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 184 - offset 298 - -Rotated(angle, x, y, z) - return void - param angle Float64 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 185 - offset 299 - -Rotatef(angle, x, y, z) - return void - param angle Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 186 - offset 300 - -Scaled(x, y, z) - return void - param x Float64 in value - param y Float64 in value - param z Float64 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 187 - offset 301 - -Scalef(x, y, z) - return void - param x Float32 in value - param y Float32 in value - param z Float32 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 188 - offset 302 - -Translated(x, y, z) - return void - param x Float64 in value - param y Float64 in value - param z Float64 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 189 - offset 303 - -Translatef(x, y, z) - return void - param x Float32 in value - param y Float32 in value - param z Float32 in value - category VERSION_1_0_DEPRECATED # old: xform - version 1.0 - deprecated 3.1 - glxropcode 190 - offset 304 - -############################################################################### -############################################################################### -# -# OpenGL 1.1 commands -# -############################################################################### -############################################################################### - -DrawArrays(mode, first, count) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - category VERSION_1_1 - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.1 - glxropcode 193 - offset 310 - -DrawElements(mode, count, type, indices) - return void - param mode BeginMode in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - category VERSION_1_1 - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.1 - offset 311 - -GetPointerv(pname, params) - return void - param pname GetPointervPName in value - param params VoidPointer out array [1] - category VERSION_1_1 - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - offset 329 - -PolygonOffset(factor, units) - return void - param factor Float32 in value - param units Float32 in value - category VERSION_1_1 - version 1.1 - glxropcode 192 - offset 319 - -# Arguably TexelInternalFormat, not PixelInternalFormat -CopyTexImage1D(target, level, internalformat, x, y, width, border) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param border CheckedInt32 in value - category VERSION_1_1 - version 1.1 - glxropcode 4119 - glxflags EXT - offset 323 - -# Arguably TexelInternalFormat, not PixelInternalFormat -CopyTexImage2D(target, level, internalformat, x, y, width, height, border) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - category VERSION_1_1 - version 1.1 - glxropcode 4120 - glxflags EXT - offset 324 - -CopyTexSubImage1D(target, level, xoffset, x, y, width) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category VERSION_1_1 - version 1.1 - glxropcode 4121 - glxflags EXT - offset 325 - -CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category VERSION_1_1 - version 1.1 - glxropcode 4122 - glxflags EXT - offset 326 - -TexSubImage1D(target, level, xoffset, width, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category VERSION_1_1 - dlflags handcode - glxflags EXT client-handcode server-handcode - version 1.1 - glxropcode 4099 - offset 332 - -TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category VERSION_1_1 - dlflags handcode - glxflags EXT client-handcode server-handcode - version 1.1 - glxropcode 4100 - offset 333 - -BindTexture(target, texture) - return void - param target TextureTarget in value - param texture Texture in value - category VERSION_1_1 - version 1.1 - glxropcode 4117 - glxflags EXT - offset 307 - -DeleteTextures(n, textures) - return void - param n SizeI in value - param textures Texture in array [n] - category VERSION_1_1 - dlflags notlistable - version 1.1 - glxsingle 144 - offset 327 - -GenTextures(n, textures) - return void - param n SizeI in value - param textures Texture out array [n] - category VERSION_1_1 - dlflags notlistable - version 1.1 - glxsingle 145 - offset 328 - -IsTexture(texture) - return Boolean - param texture Texture in value - category VERSION_1_1 - dlflags notlistable - version 1.1 - glxsingle 146 - offset 330 - -############################################################################### -############################################################################### -# -# OpenGL 1.1 deprecated commands -# -############################################################################### -############################################################################### - -ArrayElement(i) - return void - param i Int32 in value - category VERSION_1_1_DEPRECATED - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 306 - -ColorPointer(size, type, stride, pointer) - return void - param size Int32 in value - param type ColorPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 308 - -DisableClientState(array) - return void - param array EnableCap in value - category VERSION_1_1_DEPRECATED - version 1.1 - deprecated 3.1 - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - offset 309 - -EdgeFlagPointer(stride, pointer) - return void - param stride SizeI in value - param pointer Void in array [COMPSIZE(stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 312 - -EnableClientState(array) - return void - param array EnableCap in value - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 313 - -IndexPointer(type, stride, pointer) - return void - param type IndexPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 314 - -InterleavedArrays(format, stride, pointer) - return void - param format InterleavedArrayFormat in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(format/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 317 - -NormalPointer(type, stride, pointer) - return void - param type NormalPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 318 - -TexCoordPointer(size, type, stride, pointer) - return void - param size Int32 in value - param type TexCoordPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 320 - -VertexPointer(size, type, stride, pointer) - return void - param size Int32 in value - param type VertexPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category VERSION_1_1_DEPRECATED - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - deprecated 3.1 - offset 321 - -AreTexturesResident(n, textures, residences) - return Boolean - param n SizeI in value - param textures Texture in array [n] - param residences Boolean out array [n] - category VERSION_1_1_DEPRECATED - glxsingle 143 - dlflags notlistable - version 1.1 - deprecated 3.1 - offset 322 - -PrioritizeTextures(n, textures, priorities) - return void - param n SizeI in value - param textures Texture in array [n] - param priorities ClampedFloat32 in array [n] - category VERSION_1_1_DEPRECATED - version 1.1 - deprecated 3.1 - glxropcode 4118 - glxflags EXT - offset 331 - -Indexub(c) - return void - param c ColorIndexValueUB in value - category VERSION_1_1_DEPRECATED - vectorequiv Indexubv - version 1.1 - offset 315 - -Indexubv(c) - return void - param c ColorIndexValueUB in array [1] - category VERSION_1_1_DEPRECATED - version 1.1 - glxropcode 194 - offset 316 - -PopClientAttrib() - return void - category VERSION_1_1_DEPRECATED - version 1.1 - deprecated 3.1 - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - offset 334 - -PushClientAttrib(mask) - return void - param mask ClientAttribMask in value - category VERSION_1_1_DEPRECATED - version 1.1 - deprecated 3.1 - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - offset 335 - -############################################################################### -############################################################################### -# -# OpenGL 1.2 commands -# -############################################################################### -############################################################################### - -BlendColor(red, green, blue, alpha) - return void - param red ClampedColorF in value - param green ClampedColorF in value - param blue ClampedColorF in value - param alpha ClampedColorF in value - category VERSION_1_2 - glxflags EXT - version 1.2 - glxropcode 4096 - offset 336 - -BlendEquation(mode) - return void - param mode BlendEquationMode in value - category VERSION_1_2 - glxflags EXT - version 1.2 - glxropcode 4097 - offset 337 - -DrawRangeElements(mode, start, end, count, type, indices) - return void - param mode BeginMode in value - param start UInt32 in value - param end UInt32 in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - category VERSION_1_2 - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.2 - offset 338 - -# OpenGL 1.2 (EXT_texture3D) commands - -# Arguably TexelInternalFormat, not PixelInternalFormat -TexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureComponentCount in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category VERSION_1_2 - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - deprecated 3.1 - glxropcode 4114 - offset 371 - -TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category VERSION_1_2 - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - glxropcode 4115 - offset 372 - -# OpenGL 1.2 (EXT_copy_texture) commands (specific to texture3D) - -CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category VERSION_1_2 - glxflags EXT - version 1.2 - glxropcode 4123 - offset 373 - -############################################################################### -############################################################################### -# -# OpenGL 1.2 deprecated commands -# -############################################################################### -############################################################################### - -# OpenGL 1.2 (SGI_color_table) commands - -ColorTable(target, internalformat, width, format, type, table) - return void - param target ColorTableTarget in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param table Void in array [COMPSIZE(format/type/width)] - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - deprecated 3.1 - glxropcode 2053 - offset 339 - -ColorTableParameterfv(target, pname, params) - return void - param target ColorTableTarget in value - param pname ColorTableParameterPName in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 2054 - offset 340 - -ColorTableParameteriv(target, pname, params) - return void - param target ColorTableTarget in value - param pname ColorTableParameterPName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 2055 - offset 341 - -CopyColorTable(target, internalformat, x, y, width) - return void - param target ColorTableTarget in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 2056 - offset 342 - -GetColorTable(target, format, type, table) - return void - param target ColorTableTarget in value - param format PixelFormat in value - param type PixelType in value - param table Void out array [COMPSIZE(target/format/type)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxsingle 147 - offset 343 - -GetColorTableParameterfv(target, pname, params) - return void - param target ColorTableTarget in value - param pname GetColorTableParameterPName in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 148 - offset 344 - -GetColorTableParameteriv(target, pname, params) - return void - param target ColorTableTarget in value - param pname GetColorTableParameterPName in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 149 - offset 345 - -# OpenGL 1.2 (EXT_color_subtable) commands - -ColorSubTable(target, start, count, format, type, data) - return void - param target ColorTableTarget in value - param start SizeI in value - param count SizeI in value - param format PixelFormat in value - param type PixelType in value - param data Void in array [COMPSIZE(format/type/count)] - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxropcode 195 - offset 346 - -CopyColorSubTable(target, start, x, y, width) - return void - param target ColorTableTarget in value - param start SizeI in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category VERSION_1_2_DEPRECATED - version 1.2 - deprecated 3.1 - glxropcode 196 - offset 347 - -# OpenGL 1.2 (EXT_convolution) commands - -ConvolutionFilter1D(target, internalformat, width, format, type, image) - return void - param target ConvolutionTarget in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param image Void in array [COMPSIZE(format/type/width)] - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - deprecated 3.1 - glxropcode 4101 - offset 348 - -ConvolutionFilter2D(target, internalformat, width, height, format, type, image) - return void - param target ConvolutionTarget in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param image Void in array [COMPSIZE(format/type/width/height)] - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - deprecated 3.1 - glxropcode 4102 - offset 349 - -ConvolutionParameterf(target, pname, params) - return void - param target ConvolutionTarget in value - param pname ConvolutionParameter in value - param params CheckedFloat32 in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4103 - offset 350 - -ConvolutionParameterfv(target, pname, params) - return void - param target ConvolutionTarget in value - param pname ConvolutionParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4104 - offset 351 - -ConvolutionParameteri(target, pname, params) - return void - param target ConvolutionTarget in value - param pname ConvolutionParameter in value - param params CheckedInt32 in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4105 - offset 352 - -ConvolutionParameteriv(target, pname, params) - return void - param target ConvolutionTarget in value - param pname ConvolutionParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4106 - offset 353 - -CopyConvolutionFilter1D(target, internalformat, x, y, width) - return void - param target ConvolutionTarget in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4107 - offset 354 - -CopyConvolutionFilter2D(target, internalformat, x, y, width, height) - return void - param target ConvolutionTarget in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4108 - offset 355 - -GetConvolutionFilter(target, format, type, image) - return void - param target ConvolutionTarget in value - param format PixelFormat in value - param type PixelType in value - param image Void out array [COMPSIZE(target/format/type)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxsingle 150 - offset 356 - -GetConvolutionParameterfv(target, pname, params) - return void - param target ConvolutionTarget in value - param pname GetConvolutionParameterPName in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 151 - offset 357 - -GetConvolutionParameteriv(target, pname, params) - return void - param target ConvolutionTarget in value - param pname GetConvolutionParameterPName in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 152 - offset 358 - -GetSeparableFilter(target, format, type, row, column, span) - return void - param target SeparableTarget in value - param format PixelFormat in value - param type PixelType in value - param row Void out array [COMPSIZE(target/format/type)] - param column Void out array [COMPSIZE(target/format/type)] - param span Void out array [COMPSIZE(target/format/type)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxsingle 153 - offset 359 - -SeparableFilter2D(target, internalformat, width, height, format, type, row, column) - return void - param target SeparableTarget in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param row Void in array [COMPSIZE(target/format/type/width)] - param column Void in array [COMPSIZE(target/format/type/height)] - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.2 - deprecated 3.1 - glxropcode 4109 - offset 360 - -# OpenGL 1.2 (EXT_histogram) commands - -GetHistogram(target, reset, format, type, values) - return void - param target HistogramTarget in value - param reset Boolean in value - param format PixelFormat in value - param type PixelType in value - param values Void out array [COMPSIZE(target/format/type)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxsingle 154 - offset 361 - -GetHistogramParameterfv(target, pname, params) - return void - param target HistogramTarget in value - param pname GetHistogramParameterPName in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 155 - offset 362 - -GetHistogramParameteriv(target, pname, params) - return void - param target HistogramTarget in value - param pname GetHistogramParameterPName in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 156 - offset 363 - -GetMinmax(target, reset, format, type, values) - return void - param target MinmaxTarget in value - param reset Boolean in value - param format PixelFormat in value - param type PixelType in value - param values Void out array [COMPSIZE(target/format/type)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.2 - deprecated 3.1 - glxsingle 157 - offset 364 - -GetMinmaxParameterfv(target, pname, params) - return void - param target MinmaxTarget in value - param pname GetMinmaxParameterPName in value - param params Float32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 158 - offset 365 - -GetMinmaxParameteriv(target, pname, params) - return void - param target MinmaxTarget in value - param pname GetMinmaxParameterPName in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_2_DEPRECATED - dlflags notlistable - version 1.2 - deprecated 3.1 - glxsingle 159 - offset 366 - -Histogram(target, width, internalformat, sink) - return void - param target HistogramTarget in value - param width SizeI in value - param internalformat PixelInternalFormat in value - param sink Boolean in value - category VERSION_1_2_DEPRECATED - dlflags handcode - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4110 - offset 367 - -Minmax(target, internalformat, sink) - return void - param target MinmaxTarget in value - param internalformat PixelInternalFormat in value - param sink Boolean in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4111 - offset 368 - -ResetHistogram(target) - return void - param target HistogramTarget in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4112 - offset 369 - -ResetMinmax(target) - return void - param target MinmaxTarget in value - category VERSION_1_2_DEPRECATED - glxflags EXT - version 1.2 - deprecated 3.1 - glxropcode 4113 - offset 370 - -############################################################################### -############################################################################### -# -# OpenGL 1.3 commands -# -############################################################################### -############################################################################### - -# OpenGL 1.3 (ARB_multitexture) commands - -ActiveTexture(texture) - return void - param texture TextureUnit in value - category VERSION_1_3 - glxflags ARB - version 1.3 - glxropcode 197 - offset 374 - -# OpenGL 1.3 (ARB_multisample) commands - -SampleCoverage(value, invert) - return void - param value ClampedFloat32 in value - param invert Boolean in value - category VERSION_1_3 - glxflags ARB - version 1.3 - glxropcode 229 - offset 412 - -# OpenGL 1.3 (ARB_texture_compression) commands - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 216 - wglflags client-handcode server-handcode - offset 554 - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 215 - wglflags client-handcode server-handcode - offset 555 - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage1D(target, level, internalformat, width, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 214 - wglflags client-handcode server-handcode - offset 556 - -CompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 219 - wglflags client-handcode server-handcode - offset 557 - -CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 218 - wglflags client-handcode server-handcode - offset 558 - -CompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category VERSION_1_3 - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.3 - glxropcode 217 - wglflags client-handcode server-handcode - offset 559 - -GetCompressedTexImage(target, level, img) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param img CompressedTextureARB out array [COMPSIZE(target/level)] - category VERSION_1_3 - dlflags notlistable - glxflags ARB client-handcode server-handcode - version 1.3 - glxsingle 160 - wglflags client-handcode server-handcode - offset 560 - -############################################################################### -############################################################################### -# -# OpenGL 1.3 deprecated commands -# -############################################################################### -############################################################################### - -ClientActiveTexture(texture) - return void - param texture TextureUnit in value - category VERSION_1_3_DEPRECATED - dlflags notlistable - glxflags ARB client-handcode client-intercept server-handcode - version 1.3 - deprecated 3.1 - offset 375 - -MultiTexCoord1d(target, s) - return void - param target TextureUnit in value - param s CoordD in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord1dv - offset 376 - -MultiTexCoord1dv(target, v) - return void - param target TextureUnit in value - param v CoordD in array [1] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 198 - offset 377 - -MultiTexCoord1f(target, s) - return void - param target TextureUnit in value - param s CoordF in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord1fv - offset 378 - -MultiTexCoord1fv(target, v) - return void - param target TextureUnit in value - param v CoordF in array [1] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 199 - offset 379 - -MultiTexCoord1i(target, s) - return void - param target TextureUnit in value - param s CoordI in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord1iv - offset 380 - -MultiTexCoord1iv(target, v) - return void - param target TextureUnit in value - param v CoordI in array [1] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 200 - offset 381 - -MultiTexCoord1s(target, s) - return void - param target TextureUnit in value - param s CoordS in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord1sv - offset 382 - -MultiTexCoord1sv(target, v) - return void - param target TextureUnit in value - param v CoordS in array [1] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 201 - offset 383 - -MultiTexCoord2d(target, s, t) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord2dv - offset 384 - -MultiTexCoord2dv(target, v) - return void - param target TextureUnit in value - param v CoordD in array [2] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 202 - offset 385 - -MultiTexCoord2f(target, s, t) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord2fv - offset 386 - -MultiTexCoord2fv(target, v) - return void - param target TextureUnit in value - param v CoordF in array [2] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 203 - offset 387 - -MultiTexCoord2i(target, s, t) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord2iv - offset 388 - -MultiTexCoord2iv(target, v) - return void - param target TextureUnit in value - param v CoordI in array [2] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 204 - offset 389 - -MultiTexCoord2s(target, s, t) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord2sv - offset 390 - -MultiTexCoord2sv(target, v) - return void - param target TextureUnit in value - param v CoordS in array [2] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 205 - offset 391 - -MultiTexCoord3d(target, s, t, r) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - param r CoordD in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord3dv - offset 392 - -MultiTexCoord3dv(target, v) - return void - param target TextureUnit in value - param v CoordD in array [3] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 206 - offset 393 - -MultiTexCoord3f(target, s, t, r) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - param r CoordF in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord3fv - offset 394 - -MultiTexCoord3fv(target, v) - return void - param target TextureUnit in value - param v CoordF in array [3] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 207 - offset 395 - -MultiTexCoord3i(target, s, t, r) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - param r CoordI in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord3iv - offset 396 - -MultiTexCoord3iv(target, v) - return void - param target TextureUnit in value - param v CoordI in array [3] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 208 - offset 397 - -MultiTexCoord3s(target, s, t, r) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - param r CoordS in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord3sv - offset 398 - -MultiTexCoord3sv(target, v) - return void - param target TextureUnit in value - param v CoordS in array [3] - category VERSION_1_3_DEPRECATED - version 1.3 - deprecated 3.1 - glxflags ARB - glxropcode 209 - offset 399 - -MultiTexCoord4d(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - param r CoordD in value - param q CoordD in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord4dv - offset 400 - -MultiTexCoord4dv(target, v) - return void - param target TextureUnit in value - param v CoordD in array [4] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 210 - offset 401 - -MultiTexCoord4f(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - param r CoordF in value - param q CoordF in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord4fv - offset 402 - -MultiTexCoord4fv(target, v) - return void - param target TextureUnit in value - param v CoordF in array [4] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 211 - offset 403 - -MultiTexCoord4i(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - param r CoordI in value - param q CoordI in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord4iv - offset 404 - -MultiTexCoord4iv(target, v) - return void - param target TextureUnit in value - param v CoordI in array [4] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 212 - offset 405 - -MultiTexCoord4s(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - param r CoordS in value - param q CoordS in value - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - vectorequiv MultiTexCoord4sv - offset 406 - -MultiTexCoord4sv(target, v) - return void - param target TextureUnit in value - param v CoordS in array [4] - category VERSION_1_3_DEPRECATED - glxflags ARB - version 1.3 - deprecated 3.1 - glxropcode 213 - offset 407 - -# OpenGL 1.3 (ARB_transpose_matrix) commands - -LoadTransposeMatrixf(m) - return void - param m Float32 in array [16] - category VERSION_1_3_DEPRECATED - glxflags ARB client-handcode client-intercept server-handcode - version 1.3 - deprecated 3.1 - offset 408 - -LoadTransposeMatrixd(m) - return void - param m Float64 in array [16] - category VERSION_1_3_DEPRECATED - glxflags ARB client-handcode client-intercept server-handcode - version 1.3 - deprecated 3.1 - offset 409 - -MultTransposeMatrixf(m) - return void - param m Float32 in array [16] - category VERSION_1_3_DEPRECATED - glxflags ARB client-handcode client-intercept server-handcode - version 1.3 - deprecated 3.1 - offset 410 - -MultTransposeMatrixd(m) - return void - param m Float64 in array [16] - category VERSION_1_3_DEPRECATED - glxflags ARB client-handcode client-intercept server-handcode - version 1.3 - deprecated 3.1 - offset 411 - -############################################################################### -############################################################################### -# -# OpenGL 1.4 commands -# -############################################################################### -############################################################################### - -# OpenGL 1.4 (EXT_blend_func_separate) commands - -BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) - return void - param sfactorRGB BlendFuncSeparateParameterEXT in value - param dfactorRGB BlendFuncSeparateParameterEXT in value - param sfactorAlpha BlendFuncSeparateParameterEXT in value - param dfactorAlpha BlendFuncSeparateParameterEXT in value - category VERSION_1_4 - glxropcode 4134 - version 1.4 - extension - offset 537 - -# OpenGL 1.4 (EXT_multi_draw_arrays) commands - -# first and count are really 'in' -MultiDrawArrays(mode, first, count, primcount) - return void - param mode BeginMode in value - param first Int32 out array [COMPSIZE(count)] - param count SizeI out array [COMPSIZE(primcount)] - param primcount SizeI in value - category VERSION_1_4 - version 1.4 - glxropcode ? - offset 644 - -MultiDrawElements(mode, count, type, indices, primcount) - return void - param mode BeginMode in value - param count SizeI in array [COMPSIZE(primcount)] - param type DrawElementsType in value - param indices VoidPointer in array [COMPSIZE(primcount)] - param primcount SizeI in value - category VERSION_1_4 - version 1.4 - glxropcode ? - offset 645 - -# OpenGL 1.4 (ARB_point_parameters, NV_point_sprite) commands - -PointParameterf(pname, param) - return void - param pname PointParameterNameARB in value - param param CheckedFloat32 in value - category VERSION_1_4 - version 1.4 - glxropcode 2065 - extension - offset 458 - -PointParameterfv(pname, params) - return void - param pname PointParameterNameARB in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category VERSION_1_4 - version 1.4 - glxropcode 2066 - extension - offset 459 - -PointParameteri(pname, param) - return void - param pname PointParameterNameARB in value - param param Int32 in value - category VERSION_1_4 - version 1.4 - extension soft WINSOFT NV20 - glxropcode 4221 - offset 642 - -PointParameteriv(pname, params) - return void - param pname PointParameterNameARB in value - param params Int32 in array [COMPSIZE(pname)] - category VERSION_1_4 - version 1.4 - extension soft WINSOFT NV20 - glxropcode 4222re - offset 643 - -############################################################################### -############################################################################### -# -# OpenGL 1.4 deprecated commands -# -############################################################################### -############################################################################### - -# OpenGL 1.4 (EXT_fog_coord) commands - -FogCoordf(coord) - return void - param coord CoordF in value - category VERSION_1_4_DEPRECATED - vectorequiv FogCoordfv - version 1.4 - deprecated 3.1 - offset 545 - -FogCoordfv(coord) - return void - param coord CoordF in array [1] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4124 - offset 546 - -FogCoordd(coord) - return void - param coord CoordD in value - category VERSION_1_4_DEPRECATED - vectorequiv FogCoorddv - version 1.4 - deprecated 3.1 - offset 547 - -FogCoorddv(coord) - return void - param coord CoordD in array [1] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4125 - offset 548 - -FogCoordPointer(type, stride, pointer) - return void - param type FogPointerTypeEXT in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category VERSION_1_4_DEPRECATED - dlflags notlistable - version 1.4 - deprecated 3.1 - glxflags client-handcode server-handcode - offset 549 - -# OpenGL 1.4 (EXT_secondary_color) commands - -SecondaryColor3b(red, green, blue) - return void - param red ColorB in value - param green ColorB in value - param blue ColorB in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3bv - version 1.4 - deprecated 3.1 - offset 561 - -SecondaryColor3bv(v) - return void - param v ColorB in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4126 - offset 562 - -SecondaryColor3d(red, green, blue) - return void - param red ColorD in value - param green ColorD in value - param blue ColorD in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3dv - version 1.4 - deprecated 3.1 - offset 563 - -SecondaryColor3dv(v) - return void - param v ColorD in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4130 - offset 564 - -SecondaryColor3f(red, green, blue) - return void - param red ColorF in value - param green ColorF in value - param blue ColorF in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3fv - version 1.4 - deprecated 3.1 - offset 565 - -SecondaryColor3fv(v) - return void - param v ColorF in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4129 - offset 566 - -SecondaryColor3i(red, green, blue) - return void - param red ColorI in value - param green ColorI in value - param blue ColorI in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3iv - version 1.4 - deprecated 3.1 - offset 567 - -SecondaryColor3iv(v) - return void - param v ColorI in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4128 - offset 568 - -SecondaryColor3s(red, green, blue) - return void - param red ColorS in value - param green ColorS in value - param blue ColorS in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3sv - version 1.4 - deprecated 3.1 - offset 569 - -SecondaryColor3sv(v) - return void - param v ColorS in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4127 - offset 570 - -SecondaryColor3ub(red, green, blue) - return void - param red ColorUB in value - param green ColorUB in value - param blue ColorUB in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3ubv - version 1.4 - deprecated 3.1 - offset 571 - -SecondaryColor3ubv(v) - return void - param v ColorUB in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4131 - offset 572 - -SecondaryColor3ui(red, green, blue) - return void - param red ColorUI in value - param green ColorUI in value - param blue ColorUI in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3uiv - version 1.4 - deprecated 3.1 - offset 573 - -SecondaryColor3uiv(v) - return void - param v ColorUI in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4133 - offset 574 - -SecondaryColor3us(red, green, blue) - return void - param red ColorUS in value - param green ColorUS in value - param blue ColorUS in value - category VERSION_1_4_DEPRECATED - vectorequiv SecondaryColor3usv - version 1.4 - deprecated 3.1 - offset 575 - -SecondaryColor3usv(v) - return void - param v ColorUS in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 4132 - offset 576 - -SecondaryColorPointer(size, type, stride, pointer) - return void - param size Int32 in value - param type ColorPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category VERSION_1_4_DEPRECATED - dlflags notlistable - glxflags client-handcode server-handcode - version 1.4 - deprecated 3.1 - extension - offset 577 - -# OpenGL 1.4 (ARB_window_pos) commands -# Note: all WindowPos* entry points use glxropcode ropcode 230, with 3 float parameters - -WindowPos2d(x, y) - return void - param x CoordD in value - param y CoordD in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos2dv - version 1.4 - deprecated 3.1 - offset 513 - -WindowPos2dv(v) - return void - param v CoordD in array [2] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 514 - -WindowPos2f(x, y) - return void - param x CoordF in value - param y CoordF in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos2fv - version 1.4 - deprecated 3.1 - offset 515 - -WindowPos2fv(v) - return void - param v CoordF in array [2] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 516 - -WindowPos2i(x, y) - return void - param x CoordI in value - param y CoordI in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos2iv - version 1.4 - deprecated 3.1 - offset 517 - -WindowPos2iv(v) - return void - param v CoordI in array [2] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 518 - -WindowPos2s(x, y) - return void - param x CoordS in value - param y CoordS in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos2sv - version 1.4 - deprecated 3.1 - offset 519 - -WindowPos2sv(v) - return void - param v CoordS in array [2] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 520 - -WindowPos3d(x, y, z) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - vectorequiv WindowPos3dv - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - offset 521 - -WindowPos3dv(v) - return void - param v CoordD in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 522 - -WindowPos3f(x, y, z) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos3fv - version 1.4 - deprecated 3.1 - offset 523 - -WindowPos3fv(v) - return void - param v CoordF in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 524 - -WindowPos3i(x, y, z) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos3iv - version 1.4 - deprecated 3.1 - offset 525 - -WindowPos3iv(v) - return void - param v CoordI in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 526 - -WindowPos3s(x, y, z) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - category VERSION_1_4_DEPRECATED - vectorequiv WindowPos3sv - version 1.4 - deprecated 3.1 - offset 527 - -WindowPos3sv(v) - return void - param v CoordS in array [3] - category VERSION_1_4_DEPRECATED - version 1.4 - deprecated 3.1 - glxropcode 230 - glxflags client-handcode server-handcode - offset 528 - -############################################################################### -############################################################################### -# -# OpenGL 1.5 commands -# -############################################################################### -############################################################################### - -# OpenGL 1.5 (ARB_occlusion_query) commands - -GenQueries(n, ids) - return void - param n SizeI in value - param ids UInt32 out array [n] - category VERSION_1_5 - version 1.5 - extension - glxsingle 162 - glxflags ignore - offset 700 - -DeleteQueries(n, ids) - return void - param n SizeI in value - param ids UInt32 in array [n] - category VERSION_1_5 - version 1.5 - extension - glxsingle 161 - glxflags ignore - offset 701 - -IsQuery(id) - return Boolean - param id UInt32 in value - category VERSION_1_5 - version 1.5 - extension - glxsingle 163 - glxflags ignore - offset 702 - -BeginQuery(target, id) - return void - param target GLenum in value - param id UInt32 in value - category VERSION_1_5 - version 1.5 - extension - glxropcode 231 - glxflags ignore - offset 703 - -EndQuery(target) - return void - param target GLenum in value - category VERSION_1_5 - version 1.5 - extension - glxropcode 232 - glxflags ignore - offset 704 - -GetQueryiv(target, pname, params) - return void - param target GLenum in value - param pname GLenum in value - param params Int32 out array [pname] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle 164 - glxflags ignore - offset 705 - -GetQueryObjectiv(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params Int32 out array [pname] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle 165 - glxflags ignore - offset 706 - -GetQueryObjectuiv(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params UInt32 out array [pname] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle 166 - glxflags ignore - offset 707 - -# OpenGL 1.5 (ARB_vertex_buffer_object) commands - -BindBuffer(target, buffer) - return void - param target BufferTargetARB in value - param buffer UInt32 in value - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 688 - -DeleteBuffers(n, buffers) - return void - param n SizeI in value - param buffers ConstUInt32 in array [n] - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 691 - -GenBuffers(n, buffers) - return void - param n SizeI in value - param buffers UInt32 out array [n] - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 692 - -IsBuffer(buffer) - return Boolean - param buffer UInt32 in value - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 696 - -BufferData(target, size, data, usage) - return void - param target BufferTargetARB in value - param size BufferSize in value - param data ConstVoid in array [size] - param usage BufferUsageARB in value - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 689 - -BufferSubData(target, offset, size, data) - return void - param target BufferTargetARB in value - param offset BufferOffset in value - param size BufferSize in value - param data ConstVoid in array [size] - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 690 - -GetBufferSubData(target, offset, size, data) - return void - param target BufferTargetARB in value - param offset BufferOffset in value - param size BufferSize in value - param data Void out array [size] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle ? - glxflags ignore - offset 695 - -MapBuffer(target, access) - return VoidPointer - param target BufferTargetARB in value - param access BufferAccessARB in value - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 697 - -UnmapBuffer(target) - return Boolean - param target BufferTargetARB in value - category VERSION_1_5 - version 1.5 - extension - glxropcode ? - glxflags ignore - offset 698 - -GetBufferParameteriv(target, pname, params) - return void - param target BufferTargetARB in value - param pname BufferPNameARB in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle ? - glxflags ignore - offset 693 - -GetBufferPointerv(target, pname, params) - return void - param target BufferTargetARB in value - param pname BufferPointerNameARB in value - param params VoidPointer out array [1] - category VERSION_1_5 - dlflags notlistable - version 1.5 - extension - glxsingle ? - glxflags ignore - offset 694 - -# OpenGL 1.5 (EXT_shadow_funcs) commands - none - - -############################################################################### -############################################################################### -# -# OpenGL 2.0 commands -# -############################################################################### -############################################################################### - -# OpenGL 2.0 (EXT_blend_equation_separate) commands - -BlendEquationSeparate(modeRGB, modeAlpha) - return void - param modeRGB BlendEquationModeEXT in value - param modeAlpha BlendEquationModeEXT in value - category VERSION_2_0 - version 2.0 - extension - glxropcode 4228 - -# OpenGL 2.0 (ARB_draw_buffers) commands - -DrawBuffers(n, bufs) - return void - param n SizeI in value - param bufs DrawBufferModeATI in array [n] - category VERSION_2_0 - version 2.0 - extension - glxropcode 233 - glxflags ignore - offset ? - -# OpenGL 2.0 (ARB_stencil_two_side) commands - -StencilOpSeparate(face, sfail, dpfail, dppass) - return void - param face StencilFaceDirection in value - param sfail StencilOp in value - param dpfail StencilOp in value - param dppass StencilOp in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -StencilFuncSeparate(frontfunc, backfunc, ref, mask) - return void - param frontfunc StencilFunction in value - param backfunc StencilFunction in value - param ref ClampedStencilValue in value - param mask MaskedStencilValue in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -StencilMaskSeparate(face, mask) - return void - param face StencilFaceDirection in value - param mask MaskedStencilValue in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -# OpenGL 2.0 (ARB_shader_objects / ARB_vertex_shader / ARB_fragment_shader) commands - -AttachShader(program, shader) - return void - param program UInt32 in value - param shader UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -BindAttribLocation(program, index, name) - return void - param program UInt32 in value - param index UInt32 in value - param name Char in array [] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -CompileShader(shader) - return void - param shader UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -CreateProgram() - return UInt32 - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -CreateShader(type) - return UInt32 - param type GLenum in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteProgram(program) - return void - param program UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteShader(shader) - return void - param shader UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -DetachShader(program, shader) - return void - param program UInt32 in value - param shader UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -DisableVertexAttribArray(index) - return void - param index UInt32 in value - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxflags ignore - offset 666 - -EnableVertexAttribArray(index) - return void - param index UInt32 in value - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxflags ignore - offset 665 - -GetActiveAttrib(program, index, bufSize, length, size, type, name) - return void - param program UInt32 in value - param index UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param size Int32 out array [1] - param type GLenum out array [1] - param name Char out array [] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetActiveUniform(program, index, bufSize, length, size, type, name) - return void - param program UInt32 in value - param index UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param size Int32 out array [1] - param type GLenum out array [1] - param name Char out array [] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetAttachedShaders(program, maxCount, count, obj) - return void - param program UInt32 in value - param maxCount SizeI in value - param count SizeI out array [1] - param obj UInt32 out array [count] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetAttribLocation(program, name) - return Int32 - param program UInt32 in value - param name Char in array [] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetProgramiv(program, pname, params) - return void - param program UInt32 in value - param pname GLenum in value - param params Int32 out array [pname] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetProgramInfoLog(program, bufSize, length, infoLog) - return void - param program UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param infoLog Char out array [length] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetShaderiv(shader, pname, params) - return void - param shader UInt32 in value - param pname GLenum in value - param params Int32 out array [pname] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetShaderInfoLog(shader, bufSize, length, infoLog) - return void - param shader UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param infoLog Char out array [length] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetShaderSource(shader, bufSize, length, source) - return void - param shader UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param source Char out array [length] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetUniformLocation(program, name) - return Int32 - param program UInt32 in value - param name Char in array [] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetUniformfv(program, location, params) - return void - param program UInt32 in value - param location Int32 in value - param params Float32 out array [location] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetUniformiv(program, location, params) - return void - param program UInt32 in value - param location Int32 in value - param params Int32 out array [location] - category VERSION_2_0 - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVertexAttribdv(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Float64 out array [4] - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxvendorpriv 1301 - offset 588 - -GetVertexAttribfv(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Float32 out array [4] - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxvendorpriv 1302 - offset 589 - -GetVertexAttribiv(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Int32 out array [4] - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxvendorpriv 1303 - offset 590 - -GetVertexAttribPointerv(index, pname, pointer) - return void - param index UInt32 in value - param pname VertexAttribPointerPropertyARB in value - param pointer VoidPointer out array [1] - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxflags ignore - offset 591 - -IsProgram(program) - return Boolean - param program UInt32 in value - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxvendorpriv 1304 - offset 592 - -IsShader(shader) - return Boolean - param shader UInt32 in value - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxvendorpriv ? - offset ? - -LinkProgram(program) - return void - param program UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -ShaderSource(shader, count, string, length) - return void - param shader UInt32 in value - param count SizeI in value - param string CharPointer in array [count] - param length Int32 in array [1] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -UseProgram(program) - return void - param program UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform1f(location, v0) - return void - param location Int32 in value - param v0 Float32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform2f(location, v0, v1) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform3f(location, v0, v1, v2) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform4f(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - param v3 Float32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform1i(location, v0) - return void - param location Int32 in value - param v0 Int32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform2i(location, v0, v1) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform3i(location, v0, v1, v2) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform4i(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - param v3 Int32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform1fv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform2fv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform3fv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform4fv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform1iv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform2iv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform3iv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniform4iv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix2fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix3fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix4fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -ValidateProgram(program) - return void - param program UInt32 in value - category VERSION_2_0 - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib1d(index, x) - return void - param index UInt32 in value - param x Float64 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib1dv - extension soft WINSOFT NV10 - glxflags ignore - offset 603 - -VertexAttrib1dv(index, v) - return void - param index UInt32 in value - param v Float64 in array [1] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4197 - offset 604 - -VertexAttrib1f(index, x) - return void - param index UInt32 in value - param x Float32 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib1fv - extension soft WINSOFT NV10 - glxflags ignore - offset 605 - -VertexAttrib1fv(index, v) - return void - param index UInt32 in value - param v Float32 in array [1] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4193 - offset 606 - -VertexAttrib1s(index, x) - return void - param index UInt32 in value - param x Int16 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib1sv - extension soft WINSOFT NV10 - glxflags ignore - offset 607 - -VertexAttrib1sv(index, v) - return void - param index UInt32 in value - param v Int16 in array [1] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4189 - offset 608 - -VertexAttrib2d(index, x, y) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib2dv - extension soft WINSOFT NV10 - glxflags ignore - offset 609 - -VertexAttrib2dv(index, v) - return void - param index UInt32 in value - param v Float64 in array [2] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4198 - offset 610 - -VertexAttrib2f(index, x, y) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib2fv - extension soft WINSOFT NV10 - glxflags ignore - offset 611 - -VertexAttrib2fv(index, v) - return void - param index UInt32 in value - param v Float32 in array [2] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4194 - offset 612 - -VertexAttrib2s(index, x, y) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib2sv - extension soft WINSOFT NV10 - glxflags ignore - offset 613 - -VertexAttrib2sv(index, v) - return void - param index UInt32 in value - param v Int16 in array [2] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4190 - offset 614 - -VertexAttrib3d(index, x, y, z) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib3dv - extension soft WINSOFT NV10 - glxflags ignore - offset 615 - -VertexAttrib3dv(index, v) - return void - param index UInt32 in value - param v Float64 in array [3] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4199 - offset 616 - -VertexAttrib3f(index, x, y, z) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib3fv - extension soft WINSOFT NV10 - glxflags ignore - offset 617 - -VertexAttrib3fv(index, v) - return void - param index UInt32 in value - param v Float32 in array [3] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4195 - offset 618 - -VertexAttrib3s(index, x, y, z) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib3sv - extension soft WINSOFT NV10 - glxflags ignore - offset 619 - -VertexAttrib3sv(index, v) - return void - param index UInt32 in value - param v Int16 in array [3] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4191 - offset 620 - -VertexAttrib4Nbv(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 659 - -VertexAttrib4Niv(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 661 - -VertexAttrib4Nsv(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 660 - -VertexAttrib4Nub(index, x, y, z, w) - return void - param index UInt32 in value - param x UInt8 in value - param y UInt8 in value - param z UInt8 in value - param w UInt8 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 627 - -VertexAttrib4Nubv(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - glxropcode 4201 - offset 628 - -VertexAttrib4Nuiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 663 - -VertexAttrib4Nusv(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 662 - -VertexAttrib4bv(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 654 - -VertexAttrib4d(index, x, y, z, w) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib4dv - extension soft WINSOFT NV10 - glxflags ignore - offset 621 - -VertexAttrib4dv(index, v) - return void - param index UInt32 in value - param v Float64 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4200 - offset 622 - -VertexAttrib4f(index, x, y, z, w) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib4fv - extension soft WINSOFT NV10 - glxflags ignore - offset 623 - -VertexAttrib4fv(index, v) - return void - param index UInt32 in value - param v Float32 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxropcode 4196 - offset 624 - -VertexAttrib4iv(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 655 - -VertexAttrib4s(index, x, y, z, w) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - param w Int16 in value - category VERSION_2_0 - version 2.0 - deprecated 3.1 - vectorequiv VertexAttrib4sv - extension soft WINSOFT NV10 - glxflags ignore - offset 625 - -VertexAttrib4sv(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - glxropcode 4192 - offset 626 - -VertexAttrib4ubv(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 656 - -VertexAttrib4uiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 658 - -VertexAttrib4usv(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category VERSION_2_0 - version 2.0 - deprecated 3.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 657 - -VertexAttribPointer(index, size, type, normalized, stride, pointer) - return void - param index UInt32 in value - param size Int32 in value - param type VertexAttribPointerTypeARB in value - param normalized Boolean in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - dlflags notlistable - category VERSION_2_0 - version 2.0 - extension soft WINSOFT NV10 - glxflags ignore - offset 664 - - -############################################################################### -############################################################################### -# -# OpenGL 2.1 commands -# -############################################################################### -############################################################################### - -# OpenGL 2.1 (ARB_pixel_buffer_object) commands - none - -# OpenGL 2.1 (EXT_texture_sRGB) commands - none - -# New commands in OpenGL 2.1 - -UniformMatrix2x3fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [6] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix3x2fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [6] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix2x4fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [8] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix4x2fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [8] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix3x4fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [12] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -UniformMatrix4x3fv(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [12] - category VERSION_2_1 - version 2.1 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -############################################################################### -# -# OpenGL 3.0 commands -# -############################################################################### -############################################################################### - -# OpenGL 3.0 (EXT_draw_buffers2) commands - -ColorMaski(index, r, g, b, a) - return void - param index UInt32 in value - param r Boolean in value - param g Boolean in value - param b Boolean in value - param a Boolean in value - category VERSION_3_0 - version 3.0 - extension - glxflags ignore - glfflags ignore - -GetBooleani_v(target, index, data) - return void - param target GLenum in value - param index UInt32 in value - param data Boolean out array [COMPSIZE(target)] - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -GetIntegeri_v(target, index, data) - return void - param target GLenum in value - param index UInt32 in value - param data Int32 out array [COMPSIZE(target)] - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -Enablei(target, index) - return void - param target GLenum in value - param index UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glxflags ignore - glfflags ignore - -Disablei(target, index) - return void - param target GLenum in value - param index UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glxflags ignore - glfflags ignore - -IsEnabledi(target, index) - return Boolean - param target GLenum in value - param index UInt32 in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -# OpenGL 3.0 (EXT_transform_feedback) commands - -BeginTransformFeedback(primitiveMode) - return void - param primitiveMode GLenum in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -EndTransformFeedback() - return void - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -BindBufferRange(target, index, buffer, offset, size) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - param offset BufferOffset in value - param size BufferSize in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -BindBufferBase(target, index, buffer) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -TransformFeedbackVaryings(program, count, varyings, bufferMode) - return void - param program UInt32 in value - param count SizeI in value - param varyings CharPointer in array [count] - param bufferMode GLenum in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - -GetTransformFeedbackVarying(program, index, bufSize, length, size, type, name) - return void - param program UInt32 in value - param index UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param size SizeI out array [1] - param type GLenum out array [1] - param name Char out array [COMPSIZE(length)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -ClampColor(target, clamp) - return void - param target ClampColorTargetARB in value - param clamp ClampColorModeARB in value - category VERSION_3_0 - version 3.0 - extension - glxropcode 234 - glxflags ignore - offset ? - -BeginConditionalRender(id, mode) - return void - param id UInt32 in value - param mode TypeEnum in value - category VERSION_3_0 - version 3.0 - glfflags ignore - glxflags ignore - -EndConditionalRender() - return void - category VERSION_3_0 - version 3.0 - glfflags ignore - glxflags ignore - -VertexAttribIPointer(index, size, type, stride, pointer) - return void - param index UInt32 in value - param size Int32 in value - param type VertexAttribEnum in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category VERSION_3_0 - version 3.0 - dlflags notlistable - extension - glfflags ignore - glxflags ignore - -GetVertexAttribIiv(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnum in value - param params Int32 out array [1] - category VERSION_3_0 - version 3.0 - dlflags notlistable - extension - glfflags ignore - glxflags ignore - -GetVertexAttribIuiv(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnum in value - param params UInt32 out array [1] - category VERSION_3_0 - version 3.0 - dlflags notlistable - extension - glfflags ignore - glxflags ignore - -# OpenGL 3.0 (NV_vertex_program4) commands - -VertexAttribI1i(index, x) - return void - param index UInt32 in value - param x Int32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI1iv - glxvectorequiv VertexAttribI1iv - extension - glfflags ignore - glxflags ignore - -VertexAttribI2i(index, x, y) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI2iv - glxvectorequiv VertexAttribI2iv - extension - glfflags ignore - glxflags ignore - -VertexAttribI3i(index, x, y, z) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI3iv - glxvectorequiv VertexAttribI3iv - extension - glfflags ignore - glxflags ignore - -VertexAttribI4i(index, x, y, z, w) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI4iv - glxvectorequiv VertexAttribI4iv - extension - glfflags ignore - glxflags ignore - -VertexAttribI1ui(index, x) - return void - param index UInt32 in value - param x UInt32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI1uiv - glxvectorequiv VertexAttribI1uiv - extension - glfflags ignore - glxflags ignore - -VertexAttribI2ui(index, x, y) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI2uiv - glxvectorequiv VertexAttribI2uiv - extension - glfflags ignore - glxflags ignore - -VertexAttribI3ui(index, x, y, z) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI3uiv - glxvectorequiv VertexAttribI3uiv - extension - glfflags ignore - glxflags ignore - -VertexAttribI4ui(index, x, y, z, w) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - param w UInt32 in value - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - vectorequiv VertexAttribI4uiv - glxvectorequiv VertexAttribI4uiv - extension - glfflags ignore - glxflags ignore - -VertexAttribI1iv(index, v) - return void - param index UInt32 in value - param v Int32 in array [1] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI2iv(index, v) - return void - param index UInt32 in value - param v Int32 in array [2] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI3iv(index, v) - return void - param index UInt32 in value - param v Int32 in array [3] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4iv(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI1uiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [1] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI2uiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [2] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI3uiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [3] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4uiv(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4bv(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4sv(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4ubv(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -VertexAttribI4usv(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category VERSION_3_0 - version 3.0 - deprecated 3.1 - beginend allow-inside - extension - glfflags ignore - glxflags ignore - -# OpenGL 3.0 (EXT_gpu_shader4) commands - -GetUniformuiv(program, location, params) - return void - param program UInt32 in value - param location Int32 in value - param params UInt32 out array [COMPSIZE(program/location)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -BindFragDataLocation(program, color, name) - return void - param program UInt32 in value - param color UInt32 in value - param name Char in array [COMPSIZE(name)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -GetFragDataLocation(program, name) - return Int32 - param program UInt32 in value - param name Char in array [COMPSIZE(name)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform1ui(location, v0) - return void - param location Int32 in value - param v0 UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform2ui(location, v0, v1) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform3ui(location, v0, v1, v2) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform4ui(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - param v3 UInt32 in value - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform1uiv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform2uiv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*2] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform3uiv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*3] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -Uniform4uiv(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*4] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -# OpenGL 3.0 (EXT_texture_integer) commands - -TexParameterIiv(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params Int32 in array [COMPSIZE(pname)] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -TexParameterIuiv(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params UInt32 in array [COMPSIZE(pname)] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -GetTexParameterIiv(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -GetTexParameterIuiv(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params UInt32 out array [COMPSIZE(pname)] - category VERSION_3_0 - dlflags notlistable - version 3.0 - extension - glfflags ignore - glxflags ignore - -# New commands in OpenGL 3.0 - -ClearBufferiv(buffer, drawbuffer, value) - return void - param buffer GLenum in value - param drawbuffer DrawBufferName in value - param value Int32 in array [COMPSIZE(buffer)] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -ClearBufferuiv(buffer, drawbuffer, value) - return void - param buffer GLenum in value - param drawbuffer DrawBufferName in value - param value UInt32 in array [COMPSIZE(buffer)] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -ClearBufferfv(buffer, drawbuffer, value) - return void - param buffer GLenum in value - param drawbuffer DrawBufferName in value - param value Float32 in array [COMPSIZE(buffer)] - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -ClearBufferfi(buffer, drawbuffer, depth, stencil) - return void - param buffer GLenum in value - param drawbuffer DrawBufferName in value - param depth Float32 in value - param stencil Int32 in value - category VERSION_3_0 - version 3.0 - extension - glfflags ignore - glxflags ignore - -GetStringi(name, index) - return String - param name GLenum in value - param index UInt32 in value - category VERSION_3_0 - version 3.0 - extension - dlflags notlistable - glxflags client-handcode server-handcode - glfflags ignore - glxsingle ? - -passthru: /* OpenGL 3.0 also reuses entry points from these extensions: */ -passthru: /* ARB_framebuffer_object */ -passthru: /* ARB_map_buffer_range */ -passthru: /* ARB_vertex_array_object */ - -############################################################################### -############################################################################### -# -# OpenGL 3.0 deprecated commands -# -############################################################################### -############################################################################### - -# (none - VertexAttribI* were moved back into non-deprecated) - - -############################################################################### -############################################################################### -# -# OpenGL 3.1 commands -# -############################################################################### -############################################################################### - -# New commands in OpenGL 3.1 - none - -# OpenGL 3.1 (ARB_draw_instanced) commands - -DrawArraysInstanced(mode, first, count, primcount) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - param primcount SizeI in value - category VERSION_3_1 - version 3.1 - extension - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - -DrawElementsInstanced(mode, count, type, indices, primcount) - return void - param mode BeginMode in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param primcount SizeI in value - category VERSION_3_1 - version 3.1 - extension - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - -# OpenGL 3.1 (ARB_texture_buffer_object) commands - -TexBuffer(target, internalformat, buffer) - return void - param target TextureTarget in value - param internalformat GLenum in value - param buffer UInt32 in value - category VERSION_3_1 - version 3.1 - extension - glfflags ignore - glxflags ignore - -# OpenGL 3.1 (ARB_texture_rectangle) commands - none - -# OpenGL 3.1 (SNORM texture) commands - none - -# OpenGL 3.1 (NV_primitive_restart) commands -# This is *not* an alias of PrimitiveRestartIndexNV, since it sets -# server instead of client state. - -PrimitiveRestartIndex(index) - return void - param index UInt32 in value - category VERSION_3_1 - version 3.1 - extension - glxropcode ? - glxflags ignore - offset ? - -passthru: /* OpenGL 3.1 also reuses entry points from these extensions: */ -passthru: /* ARB_copy_buffer */ -passthru: /* ARB_uniform_buffer_object */ - - -############################################################################### -############################################################################### -# -# OpenGL 3.2 commands -# -############################################################################### -############################################################################### - -# New commands in OpenGL 3.2 - -GetInteger64i_v(target, index, data) - return void - param target GLenum in value - param index UInt32 in value - param data Int64 out array [COMPSIZE(target)] - category VERSION_3_2 - version 3.2 - extension - dlflags notlistable - glxflags ignore - glfflags ignore - - -GetBufferParameteri64v(target, pname, params) - return void - param target BufferTargetARB in value - param pname BufferPNameARB in value - param params Int64 out array [COMPSIZE(pname)] - category VERSION_3_2 - dlflags notlistable - version 3.2 - extension - glxsingle ? - glxflags ignore - -# OpenGL 3.2 (ARB_depth_clamp) commands - none -# OpenGL 3.2 (ARB_fragment_coord_conventions) commands - none - -# OpenGL 3.2 (ARB_geometry_shader4) commands - -ProgramParameteri(program, pname, value) - return void - param program UInt32 in value - param pname GLenum in value - param value Int32 in value - category VERSION_3_2 - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FramebufferTexture(target, attachment, texture, level) - return void - param target GLenum in value - param attachment GLenum in value - param texture UInt32 in value - param level Int32 in value - category VERSION_3_2 - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -# FramebufferTextureLayer redeclared in ARB_framebuffer_object -# FramebufferTextureLayer(target, attachment, texture, level, layer) -# return void -# param target GLenum in value -# param attachment GLenum in value -# param texture UInt32 in value -# param level Int32 in value -# param layer Int32 in value -# category VERSION_3_2 -# version 1.2 -# extension -# glxropcode ? -# glxflags ignore -# offset ? - -FramebufferTextureFace(target, attachment, texture, level, face) - return void - param target GLenum in value - param attachment GLenum in value - param texture UInt32 in value - param level Int32 in value - param face GLenum in value - category VERSION_3_2 - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -# OpenGL 3.2 (ARB_seamless_cube_map) commands - none -# OpenGL 3.2 (ARB_vertex_array_bgra) commands - none - -passthru: /* OpenGL 3.2 also reuses entry points from these extensions: */ -passthru: /* ARB_draw_elements_base_vertex */ -passthru: /* ARB_provoking_vertex */ -passthru: /* ARB_sync */ -passthru: /* ARB_texture_multisample */ - - -############################################################################### -############################################################################### -# -# ARB extensions, in order by ARB extension number -# -############################################################################### -############################################################################### - -############################################################################### -# -# ARB Extension #1 -# ARB_multitexture commands -# -############################################################################### - -ActiveTextureARB(texture) - return void - param texture TextureUnit in value - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 197 - alias ActiveTexture - -ClientActiveTextureARB(texture) - return void - param texture TextureUnit in value - category ARB_multitexture - dlflags notlistable - glxflags ARB client-handcode client-intercept server-handcode - version 1.2 - alias ClientActiveTexture - -MultiTexCoord1dARB(target, s) - return void - param target TextureUnit in value - param s CoordD in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord1dv - -MultiTexCoord1dvARB(target, v) - return void - param target TextureUnit in value - param v CoordD in array [1] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 198 - alias MultiTexCoord1dv - -MultiTexCoord1fARB(target, s) - return void - param target TextureUnit in value - param s CoordF in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord1fv - -MultiTexCoord1fvARB(target, v) - return void - param target TextureUnit in value - param v CoordF in array [1] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 199 - alias MultiTexCoord1fv - -MultiTexCoord1iARB(target, s) - return void - param target TextureUnit in value - param s CoordI in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord1iv - -MultiTexCoord1ivARB(target, v) - return void - param target TextureUnit in value - param v CoordI in array [1] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 200 - alias MultiTexCoord1iv - -MultiTexCoord1sARB(target, s) - return void - param target TextureUnit in value - param s CoordS in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord1sv - -MultiTexCoord1svARB(target, v) - return void - param target TextureUnit in value - param v CoordS in array [1] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 201 - alias MultiTexCoord1sv - -MultiTexCoord2dARB(target, s, t) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord2dv - -MultiTexCoord2dvARB(target, v) - return void - param target TextureUnit in value - param v CoordD in array [2] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 202 - alias MultiTexCoord2dv - -MultiTexCoord2fARB(target, s, t) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord2fv - -MultiTexCoord2fvARB(target, v) - return void - param target TextureUnit in value - param v CoordF in array [2] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 203 - alias MultiTexCoord2fv - -MultiTexCoord2iARB(target, s, t) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord2iv - -MultiTexCoord2ivARB(target, v) - return void - param target TextureUnit in value - param v CoordI in array [2] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 204 - alias MultiTexCoord2iv - -MultiTexCoord2sARB(target, s, t) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord2sv - -MultiTexCoord2svARB(target, v) - return void - param target TextureUnit in value - param v CoordS in array [2] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 205 - alias MultiTexCoord2sv - -MultiTexCoord3dARB(target, s, t, r) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - param r CoordD in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord3dv - -MultiTexCoord3dvARB(target, v) - return void - param target TextureUnit in value - param v CoordD in array [3] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 206 - alias MultiTexCoord3dv - -MultiTexCoord3fARB(target, s, t, r) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - param r CoordF in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord3fv - -MultiTexCoord3fvARB(target, v) - return void - param target TextureUnit in value - param v CoordF in array [3] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 207 - alias MultiTexCoord3fv - -MultiTexCoord3iARB(target, s, t, r) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - param r CoordI in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord3iv - -MultiTexCoord3ivARB(target, v) - return void - param target TextureUnit in value - param v CoordI in array [3] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 208 - alias MultiTexCoord3iv - -MultiTexCoord3sARB(target, s, t, r) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - param r CoordS in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord3sv - -MultiTexCoord3svARB(target, v) - return void - param target TextureUnit in value - param v CoordS in array [3] - category ARB_multitexture - version 1.2 - glxflags ARB - glxropcode 209 - alias MultiTexCoord3sv - -MultiTexCoord4dARB(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordD in value - param t CoordD in value - param r CoordD in value - param q CoordD in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord4dv - -MultiTexCoord4dvARB(target, v) - return void - param target TextureUnit in value - param v CoordD in array [4] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 210 - alias MultiTexCoord4dv - -MultiTexCoord4fARB(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordF in value - param t CoordF in value - param r CoordF in value - param q CoordF in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord4fv - -MultiTexCoord4fvARB(target, v) - return void - param target TextureUnit in value - param v CoordF in array [4] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 211 - alias MultiTexCoord4fv - -MultiTexCoord4iARB(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordI in value - param t CoordI in value - param r CoordI in value - param q CoordI in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord4iv - -MultiTexCoord4ivARB(target, v) - return void - param target TextureUnit in value - param v CoordI in array [4] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 212 - alias MultiTexCoord4iv - -MultiTexCoord4sARB(target, s, t, r, q) - return void - param target TextureUnit in value - param s CoordS in value - param t CoordS in value - param r CoordS in value - param q CoordS in value - category ARB_multitexture - glxflags ARB - version 1.2 - vectorequiv MultiTexCoord4sv - -MultiTexCoord4svARB(target, v) - return void - param target TextureUnit in value - param v CoordS in array [4] - category ARB_multitexture - glxflags ARB - version 1.2 - glxropcode 213 - alias MultiTexCoord4sv - -################################################################################ -# -# ARB Extension #2 - GLX_ARB_get_proc_address -# -############################################################################### - -################################################################################ -# -# ARB Extension #3 -# ARB_transpose_matrix commands -# -############################################################################### - -LoadTransposeMatrixfARB(m) - return void - param m Float32 in array [16] - category ARB_transpose_matrix - glxflags ARB client-handcode client-intercept server-handcode - version 1.2 - alias LoadTransposeMatrixf - -LoadTransposeMatrixdARB(m) - return void - param m Float64 in array [16] - category ARB_transpose_matrix - glxflags ARB client-handcode client-intercept server-handcode - version 1.2 - alias LoadTransposeMatrixd - -MultTransposeMatrixfARB(m) - return void - param m Float32 in array [16] - category ARB_transpose_matrix - glxflags ARB client-handcode client-intercept server-handcode - version 1.2 - alias MultTransposeMatrixf - -MultTransposeMatrixdARB(m) - return void - param m Float64 in array [16] - category ARB_transpose_matrix - glxflags ARB client-handcode client-intercept server-handcode - version 1.2 - alias MultTransposeMatrixd - -################################################################################ -# -# ARB Extension #4 - WGL_ARB_buffer_region -# -############################################################################### - -################################################################################ -# -# ARB Extension #5 -# ARB_multisample commands -# -############################################################################### - -SampleCoverageARB(value, invert) - return void - param value ClampedFloat32 in value - param invert Boolean in value - category ARB_multisample - glxflags ARB - version 1.2 - alias SampleCoverage - -################################################################################ -# -# ARB Extension #6 -# ARB_texture_env_add commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_env_add - -################################################################################ -# -# ARB Extension #7 -# ARB_texture_cube_map commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_cube_map - -################################################################################ -# -# ARB Extension #8 - WGL_ARB_extensions_string -# ARB Extension #9 - WGL_ARB_pixel_format commands -# ARB Extension #10 - WGL_ARB_make_current_read commands -# ARB Extension #11 - WGL_ARB_pbuffer -# -############################################################################### - -################################################################################ -# -# ARB Extension #12 -# ARB_texture_compression commands -# -############################################################################### - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage3DARB(target, level, internalformat, width, height, depth, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 216 - alias CompressedTexImage3D - wglflags client-handcode server-handcode - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage2DARB(target, level, internalformat, width, height, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 215 - alias CompressedTexImage2D - wglflags client-handcode server-handcode - -# Arguably TexelInternalFormat, not PixelInternalFormat -CompressedTexImage1DARB(target, level, internalformat, width, border, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 214 - alias CompressedTexImage1D - wglflags client-handcode server-handcode - -CompressedTexSubImage3DARB(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 219 - alias CompressedTexSubImage3D - wglflags client-handcode server-handcode - -CompressedTexSubImage2DARB(target, level, xoffset, yoffset, width, height, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 218 - alias CompressedTexSubImage2D - wglflags client-handcode server-handcode - -CompressedTexSubImage1DARB(target, level, xoffset, width, format, imageSize, data) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param data CompressedTextureARB in array [imageSize] - category ARB_texture_compression - dlflags handcode - glxflags ARB client-handcode server-handcode - version 1.2 - glxropcode 217 - alias CompressedTexSubImage1D - wglflags client-handcode server-handcode - -GetCompressedTexImageARB(target, level, img) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param img CompressedTextureARB out array [COMPSIZE(target/level)] - category ARB_texture_compression - dlflags notlistable - glxflags ARB client-handcode server-handcode - version 1.2 - glxsingle 160 - alias GetCompressedTexImage - wglflags client-handcode server-handcode - -################################################################################ -# -# ARB Extension #13 -# ARB_texture_border_clamp commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_border_clamp - -############################################################################### -# -# ARB Extension #14 -# ARB_point_parameters commands -# -############################################################################### - -PointParameterfARB(pname, param) - return void - param pname PointParameterNameARB in value - param param CheckedFloat32 in value - category ARB_point_parameters - version 1.0 - glxflags ARB - glxropcode 2065 - extension - alias PointParameterf - -PointParameterfvARB(pname, params) - return void - param pname PointParameterNameARB in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category ARB_point_parameters - version 1.0 - glxflags ARB - glxropcode 2066 - extension - alias PointParameterfv - -################################################################################ -# -# ARB Extension #15 -# ARB_vertex_blend commands -# -############################################################################### - -WeightbvARB(size, weights) - return void - param size Int32 in value - param weights Int8 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 220 - glxflags ignore - offset ? - -WeightsvARB(size, weights) - return void - param size Int32 in value - param weights Int16 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 222 - glxflags ignore - offset ? - -WeightivARB(size, weights) - return void - param size Int32 in value - param weights Int32 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 224 - glxflags ignore - offset ? - -WeightfvARB(size, weights) - return void - param size Int32 in value - param weights Float32 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 227 - glxflags ignore - offset ? - -WeightdvARB(size, weights) - return void - param size Int32 in value - param weights Float64 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 228 - glxflags ignore - offset ? - -WeightubvARB(size, weights) - return void - param size Int32 in value - param weights UInt8 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 221 - glxflags ignore - offset ? - -WeightusvARB(size, weights) - return void - param size Int32 in value - param weights UInt16 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 223 - glxflags ignore - offset ? - -WeightuivARB(size, weights) - return void - param size Int32 in value - param weights UInt32 in array [size] - category ARB_vertex_blend - version 1.1 - extension - glxropcode 225 - glxflags ignore - offset ? - -WeightPointerARB(size, type, stride, pointer) - return void - param size Int32 in value - param type WeightPointerTypeARB in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category ARB_vertex_blend - version 1.1 - extension - dlflags notlistable - glxflags ignore - offset ? - -VertexBlendARB(count) - return void - param count Int32 in value - category ARB_vertex_blend - version 1.1 - extension - glxropcode 226 - glxflags ignore - offset ? - -################################################################################ -# -# ARB Extension #16 -# ARB_matrix_palette commands -# -############################################################################### - -CurrentPaletteMatrixARB(index) - return void - param index Int32 in value - category ARB_matrix_palette - version 1.1 - extension - glxropcode 4329 - glxflags ignore - offset ? - -MatrixIndexubvARB(size, indices) - return void - param size Int32 in value - param indices UInt8 in array [size] - category ARB_matrix_palette - version 1.1 - extension - glxropcode 4326 - glxflags ignore - offset ? - -MatrixIndexusvARB(size, indices) - return void - param size Int32 in value - param indices UInt16 in array [size] - category ARB_matrix_palette - version 1.1 - extension - glxropcode 4327 - glxflags ignore - offset ? - -MatrixIndexuivARB(size, indices) - return void - param size Int32 in value - param indices UInt32 in array [size] - category ARB_matrix_palette - version 1.1 - extension - glxropcode 4328 - glxflags ignore - offset ? - -MatrixIndexPointerARB(size, type, stride, pointer) - return void - param size Int32 in value - param type MatrixIndexPointerTypeARB in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category ARB_matrix_palette - version 1.1 - extension - dlflags notlistable - glxflags ignore - offset ? - -################################################################################ -# -# ARB Extension #17 -# ARB_texture_env_combine commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_env_combine - -################################################################################ -# -# ARB Extension #18 -# ARB_texture_env_crossbar commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_env_crossbar - -################################################################################ -# -# ARB Extension #19 -# ARB_texture_env_dot3 commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_env_dot3 - -############################################################################### -# -# ARB Extension #20 - WGL_ARB_render_texture -# -############################################################################### - -############################################################################### -# -# ARB Extension #21 -# ARB_texture_mirrored_repeat commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_mirrored_repeat - -############################################################################### -# -# ARB Extension #22 -# ARB_depth_texture commands -# -############################################################################### - -# (none) -newcategory: ARB_depth_texture - -############################################################################### -# -# ARB Extension #23 -# ARB_shadow commands -# -############################################################################### - -# (none) -newcategory: ARB_shadow - -############################################################################### -# -# ARB Extension #24 -# ARB_shadow_ambient commands -# -############################################################################### - -# (none) -newcategory: ARB_shadow_ambient - -############################################################################### -# -# ARB Extension #25 -# ARB_window_pos commands -# Note: all entry points use glxropcode ropcode 230, with 3 float parameters -# -############################################################################### - -WindowPos2dARB(x, y) - return void - param x CoordD in value - param y CoordD in value - category ARB_window_pos - vectorequiv WindowPos2dvARB - version 1.0 - alias WindowPos2d - -WindowPos2dvARB(v) - return void - param v CoordD in array [2] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos2dv - -WindowPos2fARB(x, y) - return void - param x CoordF in value - param y CoordF in value - category ARB_window_pos - vectorequiv WindowPos2fvARB - version 1.0 - alias WindowPos2f - -WindowPos2fvARB(v) - return void - param v CoordF in array [2] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos2fv - -WindowPos2iARB(x, y) - return void - param x CoordI in value - param y CoordI in value - category ARB_window_pos - vectorequiv WindowPos2ivARB - version 1.0 - alias WindowPos2i - -WindowPos2ivARB(v) - return void - param v CoordI in array [2] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos2iv - -WindowPos2sARB(x, y) - return void - param x CoordS in value - param y CoordS in value - category ARB_window_pos - vectorequiv WindowPos2svARB - version 1.0 - alias WindowPos2s - -WindowPos2svARB(v) - return void - param v CoordS in array [2] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos2sv - -WindowPos3dARB(x, y, z) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - vectorequiv WindowPos3dvARB - category ARB_window_pos - version 1.0 - alias WindowPos3d - -WindowPos3dvARB(v) - return void - param v CoordD in array [3] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos3dv - -WindowPos3fARB(x, y, z) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - category ARB_window_pos - vectorequiv WindowPos3fvARB - version 1.0 - alias WindowPos3f - -WindowPos3fvARB(v) - return void - param v CoordF in array [3] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos3fv - -WindowPos3iARB(x, y, z) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - category ARB_window_pos - vectorequiv WindowPos3ivARB - version 1.0 - alias WindowPos3i - -WindowPos3ivARB(v) - return void - param v CoordI in array [3] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos3iv - -WindowPos3sARB(x, y, z) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - category ARB_window_pos - vectorequiv WindowPos3svARB - version 1.0 - alias WindowPos3s - -WindowPos3svARB(v) - return void - param v CoordS in array [3] - category ARB_window_pos - version 1.0 - glxropcode 230 - glxflags client-handcode server-handcode - alias WindowPos3sv - -############################################################################### -# -# ARB Extension #26 -# ARB_vertex_program commands -# -############################################################################### - -VertexAttrib1dARB(index, x) - return void - param index UInt32 in value - param x Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib1dvARB - extension soft WINSOFT NV10 - alias VertexAttrib1d - -VertexAttrib1dvARB(index, v) - return void - param index UInt32 in value - param v Float64 in array [1] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4197 - alias VertexAttrib1dv - -VertexAttrib1fARB(index, x) - return void - param index UInt32 in value - param x Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib1fvARB - extension soft WINSOFT NV10 - alias VertexAttrib1f - -VertexAttrib1fvARB(index, v) - return void - param index UInt32 in value - param v Float32 in array [1] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4193 - alias VertexAttrib1fv - -VertexAttrib1sARB(index, x) - return void - param index UInt32 in value - param x Int16 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib1svARB - extension soft WINSOFT NV10 - alias VertexAttrib1s - -VertexAttrib1svARB(index, v) - return void - param index UInt32 in value - param v Int16 in array [1] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4189 - alias VertexAttrib1sv - -VertexAttrib2dARB(index, x, y) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib2dvARB - extension soft WINSOFT NV10 - alias VertexAttrib2d - -VertexAttrib2dvARB(index, v) - return void - param index UInt32 in value - param v Float64 in array [2] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4198 - alias VertexAttrib2dv - -VertexAttrib2fARB(index, x, y) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib2fvARB - extension soft WINSOFT NV10 - alias VertexAttrib2f - -VertexAttrib2fvARB(index, v) - return void - param index UInt32 in value - param v Float32 in array [2] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4194 - alias VertexAttrib2fv - -VertexAttrib2sARB(index, x, y) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib2svARB - extension soft WINSOFT NV10 - alias VertexAttrib2s - -VertexAttrib2svARB(index, v) - return void - param index UInt32 in value - param v Int16 in array [2] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4190 - alias VertexAttrib2sv - -VertexAttrib3dARB(index, x, y, z) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib3dvARB - extension soft WINSOFT NV10 - alias VertexAttrib3d - -VertexAttrib3dvARB(index, v) - return void - param index UInt32 in value - param v Float64 in array [3] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4199 - alias VertexAttrib3dv - -VertexAttrib3fARB(index, x, y, z) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib3fvARB - extension soft WINSOFT NV10 - alias VertexAttrib3f - -VertexAttrib3fvARB(index, v) - return void - param index UInt32 in value - param v Float32 in array [3] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4195 - alias VertexAttrib3fv - -VertexAttrib3sARB(index, x, y, z) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib3svARB - extension soft WINSOFT NV10 - alias VertexAttrib3s - -VertexAttrib3svARB(index, v) - return void - param index UInt32 in value - param v Int16 in array [3] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4191 - alias VertexAttrib3sv - -VertexAttrib4NbvARB(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Nbv - -VertexAttrib4NivARB(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Niv - -VertexAttrib4NsvARB(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Nsv - -VertexAttrib4NubARB(index, x, y, z, w) - return void - param index UInt32 in value - param x UInt8 in value - param y UInt8 in value - param z UInt8 in value - param w UInt8 in value - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Nub - -VertexAttrib4NubvARB(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4201 - alias VertexAttrib4Nubv - -VertexAttrib4NuivARB(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Nuiv - -VertexAttrib4NusvARB(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4Nusv - -VertexAttrib4bvARB(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4bv - -VertexAttrib4dARB(index, x, y, z, w) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib4dvARB - extension soft WINSOFT NV10 - alias VertexAttrib4d - -VertexAttrib4dvARB(index, v) - return void - param index UInt32 in value - param v Float64 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4200 - alias VertexAttrib4dv - -VertexAttrib4fARB(index, x, y, z, w) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib4fvARB - extension soft WINSOFT NV10 - alias VertexAttrib4f - -VertexAttrib4fvARB(index, v) - return void - param index UInt32 in value - param v Float32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4196 - alias VertexAttrib4fv - -VertexAttrib4ivARB(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4iv - -VertexAttrib4sARB(index, x, y, z, w) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - param w Int16 in value - category ARB_vertex_program - version 1.3 - vectorequiv VertexAttrib4svARB - extension soft WINSOFT NV10 - alias VertexAttrib4s - -VertexAttrib4svARB(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4192 - alias VertexAttrib4sv - -VertexAttrib4ubvARB(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4ubv - -VertexAttrib4uivARB(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4uiv - -VertexAttrib4usvARB(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttrib4usv - -VertexAttribPointerARB(index, size, type, normalized, stride, pointer) - return void - param index UInt32 in value - param size Int32 in value - param type VertexAttribPointerTypeARB in value - param normalized Boolean in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias VertexAttribPointer - -EnableVertexAttribArrayARB(index) - return void - param index UInt32 in value - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias EnableVertexAttribArray - -DisableVertexAttribArrayARB(index) - return void - param index UInt32 in value - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - alias DisableVertexAttribArray - -ProgramStringARB(target, format, len, string) - return void - param target ProgramTargetARB in value - param format ProgramFormatARB in value - param len SizeI in value - param string Void in array [len] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 667 - -BindProgramARB(target, program) - return void - param target ProgramTargetARB in value - param program UInt32 in value - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxropcode 4180 - offset 579 - -DeleteProgramsARB(n, programs) - return void - param n SizeI in value - param programs UInt32 in array [n] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1294 - offset 580 - -GenProgramsARB(n, programs) - return void - param n SizeI in value - param programs UInt32 out array [n] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1295 - offset 582 - -ProgramEnvParameter4dARB(target, index, x, y, z, w) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv ProgramEnvParameter4dvARB - extension soft WINSOFT NV10 - glxflags ignore - offset 668 - -ProgramEnvParameter4dvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float64 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 669 - -ProgramEnvParameter4fARB(target, index, x, y, z, w) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv ProgramEnvParameter4fvARB - extension soft WINSOFT NV10 - glxflags ignore - offset 670 - -ProgramEnvParameter4fvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 671 - -ProgramLocalParameter4dARB(target, index, x, y, z, w) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category ARB_vertex_program - version 1.3 - vectorequiv ProgramLocalParameter4dvARB - extension soft WINSOFT NV10 - glxflags ignore - offset 672 - -ProgramLocalParameter4dvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float64 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 673 - -ProgramLocalParameter4fARB(target, index, x, y, z, w) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category ARB_vertex_program - version 1.3 - vectorequiv ProgramLocalParameter4fvARB - extension soft WINSOFT NV10 - glxflags ignore - offset 674 - -ProgramLocalParameter4fvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float32 in array [4] - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 675 - -GetProgramEnvParameterdvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float64 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 676 - -GetProgramEnvParameterfvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float32 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 677 - -GetProgramLocalParameterdvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float64 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 678 - -GetProgramLocalParameterfvARB(target, index, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param params Float32 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 679 - -GetProgramivARB(target, pname, params) - return void - param target ProgramTargetARB in value - param pname ProgramPropertyARB in value - param params Int32 out array [1] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 680 - -GetProgramStringARB(target, pname, string) - return void - param target ProgramTargetARB in value - param pname ProgramStringPropertyARB in value - param string Void out array [COMPSIZE(target,pname)] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - offset 681 - -GetVertexAttribdvARB(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Float64 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1301 - alias GetVertexAttribdv - -GetVertexAttribfvARB(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Float32 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1302 - alias GetVertexAttribfv - -GetVertexAttribivARB(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribPropertyARB in value - param params Int32 out array [4] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1303 - alias GetVertexAttribiv - -GetVertexAttribPointervARB(index, pname, pointer) - return void - param index UInt32 in value - param pname VertexAttribPointerPropertyARB in value - param pointer VoidPointer out array [1] - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxflags ignore - alias GetVertexAttribPointerv - -IsProgramARB(program) - return Boolean - param program UInt32 in value - dlflags notlistable - category ARB_vertex_program - version 1.3 - extension soft WINSOFT NV10 - glxvendorpriv 1304 - alias IsProgram - - -############################################################################### -# -# ARB Extension #27 -# ARB_fragment_program commands -# -############################################################################### - -# All ARB_fragment_program entry points are shared with ARB_vertex_program, -# and are only included in that #define block, for now. -newcategory: ARB_fragment_program -passthru: /* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ - -############################################################################### -# -# ARB Extension #28 -# ARB_vertex_buffer_object commands -# -############################################################################### - -BindBufferARB(target, buffer) - return void - param target BufferTargetARB in value - param buffer UInt32 in value - category ARB_vertex_buffer_object - version 1.2 - extension - alias BindBuffer - -DeleteBuffersARB(n, buffers) - return void - param n SizeI in value - param buffers ConstUInt32 in array [n] - category ARB_vertex_buffer_object - version 1.2 - extension - alias DeleteBuffers - -GenBuffersARB(n, buffers) - return void - param n SizeI in value - param buffers UInt32 out array [n] - category ARB_vertex_buffer_object - version 1.2 - extension - alias GenBuffers - -IsBufferARB(buffer) - return Boolean - param buffer UInt32 in value - category ARB_vertex_buffer_object - version 1.2 - extension - alias IsBuffer - -BufferDataARB(target, size, data, usage) - return void - param target BufferTargetARB in value - param size BufferSizeARB in value - param data ConstVoid in array [size] - param usage BufferUsageARB in value - category ARB_vertex_buffer_object - version 1.2 - extension - alias BufferData - -BufferSubDataARB(target, offset, size, data) - return void - param target BufferTargetARB in value - param offset BufferOffsetARB in value - param size BufferSizeARB in value - param data ConstVoid in array [size] - category ARB_vertex_buffer_object - version 1.2 - extension - alias BufferSubData - -GetBufferSubDataARB(target, offset, size, data) - return void - param target BufferTargetARB in value - param offset BufferOffsetARB in value - param size BufferSizeARB in value - param data Void out array [size] - category ARB_vertex_buffer_object - dlflags notlistable - version 1.2 - extension - alias GetBufferSubData - -MapBufferARB(target, access) - return VoidPointer - param target BufferTargetARB in value - param access BufferAccessARB in value - category ARB_vertex_buffer_object - version 1.2 - extension - alias MapBuffer - -UnmapBufferARB(target) - return Boolean - param target BufferTargetARB in value - category ARB_vertex_buffer_object - version 1.2 - extension - alias UnmapBuffer - -GetBufferParameterivARB(target, pname, params) - return void - param target BufferTargetARB in value - param pname BufferPNameARB in value - param params Int32 out array [COMPSIZE(pname)] - category ARB_vertex_buffer_object - dlflags notlistable - version 1.2 - extension - alias GetBufferParameteriv - -GetBufferPointervARB(target, pname, params) - return void - param target BufferTargetARB in value - param pname BufferPointerNameARB in value - param params VoidPointer out array [1] - category ARB_vertex_buffer_object - dlflags notlistable - version 1.2 - extension - alias GetBufferPointerv - -############################################################################### -# -# ARB Extension #29 -# ARB_occlusion_query commands -# -############################################################################### - -GenQueriesARB(n, ids) - return void - param n SizeI in value - param ids UInt32 out array [n] - category ARB_occlusion_query - version 1.5 - extension - alias GenQueries - -DeleteQueriesARB(n, ids) - return void - param n SizeI in value - param ids UInt32 in array [n] - category ARB_occlusion_query - version 1.5 - extension - alias DeleteQueries - -IsQueryARB(id) - return Boolean - param id UInt32 in value - category ARB_occlusion_query - version 1.5 - extension - alias IsQuery - -BeginQueryARB(target, id) - return void - param target GLenum in value - param id UInt32 in value - category ARB_occlusion_query - version 1.5 - extension - alias BeginQuery - -EndQueryARB(target) - return void - param target GLenum in value - category ARB_occlusion_query - version 1.5 - extension - alias EndQuery - -GetQueryivARB(target, pname, params) - return void - param target GLenum in value - param pname GLenum in value - param params Int32 out array [pname] - category ARB_occlusion_query - dlflags notlistable - version 1.5 - extension - alias GetQueryiv - -GetQueryObjectivARB(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params Int32 out array [pname] - category ARB_occlusion_query - dlflags notlistable - version 1.5 - extension - alias GetQueryObjectiv - -GetQueryObjectuivARB(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params UInt32 out array [pname] - category ARB_occlusion_query - dlflags notlistable - version 1.5 - extension - alias GetQueryObjectuiv - -############################################################################### -# -# ARB Extension #30 -# ARB_shader_objects commands -# -############################################################################### - -DeleteObjectARB(obj) - return void - param obj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetHandleARB(pname) - return handleARB - param pname GLenum in value - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -DetachObjectARB(containerObj, attachedObj) - return void - param containerObj handleARB in value - param attachedObj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias DetachShader - -CreateShaderObjectARB(shaderType) - return handleARB - param shaderType GLenum in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias CreateShader - -ShaderSourceARB(shaderObj, count, string, length) - return void - param shaderObj handleARB in value - param count SizeI in value - param string charPointerARB in array [count] - param length Int32 in array [1] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias ShaderSource - -CompileShaderARB(shaderObj) - return void - param shaderObj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias CompileShader - -CreateProgramObjectARB() - return handleARB - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias CreateProgram - -AttachObjectARB(containerObj, obj) - return void - param containerObj handleARB in value - param obj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias AttachShader - -LinkProgramARB(programObj) - return void - param programObj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias LinkProgram - -UseProgramObjectARB(programObj) - return void - param programObj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias UseProgram - -ValidateProgramARB(programObj) - return void - param programObj handleARB in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias ValidateProgram - -Uniform1fARB(location, v0) - return void - param location Int32 in value - param v0 Float32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform1f - -Uniform2fARB(location, v0, v1) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform2f - -Uniform3fARB(location, v0, v1, v2) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform3f - -Uniform4fARB(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - param v3 Float32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform4f - -Uniform1iARB(location, v0) - return void - param location Int32 in value - param v0 Int32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform1i - -Uniform2iARB(location, v0, v1) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform2i - -Uniform3iARB(location, v0, v1, v2) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform3i - -Uniform4iARB(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - param v3 Int32 in value - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform4i - -Uniform1fvARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform1fv - -Uniform2fvARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform2fv - -Uniform3fvARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform3fv - -Uniform4fvARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform4fv - -Uniform1ivARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform1iv - -Uniform2ivARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform2iv - -Uniform3ivARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform3iv - -Uniform4ivARB(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias Uniform4iv - -UniformMatrix2fvARB(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias UniformMatrix2fv - -UniformMatrix3fvARB(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias UniformMatrix3fv - -UniformMatrix4fvARB(location, count, transpose, value) - return void - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count] - category ARB_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - alias UniformMatrix4fv - -GetObjectParameterfvARB(obj, pname, params) - return void - param obj handleARB in value - param pname GLenum in value - param params Float32 out array [pname] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetObjectParameterivARB(obj, pname, params) - return void - param obj handleARB in value - param pname GLenum in value - param params Int32 out array [pname] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetInfoLogARB(obj, maxLength, length, infoLog) - return void - param obj handleARB in value - param maxLength SizeI in value - param length SizeI out array [1] - param infoLog charARB out array [length] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetAttachedObjectsARB(containerObj, maxCount, count, obj) - return void - param containerObj handleARB in value - param maxCount SizeI in value - param count SizeI out array [1] - param obj handleARB out array [count] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetAttachedShaders - -GetUniformLocationARB(programObj, name) - return Int32 - param programObj handleARB in value - param name charARB in array [] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetUniformLocation - -GetActiveUniformARB(programObj, index, maxLength, length, size, type, name) - return void - param programObj handleARB in value - param index UInt32 in value - param maxLength SizeI in value - param length SizeI out array [1] - param size Int32 out array [1] - param type GLenum out array [1] - param name charARB out array [] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetActiveUniform - -GetUniformfvARB(programObj, location, params) - return void - param programObj handleARB in value - param location Int32 in value - param params Float32 out array [location] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetUniformfv - -GetUniformivARB(programObj, location, params) - return void - param programObj handleARB in value - param location Int32 in value - param params Int32 out array [location] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetUniformiv - -GetShaderSourceARB(obj, maxLength, length, source) - return void - param obj handleARB in value - param maxLength SizeI in value - param length SizeI out array [1] - param source charARB out array [length] - category ARB_shader_objects - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetShaderSource - - -############################################################################### -# -# ARB Extension #31 -# ARB_vertex_shader commands -# -############################################################################### - -BindAttribLocationARB(programObj, index, name) - return void - param programObj handleARB in value - param index UInt32 in value - param name charARB in array [] - category ARB_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - alias BindAttribLocation - -GetActiveAttribARB(programObj, index, maxLength, length, size, type, name) - return void - param programObj handleARB in value - param index UInt32 in value - param maxLength SizeI in value - param length SizeI out array [1] - param size Int32 out array [1] - param type GLenum out array [1] - param name charARB out array [] - category ARB_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetActiveAttrib - -GetAttribLocationARB(programObj, name) - return Int32 - param programObj handleARB in value - param name charARB in array [] - category ARB_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - alias GetAttribLocation - -############################################################################### -# -# ARB Extension #32 -# ARB_fragment_shader commands -# -############################################################################### - -# (none) -newcategory: ARB_fragment_shader - -############################################################################### -# -# ARB Extension #33 -# ARB_shading_language_100 commands -# -############################################################################### - -# (none) -newcategory: ARB_shading_language_100 - -############################################################################### -# -# ARB Extension #34 -# ARB_texture_non_power_of_two commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_non_power_of_two - -############################################################################### -# -# ARB Extension #35 -# ARB_point_sprite commands -# -############################################################################### - -# (none) -newcategory: ARB_point_sprite - -############################################################################### -# -# ARB Extension #36 -# ARB_fragment_program_shadow commands -# -############################################################################### - -# (none) -newcategory: ARB_fragment_program_shadow - -############################################################################### -# -# ARB Extension #37 -# ARB_draw_buffers commands -# -############################################################################### - -DrawBuffersARB(n, bufs) - return void - param n SizeI in value - param bufs DrawBufferModeATI in array [n] - category ARB_draw_buffers - version 1.5 - extension - alias DrawBuffers - -############################################################################### -# -# ARB Extension #38 -# ARB_texture_rectangle commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_rectangle - -############################################################################### -# -# ARB Extension #39 -# ARB_color_buffer_float commands -# -############################################################################### - -ClampColorARB(target, clamp) - return void - param target ClampColorTargetARB in value - param clamp ClampColorModeARB in value - category ARB_color_buffer_float - version 1.5 - extension - glxropcode 234 - glxflags ignore - alias ClampColor - -############################################################################### -# -# ARB Extension #40 -# ARB_half_float_pixel commands -# -############################################################################### - -# (none) -newcategory: ARB_half_float_pixel - -############################################################################### -# -# ARB Extension #41 -# ARB_texture_float commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_float - -############################################################################### -# -# ARB Extension #42 -# ARB_pixel_buffer_object commands -# -############################################################################### - -# (none) -newcategory: ARB_pixel_buffer_object - -############################################################################### -# -# ARB Extension #43 -# ARB_depth_buffer_float commands (also OpenGL 3.0) -# -############################################################################### - -# (none) -newcategory: ARB_depth_buffer_float - -############################################################################### -# -# ARB Extension #44 -# ARB_draw_instanced commands -# -############################################################################### - -DrawArraysInstancedARB(mode, first, count, primcount) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - param primcount SizeI in value - category ARB_draw_instanced - version 2.0 - extension soft WINSOFT - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - alias DrawArraysInstanced - -DrawElementsInstancedARB(mode, count, type, indices, primcount) - return void - param mode BeginMode in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param primcount SizeI in value - category ARB_draw_instanced - version 2.0 - extension soft WINSOFT - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - alias DrawElementsInstanced - -############################################################################### -# -# ARB Extension #45 -# ARB_framebuffer_object commands (also OpenGL 3.0) -# -############################################################################### - -# Promoted from EXT_framebuffer_object -IsRenderbuffer(renderbuffer) - return Boolean - param renderbuffer UInt32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxvendorpriv 1422 - glxflags ignore - offset ? - -BindRenderbuffer(target, renderbuffer) - return void - param target RenderbufferTarget in value - param renderbuffer UInt32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4316 - glxflags ignore - offset ? - -DeleteRenderbuffers(n, renderbuffers) - return void - param n SizeI in value - param renderbuffers UInt32 in array [n] - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4317 - glxflags ignore - offset ? - -GenRenderbuffers(n, renderbuffers) - return void - param n SizeI in value - param renderbuffers UInt32 out array [n] - category ARB_framebuffer_object - version 3.0 - extension - glxvendorpriv 1423 - glxflags ignore - offset ? - -RenderbufferStorage(target, internalformat, width, height) - return void - param target RenderbufferTarget in value - param internalformat GLenum in value - param width SizeI in value - param height SizeI in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4318 - glxflags ignore - offset ? - -GetRenderbufferParameteriv(target, pname, params) - return void - param target RenderbufferTarget in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category ARB_framebuffer_object - dlflags notlistable - version 3.0 - extension - glxvendorpriv 1424 - glxflags ignore - offset ? - -IsFramebuffer(framebuffer) - return Boolean - param framebuffer UInt32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxvendorpriv 1425 - glxflags ignore - offset ? - -BindFramebuffer(target, framebuffer) - return void - param target FramebufferTarget in value - param framebuffer UInt32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4319 - glxflags ignore - offset ? - -DeleteFramebuffers(n, framebuffers) - return void - param n SizeI in value - param framebuffers UInt32 in array [n] - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4320 - glxflags ignore - offset ? - -GenFramebuffers(n, framebuffers) - return void - param n SizeI in value - param framebuffers UInt32 out array [n] - category ARB_framebuffer_object - version 3.0 - extension - glxvendorpriv 1426 - glxflags ignore - offset ? - -CheckFramebufferStatus(target) - return GLenum - param target FramebufferTarget in value - category ARB_framebuffer_object - version 3.0 - extension - glxvendorpriv 1427 - glxflags ignore - offset ? - -FramebufferTexture1D(target, attachment, textarget, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4321 - glxflags ignore - offset ? - -FramebufferTexture2D(target, attachment, textarget, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4322 - glxflags ignore - offset ? - -FramebufferTexture3D(target, attachment, textarget, texture, level, zoffset) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - param zoffset Int32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4323 - glxflags ignore - offset ? - -FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param renderbuffertarget RenderbufferTarget in value - param renderbuffer UInt32 in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4324 - glxflags ignore - offset ? - -GetFramebufferAttachmentParameteriv(target, attachment, pname, params) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category ARB_framebuffer_object - dlflags notlistable - version 3.0 - extension - glxvendorpriv 1428 - glxflags ignore - offset ? - -GenerateMipmap(target) - return void - param target GLenum in value - category ARB_framebuffer_object - version 3.0 - extension - glxropcode 4325 - glxflags ignore - offset ? - -# Promoted from EXT_framebuffer_blit -BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) - return void - param srcX0 Int32 in value - param srcY0 Int32 in value - param srcX1 Int32 in value - param srcY1 Int32 in value - param dstX0 Int32 in value - param dstY0 Int32 in value - param dstX1 Int32 in value - param dstY1 Int32 in value - param mask ClearBufferMask in value - param filter GLenum in value - category ARB_framebuffer_object - version 3.0 - glxropcode 4330 - offset ? - -# Promoted from EXT_framebuffer_multisample -RenderbufferStorageMultisample(target, samples, internalformat, width, height) - return void - param target GLenum in value - param samples SizeI in value - param internalformat GLenum in value - param width SizeI in value - param height SizeI in value - category ARB_framebuffer_object - version 3.0 - glxropcode 4331 - offset ? - -# Promoted from ARB_geometry_shader4 -FramebufferTextureLayer(target, attachment, texture, level, layer) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param layer CheckedInt32 in value - category ARB_framebuffer_object - version 3.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - - -############################################################################### -# -# ARB Extension #46 -# ARB_framebuffer_sRGB commands (also OpenGL 3.0) -# -############################################################################### - -# (none) -newcategory: ARB_framebuffer_sRGB - -############################################################################### -# -# ARB Extension #47 -# ARB_geometry_shader4 commands -# -############################################################################### - -ProgramParameteriARB(program, pname, value) - return void - param program UInt32 in value - param pname ProgramParameterPName in value - param value Int32 in value - category ARB_geometry_shader4 - version 3.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - -FramebufferTextureARB(target, attachment, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - category ARB_geometry_shader4 - version 3.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - -FramebufferTextureLayerARB(target, attachment, texture, level, layer) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param layer CheckedInt32 in value - category ARB_geometry_shader4 - version 3.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - alias FramebufferTextureLayer - -FramebufferTextureFaceARB(target, attachment, texture, level, face) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param face TextureTarget in value - category ARB_geometry_shader4 - version 3.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - -############################################################################### -# -# ARB Extension #48 -# ARB_half_float_vertex commands (also OpenGL 3.0) -# -############################################################################### - -# (none) -newcategory: ARB_half_float_vertex - -############################################################################### -# -# ARB Extension #49 -# ARB_instanced_arrays commands -# -############################################################################### - -VertexAttribDivisorARB(index, divisor) - return void - param index UInt32 in value - param divisor UInt32 in value - category ARB_instanced_arrays - version 2.0 - extension - glfflags ignore - glxflags ignore - -############################################################################### -# -# ARB Extension #50 -# ARB_map_buffer_range commands (also OpenGL 3.0) -# -############################################################################### - -MapBufferRange(target, offset, length, access) - return VoidPointer - param target BufferTargetARB in value - param offset BufferOffset in value - param length BufferSize in value - param access BufferAccessMask in value - category ARB_map_buffer_range - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -# Promoted from APPLE_flush_buffer_range -FlushMappedBufferRange(target, offset, length) - return void - param target BufferTargetARB in value - param offset BufferOffset in value - param length BufferSize in value - category ARB_map_buffer_range - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #51 -# ARB_texture_buffer_object commands -# -############################################################################### - -TexBufferARB(target, internalformat, buffer) - return void - param target TextureTarget in value - param internalformat GLenum in value - param buffer UInt32 in value - category ARB_texture_buffer_object - version 3.0 - extension soft WINSOFT NV50 - glfflags ignore - alias TexBuffer - -############################################################################### -# -# ARB Extension #52 -# ARB_texture_compression_rgtc commands (also OpenGL 3.0) -# -############################################################################### - -# (none) -newcategory: ARB_texture_compression_rgtc - -############################################################################### -# -# ARB Extension #53 -# ARB_texture_rg commands (also OpenGL 3.0) -# -############################################################################### - -# (none) -newcategory: ARB_texture_rg - -############################################################################### -# -# ARB Extension #54 -# ARB_vertex_array_object commands (also OpenGL 3.0) -# -############################################################################### - -# Promoted from APPLE_vertex_array_object -BindVertexArray(array) - return void - param array UInt32 in value - category ARB_vertex_array_object - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteVertexArrays(n, arrays) - return void - param n SizeI in value - param arrays UInt32 in array [n] - category ARB_vertex_array_object - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -GenVertexArrays(n, arrays) - return void - param n SizeI in value - param arrays UInt32 out array [n] - category ARB_vertex_array_object - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -IsVertexArray(array) - return Boolean - param array UInt32 in value - category ARB_vertex_array_object - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #55 - WGL_ARB_create_context -# ARB Extension #56 - GLX_ARB_create_context -# -############################################################################### - -############################################################################### -# -# ARB Extension #57 -# ARB_uniform_buffer_object commands -# -############################################################################### - -GetUniformIndices(program, uniformCount, uniformNames, uniformIndices) - return void - param program UInt32 in value - param uniformCount SizeI in value - param uniformNames CharPointer in array [COMPSIZE(uniformCount)] - param uniformIndices UInt32 out array [COMPSIZE(uniformCount)] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params) - return void - param program UInt32 in value - param uniformCount SizeI in value - param uniformIndices UInt32 in array [COMPSIZE(uniformCount)] - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetActiveUniformName(program, uniformIndex, bufSize, length, uniformName) - return void - param program UInt32 in value - param uniformIndex UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param uniformName Char out array [bufSize] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetUniformBlockIndex(program, uniformBlockName) - return UInt32 - param program UInt32 in value - param uniformBlockName Char in array [COMPSIZE()] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetActiveUniformBlockiv(program, uniformBlockIndex, pname, params) - return void - param program UInt32 in value - param uniformBlockIndex UInt32 in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -GetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName) - return void - param program UInt32 in value - param uniformBlockIndex UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param uniformBlockName Char out array [bufSize] - category ARB_uniform_buffer_object - dlflags notlistable - version 2.0 - extension - glxsingle ? - glxflags ignore - offset ? - -UniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding) - return void - param program UInt32 in value - param uniformBlockIndex UInt32 in value - param uniformBlockBinding UInt32 in value - category ARB_uniform_buffer_object - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - - -############################################################################### -# -# ARB Extension #58 -# ARB_compatibility commands -# -############################################################################### - -# (none) -newcategory: ARB_compatibility - -############################################################################### -# -# ARB Extension #59 -# ARB_copy_buffer commands -# -############################################################################### - -CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size) - return void - param readTarget GLenum in value - param writeTarget GLenum in value - param readOffset BufferOffset in value - param writeOffset BufferOffset in value - param size BufferSize in value - category ARB_copy_buffer - version 3.0 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #60 -# ARB_shader_texture_lod commands -# -############################################################################### - -# (none) -newcategory: ARB_shader_texture_lod - -############################################################################### -# -# ARB Extension #61 -# ARB_depth_clamp commands -# -############################################################################### - -# (none) -newcategory: ARB_depth_clamp - -############################################################################### -# -# ARB Extension #62 -# ARB_draw_elements_base_vertex commands -# -############################################################################### - -DrawElementsBaseVertex(mode, count, type, indices, basevertex) - return void - param mode GLenum in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param basevertex Int32 in value - category ARB_draw_elements_base_vertex - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex) - return void - param mode GLenum in value - param start UInt32 in value - param end UInt32 in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param basevertex Int32 in value - category ARB_draw_elements_base_vertex - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DrawElementsInstancedBaseVertex(mode, count, type, indices, primcount, basevertex) - return void - param mode GLenum in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param primcount SizeI in value - param basevertex Int32 in value - category ARB_draw_elements_base_vertex - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiDrawElementsBaseVertex(mode, count, type, indices, primcount, basevertex) - return void - param mode GLenum in value - param count SizeI in array [COMPSIZE(primcount)] - param type DrawElementsType in value - param indices VoidPointer in array [COMPSIZE(primcount)] - param primcount SizeI in value - param basevertex Int32 in array [COMPSIZE(primcount)] - category ARB_draw_elements_base_vertex - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #63 -# ARB_fragment_coord_conventions commands -# -############################################################################### - -# (none) -newcategory: ARB_fragment_coord_conventions - -############################################################################### -# -# ARB Extension #64 -# ARB_provoking_vertex commands -# -############################################################################### - -ProvokingVertex(mode) - return void - param mode GLenum in value - category ARB_provoking_vertex - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #65 -# ARB_seamless_cube_map commands -# -############################################################################### - -# (none) -newcategory: ARB_seamless_cube_map - -############################################################################### -# -# ARB Extension #66 -# ARB_sync commands -# -############################################################################### - -FenceSync(condition, flags) - return sync - param condition GLenum in value - param flags GLbitfield in value - category ARB_sync - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsSync(sync) - return Boolean - param sync sync in value - category ARB_sync - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteSync(sync) - return void - param sync sync in value - category ARB_sync - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ClientWaitSync(sync, flags, timeout) - return GLenum - param sync sync in value - param flags GLbitfield in value - param timeout UInt64 in value - category ARB_sync - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -WaitSync(sync, flags, timeout) - return void - param sync sync in value - param flags GLbitfield in value - param timeout UInt64 in value - category ARB_sync - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetInteger64v(pname, params) - return void - param pname GLenum in value - param params Int64 out array [COMPSIZE(pname)] - category ARB_sync - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetSynciv(sync, pname, bufSize, length, values) - return void - param sync sync in value - param pname GLenum in value - param bufSize SizeI in value - param length SizeI out array [1] - param values Int32 out array [length] - category ARB_sync - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #67 -# ARB_texture_multisample commands -# -############################################################################### - -TexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations) - return void - param target GLenum in value - param samples SizeI in value - param internalformat Int32 in value - param width SizeI in value - param height SizeI in value - param fixedsamplelocations Boolean in value - category ARB_texture_multisample - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations) - return void - param target GLenum in value - param samples SizeI in value - param internalformat Int32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param fixedsamplelocations Boolean in value - category ARB_texture_multisample - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetMultisamplefv(pname, index, val) - return void - param pname GLenum in value - param index UInt32 in value - param val Float32 out array [COMPSIZE(pname)] - category ARB_texture_multisample - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -SampleMaski(index, mask) - return void - param index UInt32 in value - param mask GLbitfield in value - category ARB_texture_multisample - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #68 -# ARB_vertex_array_bgra commands -# -############################################################################### - -# (none) -newcategory: ARB_vertex_array_bgra - -############################################################################### -# -# ARB Extension #69 -# ARB_draw_buffers_blend commands -# -############################################################################### - -BlendEquationi(buf, mode) - return void - param buf UInt32 in value - param mode GLenum in value - category ARB_draw_buffers_blend - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendEquationSeparatei(buf, modeRGB, modeAlpha) - return void - param buf UInt32 in value - param modeRGB GLenum in value - param modeAlpha GLenum in value - category ARB_draw_buffers_blend - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendFunci(buf, src, dst) - return void - param buf UInt32 in value - param src GLenum in value - param dst GLenum in value - category ARB_draw_buffers_blend - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha) - return void - param buf UInt32 in value - param srcRGB GLenum in value - param dstRGB GLenum in value - param srcAlpha GLenum in value - param dstAlpha GLenum in value - category ARB_draw_buffers_blend - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #70 -# ARB_sample_shading commands -# -############################################################################### - -MinSampleShading(value) - return void - param value ClampedColorF in value - category ARB_sample_shading - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# ARB Extension #71 -# ARB_texture_cube_map_array commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_cube_map_array - -############################################################################### -# -# ARB Extension #72 -# ARB_texture_gather commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_gather - -############################################################################### -# -# ARB Extension #73 -# ARB_texture_query_lod commands -# -############################################################################### - -# (none) -newcategory: ARB_texture_query_lod - -############################################################################### -# -# ARB Extension #74 - WGL_ARB_create_context_profile -# ARB Extension #75 - GLX_ARB_create_context_profile -# -############################################################################### - - -############################################################################### -############################################################################### -# -# Non-ARB extensions, in order by registry extension number -# -############################################################################### -############################################################################### - -############################################################################### -# -# Extension #1 -# EXT_abgr commands -# -############################################################################### - -# (none) -newcategory: EXT_abgr - -############################################################################### -# -# Extension #2 -# EXT_blend_color commands -# -############################################################################### - -BlendColorEXT(red, green, blue, alpha) - return void - param red ClampedColorF in value - param green ClampedColorF in value - param blue ClampedColorF in value - param alpha ClampedColorF in value - category EXT_blend_color - version 1.0 - glxropcode 4096 - glxflags EXT - extension soft - alias BlendColor - -############################################################################### -# -# Extension #3 -# EXT_polygon_offset commands -# -############################################################################### - -PolygonOffsetEXT(factor, bias) - return void - param factor Float32 in value - param bias Float32 in value - category EXT_polygon_offset - version 1.0 - glxropcode 4098 - glxflags EXT - extension soft - offset 414 - -############################################################################### -# -# Extension #4 -# EXT_texture commands -# -############################################################################### - -# (none) -newcategory: EXT_texture - -############################################################################### -# -# Extension #5 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #6 -# EXT_texture3D commands -# -############################################################################### - -# Arguably TexelInternalFormat, not PixelInternalFormat -TexImage3DEXT(target, level, internalformat, width, height, depth, border, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_texture3D - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4114 - extension - alias TexImage3D - -TexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_texture3D - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4115 - extension - alias TexSubImage3D - -############################################################################### -# -# Extension #7 -# SGIS_texture_filter4 commands -# -############################################################################### - -GetTexFilterFuncSGIS(target, filter, weights) - return void - param target TextureTarget in value - param filter TextureFilterSGIS in value - param weights Float32 out array [COMPSIZE(target/filter)] - category SGIS_texture_filter4 - dlflags notlistable - version 1.0 - glxflags SGI - glxvendorpriv 4101 - extension - offset 415 - -TexFilterFuncSGIS(target, filter, n, weights) - return void - param target TextureTarget in value - param filter TextureFilterSGIS in value - param n SizeI in value - param weights Float32 in array [n] - category SGIS_texture_filter4 - glxflags SGI - version 1.0 - glxropcode 2064 - extension - offset 416 - -############################################################################### -# -# Extension #8 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #9 -# EXT_subtexture commands -# -############################################################################### - -TexSubImage1DEXT(target, level, xoffset, width, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category EXT_subtexture - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4099 - extension - alias TexSubImage1D - -TexSubImage2DEXT(target, level, xoffset, yoffset, width, height, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category EXT_subtexture - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4100 - extension - alias TexSubImage2D - -############################################################################### -# -# Extension #10 -# EXT_copy_texture commands -# -############################################################################### - -# Arguably TexelInternalFormat, not PixelInternalFormat -CopyTexImage1DEXT(target, level, internalformat, x, y, width, border) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param border CheckedInt32 in value - category EXT_copy_texture - version 1.0 - glxflags EXT - glxropcode 4119 - extension - alias CopyTexImage1D - -# Arguably TexelInternalFormat, not PixelInternalFormat -CopyTexImage2DEXT(target, level, internalformat, x, y, width, height, border) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - category EXT_copy_texture - version 1.0 - glxflags EXT - glxropcode 4120 - extension - alias CopyTexImage2D - -CopyTexSubImage1DEXT(target, level, xoffset, x, y, width) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category EXT_copy_texture - version 1.0 - glxflags EXT - glxropcode 4121 - extension - alias CopyTexSubImage1D - -CopyTexSubImage2DEXT(target, level, xoffset, yoffset, x, y, width, height) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_copy_texture - version 1.0 - glxflags EXT - glxropcode 4122 - extension - alias CopyTexSubImage2D - -CopyTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset, x, y, width, height) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_copy_texture - version 1.0 - glxflags EXT - glxropcode 4123 - extension - alias CopyTexSubImage3D - -############################################################################### -# -# Extension #11 -# EXT_histogram commands -# -############################################################################### - -GetHistogramEXT(target, reset, format, type, values) - return void - param target HistogramTargetEXT in value - param reset Boolean in value - param format PixelFormat in value - param type PixelType in value - param values Void out array [COMPSIZE(target/format/type)] - category EXT_histogram - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - glxvendorpriv 5 - extension - offset 417 - -GetHistogramParameterfvEXT(target, pname, params) - return void - param target HistogramTargetEXT in value - param pname GetHistogramParameterPNameEXT in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_histogram - dlflags notlistable - version 1.0 - glxvendorpriv 6 - glxflags EXT - extension - offset 418 - -GetHistogramParameterivEXT(target, pname, params) - return void - param target HistogramTargetEXT in value - param pname GetHistogramParameterPNameEXT in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_histogram - dlflags notlistable - version 1.0 - glxvendorpriv 7 - glxflags EXT - extension - offset 419 - -GetMinmaxEXT(target, reset, format, type, values) - return void - param target MinmaxTargetEXT in value - param reset Boolean in value - param format PixelFormat in value - param type PixelType in value - param values Void out array [COMPSIZE(target/format/type)] - category EXT_histogram - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - glxvendorpriv 8 - extension - offset 420 - -GetMinmaxParameterfvEXT(target, pname, params) - return void - param target MinmaxTargetEXT in value - param pname GetMinmaxParameterPNameEXT in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_histogram - dlflags notlistable - version 1.0 - glxvendorpriv 9 - glxflags EXT - extension - offset 421 - -GetMinmaxParameterivEXT(target, pname, params) - return void - param target MinmaxTargetEXT in value - param pname GetMinmaxParameterPNameEXT in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_histogram - dlflags notlistable - version 1.0 - glxvendorpriv 10 - glxflags EXT - extension - offset 422 - -HistogramEXT(target, width, internalformat, sink) - return void - param target HistogramTargetEXT in value - param width SizeI in value - param internalformat PixelInternalFormat in value - param sink Boolean in value - category EXT_histogram - version 1.0 - glxropcode 4110 - glxflags EXT - extension - alias Histogram - -MinmaxEXT(target, internalformat, sink) - return void - param target MinmaxTargetEXT in value - param internalformat PixelInternalFormat in value - param sink Boolean in value - category EXT_histogram - version 1.0 - glxropcode 4111 - glxflags EXT - extension - alias Minmax - -ResetHistogramEXT(target) - return void - param target HistogramTargetEXT in value - category EXT_histogram - version 1.0 - glxropcode 4112 - glxflags EXT - extension - alias ResetHistogram - -ResetMinmaxEXT(target) - return void - param target MinmaxTargetEXT in value - category EXT_histogram - version 1.0 - glxropcode 4113 - glxflags EXT - extension - alias ResetMinmax - -############################################################################### -# -# Extension #12 -# EXT_convolution commands -# -############################################################################### - -ConvolutionFilter1DEXT(target, internalformat, width, format, type, image) - return void - param target ConvolutionTargetEXT in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param image Void in array [COMPSIZE(format/type/width)] - category EXT_convolution - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4101 - extension - alias ConvolutionFilter1D - -ConvolutionFilter2DEXT(target, internalformat, width, height, format, type, image) - return void - param target ConvolutionTargetEXT in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param image Void in array [COMPSIZE(format/type/width/height)] - category EXT_convolution - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4102 - extension - alias ConvolutionFilter2D - -ConvolutionParameterfEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params CheckedFloat32 in value - category EXT_convolution - version 1.0 - glxropcode 4103 - glxflags EXT - extension - alias ConvolutionParameterf - -ConvolutionParameterfvEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_convolution - version 1.0 - glxropcode 4104 - glxflags EXT - extension - alias ConvolutionParameterfv - -ConvolutionParameteriEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params CheckedInt32 in value - category EXT_convolution - version 1.0 - glxropcode 4105 - glxflags EXT - extension - alias ConvolutionParameteri - -ConvolutionParameterivEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_convolution - version 1.0 - glxropcode 4106 - glxflags EXT - extension - alias ConvolutionParameteriv - -CopyConvolutionFilter1DEXT(target, internalformat, x, y, width) - return void - param target ConvolutionTargetEXT in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category EXT_convolution - version 1.0 - glxropcode 4107 - glxflags EXT - extension - alias CopyConvolutionFilter1D - -CopyConvolutionFilter2DEXT(target, internalformat, x, y, width, height) - return void - param target ConvolutionTargetEXT in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_convolution - version 1.0 - glxropcode 4108 - glxflags EXT - extension - alias CopyConvolutionFilter2D - -GetConvolutionFilterEXT(target, format, type, image) - return void - param target ConvolutionTargetEXT in value - param format PixelFormat in value - param type PixelType in value - param image Void out array [COMPSIZE(target/format/type)] - category EXT_convolution - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - glxvendorpriv 1 - extension - offset 423 - -GetConvolutionParameterfvEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_convolution - dlflags notlistable - version 1.0 - glxvendorpriv 2 - glxflags EXT - extension - offset 424 - -GetConvolutionParameterivEXT(target, pname, params) - return void - param target ConvolutionTargetEXT in value - param pname ConvolutionParameterEXT in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_convolution - dlflags notlistable - version 1.0 - glxvendorpriv 3 - glxflags EXT - extension - offset 425 - -GetSeparableFilterEXT(target, format, type, row, column, span) - return void - param target SeparableTargetEXT in value - param format PixelFormat in value - param type PixelType in value - param row Void out array [COMPSIZE(target/format/type)] - param column Void out array [COMPSIZE(target/format/type)] - param span Void out array [COMPSIZE(target/format/type)] - category EXT_convolution - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - glxvendorpriv 4 - extension - offset 426 - -SeparableFilter2DEXT(target, internalformat, width, height, format, type, row, column) - return void - param target SeparableTargetEXT in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param row Void in array [COMPSIZE(target/format/type/width)] - param column Void in array [COMPSIZE(target/format/type/height)] - category EXT_convolution - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4109 - extension - alias SeparableFilter2D - -############################################################################### -# -# Extension #13 -# SGI_color_matrix commands -# -############################################################################### - -# (none) -newcategory: SGI_color_matrix - -############################################################################### -# -# Extension #14 -# SGI_color_table commands -# -############################################################################### - -ColorTableSGI(target, internalformat, width, format, type, table) - return void - param target ColorTableTargetSGI in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param table Void in array [COMPSIZE(format/type/width)] - category SGI_color_table - dlflags handcode - glxflags client-handcode server-handcode SGI - version 1.0 - glxropcode 2053 - extension - alias ColorTable - -ColorTableParameterfvSGI(target, pname, params) - return void - param target ColorTableTargetSGI in value - param pname ColorTableParameterPNameSGI in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGI_color_table - version 1.0 - glxropcode 2054 - glxflags SGI - extension - alias ColorTableParameterfv - -ColorTableParameterivSGI(target, pname, params) - return void - param target ColorTableTargetSGI in value - param pname ColorTableParameterPNameSGI in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGI_color_table - version 1.0 - glxropcode 2055 - glxflags SGI - extension - alias ColorTableParameteriv - -CopyColorTableSGI(target, internalformat, x, y, width) - return void - param target ColorTableTargetSGI in value - param internalformat PixelInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category SGI_color_table - version 1.0 - glxropcode 2056 - glxflags SGI - extension - alias CopyColorTable - -GetColorTableSGI(target, format, type, table) - return void - param target ColorTableTargetSGI in value - param format PixelFormat in value - param type PixelType in value - param table Void out array [COMPSIZE(target/format/type)] - category SGI_color_table - dlflags notlistable - glxflags client-handcode server-handcode SGI - version 1.0 - glxvendorpriv 4098 - extension - offset 427 - -GetColorTableParameterfvSGI(target, pname, params) - return void - param target ColorTableTargetSGI in value - param pname GetColorTableParameterPNameSGI in value - param params Float32 out array [COMPSIZE(pname)] - category SGI_color_table - dlflags notlistable - version 1.0 - glxflags SGI - glxvendorpriv 4099 - extension - offset 428 - -GetColorTableParameterivSGI(target, pname, params) - return void - param target ColorTableTargetSGI in value - param pname GetColorTableParameterPNameSGI in value - param params Int32 out array [COMPSIZE(pname)] - category SGI_color_table - dlflags notlistable - version 1.0 - glxflags SGI - glxvendorpriv 4100 - extension - offset 429 - -############################################################################### -# -# Extension #15 -# SGIX_pixel_texture commands -# -############################################################################### - -PixelTexGenSGIX(mode) - return void - param mode PixelTexGenModeSGIX in value - category SGIX_pixel_texture - version 1.0 - glxflags SGI - glxropcode 2059 - extension - offset 430 - -############################################################################### -# -# Extension #15 (variant) -# SGIS_pixel_texture commands -# Both SGIS and SGIX forms have extension #15! -# -############################################################################### - -PixelTexGenParameteriSGIS(pname, param) - return void - param pname PixelTexGenParameterNameSGIS in value - param param CheckedInt32 in value - category SGIS_pixel_texture - version 1.0 - extension - glxropcode ? - glxflags ignore - offset 431 - -PixelTexGenParameterivSGIS(pname, params) - return void - param pname PixelTexGenParameterNameSGIS in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGIS_pixel_texture - version 1.0 - extension - glxropcode ? - glxflags ignore - offset 432 - -PixelTexGenParameterfSGIS(pname, param) - return void - param pname PixelTexGenParameterNameSGIS in value - param param CheckedFloat32 in value - category SGIS_pixel_texture - version 1.0 - extension - glxropcode ? - glxflags ignore - offset 433 - -PixelTexGenParameterfvSGIS(pname, params) - return void - param pname PixelTexGenParameterNameSGIS in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIS_pixel_texture - version 1.0 - extension - glxropcode ? - glxflags ignore - offset 434 - -GetPixelTexGenParameterivSGIS(pname, params) - return void - param pname PixelTexGenParameterNameSGIS in value - param params CheckedInt32 out array [COMPSIZE(pname)] - dlflags notlistable - category SGIS_pixel_texture - version 1.0 - extension - glxvendorpriv ? - glxflags ignore - offset 435 - -GetPixelTexGenParameterfvSGIS(pname, params) - return void - param pname PixelTexGenParameterNameSGIS in value - param params CheckedFloat32 out array [COMPSIZE(pname)] - dlflags notlistable - category SGIS_pixel_texture - version 1.0 - extension - glxvendorpriv ? - glxflags ignore - offset 436 - -############################################################################### -# -# Extension #16 -# SGIS_texture4D commands -# -############################################################################### - -TexImage4DSGIS(target, level, internalformat, width, height, depth, size4d, border, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param size4d SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth/size4d)] - category SGIS_texture4D - dlflags handcode - glxflags client-handcode server-handcode SGI - version 1.0 - glxropcode 2057 - extension - offset 437 - -TexSubImage4DSGIS(target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels) - return void - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param woffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param size4d SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth/size4d)] - category SGIS_texture4D - dlflags handcode - glxflags client-handcode server-handcode SGI - version 1.0 - glxropcode 2058 - extension - offset 438 - -############################################################################### -# -# Extension #17 -# SGI_texture_color_table commands -# -############################################################################### - -# (none) -newcategory: SGI_texture_color_table - -############################################################################### -# -# Extension #18 -# EXT_cmyka commands -# -############################################################################### - -# (none) -newcategory: EXT_cmyka - -############################################################################### -# -# Extension #19 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #20 -# EXT_texture_object commands -# -############################################################################### - -AreTexturesResidentEXT(n, textures, residences) - return Boolean - param n SizeI in value - param textures Texture in array [n] - param residences Boolean out array [n] - category EXT_texture_object - glxflags EXT - glxvendorpriv 11 - dlflags notlistable - version 1.0 - extension - offset 439 - -BindTextureEXT(target, texture) - return void - param target TextureTarget in value - param texture Texture in value - category EXT_texture_object - version 1.0 - glxflags EXT - glxropcode 4117 - extension - alias BindTexture - -DeleteTexturesEXT(n, textures) - return void - param n SizeI in value - param textures Texture in array [n] - category EXT_texture_object - dlflags notlistable - version 1.0 - glxflags EXT - glxvendorpriv 12 - extension - offset 561 - -GenTexturesEXT(n, textures) - return void - param n SizeI in value - param textures Texture out array [n] - category EXT_texture_object - dlflags notlistable - version 1.0 - glxflags EXT - glxvendorpriv 13 - extension - offset 440 - -IsTextureEXT(texture) - return Boolean - param texture Texture in value - category EXT_texture_object - dlflags notlistable - version 1.0 - glxflags EXT - glxvendorpriv 14 - extension - offset 441 - -PrioritizeTexturesEXT(n, textures, priorities) - return void - param n SizeI in value - param textures Texture in array [n] - param priorities ClampedFloat32 in array [n] - category EXT_texture_object - glxflags EXT - version 1.0 - glxropcode 4118 - extension - alias PrioritizeTextures - -############################################################################### -# -# Extension #21 -# SGIS_detail_texture commands -# -############################################################################### - -DetailTexFuncSGIS(target, n, points) - return void - param target TextureTarget in value - param n SizeI in value - param points Float32 in array [n*2] - category SGIS_detail_texture - glxflags SGI - version 1.0 - glxropcode 2051 - extension - offset 442 - -GetDetailTexFuncSGIS(target, points) - return void - param target TextureTarget in value - param points Float32 out array [COMPSIZE(target)] - category SGIS_detail_texture - dlflags notlistable - version 1.0 - glxflags SGI - glxvendorpriv 4096 - extension - offset 443 - -############################################################################### -# -# Extension #22 -# SGIS_sharpen_texture commands -# -############################################################################### - -SharpenTexFuncSGIS(target, n, points) - return void - param target TextureTarget in value - param n SizeI in value - param points Float32 in array [n*2] - category SGIS_sharpen_texture - glxflags SGI - version 1.0 - glxropcode 2052 - extension - offset 444 - -GetSharpenTexFuncSGIS(target, points) - return void - param target TextureTarget in value - param points Float32 out array [COMPSIZE(target)] - category SGIS_sharpen_texture - dlflags notlistable - version 1.0 - glxflags SGI - glxvendorpriv 4097 - extension - offset 445 - -############################################################################### -# -# EXT_packed_pixels commands -# Extension #23 -# -############################################################################### - -# (none) -newcategory: EXT_packed_pixels - -############################################################################### -# -# Extension #24 -# SGIS_texture_lod commands -# -############################################################################### - -# (none) -newcategory: SGIS_texture_lod - -############################################################################### -# -# Extension #25 -# SGIS_multisample commands -# -############################################################################### - -SampleMaskSGIS(value, invert) - return void - param value ClampedFloat32 in value - param invert Boolean in value - category SGIS_multisample - version 1.1 - glxropcode 2048 - glxflags SGI - extension - alias SampleMaskEXT - -SamplePatternSGIS(pattern) - return void - param pattern SamplePatternSGIS in value - category SGIS_multisample - version 1.0 - glxropcode 2049 - glxflags SGI - extension - alias SamplePatternEXT - -############################################################################### -# -# Extension #26 - no specification? -# -############################################################################### - -############################################################################### -# -# Extension #27 -# EXT_rescale_normal commands -# -############################################################################### - -# (none) -newcategory: EXT_rescale_normal - -############################################################################### -# -# Extension #28 - GLX_EXT_visual_info -# Extension #29 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #30 -# EXT_vertex_array commands -# -############################################################################### - -ArrayElementEXT(i) - return void - param i Int32 in value - category EXT_vertex_array - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - extension - alias ArrayElement - -ColorPointerEXT(size, type, stride, count, pointer) - return void - param size Int32 in value - param type ColorPointerType in value - param stride SizeI in value - param count SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 448 - -DrawArraysEXT(mode, first, count) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - category EXT_vertex_array - dlflags handcode - glxflags client-handcode server-handcode EXT - version 1.0 - glxropcode 4116 - extension - alias DrawArrays - -EdgeFlagPointerEXT(stride, count, pointer) - return void - param stride SizeI in value - param count SizeI in value - param pointer Boolean in array [COMPSIZE(stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 449 - -GetPointervEXT(pname, params) - return void - param pname GetPointervPName in value - param params VoidPointer out array [1] - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - alias GetPointerv - -IndexPointerEXT(type, stride, count, pointer) - return void - param type IndexPointerType in value - param stride SizeI in value - param count SizeI in value - param pointer Void in array [COMPSIZE(type/stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 450 - -NormalPointerEXT(type, stride, count, pointer) - return void - param type NormalPointerType in value - param stride SizeI in value - param count SizeI in value - param pointer Void in array [COMPSIZE(type/stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 451 - -TexCoordPointerEXT(size, type, stride, count, pointer) - return void - param size Int32 in value - param type TexCoordPointerType in value - param stride SizeI in value - param count SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 452 - -VertexPointerEXT(size, type, stride, count, pointer) - return void - param size Int32 in value - param type VertexPointerType in value - param stride SizeI in value - param count SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride/count)] retained - category EXT_vertex_array - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.0 - extension - offset 453 - -############################################################################### -# -# Extension #31 -# EXT_misc_attribute commands -# -############################################################################### - -# (none) -newcategory: EXT_misc_attribute - -############################################################################### -# -# Extension #32 -# SGIS_generate_mipmap commands -# -############################################################################### - -# (none) -newcategory: SGIS_generate_mipmap - -############################################################################### -# -# Extension #33 -# SGIX_clipmap commands -# -############################################################################### - -# (none) -newcategory: SGIX_clipmap - -############################################################################### -# -# Extension #34 -# SGIX_shadow commands -# -############################################################################### - -# (none) -newcategory: SGIX_shadow - -############################################################################### -# -# Extension #35 -# SGIS_texture_edge_clamp commands -# -############################################################################### - -# (none) -newcategory: SGIS_texture_edge_clamp - -############################################################################### -# -# Extension #36 -# SGIS_texture_border_clamp commands -# -############################################################################### - -# (none) -newcategory: SGIS_texture_border_clamp - -############################################################################### -# -# Extension #37 -# EXT_blend_minmax commands -# -############################################################################### - -BlendEquationEXT(mode) - return void - param mode BlendEquationModeEXT in value - category EXT_blend_minmax - version 1.0 - glxropcode 4097 - glxflags EXT - extension soft - alias BlendEquation - -############################################################################### -# -# Extension #38 -# EXT_blend_subtract commands -# -############################################################################### - -# (none) -newcategory: EXT_blend_subtract - -############################################################################### -# -# Extension #39 -# EXT_blend_logic_op commands -# -############################################################################### - -# (none) -newcategory: EXT_blend_logic_op - -############################################################################### -# -# Extension #40 - GLX_SGI_swap_control -# Extension #41 - GLX_SGI_video_sync -# Extension #42 - GLX_SGI_make_current_read -# Extension #43 - GLX_SGIX_video_source -# Extension #44 - GLX_EXT_visual_rating -# -############################################################################### - -############################################################################### -# -# Extension #45 -# SGIX_interlace commands -# -############################################################################### - -# (none) -newcategory: SGIX_interlace - -############################################################################### -# -# Extension #46 -# SGIX_pixel_tiles commands -# -############################################################################### - -# (none) -newcategory: SGIX_pixel_tiles - -############################################################################### -# -# Extension #47 - GLX_EXT_import_context -# Extension #48 - skipped -# Extension #49 - GLX_SGIX_fbconfig -# Extension #50 - GLX_SGIX_pbuffer -# -############################################################################### - -############################################################################### -# -# Extension #51 -# SGIX_texture_select commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_select - -############################################################################### -# -# Extension #52 -# SGIX_sprite commands -# -############################################################################### - -SpriteParameterfSGIX(pname, param) - return void - param pname SpriteParameterNameSGIX in value - param param CheckedFloat32 in value - category SGIX_sprite - version 1.0 - glxflags SGI - glxropcode 2060 - extension - offset 454 - -SpriteParameterfvSGIX(pname, params) - return void - param pname SpriteParameterNameSGIX in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIX_sprite - version 1.0 - glxflags SGI - glxropcode 2061 - extension - offset 455 - -SpriteParameteriSGIX(pname, param) - return void - param pname SpriteParameterNameSGIX in value - param param CheckedInt32 in value - category SGIX_sprite - version 1.0 - glxflags SGI - glxropcode 2062 - extension - offset 456 - -SpriteParameterivSGIX(pname, params) - return void - param pname SpriteParameterNameSGIX in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGIX_sprite - version 1.0 - glxflags SGI - glxropcode 2063 - extension - offset 457 - -############################################################################### -# -# Extension #53 -# SGIX_texture_multi_buffer commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_multi_buffer - -############################################################################### -# -# Extension #54 -# EXT_point_parameters / SGIS_point_parameters commands -# -############################################################################### - -PointParameterfEXT(pname, param) - return void - param pname PointParameterNameARB in value - param param CheckedFloat32 in value - category EXT_point_parameters - version 1.0 - glxflags SGI - extension - alias PointParameterfARB - -PointParameterfvEXT(pname, params) - return void - param pname PointParameterNameARB in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_point_parameters - version 1.0 - glxflags SGI - extension - alias PointParameterfvARB - -PointParameterfSGIS(pname, param) - return void - param pname PointParameterNameARB in value - param param CheckedFloat32 in value - category SGIS_point_parameters - version 1.0 - glxflags SGI - extension - alias PointParameterfARB - -PointParameterfvSGIS(pname, params) - return void - param pname PointParameterNameARB in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIS_point_parameters - version 1.0 - glxflags SGI - extension - alias PointParameterfvARB - -############################################################################### -# -# Extension #55 -# SGIX_instruments commands -# -############################################################################### - -GetInstrumentsSGIX() - return Int32 - dlflags notlistable - category SGIX_instruments - version 1.0 - glxflags SGI - glxvendorpriv 4102 - extension - offset 460 - -InstrumentsBufferSGIX(size, buffer) - return void - param size SizeI in value - param buffer Int32 out array [size] retained - dlflags notlistable - category SGIX_instruments - version 1.0 - glxflags SGI - glxvendorpriv 4103 - extension - offset 461 - -PollInstrumentsSGIX(marker_p) - return Int32 - param marker_p Int32 out array [1] - dlflags notlistable - category SGIX_instruments - version 1.0 - glxflags SGI - glxvendorpriv 4104 - extension - offset 462 - -ReadInstrumentsSGIX(marker) - return void - param marker Int32 in value - category SGIX_instruments - version 1.0 - glxflags SGI - glxropcode 2077 - extension - offset 463 - -StartInstrumentsSGIX() - return void - category SGIX_instruments - version 1.0 - glxflags SGI - glxropcode 2069 - extension - offset 464 - -StopInstrumentsSGIX(marker) - return void - param marker Int32 in value - category SGIX_instruments - version 1.0 - glxflags SGI - glxropcode 2070 - extension - offset 465 - -############################################################################### -# -# Extension #56 -# SGIX_texture_scale_bias commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_scale_bias - -############################################################################### -# -# Extension #57 -# SGIX_framezoom commands -# -############################################################################### - -FrameZoomSGIX(factor) - return void - param factor CheckedInt32 in value - category SGIX_framezoom - version 1.0 - glxflags SGI - glxropcode 2072 - extension - offset 466 - -############################################################################### -# -# Extension #58 -# SGIX_tag_sample_buffer commands -# -############################################################################### - -TagSampleBufferSGIX() - return void - category SGIX_tag_sample_buffer - version 1.0 - glxropcode 2050 - glxflags SGI - extension - offset 467 - -############################################################################### -# -# Extension #59 -# SGIX_polynomial_ffd commands -# -############################################################################### - -DeformationMap3dSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) - return void - param target FfdTargetSGIX in value - param u1 CoordD in value - param u2 CoordD in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordD in value - param v2 CoordD in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param w1 CoordD in value - param w2 CoordD in value - param wstride Int32 in value - param worder CheckedInt32 in value - param points CoordD in array [COMPSIZE(target/ustride/uorder/vstride/vorder/wstride/worder)] - dlflags handcode - category SGIX_polynomial_ffd - version 1.0 - glxflags SGI ignore - glxropcode 2073 - extension - offset ? - -DeformationMap3fSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points) - return void - param target FfdTargetSGIX in value - param u1 CoordF in value - param u2 CoordF in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordF in value - param v2 CoordF in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param w1 CoordF in value - param w2 CoordF in value - param wstride Int32 in value - param worder CheckedInt32 in value - param points CoordF in array [COMPSIZE(target/ustride/uorder/vstride/vorder/wstride/worder)] - category SGIX_polynomial_ffd - dlflags handcode - version 1.0 - glxflags SGI ignore - glxropcode 2074 - extension - offset ? - -DeformSGIX(mask) - return void - param mask FfdMaskSGIX in value - category SGIX_polynomial_ffd - version 1.0 - glxflags SGI ignore - glxropcode 2075 - extension - offset ? - -LoadIdentityDeformationMapSGIX(mask) - return void - param mask FfdMaskSGIX in value - category SGIX_polynomial_ffd - version 1.0 - glxflags SGI ignore - glxropcode 2076 - extension - offset ? - -############################################################################### -# -# Extension #60 -# SGIX_reference_plane commands -# -############################################################################### - -ReferencePlaneSGIX(equation) - return void - param equation Float64 in array [4] - category SGIX_reference_plane - version 1.0 - glxflags SGI - glxropcode 2071 - extension - offset 468 - -############################################################################### -# -# Extension #61 -# SGIX_flush_raster commands -# -############################################################################### - -FlushRasterSGIX() - return void - category SGIX_flush_raster - version 1.0 - dlflags notlistable - glxflags SGI - glxvendorpriv 4105 - extension - offset 469 - -############################################################################### -# -# Extension #62 - GLX_SGIX_cushion -# -############################################################################### - -############################################################################### -# -# Extension #63 -# SGIX_depth_texture commands -# -############################################################################### - -# (none) -newcategory: SGIX_depth_texture - -############################################################################### -# -# Extension #64 -# SGIS_fog_function commands -# -############################################################################### - -FogFuncSGIS(n, points) - return void - param n SizeI in value - param points Float32 in array [n*2] - category SGIS_fog_function - version 1.1 - glxflags SGI - glxropcode 2067 - extension - offset - -# Need to insert GLX information -GetFogFuncSGIS(points) - return void - param points Float32 out array [COMPSIZE()] - category SGIS_fog_function - version 1.1 - dlflags notlistable - glxflags ignore - extension - offset - -############################################################################### -# -# Extension #65 -# SGIX_fog_offset commands -# -############################################################################### - -# (none) -newcategory: SGIX_fog_offset - -############################################################################### -# -# Extension #66 -# HP_image_transform commands -# -############################################################################### - -ImageTransformParameteriHP(target, pname, param) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param param Int32 in value - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -ImageTransformParameterfHP(target, pname, param) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param param Float32 in value - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -ImageTransformParameterivHP(target, pname, params) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param params Int32 in array [COMPSIZE(pname)] - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -ImageTransformParameterfvHP(target, pname, params) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param params Float32 in array [COMPSIZE(pname)] - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -GetImageTransformParameterivHP(target, pname, params) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param params Int32 out array [COMPSIZE(pname)] - dlflags notlistable - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -GetImageTransformParameterfvHP(target, pname, params) - return void - param target ImageTransformTargetHP in value - param pname ImageTransformPNameHP in value - param params Float32 out array [COMPSIZE(pname)] - category HP_image_transform - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #67 -# HP_convolution_border_modes commands -# -############################################################################### - -# (none) -newcategory: HP_convolution_border_modes - -############################################################################### -# -# Extension #68 -# INGR_palette_buffer commands -# -############################################################################### - -#@ (Intergraph hasn't provided a spec) - -############################################################################### -# -# Extension #69 -# SGIX_texture_add_env commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_add_env - -############################################################################### -# -# Extension #70 - skipped -# Extension #71 - skipped -# Extension #72 - skipped -# Extension #73 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #74 -# EXT_color_subtable commands -# -# This was probably never actually shipped as an EXT - just written up as a -# reference for OpenGL 1.2 ARB_imaging. -# -############################################################################### - -ColorSubTableEXT(target, start, count, format, type, data) - return void - param target ColorTableTarget in value - param start SizeI in value - param count SizeI in value - param format PixelFormat in value - param type PixelType in value - param data Void in array [COMPSIZE(format/type/count)] - category EXT_color_subtable - version 1.2 - alias ColorSubTable - -CopyColorSubTableEXT(target, start, x, y, width) - return void - param target ColorTableTarget in value - param start SizeI in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category EXT_color_subtable - version 1.2 - alias CopyColorSubTable - -############################################################################### -# -# Extension #75 - GLU_EXT_object_space_tess -# -############################################################################### - -############################################################################### -# -# Extension #76 -# PGI_vertex_hints commands -# -############################################################################### - -# (none) -newcategory: PGI_vertex_hints - -############################################################################### -# -# Extension #77 -# PGI_misc_hints commands -# -############################################################################### - -HintPGI(target, mode) - return void - param target HintTargetPGI in value - param mode Int32 in value - category PGI_misc_hints - version 1.1 - offset 544 - -############################################################################### -# -# Extension #78 -# EXT_paletted_texture commands -# -############################################################################### - -ColorTableEXT(target, internalFormat, width, format, type, table) - return void - param target ColorTableTarget in value - param internalFormat PixelInternalFormat in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param table Void in array [COMPSIZE(format/type/width)] - category EXT_paletted_texture - version 1.1 - alias ColorTable - -GetColorTableEXT(target, format, type, data) - return void - param target ColorTableTarget in value - param format PixelFormat in value - param type PixelType in value - param data Void out array [COMPSIZE(target/format/type)] - category EXT_paletted_texture - version 1.1 - offset 550 - -GetColorTableParameterivEXT(target, pname, params) - return void - param target ColorTableTarget in value - param pname GetColorTableParameterPName in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_paletted_texture - version 1.1 - offset 551 - -GetColorTableParameterfvEXT(target, pname, params) - return void - param target ColorTableTarget in value - param pname GetColorTableParameterPName in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_paletted_texture - version 1.1 - offset 552 - -############################################################################### -# -# Extension #79 -# EXT_clip_volume_hint commands -# -############################################################################### - -# (none) -newcategory: EXT_clip_volume_hint - -############################################################################### -# -# Extension #80 -# SGIX_list_priority commands -# -############################################################################### - -# @@@ Needs vendorpriv opcodes assigned -GetListParameterfvSGIX(list, pname, params) - return void - param list List in value - param pname ListParameterName in value - param params CheckedFloat32 out array [COMPSIZE(pname)] - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxvendorpriv ? - extension - offset 470 - -# @@@ Needs vendorpriv opcodes assigned -GetListParameterivSGIX(list, pname, params) - return void - param list List in value - param pname ListParameterName in value - param params CheckedInt32 out array [COMPSIZE(pname)] - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxvendorpriv ? - extension - offset 471 - -ListParameterfSGIX(list, pname, param) - return void - param list List in value - param pname ListParameterName in value - param param CheckedFloat32 in value - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxropcode 2078 - extension - offset 472 - -ListParameterfvSGIX(list, pname, params) - return void - param list List in value - param pname ListParameterName in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxropcode 2079 - extension - offset 473 - -ListParameteriSGIX(list, pname, param) - return void - param list List in value - param pname ListParameterName in value - param param CheckedInt32 in value - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxropcode 2080 - extension - offset 474 - -ListParameterivSGIX(list, pname, params) - return void - param list List in value - param pname ListParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - dlflags notlistable - glxflags ignore - category SGIX_list_priority - version 1.0 - glxropcode 2081 - extension - offset 475 - -############################################################################### -# -# Extension #81 -# SGIX_ir_instrument1 commands -# -############################################################################### - -# (none) -newcategory: SGIX_ir_instrument1 - -############################################################################### -# -# Extension #82 -# SGIX_calligraphic_fragment commands -# -############################################################################### - -# (none) -newcategory: SGIX_calligraphic_fragment - -############################################################################### -# -# Extension #83 - GLX_SGIX_video_resize -# -############################################################################### - -############################################################################### -# -# Extension #84 -# SGIX_texture_lod_bias commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_lod_bias - -############################################################################### -# -# Extension #85 - skipped -# Extension #86 - GLX_SGIX_dmbuffer -# Extension #87 - skipped -# Extension #88 - skipped -# Extension #89 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #90 -# SGIX_shadow_ambient commands -# -############################################################################### - -# (none) -newcategory: SGIX_shadow_ambient - -############################################################################### -# -# Extension #91 - GLX_SGIX_swap_group -# Extension #92 - GLX_SGIX_swap_barrier -# -############################################################################### - -############################################################################### -# -# Extension #93 -# EXT_index_texture commands -# -############################################################################### - -# (none) -newcategory: EXT_index_texture - -############################################################################### -# -# Extension #94 -# EXT_index_material commands -# -############################################################################### - -IndexMaterialEXT(face, mode) - return void - param face MaterialFace in value - param mode IndexMaterialParameterEXT in value - category EXT_index_material - version 1.1 - extension soft - glxflags ignore - offset 538 - -############################################################################### -# -# Extension #95 -# EXT_index_func commands -# -############################################################################### - -IndexFuncEXT(func, ref) - return void - param func IndexFunctionEXT in value - param ref ClampedFloat32 in value - category EXT_index_func - version 1.1 - extension soft - glxflags ignore - offset 539 - -############################################################################### -# -# Extension #96 -# EXT_index_array_formats commands -# -############################################################################### - -# (none) -newcategory: EXT_index_array_formats - -############################################################################### -# -# Extension #97 -# EXT_compiled_vertex_array commands -# -############################################################################### - -LockArraysEXT(first, count) - return void - param first Int32 in value - param count SizeI in value - category EXT_compiled_vertex_array - version 1.1 - dlflags notlistable - extension soft - glxflags ignore - offset 540 - -UnlockArraysEXT() - return void - category EXT_compiled_vertex_array - version 1.1 - dlflags notlistable - extension soft - glxflags ignore - offset 541 - -############################################################################### -# -# Extension #98 -# EXT_cull_vertex commands -# -############################################################################### - -CullParameterdvEXT(pname, params) - return void - param pname CullParameterEXT in value - param params Float64 out array [4] - category EXT_cull_vertex - version 1.1 - dlflags notlistable - extension soft - glxflags ignore - offset 542 - -CullParameterfvEXT(pname, params) - return void - param pname CullParameterEXT in value - param params Float32 out array [4] - category EXT_cull_vertex - version 1.1 - dlflags notlistable - extension soft - glxflags ignore - offset 543 - -############################################################################### -# -# Extension #99 - skipped -# Extension #100 - GLU_EXT_nurbs_tessellator -# -############################################################################### - -############################################################################### -# -# Extension #101 -# SGIX_ycrcb commands -# -############################################################################### - -# (none) -newcategory: SGIX_ycrcb - -############################################################################### -# -# Extension #102 -# SGIX_fragment_lighting commands -# -############################################################################### - -FragmentColorMaterialSGIX(face, mode) - return void - param face MaterialFace in value - param mode MaterialParameter in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 476 - -FragmentLightfSGIX(light, pname, param) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param param CheckedFloat32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 477 - -FragmentLightfvSGIX(light, pname, params) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 478 - -FragmentLightiSGIX(light, pname, param) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param param CheckedInt32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 479 - -FragmentLightivSGIX(light, pname, params) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 480 - -FragmentLightModelfSGIX(pname, param) - return void - param pname FragmentLightModelParameterSGIX in value - param param CheckedFloat32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 481 - -FragmentLightModelfvSGIX(pname, params) - return void - param pname FragmentLightModelParameterSGIX in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 482 - -FragmentLightModeliSGIX(pname, param) - return void - param pname FragmentLightModelParameterSGIX in value - param param CheckedInt32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 483 - -FragmentLightModelivSGIX(pname, params) - return void - param pname FragmentLightModelParameterSGIX in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 484 - -FragmentMaterialfSGIX(face, pname, param) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param param CheckedFloat32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 485 - -FragmentMaterialfvSGIX(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 486 - -FragmentMaterialiSGIX(face, pname, param) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param param CheckedInt32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 487 - -FragmentMaterialivSGIX(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 488 - -GetFragmentLightfvSGIX(light, pname, params) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param params Float32 out array [COMPSIZE(pname)] - category SGIX_fragment_lighting - dlflags notlistable - glxflags ignore - version 1.0 - extension - offset 489 - -GetFragmentLightivSGIX(light, pname, params) - return void - param light FragmentLightNameSGIX in value - param pname FragmentLightParameterSGIX in value - param params Int32 out array [COMPSIZE(pname)] - category SGIX_fragment_lighting - dlflags notlistable - glxflags ignore - version 1.0 - extension - offset 490 - -GetFragmentMaterialfvSGIX(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params Float32 out array [COMPSIZE(pname)] - category SGIX_fragment_lighting - dlflags notlistable - glxflags ignore - version 1.0 - extension - offset 491 - -GetFragmentMaterialivSGIX(face, pname, params) - return void - param face MaterialFace in value - param pname MaterialParameter in value - param params Int32 out array [COMPSIZE(pname)] - category SGIX_fragment_lighting - dlflags notlistable - glxflags ignore - version 1.0 - extension - offset 492 - -LightEnviSGIX(pname, param) - return void - param pname LightEnvParameterSGIX in value - param param CheckedInt32 in value - category SGIX_fragment_lighting - glxflags ignore - version 1.0 - extension - offset 493 - -############################################################################### -# -# Extension #103 - skipped -# Extension #104 - skipped -# Extension #105 - skipped -# Extension #106 - skipped -# Extension #107 - skipped -# Extension #108 - skipped -# Extension #109 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #110 -# IBM_rasterpos_clip commands -# -############################################################################### - -# (none) -newcategory: IBM_rasterpos_clip - -############################################################################### -# -# Extension #111 -# HP_texture_lighting commands -# -############################################################################### - -# (none) -newcategory: HP_texture_lighting - -############################################################################### -# -# Extension #112 -# EXT_draw_range_elements commands -# -############################################################################### - -# Spec entries to be written -DrawRangeElementsEXT(mode, start, end, count, type, indices) - return void - param mode BeginMode in value - param start UInt32 in value - param end UInt32 in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - category EXT_draw_range_elements - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.1 - alias DrawRangeElements - -############################################################################### -# -# Extension #113 -# WIN_phong_shading commands -# -############################################################################### - -# (none) -newcategory: WIN_phong_shading - -############################################################################### -# -# Extension #114 -# WIN_specular_fog commands -# -############################################################################### - -# (none) -newcategory: WIN_specular_fog - -############################################################################### -# -# Extension #115 - skipped -# Extension #116 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #117 -# EXT_light_texture commands -# -############################################################################### - -# Spec entries to be written -ApplyTextureEXT(mode) - return void - param mode LightTextureModeEXT in value - category EXT_light_texture - version 1.1 - glxropcode ? - offset ? - -TextureLightEXT(pname) - return void - param pname LightTexturePNameEXT in value - category EXT_light_texture - version 1.1 - glxropcode ? - offset ? - -TextureMaterialEXT(face, mode) - return void - param face MaterialFace in value - param mode MaterialParameter in value - category EXT_light_texture - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #118 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #119 -# SGIX_blend_alpha_minmax commands -# -############################################################################### - -# (none) -newcategory: SGIX_blend_alpha_minmax - -############################################################################### -# -# Extension #120 - skipped -# Extension #121 - skipped -# Extension #122 - skipped -# Extension #123 - skipped -# Extension #124 - skipped -# Extension #125 - skipped -# Extension #126 - skipped -# Extension #127 - skipped -# Extension #128 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #129 -# EXT_bgra commands -# -############################################################################### - -# (none) -newcategory: EXT_bgra - -############################################################################### -# -# Extension #130 - skipped -# Extension #131 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #132 -# SGIX_async commands -# -############################################################################### - -AsyncMarkerSGIX(marker) - return void - param marker UInt32 in value - category SGIX_async - version 1.0 - glxflags ignore - extension - offset ? - -FinishAsyncSGIX(markerp) - return Int32 - param markerp UInt32 out array [1] - category SGIX_async - version 1.0 - dlflags notlistable - glxflags ignore - extension - offset ? - -PollAsyncSGIX(markerp) - return Int32 - param markerp UInt32 out array [1] - category SGIX_async - version 1.0 - dlflags notlistable - glxflags ignore - extension - offset ? - -GenAsyncMarkersSGIX(range) - return UInt32 - param range SizeI in value - category SGIX_async - version 1.0 - dlflags notlistable - glxflags ignore - extension - offset ? - -DeleteAsyncMarkersSGIX(marker, range) - return void - param marker UInt32 in value - param range SizeI in value - category SGIX_async - version 1.0 - dlflags notlistable - glxflags ignore - extension - offset ? - -IsAsyncMarkerSGIX(marker) - return Boolean - param marker UInt32 in value - category SGIX_async - version 1.0 - dlflags notlistable - glxflags ignore - extension - offset ? - -############################################################################### -# -# Extension #133 -# SGIX_async_pixel commands -# -############################################################################### - -# (none) -newcategory: SGIX_async_pixel - -############################################################################### -# -# Extension #134 -# SGIX_async_histogram commands -# -############################################################################### - -# (none) -newcategory: SGIX_async_histogram - -############################################################################### -# -# Extension #135 - skipped (INTEL_texture_scissor was never implemented) -# -############################################################################### - -############################################################################### -# -# Extension #136 -# INTEL_parallel_arrays commands -# -############################################################################### - -VertexPointervINTEL(size, type, pointer) - return void - param size Int32 in value - param type VertexPointerType in value - param pointer VoidPointer in array [4] retained - category INTEL_parallel_arrays - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.1 - offset ? - -NormalPointervINTEL(type, pointer) - return void - param type NormalPointerType in value - param pointer VoidPointer in array [4] retained - category INTEL_parallel_arrays - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.1 - offset ? - -ColorPointervINTEL(size, type, pointer) - return void - param size Int32 in value - param type VertexPointerType in value - param pointer VoidPointer in array [4] retained - category INTEL_parallel_arrays - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.1 - offset ? - -TexCoordPointervINTEL(size, type, pointer) - return void - param size Int32 in value - param type VertexPointerType in value - param pointer VoidPointer in array [4] retained - category INTEL_parallel_arrays - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.1 - offset ? - - -############################################################################### -# -# Extension #137 -# HP_occlusion_test commands -# -############################################################################### - -# (none) -newcategory: HP_occlusion_test - -############################################################################### -# -# Extension #138 -# EXT_pixel_transform commands -# -############################################################################### - -PixelTransformParameteriEXT(target, pname, param) - return void - param target PixelTransformTargetEXT in value - param pname PixelTransformPNameEXT in value - param param Int32 in value - category EXT_pixel_transform - version 1.1 - glxropcode ? - offset ? - -PixelTransformParameterfEXT(target, pname, param) - return void - param target PixelTransformTargetEXT in value - param pname PixelTransformPNameEXT in value - param param Float32 in value - category EXT_pixel_transform - version 1.1 - glxropcode ? - offset ? - -PixelTransformParameterivEXT(target, pname, params) - return void - param target PixelTransformTargetEXT in value - param pname PixelTransformPNameEXT in value - param params Int32 in array [1] - category EXT_pixel_transform - version 1.1 - glxropcode ? - offset ? - -PixelTransformParameterfvEXT(target, pname, params) - return void - param target PixelTransformTargetEXT in value - param pname PixelTransformPNameEXT in value - param params Float32 in array [1] - category EXT_pixel_transform - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #139 -# EXT_pixel_transform_color_table commands -# -############################################################################### - -# (none) -newcategory: EXT_pixel_transform_color_table - -############################################################################### -# -# Extension #140 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #141 -# EXT_shared_texture_palette commands -# -############################################################################### - -# (none) -newcategory: EXT_shared_texture_palette - -############################################################################### -# -# Extension #142 - GLX_SGIS_blended_overlay -# Extension #143 - GLX_SGIS_shared_multisample -# -############################################################################### - -############################################################################### -# -# Extension #144 -# EXT_separate_specular_color commands -# -############################################################################### - -# (none) -newcategory: EXT_separate_specular_color - -############################################################################### -# -# Extension #145 -# EXT_secondary_color commands -# -############################################################################### - -SecondaryColor3bEXT(red, green, blue) - return void - param red ColorB in value - param green ColorB in value - param blue ColorB in value - category EXT_secondary_color - vectorequiv SecondaryColor3bvEXT - version 1.1 - alias SecondaryColor3b - -SecondaryColor3bvEXT(v) - return void - param v ColorB in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4126 - alias SecondaryColor3bv - -SecondaryColor3dEXT(red, green, blue) - return void - param red ColorD in value - param green ColorD in value - param blue ColorD in value - category EXT_secondary_color - vectorequiv SecondaryColor3dvEXT - version 1.1 - alias SecondaryColor3d - -SecondaryColor3dvEXT(v) - return void - param v ColorD in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4130 - alias SecondaryColor3dv - -SecondaryColor3fEXT(red, green, blue) - return void - param red ColorF in value - param green ColorF in value - param blue ColorF in value - category EXT_secondary_color - vectorequiv SecondaryColor3fvEXT - version 1.1 - alias SecondaryColor3f - -SecondaryColor3fvEXT(v) - return void - param v ColorF in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4129 - alias SecondaryColor3fv - -SecondaryColor3iEXT(red, green, blue) - return void - param red ColorI in value - param green ColorI in value - param blue ColorI in value - category EXT_secondary_color - vectorequiv SecondaryColor3ivEXT - version 1.1 - alias SecondaryColor3i - -SecondaryColor3ivEXT(v) - return void - param v ColorI in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4128 - offset 568 - alias SecondaryColor3iv - -SecondaryColor3sEXT(red, green, blue) - return void - param red ColorS in value - param green ColorS in value - param blue ColorS in value - category EXT_secondary_color - vectorequiv SecondaryColor3svEXT - version 1.1 - alias SecondaryColor3s - -SecondaryColor3svEXT(v) - return void - param v ColorS in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4127 - alias SecondaryColor3sv - -SecondaryColor3ubEXT(red, green, blue) - return void - param red ColorUB in value - param green ColorUB in value - param blue ColorUB in value - category EXT_secondary_color - vectorequiv SecondaryColor3ubvEXT - version 1.1 - alias SecondaryColor3ub - -SecondaryColor3ubvEXT(v) - return void - param v ColorUB in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4131 - alias SecondaryColor3ubv - -SecondaryColor3uiEXT(red, green, blue) - return void - param red ColorUI in value - param green ColorUI in value - param blue ColorUI in value - category EXT_secondary_color - vectorequiv SecondaryColor3uivEXT - version 1.1 - alias SecondaryColor3ui - -SecondaryColor3uivEXT(v) - return void - param v ColorUI in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4133 - alias SecondaryColor3uiv - -SecondaryColor3usEXT(red, green, blue) - return void - param red ColorUS in value - param green ColorUS in value - param blue ColorUS in value - category EXT_secondary_color - vectorequiv SecondaryColor3usvEXT - version 1.1 - alias SecondaryColor3us - -SecondaryColor3usvEXT(v) - return void - param v ColorUS in array [3] - category EXT_secondary_color - version 1.1 - glxropcode 4132 - alias SecondaryColor3usv - -SecondaryColorPointerEXT(size, type, stride, pointer) - return void - param size Int32 in value - param type ColorPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category EXT_secondary_color - dlflags notlistable - glxflags client-handcode server-handcode EXT - version 1.1 - extension - alias SecondaryColorPointer - -############################################################################### -# -# Extension #146 -# EXT_texture_env commands -# -############################################################################### - -# Dead extension - never implemented (removed from registry!) -# (none) -# newcategory: EXT_texture_env - -############################################################################### -# -# Extension #147 -# EXT_texture_perturb_normal commands -# -############################################################################### - -TextureNormalEXT(mode) - return void - param mode TextureNormalModeEXT in value - category EXT_texture_perturb_normal - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #148 -# EXT_multi_draw_arrays commands -# -############################################################################### - -# first and count are really 'in' -MultiDrawArraysEXT(mode, first, count, primcount) - return void - param mode BeginMode in value - param first Int32 out array [COMPSIZE(primcount)] - param count SizeI out array [COMPSIZE(primcount)] - param primcount SizeI in value - category EXT_multi_draw_arrays - version 1.1 - glxropcode ? - alias MultiDrawArrays - -MultiDrawElementsEXT(mode, count, type, indices, primcount) - return void - param mode BeginMode in value - param count SizeI in array [COMPSIZE(primcount)] - param type DrawElementsType in value - param indices VoidPointer in array [COMPSIZE(primcount)] - param primcount SizeI in value - category EXT_multi_draw_arrays - version 1.1 - glxropcode ? - alias MultiDrawElements - -############################################################################### -# -# Extension #149 -# EXT_fog_coord commands -# -############################################################################### - -FogCoordfEXT(coord) - return void - param coord CoordF in value - category EXT_fog_coord - vectorequiv FogCoordfvEXT - version 1.1 - alias FogCoordf - -FogCoordfvEXT(coord) - return void - param coord CoordF in array [1] - category EXT_fog_coord - version 1.1 - glxropcode 4124 - alias FogCoordfv - -FogCoorddEXT(coord) - return void - param coord CoordD in value - category EXT_fog_coord - vectorequiv FogCoorddvEXT - version 1.1 - alias FogCoordd - -FogCoorddvEXT(coord) - return void - param coord CoordD in array [1] - category EXT_fog_coord - version 1.1 - glxropcode 4125 - alias FogCoorddv - -FogCoordPointerEXT(type, stride, pointer) - return void - param type FogPointerTypeEXT in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category EXT_fog_coord - dlflags notlistable - version 1.1 - glxflags client-handcode server-handcode EXT - alias FogCoordPointer - -############################################################################### -# -# Extension #150 - skipped -# Extension #151 - skipped -# Extension #152 - skipped -# Extension #153 - skipped -# Extension #154 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #155 -# REND_screen_coordinates commands -# -############################################################################### - -# (none) -newcategory: REND_screen_coordinates - -############################################################################### -# -# Extension #156 -# EXT_coordinate_frame commands -# -############################################################################### - -Tangent3bEXT(tx, ty, tz) - return void - param tx Int8 in value - param ty Int8 in value - param tz Int8 in value - category EXT_coordinate_frame - vectorequiv Tangent3bvEXT - version 1.1 - offset ? - -Tangent3bvEXT(v) - return void - param v Int8 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Tangent3dEXT(tx, ty, tz) - return void - param tx CoordD in value - param ty CoordD in value - param tz CoordD in value - category EXT_coordinate_frame - vectorequiv Tangent3dvEXT - version 1.1 - offset ? - -Tangent3dvEXT(v) - return void - param v CoordD in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Tangent3fEXT(tx, ty, tz) - return void - param tx CoordF in value - param ty CoordF in value - param tz CoordF in value - category EXT_coordinate_frame - vectorequiv Tangent3fvEXT - version 1.1 - offset ? - -Tangent3fvEXT(v) - return void - param v CoordF in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Tangent3iEXT(tx, ty, tz) - return void - param tx Int32 in value - param ty Int32 in value - param tz Int32 in value - category EXT_coordinate_frame - vectorequiv Tangent3ivEXT - version 1.1 - offset ? - -Tangent3ivEXT(v) - return void - param v Int32 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Tangent3sEXT(tx, ty, tz) - return void - param tx Int16 in value - param ty Int16 in value - param tz Int16 in value - category EXT_coordinate_frame - vectorequiv Tangent3svEXT - version 1.1 - offset ? - -Tangent3svEXT(v) - return void - param v Int16 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Binormal3bEXT(bx, by, bz) - return void - param bx Int8 in value - param by Int8 in value - param bz Int8 in value - category EXT_coordinate_frame - vectorequiv Binormal3bvEXT - version 1.1 - offset ? - -Binormal3bvEXT(v) - return void - param v Int8 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Binormal3dEXT(bx, by, bz) - return void - param bx CoordD in value - param by CoordD in value - param bz CoordD in value - category EXT_coordinate_frame - vectorequiv Binormal3dvEXT - version 1.1 - offset ? - -Binormal3dvEXT(v) - return void - param v CoordD in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Binormal3fEXT(bx, by, bz) - return void - param bx CoordF in value - param by CoordF in value - param bz CoordF in value - category EXT_coordinate_frame - vectorequiv Binormal3fvEXT - version 1.1 - offset ? - -Binormal3fvEXT(v) - return void - param v CoordF in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Binormal3iEXT(bx, by, bz) - return void - param bx Int32 in value - param by Int32 in value - param bz Int32 in value - category EXT_coordinate_frame - vectorequiv Binormal3ivEXT - version 1.1 - offset ? - -Binormal3ivEXT(v) - return void - param v Int32 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -Binormal3sEXT(bx, by, bz) - return void - param bx Int16 in value - param by Int16 in value - param bz Int16 in value - category EXT_coordinate_frame - vectorequiv Binormal3svEXT - version 1.1 - offset ? - -Binormal3svEXT(v) - return void - param v Int16 in array [3] - category EXT_coordinate_frame - version 1.1 - glxropcode ? - offset ? - -TangentPointerEXT(type, stride, pointer) - return void - param type TangentPointerTypeEXT in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category EXT_coordinate_frame - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - offset ? - -BinormalPointerEXT(type, stride, pointer) - return void - param type BinormalPointerTypeEXT in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category EXT_coordinate_frame - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.1 - offset ? - -############################################################################### -# -# Extension #157 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #158 -# EXT_texture_env_combine commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_env_combine - -############################################################################### -# -# Extension #159 -# APPLE_specular_vector commands -# -############################################################################### - -# (none) -newcategory: APPLE_specular_vector - -############################################################################### -# -# Extension #160 -# APPLE_transform_hint commands -# -############################################################################### - -# (none) -newcategory: APPLE_transform_hint - -############################################################################### -# -# Extension #161 -# SGIX_fog_scale commands -# -############################################################################### - -# (none) -newcategory: SGIX_fog_scale - -############################################################################### -# -# Extension #162 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #163 -# SUNX_constant_data commands -# -############################################################################### - -FinishTextureSUNX() - return void - category SUNX_constant_data - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #164 -# SUN_global_alpha commands -# -############################################################################### - -GlobalAlphaFactorbSUN(factor) - return void - param factor Int8 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactorsSUN(factor) - return void - param factor Int16 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactoriSUN(factor) - return void - param factor Int32 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactorfSUN(factor) - return void - param factor Float32 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactordSUN(factor) - return void - param factor Float64 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactorubSUN(factor) - return void - param factor UInt8 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactorusSUN(factor) - return void - param factor UInt16 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -GlobalAlphaFactoruiSUN(factor) - return void - param factor UInt32 in value - category SUN_global_alpha - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #165 -# SUN_triangle_list commands -# -############################################################################### - -ReplacementCodeuiSUN(code) - return void - param code UInt32 in value - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeusSUN(code) - return void - param code UInt16 in value - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeubSUN(code) - return void - param code UInt8 in value - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuivSUN(code) - return void - param code UInt32 in array [COMPSIZE()] - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeusvSUN(code) - return void - param code UInt16 in array [COMPSIZE()] - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeubvSUN(code) - return void - param code UInt8 in array [COMPSIZE()] - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -ReplacementCodePointerSUN(type, stride, pointer) - return void - param type ReplacementCodeTypeSUN in value - param stride SizeI in value - param pointer VoidPointer in array [COMPSIZE(type/stride)] retained - category SUN_triangle_list - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #166 -# SUN_vertex commands -# -############################################################################### - -Color4ubVertex2fSUN(r, g, b, a, x, y) - return void - param r UInt8 in value - param g UInt8 in value - param b UInt8 in value - param a UInt8 in value - param x Float32 in value - param y Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color4ubVertex2fvSUN(c, v) - return void - param c UInt8 in array [4] - param v Float32 in array [2] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color4ubVertex3fSUN(r, g, b, a, x, y, z) - return void - param r UInt8 in value - param g UInt8 in value - param b UInt8 in value - param a UInt8 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color4ubVertex3fvSUN(c, v) - return void - param c UInt8 in array [4] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color3fVertex3fSUN(r, g, b, x, y, z) - return void - param r Float32 in value - param g Float32 in value - param b Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color3fVertex3fvSUN(c, v) - return void - param c Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Normal3fVertex3fSUN(nx, ny, nz, x, y, z) - return void - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Normal3fVertex3fvSUN(n, v) - return void - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color4fNormal3fVertex3fSUN(r, g, b, a, nx, ny, nz, x, y, z) - return void - param r Float32 in value - param g Float32 in value - param b Float32 in value - param a Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -Color4fNormal3fVertex3fvSUN(c, n, v) - return void - param c Float32 in array [4] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fVertex3fSUN(s, t, x, y, z) - return void - param s Float32 in value - param t Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fVertex3fvSUN(tc, v) - return void - param tc Float32 in array [2] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord4fVertex4fSUN(s, t, p, q, x, y, z, w) - return void - param s Float32 in value - param t Float32 in value - param p Float32 in value - param q Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord4fVertex4fvSUN(tc, v) - return void - param tc Float32 in array [4] - param v Float32 in array [4] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor4ubVertex3fSUN(s, t, r, g, b, a, x, y, z) - return void - param s Float32 in value - param t Float32 in value - param r UInt8 in value - param g UInt8 in value - param b UInt8 in value - param a UInt8 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor4ubVertex3fvSUN(tc, c, v) - return void - param tc Float32 in array [2] - param c UInt8 in array [4] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor3fVertex3fSUN(s, t, r, g, b, x, y, z) - return void - param s Float32 in value - param t Float32 in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor3fVertex3fvSUN(tc, c, v) - return void - param tc Float32 in array [2] - param c Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fNormal3fVertex3fSUN(s, t, nx, ny, nz, x, y, z) - return void - param s Float32 in value - param t Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fNormal3fVertex3fvSUN(tc, n, v) - return void - param tc Float32 in array [2] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor4fNormal3fVertex3fSUN(s, t, r, g, b, a, nx, ny, nz, x, y, z) - return void - param s Float32 in value - param t Float32 in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param a Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord2fColor4fNormal3fVertex3fvSUN(tc, c, n, v) - return void - param tc Float32 in array [2] - param c Float32 in array [4] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord4fColor4fNormal3fVertex4fSUN(s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w) - return void - param s Float32 in value - param t Float32 in value - param p Float32 in value - param q Float32 in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param a Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -TexCoord4fColor4fNormal3fVertex4fvSUN(tc, c, n, v) - return void - param tc Float32 in array [4] - param c Float32 in array [4] - param n Float32 in array [3] - param v Float32 in array [4] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiVertex3fSUN(rc, x, y, z) - return void - param rc ReplacementCodeSUN in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiVertex3fvSUN(rc, v) - return void - param rc ReplacementCodeSUN in array [1] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor4ubVertex3fSUN(rc, r, g, b, a, x, y, z) - return void - param rc ReplacementCodeSUN in value - param r UInt8 in value - param g UInt8 in value - param b UInt8 in value - param a UInt8 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor4ubVertex3fvSUN(rc, c, v) - return void - param rc ReplacementCodeSUN in array [1] - param c UInt8 in array [4] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor3fVertex3fSUN(rc, r, g, b, x, y, z) - return void - param rc ReplacementCodeSUN in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor3fVertex3fvSUN(rc, c, v) - return void - param rc ReplacementCodeSUN in array [1] - param c Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiNormal3fVertex3fSUN(rc, nx, ny, nz, x, y, z) - return void - param rc ReplacementCodeSUN in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiNormal3fVertex3fvSUN(rc, n, v) - return void - param rc ReplacementCodeSUN in array [1] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor4fNormal3fVertex3fSUN(rc, r, g, b, a, nx, ny, nz, x, y, z) - return void - param rc ReplacementCodeSUN in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param a Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiColor4fNormal3fVertex3fvSUN(rc, c, n, v) - return void - param rc ReplacementCodeSUN in array [1] - param c Float32 in array [4] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fVertex3fSUN(rc, s, t, x, y, z) - return void - param rc ReplacementCodeSUN in value - param s Float32 in value - param t Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fVertex3fvSUN(rc, tc, v) - return void - param rc ReplacementCodeSUN in array [1] - param tc Float32 in array [2] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(rc, s, t, nx, ny, nz, x, y, z) - return void - param rc ReplacementCodeSUN in value - param s Float32 in value - param t Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(rc, tc, n, v) - return void - param rc ReplacementCodeSUN in array [1] - param tc Float32 in array [2] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(rc, s, t, r, g, b, a, nx, ny, nz, x, y, z) - return void - param rc ReplacementCodeSUN in value - param s Float32 in value - param t Float32 in value - param r Float32 in value - param g Float32 in value - param b Float32 in value - param a Float32 in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(rc, tc, c, n, v) - return void - param rc ReplacementCodeSUN in array [1] - param tc Float32 in array [2] - param c Float32 in array [4] - param n Float32 in array [3] - param v Float32 in array [3] - category SUN_vertex - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #167 - WGL_EXT_display_color_table -# Extension #168 - WGL_EXT_extensions_string -# Extension #169 - WGL_EXT_make_current_read -# Extension #170 - WGL_EXT_pixel_format -# Extension #171 - WGL_EXT_pbuffer -# Extension #172 - WGL_EXT_swap_control -# -############################################################################### - -############################################################################### -# -# Extension #173 -# EXT_blend_func_separate commands (also INGR_blend_func_separate) -# -############################################################################### - -BlendFuncSeparateEXT(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) - return void - param sfactorRGB BlendFuncSeparateParameterEXT in value - param dfactorRGB BlendFuncSeparateParameterEXT in value - param sfactorAlpha BlendFuncSeparateParameterEXT in value - param dfactorAlpha BlendFuncSeparateParameterEXT in value - category EXT_blend_func_separate - glxropcode 4134 - version 1.0 - extension - alias BlendFuncSeparate - -BlendFuncSeparateINGR(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) - return void - param sfactorRGB BlendFuncSeparateParameterEXT in value - param dfactorRGB BlendFuncSeparateParameterEXT in value - param sfactorAlpha BlendFuncSeparateParameterEXT in value - param dfactorAlpha BlendFuncSeparateParameterEXT in value - category INGR_blend_func_separate - glxropcode 4134 - version 1.0 - extension - alias BlendFuncSeparateEXT - -############################################################################### -# -# Extension #174 -# INGR_color_clamp commands -# -############################################################################### - -# (none) -newcategory: INGR_color_clamp - -############################################################################### -# -# Extension #175 -# INGR_interlace_read commands -# -############################################################################### - -# (none) -newcategory: INGR_interlace_read - -############################################################################### -# -# Extension #176 -# EXT_stencil_wrap commands -# -############################################################################### - -# (none) -newcategory: EXT_stencil_wrap - -############################################################################### -# -# Extension #177 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #178 -# EXT_422_pixels commands -# -############################################################################### - -# (none) -newcategory: EXT_422_pixels - -############################################################################### -# -# Extension #179 -# NV_texgen_reflection commands -# -############################################################################### - -# (none) -newcategory: NV_texgen_reflection - -############################################################################### -# -# Extension #??? -# @ EXT_texture_cube_map commands -# -############################################################################### - -# (none) - -############################################################################### -# -# Extension #180 - skipped -# Extension #181 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #182 -# SUN_convolution_border_modes commands -# -############################################################################### - -# (none) -newcategory: SUN_convolution_border_modes - -############################################################################### -# -# Extension #183 - GLX_SUN_get_transparent_index -# Extension #184 - skipped -# -############################################################################### - -############################################################################### -# -# Extension #185 -# EXT_texture_env_add commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_env_add - -############################################################################### -# -# Extension #186 -# EXT_texture_lod_bias commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_lod_bias - -############################################################################### -# -# Extension #187 -# EXT_texture_filter_anisotropic commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_filter_anisotropic - -############################################################################### -# -# Extension #188 -# EXT_vertex_weighting commands -# -############################################################################### - -# GLX stuff to be written -VertexWeightfEXT(weight) - return void - param weight Float32 in value - category EXT_vertex_weighting - vectorequiv VertexWeightfvEXT - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset 494 - -VertexWeightfvEXT(weight) - return void - param weight Float32 in array [1] - category EXT_vertex_weighting - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4135 - glxflags ignore - offset 495 - -VertexWeightPointerEXT(size, type, stride, pointer) - return void - param size SizeI in value - param type VertexWeightPointerTypeEXT in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(type/stride)] retained - category EXT_vertex_weighting - version 1.1 - extension soft WINSOFT NV10 - dlflags notlistable - glxflags ignore - offset 496 - -############################################################################### -# -# Extension #189 -# NV_light_max_exponent commands -# -############################################################################### - -# (none) -newcategory: NV_light_max_exponent - -############################################################################### -# -# Extension #190 -# NV_vertex_array_range commands -# -############################################################################### - -FlushVertexArrayRangeNV() - return void - category NV_vertex_array_range - version 1.1 - extension soft WINSOFT NV10 - dlflags notlistable - glxflags client-handcode server-handcode ignore - offset 497 - -VertexArrayRangeNV(length, pointer) - return void - param length SizeI in value - param pointer Void in array [COMPSIZE(length)] retained - category NV_vertex_array_range - version 1.1 - extension soft WINSOFT NV10 - dlflags notlistable - glxflags client-handcode server-handcode ignore - offset 498 - -############################################################################### -# -# Extension #191 -# NV_register_combiners commands -# -############################################################################### - -CombinerParameterfvNV(pname, params) - return void - param pname CombinerParameterNV in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4137 - glxflags ignore - offset 499 - -CombinerParameterfNV(pname, param) - return void - param pname CombinerParameterNV in value - param param Float32 in value - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4136 - glxflags ignore - offset 500 - -CombinerParameterivNV(pname, params) - return void - param pname CombinerParameterNV in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4139 - glxflags ignore - offset 501 - -CombinerParameteriNV(pname, param) - return void - param pname CombinerParameterNV in value - param param Int32 in value - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4138 - glxflags ignore - offset 502 - -CombinerInputNV(stage, portion, variable, input, mapping, componentUsage) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param variable CombinerVariableNV in value - param input CombinerRegisterNV in value - param mapping CombinerMappingNV in value - param componentUsage CombinerComponentUsageNV in value - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4140 - glxflags ignore - offset 503 - -CombinerOutputNV(stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param abOutput CombinerRegisterNV in value - param cdOutput CombinerRegisterNV in value - param sumOutput CombinerRegisterNV in value - param scale CombinerScaleNV in value - param bias CombinerBiasNV in value - param abDotProduct Boolean in value - param cdDotProduct Boolean in value - param muxSum Boolean in value - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4141 - glxflags ignore - offset 504 - -FinalCombinerInputNV(variable, input, mapping, componentUsage) - return void - param variable CombinerVariableNV in value - param input CombinerRegisterNV in value - param mapping CombinerMappingNV in value - param componentUsage CombinerComponentUsageNV in value - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxropcode 4142 - glxflags ignore - offset 505 - -GetCombinerInputParameterfvNV(stage, portion, variable, pname, params) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param variable CombinerVariableNV in value - param pname CombinerParameterNV in value - param params Float32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1270 - glxflags ignore - offset 506 - -GetCombinerInputParameterivNV(stage, portion, variable, pname, params) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param variable CombinerVariableNV in value - param pname CombinerParameterNV in value - param params Int32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1271 - glxflags ignore - offset 507 - -GetCombinerOutputParameterfvNV(stage, portion, pname, params) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param pname CombinerParameterNV in value - param params Float32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1272 - glxflags ignore - offset 508 - -GetCombinerOutputParameterivNV(stage, portion, pname, params) - return void - param stage CombinerStageNV in value - param portion CombinerPortionNV in value - param pname CombinerParameterNV in value - param params Int32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1273 - glxflags ignore - offset 509 - -GetFinalCombinerInputParameterfvNV(variable, pname, params) - return void - param variable CombinerVariableNV in value - param pname CombinerParameterNV in value - param params Float32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1274 - glxflags ignore - offset 510 - -GetFinalCombinerInputParameterivNV(variable, pname, params) - return void - param variable CombinerVariableNV in value - param pname CombinerParameterNV in value - param params Int32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners - version 1.1 - extension soft WINSOFT NV10 - glxvendorpriv 1275 - glxflags ignore - offset 511 - -############################################################################### -# -# Extension #192 -# NV_fog_distance commands -# -############################################################################### - -# (none) -newcategory: NV_fog_distance - -############################################################################### -# -# Extension #193 -# NV_texgen_emboss commands -# -############################################################################### - -# (none) -newcategory: NV_texgen_emboss - -############################################################################### -# -# Extension #194 -# NV_blend_square commands -# -############################################################################### - -# (none) -newcategory: NV_blend_square - -############################################################################### -# -# Extension #195 -# NV_texture_env_combine4 commands -# -############################################################################### - -# (none) -newcategory: NV_texture_env_combine4 - -############################################################################### -# -# Extension #196 -# MESA_resize_buffers commands -# -############################################################################### - -ResizeBuffersMESA() - return void - category MESA_resize_buffers - version 1.0 - glxropcode ? - offset 512 - -############################################################################### -# -# Extension #197 -# MESA_window_pos commands -# -# Note that the 2- and 3-component versions are now aliases of ARB -# entry points. -# -############################################################################### - -WindowPos2dMESA(x, y) - return void - param x CoordD in value - param y CoordD in value - category MESA_window_pos - vectorequiv WindowPos2dvMESA - version 1.0 - alias WindowPos2dARB - -WindowPos2dvMESA(v) - return void - param v CoordD in array [2] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos2dvARB - -WindowPos2fMESA(x, y) - return void - param x CoordF in value - param y CoordF in value - category MESA_window_pos - vectorequiv WindowPos2fvMESA - version 1.0 - alias WindowPos2fARB - -WindowPos2fvMESA(v) - return void - param v CoordF in array [2] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos2fvARB - -WindowPos2iMESA(x, y) - return void - param x CoordI in value - param y CoordI in value - category MESA_window_pos - vectorequiv WindowPos2ivMESA - version 1.0 - alias WindowPos2iARB - -WindowPos2ivMESA(v) - return void - param v CoordI in array [2] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos2ivARB - -WindowPos2sMESA(x, y) - return void - param x CoordS in value - param y CoordS in value - category MESA_window_pos - vectorequiv WindowPos2svMESA - version 1.0 - alias WindowPos2sARB - -WindowPos2svMESA(v) - return void - param v CoordS in array [2] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos2svARB - -WindowPos3dMESA(x, y, z) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - vectorequiv WindowPos3dvMESA - category MESA_window_pos - version 1.0 - alias WindowPos3dARB - -WindowPos3dvMESA(v) - return void - param v CoordD in array [3] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos3dvARB - -WindowPos3fMESA(x, y, z) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - category MESA_window_pos - vectorequiv WindowPos3fvMESA - version 1.0 - alias WindowPos3fARB - -WindowPos3fvMESA(v) - return void - param v CoordF in array [3] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos3fvARB - -WindowPos3iMESA(x, y, z) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - category MESA_window_pos - vectorequiv WindowPos3ivMESA - version 1.0 - alias WindowPos3iARB - -WindowPos3ivMESA(v) - return void - param v CoordI in array [3] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos3ivARB - -WindowPos3sMESA(x, y, z) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - category MESA_window_pos - vectorequiv WindowPos3svMESA - version 1.0 - alias WindowPos3sARB - -WindowPos3svMESA(v) - return void - param v CoordS in array [3] - category MESA_window_pos - version 1.0 - glxropcode ? - alias WindowPos3svARB - -WindowPos4dMESA(x, y, z, w) - return void - param x CoordD in value - param y CoordD in value - param z CoordD in value - param w CoordD in value - vectorequiv WindowPos4dvMESA - category MESA_window_pos - version 1.0 - offset 529 - -WindowPos4dvMESA(v) - return void - param v CoordD in array [4] - category MESA_window_pos - version 1.0 - glxropcode ? - offset 530 - -WindowPos4fMESA(x, y, z, w) - return void - param x CoordF in value - param y CoordF in value - param z CoordF in value - param w CoordF in value - category MESA_window_pos - vectorequiv WindowPos4fvMESA - version 1.0 - offset 531 - -WindowPos4fvMESA(v) - return void - param v CoordF in array [4] - category MESA_window_pos - version 1.0 - glxropcode ? - offset 532 - -WindowPos4iMESA(x, y, z, w) - return void - param x CoordI in value - param y CoordI in value - param z CoordI in value - param w CoordI in value - category MESA_window_pos - vectorequiv WindowPos4ivMESA - version 1.0 - offset 533 - -WindowPos4ivMESA(v) - return void - param v CoordI in array [4] - category MESA_window_pos - version 1.0 - glxropcode ? - offset 534 - -WindowPos4sMESA(x, y, z, w) - return void - param x CoordS in value - param y CoordS in value - param z CoordS in value - param w CoordS in value - category MESA_window_pos - vectorequiv WindowPos4svMESA - version 1.0 - offset 535 - -WindowPos4svMESA(v) - return void - param v CoordS in array [4] - category MESA_window_pos - version 1.0 - glxropcode ? - offset 536 - -############################################################################### -# -# Extension #198 -# EXT_texture_compression_s3tc commands -# -############################################################################### - -#@@ (none yet) - -############################################################################### -# -# Extension #199 -# IBM_cull_vertex commands -# -############################################################################### - -# (none) -newcategory: IBM_cull_vertex - -############################################################################### -# -# Extension #200 -# IBM_multimode_draw_arrays commands -# -############################################################################### - -MultiModeDrawArraysIBM(mode, first, count, primcount, modestride) - return void - param mode BeginMode in array [COMPSIZE(primcount)] - param first Int32 in array [COMPSIZE(primcount)] - param count SizeI in array [COMPSIZE(primcount)] - param primcount SizeI in value - param modestride Int32 in value - category IBM_multimode_draw_arrays - version 1.1 - glxropcode ? - offset 708 - - -MultiModeDrawElementsIBM(mode, count, type, indices, primcount, modestride) - return void - param mode BeginMode in array [COMPSIZE(primcount)] - param count SizeI in array [COMPSIZE(primcount)] - param type DrawElementsType in value - param indices ConstVoidPointer in array [COMPSIZE(primcount)] - param primcount SizeI in value - param modestride Int32 in value - category IBM_multimode_draw_arrays - version 1.1 - glxropcode ? - offset 709 - -############################################################################### -# -# Extension #201 -# IBM_vertex_array_lists commands -# -############################################################################### - -ColorPointerListIBM(size, type, stride, pointer, ptrstride) - return void - param size Int32 in value - param type ColorPointerType in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -SecondaryColorPointerListIBM(size, type, stride, pointer, ptrstride) - return void - param size Int32 in value - param type SecondaryColorPointerTypeIBM in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -EdgeFlagPointerListIBM(stride, pointer, ptrstride) - return void - param stride Int32 in value - param pointer BooleanPointer in array [COMPSIZE(stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -FogCoordPointerListIBM(type, stride, pointer, ptrstride) - return void - param type FogPointerTypeIBM in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -IndexPointerListIBM(type, stride, pointer, ptrstride) - return void - param type IndexPointerType in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -NormalPointerListIBM(type, stride, pointer, ptrstride) - return void - param type NormalPointerType in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -TexCoordPointerListIBM(size, type, stride, pointer, ptrstride) - return void - param size Int32 in value - param type TexCoordPointerType in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -VertexPointerListIBM(size, type, stride, pointer, ptrstride) - return void - param size Int32 in value - param type VertexPointerType in value - param stride Int32 in value - param pointer VoidPointer in array [COMPSIZE(size/type/stride)] retained - param ptrstride Int32 in value - category IBM_vertex_array_lists - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #202 -# SGIX_subsample commands -# -############################################################################### - -# (none) -newcategory: SGIX_subsample - -############################################################################### -# -# Extension #203 -# SGIX_ycrcba commands -# -############################################################################### - -# (none) -newcategory: SGIX_ycrcba - -############################################################################### -# -# Extension #204 -# SGIX_ycrcb_subsample commands -# -############################################################################### - -# (none) -newcategory: SGIX_ycrcb_subsample - -############################################################################### -# -# Extension #205 -# SGIX_depth_pass_instrument commands -# -############################################################################### - -# (none) -newcategory: SGIX_depth_pass_instrument - -############################################################################### -# -# Extension #206 -# 3DFX_texture_compression_FXT1 commands -# -############################################################################### - -# (none) -newcategory: 3DFX_texture_compression_FXT1 - -############################################################################### -# -# Extension #207 -# 3DFX_multisample commands -# -############################################################################### - -# (none) -newcategory: 3DFX_multisample - -############################################################################### -# -# Extension #208 -# 3DFX_tbuffer commands -# -############################################################################### - -TbufferMask3DFX(mask) - return void - param mask UInt32 in value - category 3DFX_tbuffer - version 1.2 - glxropcode ? - offset 553 - -############################################################################### -# -# Extension #209 -# EXT_multisample commands -# -############################################################################### - -SampleMaskEXT(value, invert) - return void - param value ClampedFloat32 in value - param invert Boolean in value - category EXT_multisample - version 1.0 - glxropcode ? - extension - offset 446 - -SamplePatternEXT(pattern) - return void - param pattern SamplePatternEXT in value - category EXT_multisample - version 1.0 - glxropcode ? - glxflags - extension - offset 447 - -############################################################################### -# -# Extension #210 -# SGIX_vertex_preclip commands -# -############################################################################### - -# (none) -newcategory: SGIX_vertex_preclip - -############################################################################### -# -# Extension #211 -# SGIX_convolution_accuracy commands -# -############################################################################### - -# (none) -newcategory: SGIX_convolution_accuracy - -############################################################################### -# -# Extension #212 -# SGIX_resample commands -# -############################################################################### - -# (none) -newcategory: SGIX_resample - -############################################################################### -# -# Extension #213 -# SGIS_point_line_texgen commands -# -############################################################################### - -# (none) -newcategory: SGIS_point_line_texgen - -############################################################################### -# -# Extension #214 -# SGIS_texture_color_mask commands -# -############################################################################### - -TextureColorMaskSGIS(red, green, blue, alpha) - return void - param red Boolean in value - param green Boolean in value - param blue Boolean in value - param alpha Boolean in value - category SGIS_texture_color_mask - version 1.1 - glxropcode 2082 - extension - offset ? - -############################################################################### -# -# Extension #215 - GLX_MESA_copy_sub_buffer -# Extension #216 - GLX_MESA_pixmap_colormap -# Extension #217 - GLX_MESA_release_buffers -# Extension #218 - GLX_MESA_set_3dfx_mode -# -############################################################################### - -############################################################################### -# -# Extension #219 -# SGIX_igloo_interface commands -# -############################################################################### - -IglooInterfaceSGIX(pname, params) - return void - dlflags notlistable - param pname IglooFunctionSelectSGIX in value - param params IglooParameterSGIX in array [COMPSIZE(pname)] - category SGIX_igloo_interface - version 1.0 - glxflags SGI ignore - extension - glxropcode 200 - offset ? - -############################################################################### -# -# Extension #220 -# EXT_texture_env_dot3 commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_env_dot3 - -############################################################################### -# -# Extension #221 -# ATI_texture_mirror_once commands -# -############################################################################### -# (none) -newcategory: ATI_texture_mirror_once - -############################################################################### -# -# Extension #222 -# NV_fence commands -# -############################################################################### - -DeleteFencesNV(n, fences) - return void - param n SizeI in value - param fences FenceNV in array [n] - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1276 - glxflags ignore - offset 647 - -GenFencesNV(n, fences) - return void - param n SizeI in value - param fences FenceNV out array [n] - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1277 - glxflags ignore - offset 648 - -IsFenceNV(fence) - return Boolean - param fence FenceNV in value - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1278 - glxflags ignore - offset 649 - -TestFenceNV(fence) - return Boolean - param fence FenceNV in value - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1279 - glxflags ignore - offset 650 - -GetFenceivNV(fence, pname, params) - return void - param fence FenceNV in value - param pname FenceParameterNameNV in value - param params Int32 out array [COMPSIZE(pname)] - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1280 - glxflags ignore - offset 651 - -FinishFenceNV(fence) - return void - param fence FenceNV in value - category NV_fence - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1312 - glxflags ignore - offset 652 - -SetFenceNV(fence, condition) - return void - param fence FenceNV in value - param condition FenceConditionNV in value - category NV_fence - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - offset 653 - -############################################################################### -# -# Extension #225 -# NV_evaluators commands -# -############################################################################### - -MapControlPointsNV(target, index, type, ustride, vstride, uorder, vorder, packed, points) - return void - param target EvalTargetNV in value - param index UInt32 in value - param type MapTypeNV in value - param ustride SizeI in value - param vstride SizeI in value - param uorder CheckedInt32 in value - param vorder CheckedInt32 in value - param packed Boolean in value - param points Void in array [COMPSIZE(target/uorder/vorder)] - category NV_evaluators - dlflags handcode - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -MapParameterivNV(target, pname, params) - return void - param target EvalTargetNV in value - param pname MapParameterNV in value - param params CheckedInt32 in array [COMPSIZE(target/pname)] - category NV_evaluators - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -MapParameterfvNV(target, pname, params) - return void - param target EvalTargetNV in value - param pname MapParameterNV in value - param params CheckedFloat32 in array [COMPSIZE(target/pname)] - category NV_evaluators - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -GetMapControlPointsNV(target, index, type, ustride, vstride, packed, points) - return void - param target EvalTargetNV in value - param index UInt32 in value - param type MapTypeNV in value - param ustride SizeI in value - param vstride SizeI in value - param packed Boolean in value - param points Void out array [COMPSIZE(target)] - category NV_evaluators - dlflags notlistable - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -GetMapParameterivNV(target, pname, params) - return void - param target EvalTargetNV in value - param pname MapParameterNV in value - param params Int32 out array [COMPSIZE(target/pname)] - category NV_evaluators - dlflags notlistable - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -GetMapParameterfvNV(target, pname, params) - return void - param target EvalTargetNV in value - param pname MapParameterNV in value - param params Float32 out array [COMPSIZE(target/pname)] - category NV_evaluators - dlflags notlistable - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -GetMapAttribParameterivNV(target, index, pname, params) - return void - param target EvalTargetNV in value - param index UInt32 in value - param pname MapAttribParameterNV in value - param params Int32 out array [COMPSIZE(pname)] - category NV_evaluators - dlflags notlistable - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -GetMapAttribParameterfvNV(target, index, pname, params) - return void - param target EvalTargetNV in value - param index UInt32 in value - param pname MapAttribParameterNV in value - param params Float32 out array [COMPSIZE(pname)] - category NV_evaluators - dlflags notlistable - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -EvalMapsNV(target, mode) - return void - param target EvalTargetNV in value - param mode EvalMapsModeNV in value - category NV_evaluators - version 1.1 - extension soft WINSOFT NV10 - glxflags ignore - offset ? - -############################################################################### -# -# Extension #226 -# NV_packed_depth_stencil commands -# -############################################################################### - -# (none) -newcategory: NV_packed_depth_stencil - -############################################################################### -# -# Extension #227 -# NV_register_combiners2 commands -# -############################################################################### - -CombinerStageParameterfvNV(stage, pname, params) - return void - param stage CombinerStageNV in value - param pname CombinerParameterNV in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category NV_register_combiners2 - version 1.1 - extension - glxflags ignore - offset ? - -GetCombinerStageParameterfvNV(stage, pname, params) - return void - param stage CombinerStageNV in value - param pname CombinerParameterNV in value - param params Float32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_register_combiners2 - version 1.1 - extension - glxflags ignore - offset ? - -############################################################################### -# -# Extension #228 -# NV_texture_compression_vtc commands -# -############################################################################### - -# (none) -newcategory: NV_texture_compression_vtc - -############################################################################### -# -# Extension #229 -# NV_texture_rectangle commands -# -############################################################################### - -# (none) -newcategory: NV_texture_rectangle - -############################################################################### -# -# Extension #230 -# NV_texture_shader commands -# -############################################################################### - -# (none) -newcategory: NV_texture_shader - -############################################################################### -# -# Extension #231 -# NV_texture_shader2 commands -# -############################################################################### - -# (none) -newcategory: NV_texture_shader2 - -############################################################################### -# -# Extension #232 -# NV_vertex_array_range2 commands -# -############################################################################### - -# (none) -newcategory: NV_vertex_array_range2 - -############################################################################### -# -# Extension #233 -# NV_vertex_program commands -# -############################################################################### - -AreProgramsResidentNV(n, programs, residences) - return Boolean - param n SizeI in value - param programs UInt32 in array [n] - param residences Boolean out array [n] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1293 - offset 578 - -BindProgramNV(target, id) - return void - param target VertexAttribEnumNV in value - param id UInt32 in value - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4180 - alias BindProgramARB - -DeleteProgramsNV(n, programs) - return void - param n SizeI in value - param programs UInt32 in array [n] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1294 - alias DeleteProgramsARB - -ExecuteProgramNV(target, id, params) - return void - param target VertexAttribEnumNV in value - param id UInt32 in value - param params Float32 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxropcode 4181 - offset 581 - -GenProgramsNV(n, programs) - return void - param n SizeI in value - param programs UInt32 out array [n] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1295 - alias GenProgramsARB - -GetProgramParameterdvNV(target, index, pname, params) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param pname VertexAttribEnumNV in value - param params Float64 out array [4] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1297 - offset 583 - -GetProgramParameterfvNV(target, index, pname, params) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param pname VertexAttribEnumNV in value - param params Float32 out array [4] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1296 - offset 584 - -# GetProgramParameterSigneddvNV(target, index, pname, params) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param pname VertexAttribEnumNV in value -# param params Float64 out array [4] -# category NV_vertex_program1_1_dcc -# dlflags notlistable -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? -# -# GetProgramParameterSignedfvNV(target, index, pname, params) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param pname VertexAttribEnumNV in value -# param params Float32 out array [4] -# category NV_vertex_program1_1_dcc -# dlflags notlistable -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? - -GetProgramivNV(id, pname, params) - return void - param id UInt32 in value - param pname VertexAttribEnumNV in value - param params Int32 out array [4] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1298 - offset 585 - -GetProgramStringNV(id, pname, program) - return void - param id UInt32 in value - param pname VertexAttribEnumNV in value - param program ProgramCharacterNV out array [COMPSIZE(id/pname)] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1299 - offset 586 - -GetTrackMatrixivNV(target, address, pname, params) - return void - param target VertexAttribEnumNV in value - param address UInt32 in value - param pname VertexAttribEnumNV in value - param params Int32 out array [1] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - glxvendorpriv 1300 - offset 587 - -GetVertexAttribdvNV(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnumNV in value - param params Float64 out array [1] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1301 - alias GetVertexAttribdv - -GetVertexAttribfvNV(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnumNV in value - param params Float32 out array [1] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1302 - alias GetVertexAttribfv - -GetVertexAttribivNV(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnumNV in value - param params Int32 out array [1] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1303 - alias GetVertexAttribiv - -GetVertexAttribPointervNV(index, pname, pointer) - return void - param index UInt32 in value - param pname VertexAttribEnumNV in value - param pointer VoidPointer out array [1] - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - alias GetVertexAttribPointerv - -IsProgramNV(id) - return Boolean - param id UInt32 in value - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxvendorpriv 1304 - alias IsProgram - -LoadProgramNV(target, id, len, program) - return void - param target VertexAttribEnumNV in value - param id UInt32 in value - param len SizeI in value - param program UInt8 in array [len] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4183 - offset 593 - -ProgramParameter4dNV(target, index, x, y, z, w) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category NV_vertex_program - version 1.2 - vectorequiv ProgramParameter4dvNV - extension soft WINSOFT NV10 - offset 594 - -ProgramParameter4dvNV(target, index, v) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param v Float64 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4185 - offset 595 - -ProgramParameter4fNV(target, index, x, y, z, w) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category NV_vertex_program - version 1.2 - vectorequiv ProgramParameter4fvNV - extension soft WINSOFT NV10 - offset 596 - -ProgramParameter4fvNV(target, index, v) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param v Float32 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4184 - offset 597 - -#??? 'count' was SizeI in the latest NVIDIA gl.spec, but UInt32 in the -#??? extension specification in the registry. -ProgramParameters4dvNV(target, index, count, v) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param count UInt32 in value - param v Float64 in array [count*4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4187 - offset 598 - -#??? 'count' was SizeI in the latest NVIDIA gl.spec, but UInt32 in the -#??? extension specification in the registry. -ProgramParameters4fvNV(target, index, count, v) - return void - param target VertexAttribEnumNV in value - param index UInt32 in value - param count UInt32 in value - param v Float32 in array [count*4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4186 - offset 599 - -# ProgramParameterSigned4dNV(target, index, x, y, z, w) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param x Float64 in value -# param y Float64 in value -# param z Float64 in value -# param w Float64 in value -# category NV_vertex_program1_1_dcc -# version 1.2 -# vectorequiv ProgramParameterSigned4dvNV -# extension soft WINSOFT NV20 -# offset ? -# -# ProgramParameterSigned4dvNV(target, index, v) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param v Float64 in array [4] -# category NV_vertex_program1_1_dcc -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? -# -# ProgramParameterSigned4fNV(target, index, x, y, z, w) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param x Float32 in value -# param y Float32 in value -# param z Float32 in value -# param w Float32 in value -# category NV_vertex_program1_1_dcc -# version 1.2 -# vectorequiv ProgramParameterSigned4fvNV -# extension soft WINSOFT NV20 -# offset ? -# -# ProgramParameterSigned4fvNV(target, index, v) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param v Float32 in array [4] -# category NV_vertex_program1_1_dcc -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? -# -# ProgramParametersSigned4dvNV(target, index, count, v) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param count SizeI in value -# param v Float64 in array [count*4] -# category NV_vertex_program1_1_dcc -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? -# -# ProgramParametersSigned4fvNV(target, index, count, v) -# return void -# param target VertexAttribEnumNV in value -# param index Int32 in value -# param count SizeI in value -# param v Float32 in array [count*4] -# category NV_vertex_program1_1_dcc -# version 1.2 -# extension soft WINSOFT NV20 -# glxflags ignore -# offset ? - -RequestResidentProgramsNV(n, programs) - return void - param n SizeI in value - param programs UInt32 in array [n] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4182 - offset 600 - -TrackMatrixNV(target, address, matrix, transform) - return void - param target VertexAttribEnumNV in value - param address UInt32 in value - param matrix VertexAttribEnumNV in value - param transform VertexAttribEnumNV in value - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4188 - offset 601 - -VertexAttribPointerNV(index, fsize, type, stride, pointer) - return void - param index UInt32 in value - param fsize Int32 in value - param type VertexAttribEnumNV in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(fsize/type/stride)] retained - category NV_vertex_program - dlflags notlistable - version 1.2 - extension soft WINSOFT NV10 - glxflags ignore - offset 602 - -VertexAttrib1dNV(index, x) - return void - param index UInt32 in value - param x Float64 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib1dvNV - extension soft WINSOFT NV10 - alias VertexAttrib1d - -VertexAttrib1dvNV(index, v) - return void - param index UInt32 in value - param v Float64 in array [1] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4197 - alias VertexAttrib1dv - -VertexAttrib1fNV(index, x) - return void - param index UInt32 in value - param x Float32 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib1fvNV - extension soft WINSOFT NV10 - alias VertexAttrib1f - -VertexAttrib1fvNV(index, v) - return void - param index UInt32 in value - param v Float32 in array [1] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4193 - alias VertexAttrib1fv - -VertexAttrib1sNV(index, x) - return void - param index UInt32 in value - param x Int16 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib1svNV - extension soft WINSOFT NV10 - alias VertexAttrib1s - -VertexAttrib1svNV(index, v) - return void - param index UInt32 in value - param v Int16 in array [1] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4189 - alias VertexAttrib1sv - -VertexAttrib2dNV(index, x, y) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib2dvNV - extension soft WINSOFT NV10 - alias VertexAttrib2d - -VertexAttrib2dvNV(index, v) - return void - param index UInt32 in value - param v Float64 in array [2] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4198 - alias VertexAttrib2dv - -VertexAttrib2fNV(index, x, y) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib2fvNV - extension soft WINSOFT NV10 - alias VertexAttrib2f - -VertexAttrib2fvNV(index, v) - return void - param index UInt32 in value - param v Float32 in array [2] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4194 - alias VertexAttrib2fv - -VertexAttrib2sNV(index, x, y) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib2svNV - extension soft WINSOFT NV10 - alias VertexAttrib2s - -VertexAttrib2svNV(index, v) - return void - param index UInt32 in value - param v Int16 in array [2] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4190 - alias VertexAttrib2sv - -VertexAttrib3dNV(index, x, y, z) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib3dvNV - extension soft WINSOFT NV10 - alias VertexAttrib3d - -VertexAttrib3dvNV(index, v) - return void - param index UInt32 in value - param v Float64 in array [3] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4199 - alias VertexAttrib3dv - -VertexAttrib3fNV(index, x, y, z) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib3fvNV - extension soft WINSOFT NV10 - alias VertexAttrib3f - -VertexAttrib3fvNV(index, v) - return void - param index UInt32 in value - param v Float32 in array [3] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4195 - alias VertexAttrib3fv - -VertexAttrib3sNV(index, x, y, z) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib3svNV - extension soft WINSOFT NV10 - alias VertexAttrib3s - -VertexAttrib3svNV(index, v) - return void - param index UInt32 in value - param v Int16 in array [3] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4191 - alias VertexAttrib3sv - -VertexAttrib4dNV(index, x, y, z, w) - return void - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib4dvNV - extension soft WINSOFT NV10 - alias VertexAttrib4d - -VertexAttrib4dvNV(index, v) - return void - param index UInt32 in value - param v Float64 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4200 - alias VertexAttrib4dv - -VertexAttrib4fNV(index, x, y, z, w) - return void - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib4fvNV - extension soft WINSOFT NV10 - alias VertexAttrib4f - -VertexAttrib4fvNV(index, v) - return void - param index UInt32 in value - param v Float32 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4196 - alias VertexAttrib4fv - -VertexAttrib4sNV(index, x, y, z, w) - return void - param index UInt32 in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - param w Int16 in value - category NV_vertex_program - version 1.2 - vectorequiv VertexAttrib4svNV - extension soft WINSOFT NV10 - alias VertexAttrib4s - -VertexAttrib4svNV(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4192 - alias VertexAttrib4sv - -VertexAttrib4ubNV(index, x, y, z, w) - return void - param index UInt32 in value - param x ColorUB in value - param y ColorUB in value - param z ColorUB in value - param w ColorUB in value - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - vectorequiv VertexAttrib4ubvNV - alias VertexAttrib4Nub - -VertexAttrib4ubvNV(index, v) - return void - param index UInt32 in value - param v ColorUB in array [4] - category NV_vertex_program - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4201 - alias VertexAttrib4Nubv - -VertexAttribs1dvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float64 in array [count] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4210 - offset 629 - -VertexAttribs1fvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float32 in array [count] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4206 - offset 630 - -VertexAttribs1svNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Int16 in array [count] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4202 - offset 631 - -VertexAttribs2dvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float64 in array [count*2] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4211 - offset 632 - -VertexAttribs2fvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float32 in array [count*2] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4207 - offset 633 - -VertexAttribs2svNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Int16 in array [count*2] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4203 - offset 634 - -VertexAttribs3dvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float64 in array [count*3] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4212 - offset 635 - -VertexAttribs3fvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float32 in array [count*3] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4208 - offset 636 - -VertexAttribs3svNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Int16 in array [count*3] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4204 - offset 637 - -VertexAttribs4dvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float64 in array [count*4] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4213 - offset 638 - -VertexAttribs4fvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Float32 in array [count*4] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4209 - offset 639 - -VertexAttribs4svNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v Int16 in array [count*4] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4205 - offset 640 - -VertexAttribs4ubvNV(index, count, v) - return void - param index UInt32 in value - param count SizeI in value - param v ColorUB in array [count*4] - category NV_vertex_program - dlflags handcode - version 1.2 - extension soft WINSOFT NV10 - glxropcode 4214 - offset 641 - - -############################################################################### -# -# Extension #234 - GLX_SGIX_visual_select_group -# -############################################################################### - -############################################################################### -# -# Extension #235 -# SGIX_texture_coordinate_clamp commands -# -############################################################################### - -# (none) -newcategory: SGIX_texture_coordinate_clamp - -############################################################################### -# -# Extension #236 -# SGIX_scalebias_hint commands -# -############################################################################### - -# (none) -newcategory: SGIX_scalebias_hint - -############################################################################### -# -# Extension #237 - GLX_OML_swap_method commands -# Extension #238 - GLX_OML_sync_control commands -# -############################################################################### - -############################################################################### -# -# Extension #239 -# OML_interlace commands -# -############################################################################### - -# (none) -newcategory: OML_interlace - -############################################################################### -# -# Extension #240 -# OML_subsample commands -# -############################################################################### - -# (none) -newcategory: OML_subsample - -############################################################################### -# -# Extension #241 -# OML_resample commands -# -############################################################################### - -# (none) -newcategory: OML_resample - -############################################################################### -# -# Extension #242 - WGL_OML_sync_control commands -# -############################################################################### - -############################################################################### -# -# Extension #243 -# NV_copy_depth_to_color commands -# -############################################################################### - -# (none) -newcategory: NV_copy_depth_to_color - -############################################################################### -# -# Extension #244 -# ATI_envmap_bumpmap commands -# -############################################################################### - -TexBumpParameterivATI(pname, param) - return void - param pname TexBumpParameterATI in value - param param Int32 in array [COMPSIZE(pname)] - category ATI_envmap_bumpmap - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexBumpParameterfvATI(pname, param) - return void - param pname TexBumpParameterATI in value - param param Float32 in array [COMPSIZE(pname)] - category ATI_envmap_bumpmap - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetTexBumpParameterivATI(pname, param) - return void - param pname GetTexBumpParameterATI in value - param param Int32 out array [COMPSIZE(pname)] - category ATI_envmap_bumpmap - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetTexBumpParameterfvATI(pname, param) - return void - param pname GetTexBumpParameterATI in value - param param Float32 out array [COMPSIZE(pname)] - category ATI_envmap_bumpmap - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #245 -# ATI_fragment_shader commands -# -############################################################################### - -GenFragmentShadersATI(range) - return UInt32 - param range UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindFragmentShaderATI(id) - return void - param id UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteFragmentShaderATI(id) - return void - param id UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BeginFragmentShaderATI() - return void - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EndFragmentShaderATI() - return void - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -PassTexCoordATI(dst, coord, swizzle) - return void - param dst UInt32 in value - param coord UInt32 in value - param swizzle SwizzleOpATI in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SampleMapATI(dst, interp, swizzle) - return void - param dst UInt32 in value - param interp UInt32 in value - param swizzle SwizzleOpATI in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ColorFragmentOp1ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMask UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ColorFragmentOp2ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMask UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - param arg2 UInt32 in value - param arg2Rep UInt32 in value - param arg2Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ColorFragmentOp3ATI(op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMask UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - param arg2 UInt32 in value - param arg2Rep UInt32 in value - param arg2Mod UInt32 in value - param arg3 UInt32 in value - param arg3Rep UInt32 in value - param arg3Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -AlphaFragmentOp1ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -AlphaFragmentOp2ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - param arg2 UInt32 in value - param arg2Rep UInt32 in value - param arg2Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -AlphaFragmentOp3ATI(op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod) - return void - param op FragmentOpATI in value - param dst UInt32 in value - param dstMod UInt32 in value - param arg1 UInt32 in value - param arg1Rep UInt32 in value - param arg1Mod UInt32 in value - param arg2 UInt32 in value - param arg2Rep UInt32 in value - param arg2Mod UInt32 in value - param arg3 UInt32 in value - param arg3Rep UInt32 in value - param arg3Mod UInt32 in value - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SetFragmentShaderConstantATI(dst, value) - return void - param dst UInt32 in value - param value ConstFloat32 in array [4] - category ATI_fragment_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #246 -# ATI_pn_triangles commands -# -############################################################################### - -PNTrianglesiATI(pname, param) - return void - param pname PNTrianglesPNameATI in value - param param Int32 in value - category ATI_pn_triangles - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -PNTrianglesfATI(pname, param) - return void - param pname PNTrianglesPNameATI in value - param param Float32 in value - category ATI_pn_triangles - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #247 -# ATI_vertex_array_object commands -# -############################################################################### - -NewObjectBufferATI(size, pointer, usage) - return UInt32 - param size SizeI in value - param pointer ConstVoid in array [size] - param usage ArrayObjectUsageATI in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsObjectBufferATI(buffer) - return Boolean - param buffer UInt32 in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -UpdateObjectBufferATI(buffer, offset, size, pointer, preserve) - return void - param buffer UInt32 in value - param offset UInt32 in value - param size SizeI in value - param pointer ConstVoid in array [size] - param preserve PreserveModeATI in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetObjectBufferfvATI(buffer, pname, params) - return void - param buffer UInt32 in value - param pname ArrayObjectPNameATI in value - param params Float32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetObjectBufferivATI(buffer, pname, params) - return void - param buffer UInt32 in value - param pname ArrayObjectPNameATI in value - param params Int32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -FreeObjectBufferATI(buffer) - return void - param buffer UInt32 in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ArrayObjectATI(array, size, type, stride, buffer, offset) - return void - param array EnableCap in value - param size Int32 in value - param type ScalarType in value - param stride SizeI in value - param buffer UInt32 in value - param offset UInt32 in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetArrayObjectfvATI(array, pname, params) - return void - param array EnableCap in value - param pname ArrayObjectPNameATI in value - param params Float32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetArrayObjectivATI(array, pname, params) - return void - param array EnableCap in value - param pname ArrayObjectPNameATI in value - param params Int32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -VariantArrayObjectATI(id, type, stride, buffer, offset) - return void - param id UInt32 in value - param type ScalarType in value - param stride SizeI in value - param buffer UInt32 in value - param offset UInt32 in value - category ATI_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetVariantArrayObjectfvATI(id, pname, params) - return void - param id UInt32 in value - param pname ArrayObjectPNameATI in value - param params Float32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVariantArrayObjectivATI(id, pname, params) - return void - param id UInt32 in value - param pname ArrayObjectPNameATI in value - param params Int32 out array [1] - category ATI_vertex_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #248 -# EXT_vertex_shader commands -# -############################################################################### - -BeginVertexShaderEXT() - return void - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EndVertexShaderEXT() - return void - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindVertexShaderEXT(id) - return void - param id UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GenVertexShadersEXT(range) - return UInt32 - param range UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteVertexShaderEXT(id) - return void - param id UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ShaderOp1EXT(op, res, arg1) - return void - param op VertexShaderOpEXT in value - param res UInt32 in value - param arg1 UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ShaderOp2EXT(op, res, arg1, arg2) - return void - param op VertexShaderOpEXT in value - param res UInt32 in value - param arg1 UInt32 in value - param arg2 UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ShaderOp3EXT(op, res, arg1, arg2, arg3) - return void - param op VertexShaderOpEXT in value - param res UInt32 in value - param arg1 UInt32 in value - param arg2 UInt32 in value - param arg3 UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SwizzleEXT(res, in, outX, outY, outZ, outW) - return void - param res UInt32 in value - param in UInt32 in value - param outX VertexShaderCoordOutEXT in value - param outY VertexShaderCoordOutEXT in value - param outZ VertexShaderCoordOutEXT in value - param outW VertexShaderCoordOutEXT in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -WriteMaskEXT(res, in, outX, outY, outZ, outW) - return void - param res UInt32 in value - param in UInt32 in value - param outX VertexShaderWriteMaskEXT in value - param outY VertexShaderWriteMaskEXT in value - param outZ VertexShaderWriteMaskEXT in value - param outW VertexShaderWriteMaskEXT in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -InsertComponentEXT(res, src, num) - return void - param res UInt32 in value - param src UInt32 in value - param num UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ExtractComponentEXT(res, src, num) - return void - param res UInt32 in value - param src UInt32 in value - param num UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GenSymbolsEXT(datatype, storagetype, range, components) - return UInt32 - param datatype DataTypeEXT in value - param storagetype VertexShaderStorageTypeEXT in value - param range ParameterRangeEXT in value - param components UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SetInvariantEXT(id, type, addr) - return void - param id UInt32 in value - param type ScalarType in value - param addr Void in array [COMPSIZE(id/type)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SetLocalConstantEXT(id, type, addr) - return void - param id UInt32 in value - param type ScalarType in value - param addr Void in array [COMPSIZE(id/type)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantbvEXT(id, addr) - return void - param id UInt32 in value - param addr Int8 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantsvEXT(id, addr) - return void - param id UInt32 in value - param addr Int16 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantivEXT(id, addr) - return void - param id UInt32 in value - param addr Int32 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantfvEXT(id, addr) - return void - param id UInt32 in value - param addr Float32 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantdvEXT(id, addr) - return void - param id UInt32 in value - param addr Float64 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantubvEXT(id, addr) - return void - param id UInt32 in value - param addr UInt8 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantusvEXT(id, addr) - return void - param id UInt32 in value - param addr UInt16 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantuivEXT(id, addr) - return void - param id UInt32 in value - param addr UInt32 in array [COMPSIZE(id)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VariantPointerEXT(id, type, stride, addr) - return void - param id UInt32 in value - param type ScalarType in value - param stride UInt32 in value - param addr Void in array [COMPSIZE(id/type/stride)] - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EnableVariantClientStateEXT(id) - return void - param id UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DisableVariantClientStateEXT(id) - return void - param id UInt32 in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindLightParameterEXT(light, value) - return UInt32 - param light LightName in value - param value LightParameter in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindMaterialParameterEXT(face, value) - return UInt32 - param face MaterialFace in value - param value MaterialParameter in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindTexGenParameterEXT(unit, coord, value) - return UInt32 - param unit TextureUnit in value - param coord TextureCoordName in value - param value TextureGenParameter in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindTextureUnitParameterEXT(unit, value) - return UInt32 - param unit TextureUnit in value - param value VertexShaderTextureUnitParameter in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindParameterEXT(value) - return UInt32 - param value VertexShaderParameterEXT in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsVariantEnabledEXT(id, cap) - return Boolean - param id UInt32 in value - param cap VariantCapEXT in value - category EXT_vertex_shader - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetVariantBooleanvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Boolean out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVariantIntegervEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Int32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVariantFloatvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Float32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVariantPointervEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data VoidPointer out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetInvariantBooleanvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Boolean out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetInvariantIntegervEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Int32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetInvariantFloatvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Float32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetLocalConstantBooleanvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Boolean out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetLocalConstantIntegervEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Int32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetLocalConstantFloatvEXT(id, value, data) - return void - param id UInt32 in value - param value GetVariantValueEXT in value - param data Float32 out array [COMPSIZE(id)] - category EXT_vertex_shader - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #249 -# ATI_vertex_streams commands -# -############################################################################### - -VertexStream1sATI(stream, x) - return void - param stream VertexStreamATI in value - param x Int16 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1svATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int16 in array [1] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1iATI(stream, x) - return void - param stream VertexStreamATI in value - param x Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1ivATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int32 in array [1] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1fATI(stream, x) - return void - param stream VertexStreamATI in value - param x Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1fvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float32 in array [1] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1dATI(stream, x) - return void - param stream VertexStreamATI in value - param x Float64 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream1dvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float64 in array [1] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2sATI(stream, x, y) - return void - param stream VertexStreamATI in value - param x Int16 in value - param y Int16 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2svATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int16 in array [2] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2iATI(stream, x, y) - return void - param stream VertexStreamATI in value - param x Int32 in value - param y Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2ivATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int32 in array [2] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2fATI(stream, x, y) - return void - param stream VertexStreamATI in value - param x Float32 in value - param y Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2fvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float32 in array [2] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2dATI(stream, x, y) - return void - param stream VertexStreamATI in value - param x Float64 in value - param y Float64 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream2dvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float64 in array [2] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3sATI(stream, x, y, z) - return void - param stream VertexStreamATI in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3svATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int16 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3iATI(stream, x, y, z) - return void - param stream VertexStreamATI in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3ivATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int32 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3fATI(stream, x, y, z) - return void - param stream VertexStreamATI in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3fvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float32 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3dATI(stream, x, y, z) - return void - param stream VertexStreamATI in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream3dvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float64 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4sATI(stream, x, y, z, w) - return void - param stream VertexStreamATI in value - param x Int16 in value - param y Int16 in value - param z Int16 in value - param w Int16 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4svATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int16 in array [4] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4iATI(stream, x, y, z, w) - return void - param stream VertexStreamATI in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4ivATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int32 in array [4] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4fATI(stream, x, y, z, w) - return void - param stream VertexStreamATI in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4fvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float32 in array [4] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4dATI(stream, x, y, z, w) - return void - param stream VertexStreamATI in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexStream4dvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float64 in array [4] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3bATI(stream, nx, ny, nz) - return void - param stream VertexStreamATI in value - param nx Int8 in value - param ny Int8 in value - param nz Int8 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3bvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int8 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3sATI(stream, nx, ny, nz) - return void - param stream VertexStreamATI in value - param nx Int16 in value - param ny Int16 in value - param nz Int16 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3svATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int16 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3iATI(stream, nx, ny, nz) - return void - param stream VertexStreamATI in value - param nx Int32 in value - param ny Int32 in value - param nz Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3ivATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Int32 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3fATI(stream, nx, ny, nz) - return void - param stream VertexStreamATI in value - param nx Float32 in value - param ny Float32 in value - param nz Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3fvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float32 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3dATI(stream, nx, ny, nz) - return void - param stream VertexStreamATI in value - param nx Float64 in value - param ny Float64 in value - param nz Float64 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalStream3dvATI(stream, coords) - return void - param stream VertexStreamATI in value - param coords Float64 in array [3] - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ClientActiveVertexStreamATI(stream) - return void - param stream VertexStreamATI in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexBlendEnviATI(pname, param) - return void - param pname VertexStreamATI in value - param param Int32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexBlendEnvfATI(pname, param) - return void - param pname VertexStreamATI in value - param param Float32 in value - category ATI_vertex_streams - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #250 - WGL_I3D_digital_video_control -# Extension #251 - WGL_I3D_gamma -# Extension #252 - WGL_I3D_genlock -# Extension #253 - WGL_I3D_image_buffer -# Extension #254 - WGL_I3D_swap_frame_lock -# Extension #255 - WGL_I3D_swap_frame_usage -# -############################################################################### - -############################################################################### -# -# Extension #256 -# ATI_element_array commands -# -############################################################################### - -ElementPointerATI(type, pointer) - return void - param type ElementPointerTypeATI in value - param pointer Void in array [COMPSIZE(type)] retained - category ATI_element_array - dlflags notlistable - glxflags client-handcode client-intercept server-handcode - version 1.2 - offset ? - -DrawElementArrayATI(mode, count) - return void - param mode BeginMode in value - param count SizeI in value - category ATI_element_array - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.2 - offset ? - -DrawRangeElementArrayATI(mode, start, end, count) - return void - param mode BeginMode in value - param start UInt32 in value - param end UInt32 in value - param count SizeI in value - category ATI_element_array - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.2 - offset ? - -############################################################################### -# -# Extension #257 -# SUN_mesh_array commands -# -############################################################################### - -DrawMeshArraysSUN(mode, first, count, width) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - param width SizeI in value - category SUN_mesh_array - dlflags handcode - glxflags client-handcode client-intercept server-handcode - version 1.1 - glxropcode ? - offset ? - -############################################################################### -# -# Extension #258 -# SUN_slice_accum commands -# -############################################################################### - -# (none) -newcategory: SUN_slice_accum - -############################################################################### -# -# Extension #259 -# NV_multisample_filter_hint commands -# -############################################################################### - -# (none) -newcategory: NV_multisample_filter_hint - -############################################################################### -# -# Extension #260 -# NV_depth_clamp commands -# -############################################################################### - -# (none) -newcategory: NV_depth_clamp - -############################################################################### -# -# Extension #261 -# NV_occlusion_query commands -# -############################################################################### - -GenOcclusionQueriesNV(n, ids) - return void - param n SizeI in value - param ids UInt32 out array [n] - dlflags notlistable - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -DeleteOcclusionQueriesNV(n, ids) - return void - param n SizeI in value - param ids UInt32 in array [n] - dlflags notlistable - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -IsOcclusionQueryNV(id) - return Boolean - param id UInt32 in value - dlflags notlistable - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -BeginOcclusionQueryNV(id) - return void - param id UInt32 in value - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -EndOcclusionQueryNV() - return void - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -GetOcclusionQueryivNV(id, pname, params) - return void - param id UInt32 in value - param pname OcclusionQueryParameterNameNV in value - param params Int32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -GetOcclusionQueryuivNV(id, pname, params) - return void - param id UInt32 in value - param pname OcclusionQueryParameterNameNV in value - param params UInt32 out array [COMPSIZE(pname)] - dlflags notlistable - category NV_occlusion_query - version 1.2 - extension soft WINSOFT NV20 - glxflags ignore - -############################################################################### -# -# Extension #262 -# NV_point_sprite commands -# -############################################################################### - -PointParameteriNV(pname, param) - return void - param pname PointParameterNameARB in value - param param Int32 in value - category NV_point_sprite - version 1.2 - extension soft WINSOFT NV20 - glxropcode 4221 - alias PointParameteri - -PointParameterivNV(pname, params) - return void - param pname PointParameterNameARB in value - param params Int32 in array [COMPSIZE(pname)] - category NV_point_sprite - version 1.2 - extension soft WINSOFT NV20 - glxropcode 4222 - alias PointParameteriv - -############################################################################### -# -# Extension #263 - WGL_NV_render_depth_texture -# Extension #264 - WGL_NV_render_texture_rectangle -# -############################################################################### - -############################################################################### -# -# Extension #265 -# NV_texture_shader3 commands -# -############################################################################### - -# (none) -newcategory: NV_texture_shader3 - -############################################################################### -# -# Extension #266 -# NV_vertex_program1_1 commands -# -############################################################################### - -# (none) -newcategory: NV_vertex_program1_1 - -############################################################################### -# -# Extension #267 -# EXT_shadow_funcs commands -# -############################################################################### - -# (none) -newcategory: EXT_shadow_funcs - -############################################################################### -# -# Extension #268 -# EXT_stencil_two_side commands -# -############################################################################### - -ActiveStencilFaceEXT(face) - return void - param face StencilFaceDirection in value - category EXT_stencil_two_side - version 1.3 - glxropcode 4220 - offset 646 - -############################################################################### -# -# Extension #269 -# ATI_text_fragment_shader commands -# -############################################################################### - -# Uses ARB_vertex_program entry points -newcategory: ATI_text_fragment_shader - -############################################################################### -# -# Extension #270 -# APPLE_client_storage commands -# -############################################################################### - -# (none) -newcategory: APPLE_client_storage - -############################################################################### -# -# Extension #271 -# APPLE_element_array commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -# @@@ like #256 ATI_element_array -ElementPointerAPPLE(type, pointer) - return void - param type ElementPointerTypeATI in value - param pointer Void in array [type] - category APPLE_element_array - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DrawElementArrayAPPLE(mode, first, count) - return void - param mode BeginMode in value - param first Int32 in value - param count SizeI in value - category APPLE_element_array - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DrawRangeElementArrayAPPLE(mode, start, end, first, count) - return void - param mode BeginMode in value - param start UInt32 in value - param end UInt32 in value - param first Int32 in value - param count SizeI in value - category APPLE_element_array - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiDrawElementArrayAPPLE(mode, first, count, primcount) - return void - param mode BeginMode in value - param first Int32 in array [primcount] - param count SizeI in array [primcount] - param primcount SizeI in value - category APPLE_element_array - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, primcount) - return void - param mode BeginMode in value - param start UInt32 in value - param end UInt32 in value - param first Int32 in array [primcount] - param count SizeI in array [primcount] - param primcount SizeI in value - category APPLE_element_array - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #272 -# APPLE_fence commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -# @@@ like #222 NV_fence -GenFencesAPPLE(n, fences) - return void - param n SizeI in value - param fences FenceNV out array [n] - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -DeleteFencesAPPLE(n, fences) - return void - param n SizeI in value - param fences FenceNV in array [n] - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SetFenceAPPLE(fence) - return void - param fence FenceNV in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsFenceAPPLE(fence) - return Boolean - param fence FenceNV in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TestFenceAPPLE(fence) - return Boolean - param fence FenceNV in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FinishFenceAPPLE(fence) - return void - param fence FenceNV in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TestObjectAPPLE(object, name) - return Boolean - param object ObjectTypeAPPLE in value - param name UInt32 in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FinishObjectAPPLE(object, name) - return void - param object ObjectTypeAPPLE in value - param name Int32 in value - category APPLE_fence - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #273 -# APPLE_vertex_array_object commands -# -############################################################################### - -BindVertexArrayAPPLE(array) - return void - param array UInt32 in value - category APPLE_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - alias BindVertexArray - -DeleteVertexArraysAPPLE(n, arrays) - return void - param n SizeI in value - param arrays UInt32 in array [n] - category APPLE_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - alias DeleteVertexArrays - -GenVertexArraysAPPLE(n, arrays) - return void - param n SizeI in value - param arrays UInt32 out array [n] - category APPLE_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - alias GenVertexArray - -IsVertexArrayAPPLE(array) - return Boolean - param array UInt32 in value - category APPLE_vertex_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - alias IsVertexArray - -############################################################################### -# -# Extension #274 -# APPLE_vertex_array_range commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -# @@@ like #190 NV_vertex_array_range, -VertexArrayRangeAPPLE(length, pointer) - return void - param length SizeI in value - param pointer Void out array [length] - category APPLE_vertex_array_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FlushVertexArrayRangeAPPLE(length, pointer) - return void - param length SizeI in value - param pointer Void out array [length] - category APPLE_vertex_array_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexArrayParameteriAPPLE(pname, param) - return void - param pname VertexArrayPNameAPPLE in value - param param Int32 in value - category APPLE_vertex_array_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #275 -# APPLE_ycbcr_422 commands -# -############################################################################### - -# (none) -newcategory: APPLE_ycbcr_422 - -############################################################################### -# -# Extension #276 -# S3_s3tc commands -# -############################################################################### - -# (none) -newcategory: S3_s3tc - -############################################################################### -# -# Extension #277 -# ATI_draw_buffers commands -# -############################################################################### - -DrawBuffersATI(n, bufs) - return void - param n SizeI in value - param bufs DrawBufferModeATI in array [n] - category ATI_draw_buffers - version 1.2 - extension - glxropcode 233 - alias DrawBuffers - -############################################################################### -# -# Extension #278 - WGL_ATI_pixel_format_float -# -############################################################################### -newcategory: ATI_pixel_format_float -passthru: /* This is really a WGL extension, but defines some associated GL enums. -passthru: * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. -passthru: */ - -############################################################################### -# -# Extension #279 -# ATI_texture_env_combine3 commands -# -############################################################################### - -# (none) -newcategory: ATI_texture_env_combine3 - -############################################################################### -# -# Extension #280 -# ATI_texture_float commands -# -############################################################################### - -# (none) -newcategory: ATI_texture_float - -############################################################################### -# -# Extension #281 (also WGL_NV_float_buffer) -# NV_float_buffer commands -# -############################################################################### - -# (none) -newcategory: NV_float_buffer - -############################################################################### -# -# Extension #282 -# NV_fragment_program commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -# Some NV_fragment_program entry points are shared with ARB_vertex_program, -# and are only included in that #define block, for now. -newcategory: NV_fragment_program -passthru: /* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ - -ProgramNamedParameter4fNV(id, len, name, x, y, z, w) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category NV_fragment_program - version 1.2 - extension - glxropcode ? - glxflags ignore - offset 682 - -ProgramNamedParameter4dNV(id, len, name, x, y, z, w) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category NV_fragment_program - version 1.2 - extension - glxropcode ? - glxflags ignore - offset 683 - -ProgramNamedParameter4fvNV(id, len, name, v) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param v Float32 in array [4] - category NV_fragment_program - version 1.2 - extension - glxropcode ? - glxflags ignore - offset 684 - -ProgramNamedParameter4dvNV(id, len, name, v) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param v Float64 in array [4] - category NV_fragment_program - version 1.2 - extension - glxropcode ? - glxflags ignore - offset 685 - -GetProgramNamedParameterfvNV(id, len, name, params) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param params Float32 out array [4] - category NV_fragment_program - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset 686 - -GetProgramNamedParameterdvNV(id, len, name, params) - return void - param id UInt32 in value - param len SizeI in value - param name UInt8 in array [1] - param params Float64 out array [4] - category NV_fragment_program - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset 687 - -############################################################################### -# -# Extension #283 -# NV_half_float commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -Vertex2hNV(x, y) - return void - param x Half16NV in value - param y Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Vertex2hvNV(v) - return void - param v Half16NV in array [2] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Vertex3hNV(x, y, z) - return void - param x Half16NV in value - param y Half16NV in value - param z Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Vertex3hvNV(v) - return void - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Vertex4hNV(x, y, z, w) - return void - param x Half16NV in value - param y Half16NV in value - param z Half16NV in value - param w Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Vertex4hvNV(v) - return void - param v Half16NV in array [4] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Normal3hNV(nx, ny, nz) - return void - param nx Half16NV in value - param ny Half16NV in value - param nz Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Normal3hvNV(v) - return void - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Color3hNV(red, green, blue) - return void - param red Half16NV in value - param green Half16NV in value - param blue Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Color3hvNV(v) - return void - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Color4hNV(red, green, blue, alpha) - return void - param red Half16NV in value - param green Half16NV in value - param blue Half16NV in value - param alpha Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Color4hvNV(v) - return void - param v Half16NV in array [4] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord1hNV(s) - return void - param s Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord1hvNV(v) - return void - param v Half16NV in array [1] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord2hNV(s, t) - return void - param s Half16NV in value - param t Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord2hvNV(v) - return void - param v Half16NV in array [2] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord3hNV(s, t, r) - return void - param s Half16NV in value - param t Half16NV in value - param r Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord3hvNV(v) - return void - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord4hNV(s, t, r, q) - return void - param s Half16NV in value - param t Half16NV in value - param r Half16NV in value - param q Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoord4hvNV(v) - return void - param v Half16NV in array [4] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord1hNV(target, s) - return void - param target TextureUnit in value - param s Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord1hvNV(target, v) - return void - param target TextureUnit in value - param v Half16NV in array [1] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord2hNV(target, s, t) - return void - param target TextureUnit in value - param s Half16NV in value - param t Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord2hvNV(target, v) - return void - param target TextureUnit in value - param v Half16NV in array [2] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord3hNV(target, s, t, r) - return void - param target TextureUnit in value - param s Half16NV in value - param t Half16NV in value - param r Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord3hvNV(target, v) - return void - param target TextureUnit in value - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord4hNV(target, s, t, r, q) - return void - param target TextureUnit in value - param s Half16NV in value - param t Half16NV in value - param r Half16NV in value - param q Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MultiTexCoord4hvNV(target, v) - return void - param target TextureUnit in value - param v Half16NV in array [4] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FogCoordhNV(fog) - return void - param fog Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FogCoordhvNV(fog) - return void - param fog Half16NV in array [1] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SecondaryColor3hNV(red, green, blue) - return void - param red Half16NV in value - param green Half16NV in value - param blue Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SecondaryColor3hvNV(v) - return void - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexWeighthNV(weight) - return void - param weight Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexWeighthvNV(weight) - return void - param weight Half16NV in array [1] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib1hNV(index, x) - return void - param index UInt32 in value - param x Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib1hvNV(index, v) - return void - param index UInt32 in value - param v Half16NV in array [1] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib2hNV(index, x, y) - return void - param index UInt32 in value - param x Half16NV in value - param y Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib2hvNV(index, v) - return void - param index UInt32 in value - param v Half16NV in array [2] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib3hNV(index, x, y, z) - return void - param index UInt32 in value - param x Half16NV in value - param y Half16NV in value - param z Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib3hvNV(index, v) - return void - param index UInt32 in value - param v Half16NV in array [3] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib4hNV(index, x, y, z, w) - return void - param index UInt32 in value - param x Half16NV in value - param y Half16NV in value - param z Half16NV in value - param w Half16NV in value - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttrib4hvNV(index, v) - return void - param index UInt32 in value - param v Half16NV in array [4] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribs1hvNV(index, n, v) - return void - param index UInt32 in value - param n SizeI in value - param v Half16NV in array [n] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribs2hvNV(index, n, v) - return void - param index UInt32 in value - param n SizeI in value - param v Half16NV in array [n] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribs3hvNV(index, n, v) - return void - param index UInt32 in value - param n SizeI in value - param v Half16NV in array [n] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribs4hvNV(index, n, v) - return void - param index UInt32 in value - param n SizeI in value - param v Half16NV in array [n] - category NV_half_float - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #284 -# NV_pixel_data_range commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -PixelDataRangeNV(target, length, pointer) - return void - param target PixelDataRangeTargetNV in value - param length SizeI in value - param pointer Void out array [length] - category NV_pixel_data_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FlushPixelDataRangeNV(target) - return void - param target PixelDataRangeTargetNV in value - category NV_pixel_data_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #285 -# NV_primitive_restart commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -PrimitiveRestartNV() - return void - category NV_primitive_restart - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -PrimitiveRestartIndexNV(index) - return void - param index UInt32 in value - category NV_primitive_restart - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - - -############################################################################### -# -# Extension #286 -# NV_texture_expand_normal commands -# -############################################################################### - -# (none) -newcategory: NV_texture_expand_normal - -############################################################################### -# -# Extension #287 -# NV_vertex_program2 commands -# -############################################################################### - -# (none) -newcategory: NV_vertex_program2 - -############################################################################### -# -# Extension #288 -# ATI_map_object_buffer commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -MapObjectBufferATI(buffer) - return VoidPointer - param buffer UInt32 in value - category ATI_map_object_buffer - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -UnmapObjectBufferATI(buffer) - return void - param buffer UInt32 in value - category ATI_map_object_buffer - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #289 -# ATI_separate_stencil commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -StencilOpSeparateATI(face, sfail, dpfail, dppass) - return void - param face StencilFaceDirection in value - param sfail StencilOp in value - param dpfail StencilOp in value - param dppass StencilOp in value - category ATI_separate_stencil - version 1.2 - extension - glxropcode ? - glxflags ignore - alias StencilOpSeparate - -StencilFuncSeparateATI(frontfunc, backfunc, ref, mask) - return void - param frontfunc StencilFunction in value - param backfunc StencilFunction in value - param ref ClampedStencilValue in value - param mask MaskedStencilValue in value - category ATI_separate_stencil - version 1.2 - extension - glxropcode ? - glxflags ignore - alias StencilFuncSeparate - -############################################################################### -# -# Extension #290 -# ATI_vertex_attrib_array_object commands -# -############################################################################### - -# @@ Need to verify/add GLX protocol - -VertexAttribArrayObjectATI(index, size, type, normalized, stride, buffer, offset) - return void - param index UInt32 in value - param size Int32 in value - param type VertexAttribPointerTypeARB in value - param normalized Boolean in value - param stride SizeI in value - param buffer UInt32 in value - param offset UInt32 in value - category ATI_vertex_attrib_array_object - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetVertexAttribArrayObjectfvATI(index, pname, params) - return void - param index UInt32 in value - param pname ArrayObjectPNameATI in value - param params Float32 out array [pname] - category ATI_vertex_attrib_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVertexAttribArrayObjectivATI(index, pname, params) - return void - param index UInt32 in value - param pname ArrayObjectPNameATI in value - param params Int32 out array [pname] - category ATI_vertex_attrib_array_object - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #291 - OpenGL ES only, not in glext.h -# OES_byte_coordinates commands -# -############################################################################### - -# void Vertex{234}bOES(T coords) -# void Vertex{234}bvOES(T *coords) -# void TexCoord{1234}bOES(T coords) -# void TexCoord{1234}bvOES(T *coords) -# void MultiTexCoord{1234}bOES(enum texture, T coords) -# void MultiTexCoord{1234}bvOES(enum texture, T *coords) -# All are handcode - mapped to non-byte GLX protocol on client side - -# newcategory: OES_byte_coordinates - -############################################################################### -# -# Extension #292 - OpenGL ES only, not in glext.h -# OES_fixed_point commands -# -############################################################################### - -# Too many to list in just a comment - see spec in the extension registry -# All are handcode - mapped to non-byte GLX protocol on client side - -# newcategory: OES_fixed_point - -############################################################################### -# -# Extension #293 - OpenGL ES only, not in glext.h -# OES_single_precision commands -# -############################################################################### - -# void DepthRangefOES(clampf n, clampf f) -# void FrustumfOES(float l, float r, float b, float t, float n, float f) -# void OrthofOES(float l, float r, float b, float t, float n, float f) -# void ClipPlanefOES(enum plane, const float* equation) -# void glClearDepthfOES(clampd depth) -# GLX ropcodes 4308-4312 (not respectively, see extension spec) -# void GetClipPlanefOES(enum plane, float* equation) -# GLX vendor private 1421 - -# newcategory: OES_single_precision - -############################################################################### -# -# Extension #294 - OpenGL ES only, not in glext.h -# OES_compressed_paletted_texture commands -# -############################################################################### - -# (none) -# newcategory: OES_compressed_paletted_texture - -############################################################################### -# -# Extension #295 - This is an OpenGL ES extension, but also implemented in Mesa -# OES_read_format commands -# -############################################################################### - -# (none) -newcategory: OES_read_format - -############################################################################### -# -# Extension #296 - OpenGL ES only, not in glext.h -# OES_query_matrix commands -# -############################################################################### - -# bitfield queryMatrixxOES(fixed mantissa[16], int exponent[16]) -# All are handcode - mapped to non-byte GLX protocol on client side - -# newcategory: OES_query_matrix - -############################################################################### -# -# Extension #297 -# EXT_depth_bounds_test commands -# -############################################################################### - -DepthBoundsEXT(zmin, zmax) - return void - param zmin ClampedFloat64 in value - param zmax ClampedFloat64 in value - category EXT_depth_bounds_test - version 1.2 - extension - glxropcode 4229 - offset 699 - -############################################################################### -# -# Extension #298 -# EXT_texture_mirror_clamp commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_mirror_clamp - -############################################################################### -# -# Extension #299 -# EXT_blend_equation_separate commands -# -############################################################################### - -BlendEquationSeparateEXT(modeRGB, modeAlpha) - return void - param modeRGB BlendEquationModeEXT in value - param modeAlpha BlendEquationModeEXT in value - category EXT_blend_equation_separate - version 1.2 - extension - glxropcode 4228 - alias BlendEquationSeparate - -############################################################################### -# -# Extension #300 -# MESA_pack_invert commands -# -############################################################################### - -# (none) -newcategory: MESA_pack_invert - -############################################################################### -# -# Extension #301 -# MESA_ycbcr_texture commands -# -############################################################################### - -# (none) -newcategory: MESA_ycbcr_texture - -############################################################################### -# -# Extension #301 -# MESA_ycbcr_texture commands -# -############################################################################### - -# (none) -newcategory: MESA_ycbcr_texture - -############################################################################### -# -# Extension #302 -# EXT_pixel_buffer_object commands -# -############################################################################### - -# (none) -newcategory: EXT_pixel_buffer_object - -############################################################################### -# -# Extension #303 -# NV_fragment_program_option commands -# -############################################################################### - -# (none) -newcategory: NV_fragment_program_option - -############################################################################### -# -# Extension #304 -# NV_fragment_program2 commands -# -############################################################################### - -# (none) -newcategory: NV_fragment_program2 - -############################################################################### -# -# Extension #305 -# NV_vertex_program2_option commands -# -############################################################################### - -# (none) -newcategory: NV_vertex_program2_option - -############################################################################### -# -# Extension #306 -# NV_vertex_program3 commands -# -############################################################################### - -# (none) -newcategory: NV_vertex_program3 - -############################################################################### -# -# Extension #307 - GLX_SGIX_hyperpipe commands -# Extension #308 - GLX_MESA_agp_offset commands -# Extension #309 - GL_EXT_texture_compression_dxt1 (OpenGL ES only, subset of _st3c version) -# -############################################################################### - -############################################################################### -# -# Extension #310 -# EXT_framebuffer_object commands -# -############################################################################### - -IsRenderbufferEXT(renderbuffer) - return Boolean - param renderbuffer UInt32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxvendorpriv 1422 - glxflags ignore - alias IsRenderbuffer - -BindRenderbufferEXT(target, renderbuffer) - return void - param target RenderbufferTarget in value - param renderbuffer UInt32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4316 - glxflags ignore - alias BindRenderbuffer - -DeleteRenderbuffersEXT(n, renderbuffers) - return void - param n SizeI in value - param renderbuffers UInt32 in array [n] - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4317 - glxflags ignore - alias DeleteRenderbuffers - -GenRenderbuffersEXT(n, renderbuffers) - return void - param n SizeI in value - param renderbuffers UInt32 out array [n] - category EXT_framebuffer_object - version 1.2 - extension - glxvendorpriv 1423 - glxflags ignore - alias GenRenderbuffers - -RenderbufferStorageEXT(target, internalformat, width, height) - return void - param target RenderbufferTarget in value - param internalformat GLenum in value - param width SizeI in value - param height SizeI in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4318 - glxflags ignore - alias RenderbufferStorage - -GetRenderbufferParameterivEXT(target, pname, params) - return void - param target RenderbufferTarget in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_framebuffer_object - dlflags notlistable - version 1.2 - extension - glxvendorpriv 1424 - glxflags ignore - alias GetRenderbufferParameteriv - -IsFramebufferEXT(framebuffer) - return Boolean - param framebuffer UInt32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxvendorpriv 1425 - glxflags ignore - alias IsFramebuffer - -BindFramebufferEXT(target, framebuffer) - return void - param target FramebufferTarget in value - param framebuffer UInt32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4319 - glxflags ignore - alias BindFramebuffer - -DeleteFramebuffersEXT(n, framebuffers) - return void - param n SizeI in value - param framebuffers UInt32 in array [n] - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4320 - glxflags ignore - alias DeleteFramebuffers - -GenFramebuffersEXT(n, framebuffers) - return void - param n SizeI in value - param framebuffers UInt32 out array [n] - category EXT_framebuffer_object - version 1.2 - extension - glxvendorpriv 1426 - glxflags ignore - alias GenFramebuffers - -CheckFramebufferStatusEXT(target) - return GLenum - param target FramebufferTarget in value - category EXT_framebuffer_object - version 1.2 - extension - glxvendorpriv 1427 - glxflags ignore - alias CheckFramebufferStatus - -FramebufferTexture1DEXT(target, attachment, textarget, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4321 - glxflags ignore - alias FramebufferTexture1D - -FramebufferTexture2DEXT(target, attachment, textarget, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4322 - glxflags ignore - alias FramebufferTexture2D - -FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param textarget GLenum in value - param texture UInt32 in value - param level Int32 in value - param zoffset Int32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4323 - glxflags ignore - alias FramebufferTexture3D - -FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param renderbuffertarget RenderbufferTarget in value - param renderbuffer UInt32 in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4324 - glxflags ignore - alias FramebufferRenderbuffer - -GetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_framebuffer_object - dlflags notlistable - version 1.2 - extension - glxvendorpriv 1428 - glxflags ignore - alias GetFramebufferAttachmentParameteriv - -GenerateMipmapEXT(target) - return void - param target GLenum in value - category EXT_framebuffer_object - version 1.2 - extension - glxropcode 4325 - glxflags ignore - alias GenerateMipmap - - -############################################################################### -# -# Extension #311 -# GREMEDY_string_marker commands -# -############################################################################### - -StringMarkerGREMEDY(len, string) - return void - param len SizeI in value - param string Void in array [len] - category GREMEDY_string_marker - version 1.0 - extension - glxflags ignore - offset ? - -############################################################################### -# -# Extension #312 -# EXT_packed_depth_stencil commands -# -############################################################################### - -# (none) -newcategory: EXT_packed_depth_stencil - -############################################################################### -# -# Extension #313 - WGL_3DL_stereo_control -# -############################################################################### - -############################################################################### -# -# Extension #314 -# EXT_stencil_clear_tag commands -# -############################################################################### - -StencilClearTagEXT(stencilTagBits, stencilClearTag) - return void - param stencilTagBits SizeI in value - param stencilClearTag UInt32 in value - category EXT_stencil_clear_tag - version 1.5 - extension - glxropcode 4223 - glxflags ignore - offset ? - -############################################################################### -# -# Extension #315 -# EXT_texture_sRGB commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_sRGB - -############################################################################### -# -# Extension #316 -# EXT_framebuffer_blit commands -# -############################################################################### - -BlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) - return void - param srcX0 Int32 in value - param srcY0 Int32 in value - param srcX1 Int32 in value - param srcY1 Int32 in value - param dstX0 Int32 in value - param dstY0 Int32 in value - param dstX1 Int32 in value - param dstY1 Int32 in value - param mask ClearBufferMask in value - param filter GLenum in value - category EXT_framebuffer_blit - version 1.5 - glxropcode 4330 - alias BlitFramebuffer - -############################################################################### -# -# Extension #317 -# EXT_framebuffer_multisample commands -# -############################################################################### - -RenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height) - return void - param target GLenum in value - param samples SizeI in value - param internalformat GLenum in value - param width SizeI in value - param height SizeI in value - category EXT_framebuffer_multisample - version 1.5 - glxropcode 4331 - alias RenderbufferStorageMultisample - -############################################################################### -# -# Extension #318 -# MESAX_texture_stack commands -# -############################################################################### - -# (none) -newcategory: MESAX_texture_stack - -############################################################################### -# -# Extension #319 -# EXT_timer_query commands -# -############################################################################### - -GetQueryObjecti64vEXT(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params Int64EXT out array [pname] - category EXT_timer_query - dlflags notlistable - version 1.5 - glxvendorpriv 1328 - glxflags ignore - offset ? - -GetQueryObjectui64vEXT(id, pname, params) - return void - param id UInt32 in value - param pname GLenum in value - param params UInt64EXT out array [pname] - category EXT_timer_query - dlflags notlistable - version 1.5 - glxvendorpriv 1329 - glxflags ignore - offset ? - -############################################################################### -# -# Extension #320 -# EXT_gpu_program_parameters commands -# -############################################################################### - -ProgramEnvParameters4fvEXT(target, index, count, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param count SizeI in value - param params Float32 in array [count*4] - category EXT_gpu_program_parameters - version 1.2 - glxropcode 4281 - offset ? - -ProgramLocalParameters4fvEXT(target, index, count, params) - return void - param target ProgramTargetARB in value - param index UInt32 in value - param count SizeI in value - param params Float32 in array [count*4] - category EXT_gpu_program_parameters - version 1.2 - glxropcode 4282 - offset ? - -############################################################################### -# -# Extension #321 -# APPLE_flush_buffer_range commands -# -############################################################################### - -BufferParameteriAPPLE(target, pname, param) - return void - param target GLenum in value - param pname GLenum in value - param param Int32 in value - category APPLE_flush_buffer_range - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -FlushMappedBufferRangeAPPLE(target, offset, size) - return void - param target GLenum in value - param offset BufferOffset in value - param size BufferSize in value - category APPLE_flush_buffer_range - version 1.5 - extension - glxropcode ? - glxflags ignore - alias FlushMappedBufferRange - -############################################################################### -# -# Extension #322 -# NV_gpu_program4 commands -# -############################################################################### - -ProgramLocalParameterI4iNV(target, index, x, y, z, w) - return void - param target ProgramTarget in value - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category NV_gpu_program4 - version 1.3 - vectorequiv ProgramLocalParameterI4ivNV - glxvectorequiv ProgramLocalParameterI4ivNV - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramLocalParameterI4ivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params Int32 in array [4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramLocalParametersI4ivNV(target, index, count, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params Int32 in array [count*4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramLocalParameterI4uiNV(target, index, x, y, z, w) - return void - param target ProgramTarget in value - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - param w UInt32 in value - category NV_gpu_program4 - version 1.3 - vectorequiv ProgramLocalParameterI4uivNV - glxvectorequiv ProgramLocalParameterI4uivNV - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramLocalParameterI4uivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 in array [4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramLocalParametersI4uivNV(target, index, count, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params UInt32 in array [count*4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParameterI4iNV(target, index, x, y, z, w) - return void - param target ProgramTarget in value - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category NV_gpu_program4 - version 1.3 - vectorequiv ProgramEnvParameterI4ivNV - glxvectorequiv ProgramEnvParameterI4ivNV - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParameterI4ivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params Int32 in array [4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParametersI4ivNV(target, index, count, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params Int32 in array [count*4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParameterI4uiNV(target, index, x, y, z, w) - return void - param target ProgramTarget in value - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - param w UInt32 in value - category NV_gpu_program4 - version 1.3 - vectorequiv ProgramEnvParameterI4uivNV - glxvectorequiv ProgramEnvParameterI4uivNV - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParameterI4uivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 in array [4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramEnvParametersI4uivNV(target, index, count, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params UInt32 in array [count*4] - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -GetProgramLocalParameterIivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params Int32 out array [4] - dlflags notlistable - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -GetProgramLocalParameterIuivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 out array [4] - dlflags notlistable - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -GetProgramEnvParameterIivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params Int32 out array [4] - dlflags notlistable - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -GetProgramEnvParameterIuivNV(target, index, params) - return void - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 out array [4] - dlflags notlistable - category NV_gpu_program4 - version 1.3 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #323 -# NV_geometry_program4 commands -# -############################################################################### - -ProgramVertexLimitNV(target, limit) - return void - param target ProgramTarget in value - param limit Int32 in value - category NV_geometry_program4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - -FramebufferTextureEXT(target, attachment, texture, level) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - category NV_geometry_program4 - version 2.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - alias FramebufferTextureARB - -FramebufferTextureLayerEXT(target, attachment, texture, level, layer) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param layer CheckedInt32 in value - category NV_geometry_program4 - version 2.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - alias FramebufferTextureLayer - -FramebufferTextureFaceEXT(target, attachment, texture, level, face) - return void - param target FramebufferTarget in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param face TextureTarget in value - category NV_geometry_program4 - version 2.0 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - alias FramebufferTextureFaceARB - -############################################################################### -# -# Extension #324 -# EXT_geometry_shader4 commands -# -############################################################################### - -ProgramParameteriEXT(program, pname, value) - return void - param program UInt32 in value - param pname ProgramParameterPName in value - param value Int32 in value - category EXT_geometry_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias ProgramParameteriARB - -############################################################################### -# -# Extension #325 -# NV_vertex_program4 commands -# -############################################################################### - -VertexAttribI1iEXT(index, x) - return void - param index UInt32 in value - param x Int32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI1ivEXT - glxvectorequiv VertexAttribI1ivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI1i - -VertexAttribI2iEXT(index, x, y) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI2ivEXT - glxvectorequiv VertexAttribI2ivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI2i - -VertexAttribI3iEXT(index, x, y, z) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI3ivEXT - glxvectorequiv VertexAttribI3ivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI3i - -VertexAttribI4iEXT(index, x, y, z, w) - return void - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI4ivEXT - glxvectorequiv VertexAttribI4ivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4i - -VertexAttribI1uiEXT(index, x) - return void - param index UInt32 in value - param x UInt32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI1uivEXT - glxvectorequiv VertexAttribI1uivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI1ui - -VertexAttribI2uiEXT(index, x, y) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI2uivEXT - glxvectorequiv VertexAttribI2uivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI2ui - -VertexAttribI3uiEXT(index, x, y, z) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI3uivEXT - glxvectorequiv VertexAttribI3uivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI3ui - -VertexAttribI4uiEXT(index, x, y, z, w) - return void - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - param w UInt32 in value - category NV_vertex_program4 - beginend allow-inside - vectorequiv VertexAttribI4uivEXT - glxvectorequiv VertexAttribI4uivEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4ui - -VertexAttribI1ivEXT(index, v) - return void - param index UInt32 in value - param v Int32 in array [1] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI1iv - -VertexAttribI2ivEXT(index, v) - return void - param index UInt32 in value - param v Int32 in array [2] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI2iv - -VertexAttribI3ivEXT(index, v) - return void - param index UInt32 in value - param v Int32 in array [3] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI3iv - -VertexAttribI4ivEXT(index, v) - return void - param index UInt32 in value - param v Int32 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4iv - -VertexAttribI1uivEXT(index, v) - return void - param index UInt32 in value - param v UInt32 in array [1] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI1uiv - -VertexAttribI2uivEXT(index, v) - return void - param index UInt32 in value - param v UInt32 in array [2] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI2uiv - -VertexAttribI3uivEXT(index, v) - return void - param index UInt32 in value - param v UInt32 in array [3] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI3uiv - -VertexAttribI4uivEXT(index, v) - return void - param index UInt32 in value - param v UInt32 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4uiv - -VertexAttribI4bvEXT(index, v) - return void - param index UInt32 in value - param v Int8 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4bv - -VertexAttribI4svEXT(index, v) - return void - param index UInt32 in value - param v Int16 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4sv - -VertexAttribI4ubvEXT(index, v) - return void - param index UInt32 in value - param v UInt8 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4ubv - -VertexAttribI4usvEXT(index, v) - return void - param index UInt32 in value - param v UInt16 in array [4] - category NV_vertex_program4 - beginend allow-inside - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribI4usv - -VertexAttribIPointerEXT(index, size, type, stride, pointer) - return void - param index UInt32 in value - param size Int32 in value - param type VertexAttribEnum in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category NV_vertex_program4 - dlflags notlistable - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias VertexAttribIPointer - -GetVertexAttribIivEXT(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnum in value - param params Int32 out array [1] - category NV_vertex_program4 - dlflags notlistable - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias GetVertexAttribIiv - -GetVertexAttribIuivEXT(index, pname, params) - return void - param index UInt32 in value - param pname VertexAttribEnum in value - param params UInt32 out array [1] - category NV_vertex_program4 - dlflags notlistable - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - alias GetVertexAttribIuiv - -############################################################################### -# -# Extension #326 -# EXT_gpu_shader4 commands -# -############################################################################### - -GetUniformuivEXT(program, location, params) - return void - param program UInt32 in value - param location Int32 in value - param params UInt32 out array [COMPSIZE(program/location)] - category EXT_gpu_shader4 - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias GetUniformuiv - -BindFragDataLocationEXT(program, color, name) - return void - param program UInt32 in value - param color UInt32 in value - param name Char in array [COMPSIZE(name)] - category EXT_gpu_shader4 - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias BindFragDataLocation - -GetFragDataLocationEXT(program, name) - return Int32 - param program UInt32 in value - param name Char in array [COMPSIZE(name)] - category EXT_gpu_shader4 - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias GetFragDataLocation - -Uniform1uiEXT(location, v0) - return void - param location Int32 in value - param v0 UInt32 in value - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform1ui - -Uniform2uiEXT(location, v0, v1) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform2ui - -Uniform3uiEXT(location, v0, v1, v2) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform3ui - -Uniform4uiEXT(location, v0, v1, v2, v3) - return void - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - param v3 UInt32 in value - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform4ui - -Uniform1uivEXT(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count] - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform1uiv - -Uniform2uivEXT(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*2] - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform2uiv - -Uniform3uivEXT(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*3] - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform3uiv - -Uniform4uivEXT(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*4] - category EXT_gpu_shader4 - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias Uniform4uiv - -############################################################################### -# -# Extension #327 -# EXT_draw_instanced commands -# -############################################################################### - -DrawArraysInstancedEXT(mode, start, count, primcount) - return void - param mode BeginMode in value - param start Int32 in value - param count SizeI in value - param primcount SizeI in value - category EXT_draw_instanced - version 2.0 - extension soft WINSOFT - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - alias DrawArraysInstancedARB - -DrawElementsInstancedEXT(mode, count, type, indices, primcount) - return void - param mode BeginMode in value - param count SizeI in value - param type DrawElementsType in value - param indices Void in array [COMPSIZE(count/type)] - param primcount SizeI in value - category EXT_draw_instanced - version 2.0 - extension soft WINSOFT - dlflags notlistable - vectorequiv ArrayElement - glfflags ignore - glxflags ignore - alias DrawElementsInstancedARB - -############################################################################### -# -# Extension #328 -# EXT_packed_float commands -# -############################################################################### - -# (none) -newcategory: EXT_packed_float - -############################################################################### -# -# Extension #329 -# EXT_texture_array commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_array - -############################################################################### -# -# Extension #330 -# EXT_texture_buffer_object commands -# -############################################################################### - -TexBufferEXT(target, internalformat, buffer) - return void - param target TextureTarget in value - param internalformat GLenum in value - param buffer UInt32 in value - category EXT_texture_buffer_object - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - alias TexBufferARB - -############################################################################### -# -# Extension #331 -# EXT_texture_compression_latc commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_compression_latc - -############################################################################### -# -# Extension #332 -# EXT_texture_compression_rgtc commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_compression_rgtc - -############################################################################### -# -# Extension #333 -# EXT_texture_shared_exponent commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_shared_exponent - -############################################################################### -# -# Extension #334 -# NV_depth_buffer_float commands -# -############################################################################### - -DepthRangedNV(zNear, zFar) - return void - param zNear Float64 in value - param zFar Float64 in value - category NV_depth_buffer_float - extension soft WINSOFT NV50 - version 2.0 - glfflags ignore - glxflags ignore - -ClearDepthdNV(depth) - return void - param depth Float64 in value - category NV_depth_buffer_float - extension soft WINSOFT NV50 - version 2.0 - glfflags ignore - glxflags ignore - -DepthBoundsdNV(zmin, zmax) - return void - param zmin Float64 in value - param zmax Float64 in value - category NV_depth_buffer_float - extension soft WINSOFT NV50 - version 2.0 - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #335 -# NV_fragment_program4 commands -# -############################################################################### - -# (none) -newcategory: NV_fragment_program4 - -############################################################################### -# -# Extension #336 -# NV_framebuffer_multisample_coverage commands -# -############################################################################### - -RenderbufferStorageMultisampleCoverageNV(target, coverageSamples, colorSamples, internalformat, width, height) - return void - param target RenderbufferTarget in value - param coverageSamples SizeI in value - param colorSamples SizeI in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - category NV_framebuffer_multisample_coverage - version 1.5 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #337 -# EXT_framebuffer_sRGB commands -# -############################################################################### - -# (none) -newcategory: EXT_framebuffer_sRGB - -############################################################################### -# -# Extension #338 -# NV_geometry_shader4 commands -# -############################################################################### - -# (none) -newcategory: NV_geometry_shader4 - -############################################################################### -# -# Extension #339 -# NV_parameter_buffer_object commands -# -############################################################################### - -ProgramBufferParametersfvNV(target, buffer, index, count, params) - return void - param target ProgramTarget in value - param buffer UInt32 in value - param index UInt32 in value - param count SizeI in value - param params Float32 in array [count] - category NV_parameter_buffer_object - version 1.2 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramBufferParametersIivNV(target, buffer, index, count, params) - return void - param target ProgramTarget in value - param buffer UInt32 in value - param index UInt32 in value - param count SizeI in value - param params Int32 in array [count] - category NV_parameter_buffer_object - version 1.2 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ProgramBufferParametersIuivNV(target, buffer, index, count, params) - return void - param target ProgramTarget in value - param buffer UInt32 in value - param index UInt32 in value - param count SizeI in value - param params UInt32 in array [count] - category NV_parameter_buffer_object - version 1.2 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #340 -# EXT_draw_buffers2 commands -# -############################################################################### - -ColorMaskIndexedEXT(index, r, g, b, a) - return void - param index UInt32 in value - param r Boolean in value - param g Boolean in value - param b Boolean in value - param a Boolean in value - category EXT_draw_buffers2 - version 2.0 - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias ColorMaski - -GetBooleanIndexedvEXT(target, index, data) - return void - param target GLenum in value - param index UInt32 in value - param data Boolean out array [COMPSIZE(target)] - category EXT_draw_buffers2 - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias GetBooleani_v - -GetIntegerIndexedvEXT(target, index, data) - return void - param target GLenum in value - param index UInt32 in value - param data Int32 out array [COMPSIZE(target)] - category EXT_draw_buffers2 - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias GetIntegeri_v - -EnableIndexedEXT(target, index) - return void - param target GLenum in value - param index UInt32 in value - category EXT_draw_buffers2 - version 2.0 - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias Enablei - -DisableIndexedEXT(target, index) - return void - param target GLenum in value - param index UInt32 in value - category EXT_draw_buffers2 - version 2.0 - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias Disablei - -IsEnabledIndexedEXT(target, index) - return Boolean - param target GLenum in value - param index UInt32 in value - category EXT_draw_buffers2 - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias IsEnabledi - -############################################################################### -# -# Extension #341 -# NV_transform_feedback commands -# -############################################################################### - -BeginTransformFeedbackNV(primitiveMode) - return void - param primitiveMode GLenum in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BeginTransformFeedback - -EndTransformFeedbackNV() - return void - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias EndTransformFeedback - -TransformFeedbackAttribsNV(count, attribs, bufferMode) - return void - param count UInt32 in value - param attribs Int32 in array [COMPSIZE(count)] - param bufferMode GLenum in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -BindBufferRangeNV(target, index, buffer, offset, size) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - param offset BufferOffset in value - param size BufferSize in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BindBufferRange - -BindBufferOffsetNV(target, index, buffer, offset) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - param offset BufferOffset in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BindBufferOffsetEXT - -BindBufferBaseNV(target, index, buffer) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BindBufferBase - -TransformFeedbackVaryingsNV(program, count, varyings, bufferMode) - return void - param program UInt32 in value - param count SizeI in value - param varyings CharPointer in array [count] - param bufferMode GLenum in value - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias TransformFeedbackVaryings - -ActiveVaryingNV(program, name) - return void - param program UInt32 in value - param name Char in array [COMPSIZE(name)] - category NV_transform_feedback - version 1.5 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -GetVaryingLocationNV(program, name) - return Int32 - param program UInt32 in value - param name Char in array [COMPSIZE(name)] - category NV_transform_feedback - dlflags notlistable - version 1.5 - glfflags ignore - glxflags ignore - extension soft WINSOFT - -GetActiveVaryingNV(program, index, bufSize, length, size, type, name) - return void - param program UInt32 in value - param index UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param size SizeI out array [1] - param type GLenum out array [1] - param name Char out array [COMPSIZE(program/index/bufSize)] - category NV_transform_feedback - dlflags notlistable - version 1.5 - extension soft WINSOFT - glfflags ignore - glxflags ignore - -GetTransformFeedbackVaryingNV(program, index, location) - return void - param program UInt32 in value - param index UInt32 in value - param location Int32 out array [1] - category NV_transform_feedback - dlflags notlistable - version 1.5 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias GetTransformFeedbackVarying - -############################################################################### -# -# Extension #342 -# EXT_bindable_uniform commands -# -############################################################################### - -UniformBufferEXT(program, location, buffer) - return void - param program UInt32 in value - param location Int32 in value - param buffer UInt32 in value - category EXT_bindable_uniform - version 2.0 - extension soft WINSOFT - glxflags ignore - glfflags ignore - -GetUniformBufferSizeEXT(program, location) - return Int32 - param program UInt32 in value - param location Int32 in value - category EXT_bindable_uniform - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - -GetUniformOffsetEXT(program, location) - return BufferOffset - param program UInt32 in value - param location Int32 in value - category EXT_bindable_uniform - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #343 -# EXT_texture_integer extension commands -# -############################################################################### - -TexParameterIivEXT(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params Int32 in array [COMPSIZE(pname)] - category EXT_texture_integer - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - alias TexParameterIiv - -TexParameterIuivEXT(target, pname, params) - return void - param target TextureTarget in value - param pname TextureParameterName in value - param params UInt32 in array [COMPSIZE(pname)] - category EXT_texture_integer - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - alias TexParameterIuiv - -GetTexParameterIivEXT(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_texture_integer - dlflags notlistable - version 1.0 - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - alias GetTexParameterIiv - -GetTexParameterIuivEXT(target, pname, params) - return void - param target TextureTarget in value - param pname GetTextureParameter in value - param params UInt32 out array [COMPSIZE(pname)] - category EXT_texture_integer - dlflags notlistable - version 1.0 - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - alias GetTexParameterIuiv - -ClearColorIiEXT(red, green, blue, alpha) - return void - param red Int32 in value - param green Int32 in value - param blue Int32 in value - param alpha Int32 in value - category EXT_texture_integer - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -ClearColorIuiEXT(red, green, blue, alpha) - return void - param red UInt32 in value - param green UInt32 in value - param blue UInt32 in value - param alpha UInt32 in value - category EXT_texture_integer - version 2.0 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #344 - GLX_EXT_texture_from_pixmap -# -############################################################################### - -############################################################################### -# -# Extension #345 -# GREMEDY_frame_terminator commands -# -############################################################################### - -FrameTerminatorGREMEDY() - return void - category GREMEDY_frame_terminator - version 1.0 - extension - glxflags ignore - offset ? - -############################################################################### -# -# Extension #346 -# NV_conditional_render commands -# -############################################################################### - -BeginConditionalRenderNV(id, mode) - return void - param id UInt32 in value - param mode TypeEnum in value - category NV_conditional_render - glfflags ignore - glxflags ignore - alias BeginConditionalRender - -EndConditionalRenderNV() - return void - category NV_conditional_render - glfflags ignore - glxflags ignore - alias EndConditionalRender - -############################################################################### -# -# Extension #347 -# NV_present_video commands -# -############################################################################### - -# TBD -# void PresentFrameKeyedNV(uint video_slot, uint64EXT minPresentTime, -# uint beginPresentTimeId, uint -# presentDurationId, enum type, enum target0, -# uint fill0, uint key0, enum target1, uint -# fill1, uint key1); -# -# void PresentFrameDualFillNV(uint video_slot, uint64EXT -# minPresentTime, uint beginPresentTimeId, -# uint presentDurationId, enum type, enum -# target0, uint fill0, enum target1, uint -# fill1, enum target2, uint fill2, enum -# target3, uint fill3); -# -# void GetVideoivNV(uint video_slot, enum pname, int *params); -# void GetVideouivNV(uint video_slot, enum pname, uint *params); -# void GetVideoi64vNV(uint video_slot, enum pname, int64EXT *params); -# void GetVideoui64vNV(uint video_slot, enum pname, uint64EXT *params); -# void VideoParameterivNV(uint video_slot, enum pname, const int *params); - -PresentFrameKeyedNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1) - return void - param video_slot UInt32 in value - param minPresentTime UInt64EXT in value - param beginPresentTimeId UInt32 in value - param presentDurationId UInt32 in value - param type GLenum in value - param target0 GLenum in value - param fill0 UInt32 in value - param key0 UInt32 in value - param target1 GLenum in value - param fill1 UInt32 in value - param key1 UInt32 in value - category NV_present_video - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -PresentFrameDualFillNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3) - return void - param video_slot UInt32 in value - param minPresentTime UInt64EXT in value - param beginPresentTimeId UInt32 in value - param presentDurationId UInt32 in value - param type GLenum in value - param target0 GLenum in value - param fill0 UInt32 in value - param target1 GLenum in value - param fill1 UInt32 in value - param target2 GLenum in value - param fill2 UInt32 in value - param target3 GLenum in value - param fill3 UInt32 in value - category NV_present_video - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetVideoivNV(video_slot, pname, params) - return void - param video_slot UInt32 in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category NV_present_video - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideouivNV(video_slot, pname, params) - return void - param video_slot UInt32 in value - param pname GLenum in value - param params UInt32 out array [COMPSIZE(pname)] - category NV_present_video - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideoi64vNV(video_slot, pname, params) - return void - param video_slot UInt32 in value - param pname GLenum in value - param params Int64EXT out array [COMPSIZE(pname)] - category NV_present_video - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideoui64vNV(video_slot, pname, params) - return void - param video_slot UInt32 in value - param pname GLenum in value - param params UInt64EXT out array [COMPSIZE(pname)] - category NV_present_video - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #348 - GLX_NV_video_out -# Extension #349 - WGL_NV_video_out -# Extension #350 - GLX_NV_swap_group -# Extension #351 - WGL_NV_swap_group -# -############################################################################### - -############################################################################### -# -# Extension #352 -# EXT_transform_feedback commands -# -############################################################################### - -# From EXT_draw_buffers2: GetBooleanIndexedvEXT / GetIntegerIndexedvEXT - -BeginTransformFeedbackEXT(primitiveMode) - return void - param primitiveMode GLenum in value - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BeginTransformFeedback - -EndTransformFeedbackEXT() - return void - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias EndTransformFeedback - -BindBufferRangeEXT(target, index, buffer, offset, size) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - param offset BufferOffset in value - param size BufferSize in value - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BindBufferRange - -# Not promoted to the OpenGL 3.0 core -BindBufferOffsetEXT(target, index, buffer, offset) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - param offset BufferOffset in value - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -BindBufferBaseEXT(target, index, buffer) - return void - param target GLenum in value - param index UInt32 in value - param buffer UInt32 in value - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias BindBufferBase - -TransformFeedbackVaryingsEXT(program, count, varyings, bufferMode) - return void - param program UInt32 in value - param count SizeI in value - param varyings CharPointer in array [count] - param bufferMode GLenum in value - category EXT_transform_feedback - version 2.0 - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - alias TransformFeedbackVaryings - -GetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name) - return void - param program UInt32 in value - param index UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param size SizeI out array [1] - param type GLenum out array [1] - param name Char out array [COMPSIZE(length)] - category EXT_transform_feedback - dlflags notlistable - version 2.0 - extension soft WINSOFT - glfflags ignore - glxflags ignore - alias GetTransformFeedbackVarying - -############################################################################### -# -# Extension #353 -# EXT_direct_state_access commands -# -############################################################################### - -# New 1.1 client commands - -ClientAttribDefaultEXT(mask) - return void - param mask ClientAttribMask in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore ### client-handcode client-intercept server-handcode - -PushClientAttribDefaultEXT(mask) - return void - param mask ClientAttribMask in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore ### client-handcode client-intercept server-handcode - -# New 1.0 matrix commands - -MatrixLoadfEXT(mode, m) - return void - param mode MatrixMode in value - param m Float32 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixLoaddEXT(mode, m) - return void - param mode MatrixMode in value - param m Float64 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixMultfEXT(mode, m) - return void - param mode MatrixMode in value - param m Float32 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixMultdEXT(mode, m) - return void - param mode MatrixMode in value - param m Float64 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixLoadIdentityEXT(mode) - return void - param mode MatrixMode in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixRotatefEXT(mode, angle, x, y, z) - return void - param mode MatrixMode in value - param angle Float32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixRotatedEXT(mode, angle, x, y, z) - return void - param mode MatrixMode in value - param angle Float64 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixScalefEXT(mode, x, y, z) - return void - param mode MatrixMode in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixScaledEXT(mode, x, y, z) - return void - param mode MatrixMode in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixTranslatefEXT(mode, x, y, z) - return void - param mode MatrixMode in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixTranslatedEXT(mode, x, y, z) - return void - param mode MatrixMode in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixFrustumEXT(mode, left, right, bottom, top, zNear, zFar) - return void - param mode MatrixMode in value - param left Float64 in value - param right Float64 in value - param bottom Float64 in value - param top Float64 in value - param zNear Float64 in value - param zFar Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixOrthoEXT(mode, left, right, bottom, top, zNear, zFar) - return void - param mode MatrixMode in value - param left Float64 in value - param right Float64 in value - param bottom Float64 in value - param top Float64 in value - param zNear Float64 in value - param zFar Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixPopEXT(mode) - return void - param mode MatrixMode in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixPushEXT(mode) - return void - param mode MatrixMode in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -# New 1.3 matrix transpose commands - -MatrixLoadTransposefEXT(mode, m) - return void - param mode MatrixMode in value - param m Float32 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixLoadTransposedEXT(mode, m) - return void - param mode MatrixMode in value - param m Float64 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixMultTransposefEXT(mode, m) - return void - param mode MatrixMode in value - param m Float32 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MatrixMultTransposedEXT(mode, m) - return void - param mode MatrixMode in value - param m Float64 in array [16] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -# New 1.1 texture object commands - -TextureParameterfEXT(texture, target, pname, param) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedFloat32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - vectorequiv TextureParameterfvEXT - -TextureParameterfvEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -TextureParameteriEXT(texture, target, pname, param) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - vectorequiv TextureParameterivEXT - -TextureParameterivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -TextureImage1DEXT(texture, target, level, internalformat, width, border, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-handcode decode-handcode pixel-unpack - -TextureImage2DEXT(texture, target, level, internalformat, width, height, border, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-handcode decode-handcode pixel-unpack - -TextureSubImage1DEXT(texture, target, level, xoffset, width, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### EXT client-handcode server-handcode - glxflags ignore - extension soft WINSOFT - glfflags ignore - -TextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### EXT client-handcode server-handcode - extension soft WINSOFT - glfflags ignore - -CopyTextureImage1DEXT(texture, target, level, internalformat, x, y, width, border) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param border CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyTextureImage2DEXT(texture, target, level, internalformat, x, y, width, height, border) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyTextureSubImage1DEXT(texture, target, level, xoffset, x, y, width) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, x, y, width, height) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -# New 1.1 texture object queries - -GetTextureImageEXT(texture, target, level, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void out array [COMPSIZE(target/level/format/type)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-execute capture-handcode decode-handcode pixel-pack - -GetTextureParameterfvEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetTextureParameterivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetTextureLevelParameterfvEXT(texture, target, level, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetTextureLevelParameterivEXT(texture, target, level, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -# New 1.2 3D texture object commands - -TextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode EXT - extension soft WINSOFT - glfflags ignore - -TextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode EXT - extension soft WINSOFT - glfflags ignore - -CopyTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, x, y, width, height) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - glxflags ignore ### EXT - extension soft WINSOFT - glfflags ignore - -# New 1.1 multitexture commands - -MultiTexParameterfEXT(texunit, target, pname, param) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedFloat32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - vectorequiv MultiTexParameterfvEXT - -MultiTexParameterfvEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MultiTexParameteriEXT(texunit, target, pname, param) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param param CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - vectorequiv MultiTexParameterivEXT - -MultiTexParameterivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags ignore - -MultiTexImage1DEXT(texunit, target, level, internalformat, width, border, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-handcode decode-handcode pixel-unpack - -MultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-handcode decode-handcode pixel-unpack - -MultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### EXT client-handcode server-handcode - extension soft WINSOFT - glfflags ignore - -MultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### EXT client-handcode server-handcode - extension soft WINSOFT - glfflags ignore - -CopyMultiTexImage1DEXT(texunit, target, level, internalformat, x, y, width, border) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param border CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyMultiTexImage2DEXT(texunit, target, level, internalformat, x, y, width, height, border) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyMultiTexSubImage1DEXT(texunit, target, level, xoffset, x, y, width) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -CopyMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, x, y, width, height) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -# New 1.1 multitexture queries - -GetMultiTexImageEXT(texunit, target, level, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void out array [COMPSIZE(target/level/format/type)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### client-handcode server-handcode - extension soft WINSOFT - glfflags capture-execute capture-handcode decode-handcode pixel-pack - -GetMultiTexParameterfvEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexParameterivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexLevelParameterfvEXT(texunit, target, level, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexLevelParameterivEXT(texunit, target, level, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -# New 1.2 3D multitexture commands - -MultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode EXT - extension soft WINSOFT - glfflags ignore - -MultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param type PixelType in value - param pixels Void in array [COMPSIZE(format/type/width/height/depth)] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode EXT - extension soft WINSOFT - glfflags ignore - -CopyMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param x WinCoord in value - param y WinCoord in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - glxflags ignore ### EXT - extension soft WINSOFT - glfflags ignore - -# New 1.2.1 multitexture texture commands - -BindMultiTextureEXT(texunit, target, texture) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param texture Texture in value - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore ### EXT - -EnableClientStateIndexedEXT(array, index) - return void - param array EnableCap in value - param index UInt32 in value - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### client-handcode client-intercept server-handcode - extension soft WINSOFT - -DisableClientStateIndexedEXT(array, index) - return void - param array EnableCap in value - param index UInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore ### client-handcode client-intercept server-handcode - -MultiTexCoordPointerEXT(texunit, size, type, stride, pointer) - return void - param texunit TextureUnit in value - param size Int32 in value - param type TexCoordPointerType in value - param stride SizeI in value - param pointer Void in array [COMPSIZE(size/type/stride)] retained - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### client-handcode client-intercept server-handcode - extension soft WINSOFT - glfflags ignore - -MultiTexEnvfEXT(texunit, target, pname, param) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param param CheckedFloat32 in value - category EXT_direct_state_access - extension soft WINSOFT - vectorequiv MultiTexEnvfvEXT - glxflags ignore - glfflags gl-enum - -MultiTexEnvfvEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags gl-enum - -MultiTexEnviEXT(texunit, target, pname, param) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param param CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - vectorequiv MultiTexEnvivEXT - glxflags ignore - glfflags gl-enum - -MultiTexEnvivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags gl-enum - -MultiTexGendEXT(texunit, coord, pname, param) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param Float64 in value - category EXT_direct_state_access - extension soft WINSOFT - vectorequiv MultiTexGendvEXT - glxflags ignore - glfflags gl-enum - -MultiTexGendvEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float64 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags gl-enum - -MultiTexGenfEXT(texunit, coord, pname, param) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param CheckedFloat32 in value - category EXT_direct_state_access - extension soft WINSOFT - vectorequiv MultiTexGenfvEXT - glxflags ignore - glfflags gl-enum - -MultiTexGenfvEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params CheckedFloat32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags gl-enum - -MultiTexGeniEXT(texunit, coord, pname, param) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param param CheckedInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - vectorequiv MultiTexGenivEXT - glxflags ignore - glfflags gl-enum - -MultiTexGenivEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - glxflags ignore - glfflags gl-enum - -# New 1.2.1 multitexture texture queries - -GetMultiTexEnvfvEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexEnvivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureEnvTarget in value - param pname TextureEnvParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexGendvEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float64 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexGenfvEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Float32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -GetMultiTexGenivEXT(texunit, coord, pname, params) - return void - param texunit TextureUnit in value - param coord TextureCoordName in value - param pname TextureGenParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -# From EXT_draw_buffers2 -# EnableIndexedEXT -# DisableIndexedEXT -# IsEnabledIndexedEXT - -GetFloatIndexedvEXT(target, index, data) - return void - param target TypeEnum in value - param index UInt32 in value - param data Float32 out array [COMPSIZE(target)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -GetDoubleIndexedvEXT(target, index, data) - return void - param target TypeEnum in value - param index UInt32 in value - param data Float64 out array [COMPSIZE(target)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -GetPointerIndexedvEXT(target, index, data) - return void - param target TypeEnum in value - param index UInt32 in value - param data VoidPointer out array [COMPSIZE(target)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore - glfflags ignore - extension soft WINSOFT - -# New compressed texture commands - -CompressedTextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedTextureImage2DEXT(texture, target, level, internalformat, width, height, border, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedTextureImage1DEXT(texture, target, level, internalformat, width, border, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedTextureSubImage1DEXT(texture, target, level, xoffset, width, format, imageSize, bits) - return void - param texture Texture in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -# New compressed texture query - -GetCompressedTextureImageEXT(texture, target, lod, img) - return void - param texture Texture in value - param target TextureTarget in value - param lod CheckedInt32 in value - param img Void out array [COMPSIZE(target/lod)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### server-handcode - extension soft WINSOFT - -# New compressed multitexture commands - -CompressedMultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedMultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param height SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedMultiTexImage1DEXT(texunit, target, level, internalformat, width, border, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param internalformat TextureInternalFormat in value - param width SizeI in value - param border CheckedInt32 in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param zoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param yoffset CheckedInt32 in value - param width SizeI in value - param height SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -CompressedMultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, imageSize, bits) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param level CheckedInt32 in value - param xoffset CheckedInt32 in value - param width SizeI in value - param format PixelFormat in value - param imageSize SizeI in value - param bits Void in array [imageSize] - category EXT_direct_state_access - dlflags handcode - glxflags ignore ### client-handcode server-handcode - glfflags ignore - extension soft WINSOFT - -# New compressed multitexture query - -GetCompressedMultiTexImageEXT(texunit, target, lod, img) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param lod CheckedInt32 in value - param img Void out array [COMPSIZE(target/lod)] - category EXT_direct_state_access - dlflags notlistable - glxflags ignore ### server-handcode - extension soft WINSOFT - -# New ARB assembly program named commands - -NamedProgramStringEXT(program, target, format, len, string) - return void - param program UInt32 in value - param target ProgramTarget in value - param format ProgramFormat in value - param len SizeI in value - param string Void in array [len] - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT - glfflags ignore - glxflags ignore ### client-handcode server-handcode EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -NamedProgramLocalParameter4dEXT(program, target, index, x, y, z, w) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param x Float64 in value - param y Float64 in value - param z Float64 in value - param w Float64 in value - category EXT_direct_state_access - subcategory ARB_vertex_program - vectorequiv NamedProgramLocalParameter4dvEXT - glxvectorequiv NamedProgramLocalParameter4dvEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -NamedProgramLocalParameter4dvEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Float64 in array [4] - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -NamedProgramLocalParameter4fEXT(program, target, index, x, y, z, w) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param x Float32 in value - param y Float32 in value - param z Float32 in value - param w Float32 in value - category EXT_direct_state_access - subcategory ARB_vertex_program - vectorequiv NamedProgramLocalParameter4fvEXT - glxvectorequiv NamedProgramLocalParameter4fvEXT - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -NamedProgramLocalParameter4fvEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Float32 in array [4] - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -# New ARB assembly program named queries - -GetNamedProgramLocalParameterdvEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Float64 out array [4] - dlflags notlistable - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### client-handcode server-handcode EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -GetNamedProgramLocalParameterfvEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Float32 out array [4] - dlflags notlistable - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### client-handcode server-handcode EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -GetNamedProgramivEXT(program, target, pname, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param pname ProgramProperty in value - param params Int32 out array [1] - dlflags notlistable - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### client-handcode server-handcode EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -GetNamedProgramStringEXT(program, target, pname, string) - return void - param program UInt32 in value - param target ProgramTarget in value - param pname ProgramStringProperty in value - param string Void out array [COMPSIZE(program,pname)] - dlflags notlistable - category EXT_direct_state_access - subcategory ARB_vertex_program - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore ### client-handcode server-handcode EXT - glextmask GL_MASK_ARB_vertex_program|GL_MASK_ARB_fragment_program - -# New EXT_gpu_program_parameters command - -NamedProgramLocalParameters4fvEXT(program, target, index, count, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params Float32 in array [count*4] - category EXT_direct_state_access - subcategory EXT_gpu_program_parameters - extension soft WINSOFT NV10 - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_gpu_program_parameters - -# New NV_gpu_program4 commands - -NamedProgramLocalParameterI4iEXT(program, target, index, x, y, z, w) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param x Int32 in value - param y Int32 in value - param z Int32 in value - param w Int32 in value - category EXT_direct_state_access - subcategory NV_gpu_program4 - vectorequiv NamedProgramLocalParameterI4ivEXT - glxvectorequiv NamedProgramLocalParameterI4ivEXT - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedProgramLocalParameterI4ivEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Int32 in array [4] - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedProgramLocalParametersI4ivEXT(program, target, index, count, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params Int32 in array [count*4] - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedProgramLocalParameterI4uiEXT(program, target, index, x, y, z, w) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param x UInt32 in value - param y UInt32 in value - param z UInt32 in value - param w UInt32 in value - category EXT_direct_state_access - subcategory NV_gpu_program4 - vectorequiv NamedProgramLocalParameterI4uivEXT - glxvectorequiv NamedProgramLocalParameterI4uivEXT - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedProgramLocalParameterI4uivEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 in array [4] - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedProgramLocalParametersI4uivEXT(program, target, index, count, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param count SizeI in value - param params UInt32 in array [count*4] - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -GetNamedProgramLocalParameterIivEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params Int32 out array [4] - dlflags notlistable - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -GetNamedProgramLocalParameterIuivEXT(program, target, index, params) - return void - param program UInt32 in value - param target ProgramTarget in value - param index UInt32 in value - param params UInt32 out array [4] - dlflags notlistable - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -# New EXT_texture_integer texture object commands - -TextureParameterIivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - extension soft WINSOFT - glxflags ignore - glfflags ignore - glextmask GL_MASK_EXT_texture_integer - -TextureParameterIuivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname TextureParameterName in value - param params UInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - extension soft WINSOFT - glxflags ignore - glfflags ignore - glextmask GL_MASK_EXT_texture_integer - -# New EXT_texture_integer texture object queries - -GetTextureParameterIivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - glextmask GL_MASK_EXT_texture_integer - -GetTextureParameterIuivEXT(texture, target, pname, params) - return void - param texture Texture in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params UInt32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - glextmask GL_MASK_EXT_texture_integer - -# New EXT_texture_integer multitexture commands - -MultiTexParameterIivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param params CheckedInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - extension soft WINSOFT - glxflags ignore - glfflags ignore - glextmask GL_MASK_EXT_texture_integer - -MultiTexParameterIuivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname TextureParameterName in value - param params UInt32 in array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - extension soft WINSOFT - glxflags ignore - glfflags ignore - glextmask GL_MASK_EXT_texture_integer - -# New EXT_texture_integer multitexture queries - -GetMultiTexParameterIivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - dlflags notlistable - extension soft WINSOFT - glfflags capture-execute gl-enum - glxflags ignore - glextmask GL_MASK_EXT_texture_integer - -GetMultiTexParameterIuivEXT(texunit, target, pname, params) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param pname GetTextureParameter in value - param params UInt32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_texture_integer - dlflags notlistable - extension soft WINSOFT - glfflags capture-execute gl-enum - glxflags ignore - glextmask GL_MASK_EXT_texture_integer - -# New GLSL 2.0 uniform commands - -ProgramUniform1fEXT(program, location, v0) - return void - param program UInt32 in value - param location Int32 in value - param v0 Float32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2fEXT(program, location, v0, v1) - return void - param program UInt32 in value - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3fEXT(program, location, v0, v1, v2) - return void - param program UInt32 in value - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4fEXT(program, location, v0, v1, v2, v3) - return void - param program UInt32 in value - param location Int32 in value - param v0 Float32 in value - param v1 Float32 in value - param v2 Float32 in value - param v3 Float32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform1iEXT(program, location, v0) - return void - param program UInt32 in value - param location Int32 in value - param v0 Int32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2iEXT(program, location, v0, v1) - return void - param program UInt32 in value - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3iEXT(program, location, v0, v1, v2) - return void - param program UInt32 in value - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4iEXT(program, location, v0, v1, v2, v3) - return void - param program UInt32 in value - param location Int32 in value - param v0 Int32 in value - param v1 Int32 in value - param v2 Int32 in value - param v3 Int32 in value - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform1fvEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Float32 in array [count] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2fvEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Float32 in array [count*2] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3fvEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Float32 in array [count*3] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4fvEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Float32 in array [count*4] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform1ivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Int32 in array [count] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2ivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Int32 in array [count*2] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3ivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Int32 in array [count*3] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4ivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value Int32 in array [count*4] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix2fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*4] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix3fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*9] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix4fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*16] - category EXT_direct_state_access - subcategory VERSION_2_0 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -# New GLSL 2.1 uniform commands - -ProgramUniformMatrix2x3fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*6] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix3x2fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*6] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix2x4fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*8] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix4x2fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*8] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix3x4fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*12] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniformMatrix4x3fvEXT(program, location, count, transpose, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param transpose Boolean in value - param value Float32 in array [count*12] - category EXT_direct_state_access - subcategory VERSION_2_1 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -# New EXT_gpu_shader4 commands - -ProgramUniform1uiEXT(program, location, v0) - return void - param program UInt32 in value - param location Int32 in value - param v0 UInt32 in value - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2uiEXT(program, location, v0, v1) - return void - param program UInt32 in value - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3uiEXT(program, location, v0, v1, v2) - return void - param program UInt32 in value - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4uiEXT(program, location, v0, v1, v2, v3) - return void - param program UInt32 in value - param location Int32 in value - param v0 UInt32 in value - param v1 UInt32 in value - param v2 UInt32 in value - param v3 UInt32 in value - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform1uivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count] - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform2uivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*2] - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform3uivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*3] - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -ProgramUniform4uivEXT(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value UInt32 in array [count*4] - category EXT_direct_state_access - subcategory EXT_gpu_shader4 - glfflags ignore - glxflags ignore - extension soft WINSOFT - glextmask GL_MASK_OpenGL_2_0 - -# New named buffer commands - -NamedBufferDataEXT(buffer, size, data, usage) - return void - param buffer UInt32 in value - param size Sizeiptr in value - param data Void in array [COMPSIZE(size)] - param usage VertexBufferObjectUsage in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -NamedBufferSubDataEXT(buffer, offset, size, data) - return void - param buffer UInt32 in value - param offset Intptr in value - param size Sizeiptr in value - param data Void in array [COMPSIZE(size)] - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -MapNamedBufferEXT(buffer, access) - return VoidPointer - param buffer UInt32 in value - param access VertexBufferObjectAccess in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -UnmapNamedBufferEXT(buffer) - return Boolean - param buffer UInt32 in value - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -# New named buffer queries - -GetNamedBufferParameterivEXT(buffer, pname, params) - return void - param buffer UInt32 in value - param pname VertexBufferObjectParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -GetNamedBufferPointervEXT(buffer, pname, params) - return void - param buffer UInt32 in value - param pname VertexBufferObjectParameter in value - param params VoidPointer out array [COMPSIZE(pname)] - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -GetNamedBufferSubDataEXT(buffer, offset, size, data) - return void - param buffer UInt32 in value - param offset Intptr in value - param size Sizeiptr in value - param data Void out array [COMPSIZE(size)] - category EXT_direct_state_access - extension soft WINSOFT - dlflags notlistable - glxflags ignore - glfflags ignore - -# New named texture buffer texture object command - -TextureBufferEXT(texture, target, internalformat, buffer) - return void - param texture Texture in value - param target TextureTarget in value - param internalformat TypeEnum in value - param buffer UInt32 in value - category EXT_direct_state_access - subcategory EXT_texture_buffer_object - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_texture_buffer_object - dlflags notlistable - -# New named texture buffer multitexture command - -MultiTexBufferEXT(texunit, target, internalformat, buffer) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param internalformat TypeEnum in value - param buffer UInt32 in value - category EXT_direct_state_access - subcategory EXT_texture_buffer_object - extension soft WINSOFT NV50 - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_texture_buffer_object - dlflags notlistable - -# New named frame buffer object commands - -NamedRenderbufferStorageEXT(renderbuffer, internalformat, width, height) - return void - param renderbuffer Renderbuffer in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -GetNamedRenderbufferParameterivEXT(renderbuffer, pname, params) - return void - param renderbuffer Renderbuffer in value - param pname RenderbufferParameterName in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -CheckNamedFramebufferStatusEXT(framebuffer, target) - return FramebufferStatus - param framebuffer Framebuffer in value - param target FramebufferTarget in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -NamedFramebufferTexture1DEXT(framebuffer, attachment, textarget, texture, level) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param textarget TextureTarget in value - param texture Texture in value - param level CheckedInt32 in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -NamedFramebufferTexture2DEXT(framebuffer, attachment, textarget, texture, level) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param textarget TextureTarget in value - param texture Texture in value - param level CheckedInt32 in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -NamedFramebufferTexture3DEXT(framebuffer, attachment, textarget, texture, level, zoffset) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param textarget TextureTarget in value - param texture Texture in value - param level CheckedInt32 in value - param zoffset CheckedInt32 in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -NamedFramebufferRenderbufferEXT(framebuffer, attachment, renderbuffertarget, renderbuffer) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param renderbuffertarget RenderbufferTarget in value - param renderbuffer Renderbuffer in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -GetNamedFramebufferAttachmentParameterivEXT(framebuffer, attachment, pname, params) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param pname FramebufferAttachmentParameterName in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -GenerateTextureMipmapEXT(texture, target) - return void - param texture Texture in value - param target TextureTarget in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -GenerateMultiTexMipmapEXT(texunit, target) - return void - param texunit TextureUnit in value - param target TextureTarget in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -FramebufferDrawBufferEXT(framebuffer, mode) - return void - param framebuffer Framebuffer in value - param mode DrawBufferMode in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -FramebufferDrawBuffersEXT(framebuffer, n, bufs) - return void - param framebuffer Framebuffer in value - param n SizeI in value - param bufs DrawBufferMode in array [n] - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -FramebufferReadBufferEXT(framebuffer, mode) - return void - param framebuffer Framebuffer in value - param mode ReadBufferMode in value - category EXT_direct_state_access - subcategory EXT_framebuffer_object - extension soft WINSOFT - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_object - -GetFramebufferParameterivEXT(framebuffer, pname, params) - return void - param framebuffer Framebuffer in value - param pname GetFramebufferParameter in value - param params Int32 out array [COMPSIZE(pname)] - category EXT_direct_state_access - subcategory EXT_framebuffer_object - dlflags notlistable - extension soft WINSOFT - glxflags ignore - glfflags capture-execute gl-enum - -# New named framebuffer multisample object commands - -NamedRenderbufferStorageMultisampleEXT(renderbuffer, samples, internalformat, width, height) - return void - param renderbuffer Renderbuffer in value - param samples SizeI in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - subcategory EXT_framebuffer_multisample - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_EXT_framebuffer_multisample - -# New named framebuffer multisample coverage object commands - -NamedRenderbufferStorageMultisampleCoverageEXT(renderbuffer, coverageSamples, colorSamples, internalformat, width, height) - return void - param renderbuffer Renderbuffer in value - param coverageSamples SizeI in value - param colorSamples SizeI in value - param internalformat PixelInternalFormat in value - param width SizeI in value - param height SizeI in value - category EXT_direct_state_access - subcategory NV_framebuffer_multisample_coverage - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_framebuffer_multisample_coverage - -# New named geometry program/shader frame buffer object commands - -NamedFramebufferTextureEXT(framebuffer, attachment, texture, level) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedFramebufferTextureLayerEXT(framebuffer, attachment, texture, level, layer) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param layer CheckedInt32 in value - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -NamedFramebufferTextureFaceEXT(framebuffer, attachment, texture, level, face) - return void - param framebuffer Framebuffer in value - param attachment FramebufferAttachment in value - param texture Texture in value - param level CheckedInt32 in value - param face TextureTarget in value - category EXT_direct_state_access - subcategory NV_gpu_program4 - extension soft WINSOFT - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_gpu_program4 - -# New explicit multisample query and commands - -TextureRenderbufferEXT(texture, target, renderbuffer) - return void - param texture Texture in value - param target TextureTarget in value - param renderbuffer UInt32 in value - category EXT_direct_state_access - subcategory NV_explicit_multisample - extension soft WINSOFT NV50 - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_explicit_multisample - -MultiTexRenderbufferEXT(texunit, target, renderbuffer) - return void - param texunit TextureUnit in value - param target TextureTarget in value - param renderbuffer UInt32 in value - category EXT_direct_state_access - subcategory NV_explicit_multisample - extension soft WINSOFT NV50 - dlflags notlistable - glfflags ignore - glxflags ignore - glextmask GL_MASK_NV_explicit_multisample - -############################################################################### -# -# Extension #354 -# EXT_vertex_array_bgra commands -# -############################################################################### - -# (none) -newcategory: EXT_vertex_array_bgra - -############################################################################### -# -# Extension #355 - WGL_NV_gpu_affinity -# -############################################################################### - -############################################################################### -# -# Extension #356 -# EXT_texture_swizzle commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_swizzle - -############################################################################### -# -# Extension #357 -# NV_explicit_multisample commands -# -############################################################################### - -# From EXT_draw_buffers2: GetBooleanIndexedvEXT / GetIntegerIndexedvEXT - -GetMultisamplefvNV(pname, index, val) - return void - param pname GetMultisamplePNameNV in value - param index UInt32 in value - param val Float32 out array [2] - category NV_explicit_multisample - dlflags notlistable - glfflags ignore - glxflags ignore - -SampleMaskIndexedNV(index, mask) - return void - param index UInt32 in value - param mask SampleMaskNV in value - category NV_explicit_multisample - glfflags ignore - glxflags ignore - -TexRenderbufferNV(target, renderbuffer) - return void - param target TextureTarget in value - param renderbuffer UInt32 in value - category NV_explicit_multisample - dlflags notlistable - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #358 -# NV_transform_feedback2 commands -# -############################################################################### - -BindTransformFeedbackNV(target, id) - return void - param target BufferTargetARB in value - param id UInt32 in value - category NV_transform_feedback2 - glfflags ignore - glxflags ignore - -DeleteTransformFeedbacksNV(n, ids) - return void - param n SizeI in value - param ids UInt32 in array [n] - category NV_transform_feedback2 - dlflags notlistable - glfflags ignore - glxflags ignore - -GenTransformFeedbacksNV(n, ids) - return void - param n SizeI in value - param ids UInt32 out array [n] - category NV_transform_feedback2 - dlflags notlistable - glfflags ignore - glxflags ignore - -IsTransformFeedbackNV(id) - return Boolean - param id UInt32 in value - category NV_transform_feedback2 - dlflags notlistable - glfflags ignore - glxflags ignore - -PauseTransformFeedbackNV() - return void - category NV_transform_feedback2 - glfflags ignore - glxflags ignore - -ResumeTransformFeedbackNV() - return void - category NV_transform_feedback2 - glfflags ignore - glxflags ignore - -DrawTransformFeedbackNV(mode, id) - return void - param mode GLenum in value - param id UInt32 in value - category NV_transform_feedback2 - glfflags ignore - glxflags ignore - -############################################################################### -# -# Extension #359 -# ATI_meminfo commands -# -############################################################################### - -# (none) -newcategory: ATI_meminfo - -############################################################################### -# -# Extension #360 -# AMD_performance_monitor commands -# -############################################################################### - -GetPerfMonitorGroupsAMD(numGroups, groupsSize, groups) - return void - param numGroups Int32 out array [1] - param groupsSize SizeI in value - param groups UInt32 out array [groupsSize] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters) - return void - param group UInt32 in value - param numCounters Int32 out array [1] - param maxActiveCounters Int32 out array [1] - param counterSize SizeI in value - param counters UInt32 out array [counterSize] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetPerfMonitorGroupStringAMD(group, bufSize, length, groupString) - return void - param group UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param groupString Char out array [bufSize] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString) - return void - param group UInt32 in value - param counter UInt32 in value - param bufSize SizeI in value - param length SizeI out array [1] - param counterString Char out array [bufSize] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetPerfMonitorCounterInfoAMD(group, counter, pname, data) - return void - param group UInt32 in value - param counter UInt32 in value - param pname GLenum in value - param data void out array [COMPSIZE(pname)] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GenPerfMonitorsAMD(n, monitors) - return void - param n SizeI in value - param monitors UInt32 out array [n] - category AMD_performance_monitor - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -# 'monitors' is actually in, not out, but extension spec doesn't use const -DeletePerfMonitorsAMD(n, monitors) - return void - param n SizeI in value - param monitors UInt32 out array [n] - category AMD_performance_monitor - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -# 'counterList' is actually in, not out, but extension spec doesn't use const -SelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, counterList) - return void - param monitor UInt32 in value - param enable Boolean in value - param group UInt32 in value - param numCounters Int32 in value - param counterList UInt32 out array [numCounters] - category AMD_performance_monitor - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BeginPerfMonitorAMD(monitor) - return void - param monitor UInt32 in value - category AMD_performance_monitor - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EndPerfMonitorAMD(monitor) - return void - param monitor UInt32 in value - category AMD_performance_monitor - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten) - return void - param monitor UInt32 in value - param pname GLenum in value - param dataSize SizeI in value - param data UInt32 out array [dataSize] - param bytesWritten Int32 out array [1] - category AMD_performance_monitor - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #361 - WGL_AMD_gpu_association -# -############################################################################### - -############################################################################### -# -# Extension #362 -# AMD_texture_texture4 commands -# -############################################################################### - -# (none) -newcategory: AMD_texture_texture4 - -############################################################################### -# -# Extension #363 -# AMD_vertex_shader_tesselator commands -# -############################################################################### - -TessellationFactorAMD(factor) - return void - param factor Float32 in value - category AMD_vertex_shader_tesselator - version 2.0 - glxsingle ? - glxflags ignore - offset ? - -TessellationModeAMD(mode) - return void - param mode GLenum in value - category AMD_vertex_shader_tesselator - version 2.0 - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #364 -# EXT_provoking_vertex commands -# -############################################################################### - -ProvokingVertexEXT(mode) - return void - param mode GLenum in value - category EXT_provoking_vertex - version 2.1 - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #365 -# EXT_texture_snorm commands -# -############################################################################### - -# (none) -newcategory: EXT_texture_snorm - -############################################################################### -# -# Extension #366 -# AMD_draw_buffers_blend commands -# -############################################################################### - -# void BlendFuncIndexedAMD(uint buf, enum src, enum dst) -# void BlendFuncSeparateIndexedAMD(uint buf, enum srcRGB, enum dstRGB, enum srcAlpha, enum dstAlpha) -# void BlendEquationIndexedAMD(uint buf, enum mode) -# void BlendEquationSeparateIndexedAMD(uint buf, enum modeRGB, enum modeAlpha) - -BlendFuncIndexedAMD(buf, src, dst) - return void - param buf UInt32 in value - param src GLenum in value - param dst GLenum in value - category AMD_draw_buffers_blend - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendFuncSeparateIndexedAMD(buf, srcRGB, dstRGB, srcAlpha, dstAlpha) - return void - param buf UInt32 in value - param srcRGB GLenum in value - param dstRGB GLenum in value - param srcAlpha GLenum in value - param dstAlpha GLenum in value - category AMD_draw_buffers_blend - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendEquationIndexedAMD(buf, mode) - return void - param buf UInt32 in value - param mode GLenum in value - category AMD_draw_buffers_blend - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -BlendEquationSeparateIndexedAMD(buf, modeRGB, modeAlpha) - return void - param buf UInt32 in value - param modeRGB GLenum in value - param modeAlpha GLenum in value - category AMD_draw_buffers_blend - version 2.0 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #367 -# APPLE_texture_range commands -# -############################################################################### - -TextureRangeAPPLE(target, length, pointer) - return void - param target GLenum in value - param length SizeI in value - param pointer Void in array [length] - category APPLE_texture_range - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetTexParameterPointervAPPLE(target, pname, params) - return void - param target GLenum in value - param pname GLenum in value - param params VoidPointer out array [1] - category APPLE_texture_range - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #368 -# APPLE_float_pixels commands -# -############################################################################### - -# (none) -newcategory: APPLE_float_pixels - -############################################################################### -# -# Extension #369 -# APPLE_vertex_program_evaluators commands -# -############################################################################### - -EnableVertexAttribAPPLE(index, pname) - return void - param index UInt32 in value - param pname GLenum in value - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -DisableVertexAttribAPPLE(index, pname) - return void - param index UInt32 in value - param pname GLenum in value - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -IsVertexAttribEnabledAPPLE(index, pname) - return Boolean - param index UInt32 in value - param pname GLenum in value - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -MapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points) - return void - param index UInt32 in value - param size UInt32 in value - param u1 CoordD in value - param u2 CoordD in value - param stride Int32 in value - param order CheckedInt32 in value - param points CoordD in array [COMPSIZE(size/stride/order)] - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -MapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points) - return void - param index UInt32 in value - param size UInt32 in value - param u1 CoordF in value - param u2 CoordF in value - param stride Int32 in value - param order CheckedInt32 in value - param points CoordF in array [COMPSIZE(size/stride/order)] - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -MapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) - return void - param index UInt32 in value - param size UInt32 in value - param u1 CoordD in value - param u2 CoordD in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordD in value - param v2 CoordD in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param points CoordD in array [COMPSIZE(size/ustride/uorder/vstride/vorder)] - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -MapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) - return void - param index UInt32 in value - param size UInt32 in value - param u1 CoordF in value - param u2 CoordF in value - param ustride Int32 in value - param uorder CheckedInt32 in value - param v1 CoordF in value - param v2 CoordF in value - param vstride Int32 in value - param vorder CheckedInt32 in value - param points CoordF in array [COMPSIZE(size/ustride/uorder/vstride/vorder)] - category APPLE_vertex_program_evaluators - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #370 -# APPLE_aux_depth_stencil commands -# -############################################################################### - -# (none) -newcategory: APPLE_aux_depth_stencil - -############################################################################### -# -# Extension #371 -# APPLE_object_purgeable commands -# -############################################################################### - -ObjectPurgeableAPPLE(objectType, name, option) - return GLenum - param objectType GLenum in value - param name UInt32 in value - param option GLenum in value - category APPLE_object_purgeable - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -ObjectUnpurgeableAPPLE(objectType, name, option) - return GLenum - param objectType GLenum in value - param name UInt32 in value - param option GLenum in value - category APPLE_object_purgeable - version 1.5 - extension - glxropcode ? - glxflags ignore - offset ? - -GetObjectParameterivAPPLE(objectType, name, pname, params) - return void - param objectType GLenum in value - param name UInt32 in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category APPLE_object_purgeable - dlflags notlistable - version 1.5 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #372 -# APPLE_row_bytes commands -# -############################################################################### - -# (none) -newcategory: APPLE_row_bytes - -############################################################################### -# -# Extension #373 -# APPLE_rgb_422 commands -# -############################################################################### - -# (none) -newcategory: APPLE_rgb_422 - -############################################################################### -# -# Extension #374 -# NV_video_capture commands -# -############################################################################### - -BeginVideoCaptureNV(video_capture_slot) - return void - param video_capture_slot UInt32 in value - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindVideoCaptureStreamBufferNV(video_capture_slot, stream, frame_region, offset) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param frame_region GLenum in value - param offset BufferOffsetARB in value - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -BindVideoCaptureStreamTextureNV(video_capture_slot, stream, frame_region, target, texture) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param frame_region GLenum in value - param target GLenum in value - param texture UInt32 in value - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EndVideoCaptureNV(video_capture_slot) - return void - param video_capture_slot UInt32 in value - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetVideoCaptureivNV(video_capture_slot, pname, params) - return void - param video_capture_slot UInt32 in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category NV_video_capture - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideoCaptureStreamivNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Int32 out array [COMPSIZE(pname)] - category NV_video_capture - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideoCaptureStreamfvNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Float32 out array [COMPSIZE(pname)] - category NV_video_capture - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetVideoCaptureStreamdvNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Float64 out array [COMPSIZE(pname)] - category NV_video_capture - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -VideoCaptureNV(video_capture_slot, sequence_num, capture_time) - return GLenum - param video_capture_slot UInt32 in value - param sequence_num UInt32 out reference - param capture_time UInt64EXT out reference - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VideoCaptureStreamParameterivNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Int32 in array [COMPSIZE(pname)] - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VideoCaptureStreamParameterfvNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Float32 in array [COMPSIZE(pname)] - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VideoCaptureStreamParameterdvNV(video_capture_slot, stream, pname, params) - return void - param video_capture_slot UInt32 in value - param stream UInt32 in value - param pname GLenum in value - param params Float64 in array [COMPSIZE(pname)] - category NV_video_capture - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #375 - GLX_EXT_swap_control -# -############################################################################### - -############################################################################### -# -# Extension #376 - also GLX_NV_copy_image, WGL_NV_copy_image -# NV_copy_image commands -# -############################################################################### - -CopyImageSubDataNV(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth) - return void - param srcName UInt32 in value - param srcTarget GLenum in value - param srcLevel Int32 in value - param srcX Int32 in value - param srcY Int32 in value - param srcZ Int32 in value - param dstName UInt32 in value - param dstTarget GLenum in value - param dstLevel Int32 in value - param dstX Int32 in value - param dstY Int32 in value - param dstZ Int32 in value - param width SizeI in value - param height SizeI in value - param depth SizeI in value - category NV_copy_image - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #377 -# EXT_separate_shader_objects commands -# -############################################################################### - -UseShaderProgramEXT(type, program) - return void - param type GLenum in value - param program UInt32 in value - category EXT_separate_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ActiveProgramEXT(program) - return void - param program UInt32 in value - category EXT_separate_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -CreateShaderProgramEXT(type, string) - return UInt32 - param type GLenum in value - param string Char in array [] - category EXT_separate_shader_objects - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #378 -# NV_parameter_buffer_object2 commands -# -############################################################################### - -newcategory: NV_parameter_buffer_object2 - -############################################################################### -# -# Extension #379 -# NV_shader_buffer_load commands -# -############################################################################### - -MakeBufferResidentNV(target, access) - return void - param target GLenum in value - param access GLenum in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -MakeBufferNonResidentNV(target) - return void - param target GLenum in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsBufferResidentNV(target) - return Boolean - param target GLenum in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NamedMakeBufferResidentNV(buffer, access) - return void - param buffer UInt32 in value - param access GLenum in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NamedMakeBufferNonResidentNV(buffer) - return void - param buffer UInt32 in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IsNamedBufferResidentNV(buffer) - return Boolean - param buffer UInt32 in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetBufferParameterui64vNV(target, pname, params) - return void - param target GLenum in value - param pname GLenum in value - param params UInt64EXT out array [COMPSIZE(pname)] - category NV_shader_buffer_load - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetNamedBufferParameterui64vNV(buffer, pname, params) - return void - param buffer UInt32 in value - param pname GLenum in value - param params UInt64EXT out array [COMPSIZE(pname)] - category NV_shader_buffer_load - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -GetIntegerui64vNV(value, result) - return void - param value GLenum in value - param result UInt64EXT out array [COMPSIZE(value)] - category NV_shader_buffer_load - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -Uniformui64NV(location, value) - return void - param location Int32 in value - param value UInt64EXT in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -Uniformui64vNV(location, count, value) - return void - param location Int32 in value - param count SizeI in value - param value UInt64EXT in array [count] - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetUniformui64vNV(program, location, params) - return void - param program UInt32 in value - param location Int32 in value - param params UInt64EXT out array [COMPSIZE(program/location)] - category NV_shader_buffer_load - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -ProgramUniformui64NV(program, location, value) - return void - param program UInt32 in value - param location Int32 in value - param value UInt64EXT in value - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ProgramUniformui64vNV(program, location, count, value) - return void - param program UInt32 in value - param location Int32 in value - param count SizeI in value - param value UInt64EXT in array [count] - category NV_shader_buffer_load - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #380 -# NV_vertex_buffer_unified_memory commands -# -############################################################################### - -BufferAddressRangeNV(pname, index, address, length) - return void - param pname GLenum in value - param index UInt32 in value - param address UInt64EXT in value - param length BufferSize in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexFormatNV(size, type, stride) - return void - param size Int32 in value - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -NormalFormatNV(type, stride) - return void - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -ColorFormatNV(size, type, stride) - return void - param size Int32 in value - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -IndexFormatNV(type, stride) - return void - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -TexCoordFormatNV(size, type, stride) - return void - param size Int32 in value - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -EdgeFlagFormatNV(stride) - return void - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -SecondaryColorFormatNV(size, type, stride) - return void - param size Int32 in value - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -FogCoordFormatNV(type, stride) - return void - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribFormatNV(index, size, type, normalized, stride) - return void - param index UInt32 in value - param size Int32 in value - param type GLenum in value - param normalized Boolean in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -VertexAttribIFormatNV(index, size, type, stride) - return void - param index UInt32 in value - param size Int32 in value - param type GLenum in value - param stride SizeI in value - category NV_vertex_buffer_unified_memory - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - -GetIntegerui64i_vNV(value, index, result) - return void - param value GLenum in value - param index UInt32 in value - param result UInt64EXT out array [COMPSIZE(value)] - category NV_vertex_buffer_unified_memory - dlflags notlistable - version 1.2 - extension - glxsingle ? - glxflags ignore - offset ? - -############################################################################### -# -# Extension #381 -# NV_texture_barrier commands -# -############################################################################### - -TextureBarrierNV() - return void - category NV_texture_barrier - version 1.2 - extension - glxropcode ? - glxflags ignore - offset ? - diff --git a/src/glx/apple/specs/gl.tm b/src/glx/apple/specs/gl.tm deleted file mode 100644 index 8c8a851d9f..0000000000 --- a/src/glx/apple/specs/gl.tm +++ /dev/null @@ -1,317 +0,0 @@ -AccumOp,*,*, GLenum,*,* -AlphaFunction,*,*, GLenum,*,* -AttribMask,*,*, GLbitfield,*,* -BeginMode,*,*, GLenum,*,* -BinormalPointerTypeEXT,*,*, GLenum,*,* -BlendEquationMode,*,*, GLenum,*,* -BlendEquationModeEXT,*,*, GLenum,*,* -BlendFuncSeparateParameterEXT,*,*, GLenum,*,* -BlendingFactorDest,*,*, GLenum,*,* -BlendingFactorSrc,*,*, GLenum,*,* -Boolean,*,*, GLboolean,*,* -BooleanPointer,*,*, GLboolean*,*,* -Char,*,*, GLchar,*,* -CharPointer,*,*, GLchar*,*,* -CheckedFloat32,*,*, GLfloat,*,* -CheckedInt32,*,*, GLint,*,* -ClampColorTargetARB,*,*, GLenum,*,* -ClampColorModeARB,*,*, GLenum,*,* -ClampedColorF,*,*, GLclampf,*,* -ClampedFloat32,*,*, GLclampf,*,* -ClampedFloat64,*,*, GLclampd,*,* -ClampedStencilValue,*,*, GLint,*,* -ClearBufferMask,*,*, GLbitfield,*,* -ClientAttribMask,*,*, GLbitfield,*,* -ClipPlaneName,*,*, GLenum,*,* -ColorB,*,*, GLbyte,*,* -ColorD,*,*, GLdouble,*,* -ColorF,*,*, GLfloat,*,* -ColorI,*,*, GLint,*,* -ColorIndexValueD,*,*, GLdouble,*,* -ColorIndexValueF,*,*, GLfloat,*,* -ColorIndexValueI,*,*, GLint,*,* -ColorIndexValueS,*,*, GLshort,*,* -ColorIndexValueUB,*,*, GLubyte,*,* -ColorMaterialParameter,*,*, GLenum,*,* -ColorPointerType,*,*, GLenum,*,* -ColorS,*,*, GLshort,*,* -ColorTableParameterPName,*,*, GLenum,*,* -ColorTableParameterPNameSGI,*,*, GLenum,*,* -ColorTableTarget,*,*, GLenum,*,* -ColorTableTargetSGI,*,*, GLenum,*,* -ColorUB,*,*, GLubyte,*,* -ColorUI,*,*, GLuint,*,* -ColorUS,*,*, GLushort,*,* -CombinerBiasNV,*,*, GLenum,*,* -CombinerComponentUsageNV,*,*, GLenum,*,* -CombinerMappingNV,*,*, GLenum,*,* -CombinerParameterNV,*,*, GLenum,*,* -CombinerPortionNV,*,*, GLenum,*,* -CombinerRegisterNV,*,*, GLenum,*,* -CombinerScaleNV,*,*, GLenum,*,* -CombinerStageNV,*,*, GLenum,*,* -CombinerVariableNV,*,*, GLenum,*,* -CompressedTextureARB,*,*, GLvoid,*,* -ControlPointNV,*,*, GLvoid,*,* -ControlPointTypeNV,*,*, GLenum,*,* -ConvolutionParameter,*,*, GLenum,*,* -ConvolutionParameterEXT,*,*, GLenum,*,* -ConvolutionTarget,*,*, GLenum,*,* -ConvolutionTargetEXT,*,*, GLenum,*,* -CoordD,*,*, GLdouble,*,* -CoordF,*,*, GLfloat,*,* -CoordI,*,*, GLint,*,* -CoordS,*,*, GLshort,*,* -CullFaceMode,*,*, GLenum,*,* -CullParameterEXT,*,*, GLenum,*,* -DepthFunction,*,*, GLenum,*,* -DrawBufferMode,*,*, GLenum,*,* -DrawBufferName,*,*, GLint,*,* -DrawElementsType,*,*, GLenum,*,* -ElementPointerTypeATI,*,*, GLenum,*,* -EnableCap,*,*, GLenum,*,* -ErrorCode,*,*, GLenum,*,* -EvalMapsModeNV,*,*, GLenum,*,* -EvalTargetNV,*,*, GLenum,*,* -FeedbackElement,*,*, GLfloat,*,* -FeedbackType,*,*, GLenum,*,* -FenceNV,*,*, GLuint,*,* -FenceConditionNV,*,*, GLenum,*,* -FenceParameterNameNV,*,*, GLenum,*,* -FfdMaskSGIX,*,*, GLbitfield,*,* -FfdTargetSGIX,*,*, GLenum,*,* -Float32,*,*, GLfloat,*,* -Float32Pointer,*,*, GLfloat*,*,* -Float64,*,*, GLdouble,*,* -Float64Pointer,*,*, GLdouble*,*,* -FogParameter,*,*, GLenum,*,* -FogPointerTypeEXT,*,*, GLenum,*,* -FogPointerTypeIBM,*,*, GLenum,*,* -FragmentLightModelParameterSGIX,*,*,GLenum,*,* -FragmentLightNameSGIX,*,*, GLenum,*,* -FragmentLightParameterSGIX,*,*, GLenum,*,* -FramebufferAttachment,*,*, GLenum,*,* -FramebufferTarget,*,*, GLenum,*,* -FrontFaceDirection,*,*, GLenum,*,* -FunctionPointer,*,*, _GLfuncptr,*,* -GetColorTableParameterPName,*,*, GLenum,*,* -GetColorTableParameterPNameSGI,*,*, GLenum,*,* -GetConvolutionParameterPName,*,*, GLenum,*,* -GetHistogramParameterPName,*,*, GLenum,*,* -GetHistogramParameterPNameEXT,*,*, GLenum,*,* -GetMapQuery,*,*, GLenum,*,* -GetMinmaxParameterPName,*,*, GLenum,*,* -GetMinmaxParameterPNameEXT,*,*, GLenum,*,* -GetPName,*,*, GLenum,*,* -GetPointervPName,*,*, GLenum,*,* -GetTextureParameter,*,*, GLenum,*,* -HintMode,*,*, GLenum,*,* -HintTarget,*,*, GLenum,*,* -HintTargetPGI,*,*, GLenum,*,* -HistogramTarget,*,*, GLenum,*,* -HistogramTargetEXT,*,*, GLenum,*,* -IglooFunctionSelectSGIX,*,*, GLenum,*,* -IglooParameterSGIX,*,*, GLvoid,*,* -ImageTransformPNameHP,*,*, GLenum,*,* -ImageTransformTargetHP,*,*, GLenum,*,* -IndexFunctionEXT,*,*, GLenum,*,* -IndexMaterialParameterEXT,*,*, GLenum,*,* -IndexPointerType,*,*, GLenum,*,* -Int16,*,*, GLshort,*,* -Int32,*,*, GLint,*,* -Int8,*,*, GLbyte,*,* -InterleavedArrayFormat,*,*, GLenum,*,* -LightEnvParameterSGIX,*,*, GLenum,*,* -LightModelParameter,*,*, GLenum,*,* -LightName,*,*, GLenum,*,* -LightParameter,*,*, GLenum,*,* -LightTextureModeEXT,*,*, GLenum,*,* -LightTexturePNameEXT,*,*, GLenum,*,* -LineStipple,*,*, GLushort,*,* -List,*,*, GLuint,*,* -ListMode,*,*, GLenum,*,* -ListNameType,*,*, GLenum,*,* -ListParameterName,*,*, GLenum,*,* -LogicOp,*,*, GLenum,*,* -MapAttribParameterNV,*,*, GLenum,*,* -MapParameterNV,*,*, GLenum,*,* -MapTarget,*,*, GLenum,*,* -MapTargetNV,*,*, GLenum,*,* -MapTypeNV,*,*, GLenum,*,* -MaskedColorIndexValueF,*,*, GLfloat,*,* -MaskedColorIndexValueI,*,*, GLuint,*,* -MaskedStencilValue,*,*, GLuint,*,* -MaterialFace,*,*, GLenum,*,* -MaterialParameter,*,*, GLenum,*,* -MatrixIndexPointerTypeARB,*,*, GLenum,*,* -MatrixMode,*,*, GLenum,*,* -MatrixTransformNV,*,*, GLenum,*,* -MeshMode1,*,*, GLenum,*,* -MeshMode2,*,*, GLenum,*,* -MinmaxTarget,*,*, GLenum,*,* -MinmaxTargetEXT,*,*, GLenum,*,* -NormalPointerType,*,*, GLenum,*,* -NurbsCallback,*,*, GLenum,*,* -NurbsObj,*,*, GLUnurbs*,*,* -NurbsProperty,*,*, GLenum,*,* -NurbsTrim,*,*, GLenum,*,* -OcclusionQueryParameterNameNV,*,*, GLenum,*,* -PixelCopyType,*,*, GLenum,*,* -PixelFormat,*,*, GLenum,*,* -PixelInternalFormat,*,*, GLenum,*,* -PixelMap,*,*, GLenum,*,* -PixelStoreParameter,*,*, GLenum,*,* -PixelTexGenModeSGIX,*,*, GLenum,*,* -PixelTexGenParameterNameSGIS,*,*, GLenum,*,* -PixelTransferParameter,*,*, GLenum,*,* -PixelTransformPNameEXT,*,*, GLenum,*,* -PixelTransformTargetEXT,*,*, GLenum,*,* -PixelType,*,*, GLenum,*,* -PointParameterNameARB,*,*, GLenum,*,* -PolygonMode,*,*, GLenum,*,* -ProgramNV,*,*, GLuint,*,* -ProgramCharacterNV,*,*, GLubyte,*,* -ProgramParameterNV,*,*, GLenum,*,* -ProgramParameterPName,*,*, GLenum,*,* -QuadricCallback,*,*, GLenum,*,* -QuadricDrawStyle,*,*, GLenum,*,* -QuadricNormal,*,*, GLenum,*,* -QuadricObj,*,*, GLUquadric*,*,* -QuadricOrientation,*,*, GLenum,*,* -ReadBufferMode,*,*, GLenum,*,* -RenderbufferTarget,*,*, GLenum,*,* -RenderingMode,*,*, GLenum,*,* -ReplacementCodeSUN,*,*, GLuint,*,* -ReplacementCodeTypeSUN,*,*, GLenum,*,* -SamplePassARB,*,*, GLenum,*,* -SamplePatternEXT,*,*, GLenum,*,* -SamplePatternSGIS,*,*, GLenum,*,* -SecondaryColorPointerTypeIBM,*,*, GLenum,*,* -SelectName,*,*, GLuint,*,* -SeparableTarget,*,*, GLenum,*,* -SeparableTargetEXT,*,*, GLenum,*,* -ShadingModel,*,*, GLenum,*,* -SizeI,*,*, GLsizei,*,* -SpriteParameterNameSGIX,*,*, GLenum,*,* -StencilFunction,*,*, GLenum,*,* -StencilFaceDirection,*,*, GLenum,*,* -StencilOp,*,*, GLenum,*,* -StencilValue,*,*, GLint,*,* -String,*,*, const GLubyte *,*,* -StringName,*,*, GLenum,*,* -TangentPointerTypeEXT,*,*, GLenum,*,* -TessCallback,*,*, GLenum,*,* -TessContour,*,*, GLenum,*,* -TessProperty,*,*, GLenum,*,* -TesselatorObj,*,*, GLUtesselator*,*,* -TexCoordPointerType,*,*, GLenum,*,* -Texture,*,*, GLuint,*,* -TextureComponentCount,*,*, GLint,*,* -TextureCoordName,*,*, GLenum,*,* -TextureEnvParameter,*,*, GLenum,*,* -TextureEnvTarget,*,*, GLenum,*,* -TextureFilterSGIS,*,*, GLenum,*,* -TextureGenParameter,*,*, GLenum,*,* -TextureNormalModeEXT,*,*, GLenum,*,* -TextureParameterName,*,*, GLenum,*,* -TextureTarget,*,*, GLenum,*,* -TextureUnit,*,*, GLenum,*,* -UInt16,*,*, GLushort,*,* -UInt32,*,*, GLuint,*,* -UInt8,*,*, GLubyte,*,* -VertexAttribEnum,*,*, GLenum,*,* -VertexAttribEnumNV,*,*, GLenum,*,* -VertexAttribPointerTypeNV,*,*, GLenum,*,* -VertexPointerType,*,*, GLenum,*,* -VertexWeightPointerTypeEXT,*,*, GLenum,*,* -Void,*,*, GLvoid,*,* -VoidPointer,*,*, GLvoid*,*,* -ConstVoidPointer,*,*, GLvoid* const,*,* -WeightPointerTypeARB,*,*, GLenum,*,* -WinCoord,*,*, GLint,*,* -void,*,*, *,*,* -ArrayObjectPNameATI,*,*, GLenum,*,* -ArrayObjectUsageATI,*,*, GLenum,*,*, -ConstFloat32,*,*, GLfloat,*,* -ConstInt32,*,*, GLint,*,* -ConstUInt32,*,*, GLuint,*,* -ConstVoid,*,*, GLvoid,*,* -DataTypeEXT,*,*, GLenum,*,* -FragmentOpATI,*,*, GLenum,*,* -GetTexBumpParameterATI,*,*, GLenum,*,* -GetVariantValueEXT,*,*, GLenum,*,* -ParameterRangeEXT,*,*, GLenum,*,* -PreserveModeATI,*,*, GLenum,*,* -ProgramFormatARB,*,*, GLenum,*,* -ProgramTargetARB,*,*, GLenum,*,* -ProgramTarget,*,*, GLenum,*,* -ProgramPropertyARB,*,*, GLenum,*,* -ProgramStringPropertyARB,*,*, GLenum,*,* -ScalarType,*,*, GLenum,*,* -SwizzleOpATI,*,*, GLenum,*,* -TexBumpParameterATI,*,*, GLenum,*,* -VariantCapEXT,*,*, GLenum,*,* -VertexAttribPointerPropertyARB,*,*, GLenum,*,* -VertexAttribPointerTypeARB,*,*, GLenum,*,* -VertexAttribPropertyARB,*,*, GLenum,*,* -VertexShaderCoordOutEXT,*,*, GLenum,*,* -VertexShaderOpEXT,*,*, GLenum,*,* -VertexShaderParameterEXT,*,*, GLenum,*,* -VertexShaderStorageTypeEXT,*,*, GLenum,*,* -VertexShaderTextureUnitParameter,*,*, GLenum,*,* -VertexShaderWriteMaskEXT,*,*, GLenum,*,* -VertexStreamATI,*,*, GLenum,*,* -PNTrianglesPNameATI,*,*, GLenum,*,* -# ARB_vertex_buffer_object types and core equivalents for new types -BufferOffset,*,*, GLintptr,*,* -BufferSize,*,*, GLsizeiptr,*,* -BufferAccessARB,*,*, GLenum,*,* -BufferOffsetARB,*,*, GLintptrARB,*,* -BufferPNameARB,*,*, GLenum,*,* -BufferPointerNameARB,*,*, GLenum,*,* -BufferSizeARB,*,*, GLsizeiptrARB,*,* -BufferTargetARB,*,*, GLenum,*,* -BufferUsageARB,*,*, GLenum,*,* -# APPLE_fence -ObjectTypeAPPLE,*,*, GLenum,*,* -# APPLE_vertex_array_range -VertexArrayPNameAPPLE,*,*, GLenum,*,* -# ATI_draw_buffers -DrawBufferModeATI,*,*, GLenum,*,* -# NV_half -Half16NV,*,*, GLhalfNV,*,* -# NV_pixel_data_range -PixelDataRangeTargetNV,*,*, GLenum,*,* -# Generic types for as-yet-unspecified enums -TypeEnum,*,*, GLenum,*,* -GLenum,*,*, GLenum,*,* -handleARB,*,*, GLhandleARB,*,* -charARB,*,*, GLcharARB,*,* -charPointerARB,*,*, GLcharARB*,*,* -# EXT_timer_query -Int64EXT,*,*, GLint64EXT,*,* -UInt64EXT,*,*, GLuint64EXT,*,* -# EXT_direct_state_access -FramebufferAttachment,*,*, GLenum,*,* -FramebufferAttachmentParameterName,*,*, GLenum,*,* -Framebuffer,*,*, GLuint,*,* -FramebufferStatus,*,*, GLenum,*,* -FramebufferTarget,*,*, GLenum,*,* -GetFramebufferParameter,*,*, GLenum,*,* -Intptr,*,*, GLintptr,*,* -ProgramFormat,*,*, GLenum,*,* -ProgramProperty,*,*, GLenum,*,* -ProgramStringProperty,*,*, GLenum,*,* -ProgramTarget,*,*, GLenum,*,* -Renderbuffer,*,*, GLuint,*,* -RenderbufferParameterName,*,*, GLenum,*,* -Sizeiptr,*,*, GLsizeiptr,*,* -TextureInternalFormat,*,*, GLenum,*,* -VertexBufferObjectAccess,*,*, GLenum,*,* -VertexBufferObjectParameter,*,*, GLenum,*,* -VertexBufferObjectUsage,*,*, GLenum,*,* -# ARB_map_buffer_range -BufferAccessMask,*,*, GLbitfield,*,* -# NV_explicit_multisample -GetMultisamplePNameNV,*,*, GLenum,*,* -SampleMaskNV,*,*, GLbitfield,*,* diff --git a/src/glx/apple/specs/glx.spec b/src/glx/apple/specs/glx.spec deleted file mode 100644 index b7ff63bb8e..0000000000 --- a/src/glx/apple/specs/glx.spec +++ /dev/null @@ -1,599 +0,0 @@ -# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. -# -# This document is licensed under the SGI Free Software B License Version -# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - -required-props: -param: retval retained -dlflags: notlistable handcode nop -glxflags: client-handcode server-handcode -glxvendorglx: * -vectorequiv: * -category: pixel-rw bgn-end display-list drawing drawing-control feedback framebuf misc modeling pixel-op pixel-rw state-req xform glx glxopcode -glxopcode: * - -############################################################################### -# -# GLX1.0 commands -# -############################################################################### -Render() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 1 - - -RenderLarge() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 2 - - -CreateContext(gc_id, screen, visual, share_list) - return void - param gc_id Int32 in value - param screen Int32 in value - param visual Int32 in value - param share_list Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 3 - - -DestroyContext(context) - return void - param context Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 4 - - -MakeCurrent(drawable, context) - return void - param drawable Int32 in value - param context Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 5 - - -IsDirect(dpy, context) - return void - param dpy Int32 in value - param context Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 6 - - -QueryVersion(major, minor) - return void - param major Int32 out reference - param minor Int32 out reference - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 7 - - -WaitGL(context) - return void - param context Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 8 - - -WaitX() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 9 - - -CopyContext(source, dest, mask) - return void - param source Int32 in value - param dest Int32 in value - param mask Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 10 - - -SwapBuffers(drawable) - return void - param drawable Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 11 - - -UseXFont(font, first, count, list_base) - return void - param font Int32 in value - param first Int32 in value - param count Int32 in value - param list_base Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 12 - - -CreateGLXPixmap(visual, pixmap, glxpixmap) - return void - param visual Int32 in value - param pixmap Int32 in value - param glxpixmap Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 13 - -GetVisualConfigs() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 14 - - -DestroyGLXPixmap(pixmap) - return void - param pixmap Int32 in value - glxflags client-handcode - category glx - dlflags notlistable - glxopcode 15 - - -VendorPrivate() - return void - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 16 - - -VendorPrivateWithReply() - return void - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 17 - -############################################################################### -# -# GLX1.1 commands -# -############################################################################### -QueryExtensionsString(screen) - return void - param screen Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 18 - -QueryServerString(screen, name) - return void - param screen Int32 in value - param name Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 19 - -ClientInfo() - return void - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxopcode 20 - -############################################################################### -# -# GLX1.3 commands -# -############################################################################### -GetFBConfigs() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxopcode 21 - -CreatePixmap(config, pixmap, glxpixmap) - return void - param config Int32 in value - param pixmap Int32 in value - param glxpixmap Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 22 - -DestroyPixmap(glxpixmap) - return void - param glxpixmap Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 23 - -CreateNewContext(config, render_type, share_list, direct) - return void - param config Int32 in value - param render_type Int32 in value - param share_list Int32 in value - param direct Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 24 - -QueryContext() - return void - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 25 - -MakeContextCurrent(drawable, readdrawable, context) - return void - param drawable Int32 in value - param readdrawable Int32 in value - param context Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 26 - -CreatePbuffer(config, pbuffer) - return void - param config Int32 in value - param pbuffer Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 27 - -DestroyPbuffer(pbuffer) - return void - param pbuffer Int32 in value - dlflags notlistable - glxflags client-handcode - category glx - glxopcode 28 - -GetDrawableAttributes(drawable) - return void - param drawable Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 29 - -ChangeDrawableAttributes(drawable) - return void - param drawable Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 30 - -CreateWindow(config, window, glxwindow) - return void - param config Int32 in value - param window Int32 in value - param glxwindow Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 31 - -DestroyWindow(glxwindow) - return void - param glxwindow Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxopcode 32 - -############################################################################### -# -# IRIX5.3 extension commands -# -############################################################################### - -############################################################################### -# -# SGI_swap_control extension commands -# -############################################################################### -SwapIntervalSGI() - return void - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65536 - -############################################################################### -# -# IRIX5.3-PATCH154 extension commands -# -############################################################################### - -############################################################################### -# -# SGI_make_current_read extension commands -# -############################################################################### -MakeCurrentReadSGI(drawable, readdrawable, context) - return void - param drawable Int32 in value - param readdrawable Int32 in value - param context Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65537 - -############################################################################### -# -# SGIX_video_source extension commands -# -############################################################################### -CreateGLXVideoSourceSGIX(dpy, screen, server, path, class, node) - return void - param dpy Int32 in value - param screen Int32 in value - param server Int32 in value - param path Int32 in value - param class Int32 in value - param node Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65538 - -DestroyGLXVideoSourceSGIX(dpy, glxvideosource) - return void - param dpy Int32 in value - param glxvideosource Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65539 - -############################################################################### -# -# IRIX6.2 extension commands -# -############################################################################### - -############################################################################### -# -# EXT_import_context extension commands -# -############################################################################### -QueryContextInfoEXT() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxvendorglx 1024 - -############################################################################### -# -# SGIX_fbconfig extension commands -# -############################################################################### -GetFBConfigsSGIX() - return void - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxvendorglx 65540 - -CreateContextWithConfigSGIX(gc_id, screen, config, share_list) - return void - param gc_id Int32 in value - param screen Int32 in value - param config Int32 in value - param share_list Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65541 - -CreateGLXPixmapWithConfigSGIX(config, pixmap, glxpixmap) - return void - param config Int32 in value - param pixmap Int32 in value - param glxpixmap Int32 in value - category glx - dlflags notlistable - glxflags client-handcode server-handcode - glxvendorglx 65542 - -############################################################################### -# -# SGIX_pbuffer extension commands -# -############################################################################### - -CreateGLXPbufferSGIX(config, pbuffer) - return void - param config Int32 in value - param pbuffer Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxvendorglx 65543 - -DestroyGLXPbufferSGIX(pbuffer) - return void - param pbuffer Int32 in value - dlflags notlistable - glxflags client-handcode - category glx - glxvendorglx 65544 - -ChangeDrawableAttributesSGIX(drawable) - return void - param drawable Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxvendorglx 65545 - -GetDrawableAttributesSGIX(drawable) - return void - param drawable Int32 in value - dlflags notlistable - glxflags client-handcode server-handcode - category glx - glxvendorglx 65546 - -############################################################################### -# -# SGIX_swap_group extension commands -# -############################################################################### - -JoinSwapGroupSGIX(window,group) - return void - param window Int32 in value - param group Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65547 - -############################################################################### -# -# SGIX_swap_barrier extension commands -# -############################################################################### - -BindSwapBarrierSGIX(window,barrier) - return void - param window Int32 in value - param barrier Int32 in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65548 - -QueryMaxSwapBarriersSGIX() - return void - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65549 - -############################################################################### -# -# SGIX_hyperpipe extension commands -# -############################################################################### - -QueryHyperpipeNetworkSGIX(dpy, npipes) - return GLXHyperpipeNetworkPointer - param dpy Display out reference - param npipes int out reference - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65550 - -HyperpipeConfigSGIX(dpy, networkId, npipes, cfg, hpId) - return int - param dpy Display out reference - param networkId int in value - param npipes int in value - param cfg GLXHyperpipeConfig in array[npipes] - param hpId int out reference - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65552 - -QueryHyperpipeConfigSGIX(dpy, hpId, npipes) - return GLXHyperpipeConfigPointer - param dpy Display out reference - param hpId int in value - param npipes int out reference - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65551 - -DestroyHyperpipeConfigSGIX(dpy, hpId) - return int - param dpy Display out reference - param hpId int in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx 65553 - -BindHyperpipeSGIX(dpy, hpId) - return int - param dpy Display out reference - param hpId int in value - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx ??? - -QueryHyperpipeBestAttribSGIX(dpy, timeSlice, attrib, size, attribList, returnAttribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param attribList Void in array[size] - param returnAttribList Void out array[size] - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx ??? - -HyperpipeAttribSGIX(dpy, timeSlice, attrib, size, attribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param attribList void in array[size] - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx ??? - -QueryHyperpipeAttribSGIX(dpy, timeSlice, attrib, size, returnAttribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param returnAttribList void in array[size] - glxflags client-handcode server-handcode - category glx - dlflags notlistable - glxvendorglx ??? diff --git a/src/glx/apple/specs/glxenum.spec b/src/glx/apple/specs/glxenum.spec deleted file mode 100644 index fb25ddf9da..0000000000 --- a/src/glx/apple/specs/glxenum.spec +++ /dev/null @@ -1,414 +0,0 @@ -# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. -# -# This document is licensed under the SGI Free Software B License Version -# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - -# This is the GLX enumerant registry. -# -# It is an extremely important file. Do not mess with it unless -# you know what you're doing and have permission to do so. -# -# Rules for modification are the same as the rules for the OpenGL -# enumerant registry (gl.spec). Basically, don't modify this -# file unless you're the Khronos API Registrar. - -Extensions define: - VERSION_1_1 = 1 - VERSION_1_2 = 1 - VERSION_1_3 = 1 - VERSION_1_4 = 1 - SGIS_multisample = 1 - EXT_visual_info = 1 - SGI_swap_control = 1 - SGI_video_sync = 1 - SGI_make_current_read = 1 - SGIX_video_source = 1 - EXT_visual_rating = 1 - EXT_import_context = 1 - SGIX_fbconfig = 1 - SGIX_pbuffer = 1 - SGI_cushion = 1 - SGIX_video_resize = 1 - SGIX_dmbuffer = 1 - SGIX_swap_group = 1 - SGIX_swap_barrier = 1 - SGIS_blended_overlay = 1 - SGIS_shared_multisample = 1 - SUN_get_transparent_index = 1 - 3DFX_multisample = 1 - MESA_copy_sub_buffer = 1 - MESA_pixmap_colormap = 1 - MESA_release_buffers = 1 - MESA_set_3dfx_mode = 1 - SGIX_visual_select_group = 1 - SGIX_hyperpipe = 1 - -GLXStringName enum: - VENDOR = 0x1 - VERSION = 0x2 - EXTENSIONS = 0x3 - -GLXErrorCode enum: - BAD_SCREEN = 1 - BAD_ATTRIBUTE = 2 - NO_EXTENSION = 3 - BAD_VISUAL = 4 - BAD_CONTEXT = 5 - BAD_VALUE = 6 - BAD_ENUM = 7 - BAD_HYPERPIPE_CONFIG_SGIX = 91 # SGIX_hyperpipe - BAD_HYPERPIPE_SGIX = 92 # " - -# Reserved bits in bitfields of various purposes - -GLXDrawableTypeMask enum: - WINDOW_BIT = 0x00000001 # DRAWABLE_TYPE value - PIXMAP_BIT = 0x00000002 # " - PBUFFER_BIT = 0x00000004 # " - WINDOW_BIT_SGIX = 0x00000001 # DRAWABLE_TYPE_SGIX value - PIXMAP_BIT_SGIX = 0x00000002 # " - PBUFFER_BIT_SGIX = 0x00000004 # " - -GLXRenderTypeMask enum: - RGBA_BIT = 0x00000001 # RENDER_TYPE value - COLOR_INDEX_BIT = 0x00000002 # " - RGBA_BIT_SGIX = 0x00000001 # RENDER_TYPE_SGIX value - COLOR_INDEX_BIT_SGIX = 0x00000002 # " - RGBA_FLOAT_BIT_ARB = 0x00000004 # RENDER_TYPE value (from ARB_fbconfig_float) - RGBA_UNSIGNED_FLOAT_BIT_EXT = 0x00000008 # RENDER_TYPE value (from EXT_fbconfig_packed_float) - -GLXSyncType enum: - SYNC_FRAME_SGIX = 0x00000000 # ChannelRectSyncSGIX synctype - SYNC_SWAP_SGIX = 0x00000001 # " - -GLXEventMask enum: - PBUFFER_CLOBBER_MASK = 0x08000000 # SelectEvent mask - BUFFER_CLOBBER_MASK_SGIX = 0x08000000 # SelectEventSGIX mask -# INTEL_future_use = 0x04000000 # SelectEvent mask (for GLX_INTEL_swap_event) - -GLXPbufferClobberMask enum: - FRONT_LEFT_BUFFER_BIT = 0x00000001 # PbufferClobberEvent mask - FRONT_RIGHT_BUFFER_BIT = 0x00000002 # " - BACK_LEFT_BUFFER_BIT = 0x00000004 # " - BACK_RIGHT_BUFFER_BIT = 0x00000008 # " - AUX_BUFFERS_BIT = 0x00000010 # " - DEPTH_BUFFER_BIT = 0x00000020 # " - STENCIL_BUFFER_BIT = 0x00000040 # " - ACCUM_BUFFER_BIT = 0x00000080 # " - FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001 # BufferClobberEventSGIX mask - FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002 # " - BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004 # " - BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008 # " - AUX_BUFFERS_BIT_SGIX = 0x00000010 # " - DEPTH_BUFFER_BIT_SGIX = 0x00000020 # " - STENCIL_BUFFER_BIT_SGIX = 0x00000040 # " - ACCUM_BUFFER_BIT_SGIX = 0x00000080 # " - SAMPLE_BUFFERS_BIT_SGIX = 0x00000100 # " - -GLXHyperpipeTypeMask enum: - HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001 # SGIX_hyperpipe - HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002 # " - -GLXHyperpipeAttrib enum: - PIPE_RECT_SGIX = 0x00000001 # SGIX_hyperpipe - PIPE_RECT_LIMITS_SGIX = 0x00000002 # " - HYPERPIPE_STEREO_SGIX = 0x00000003 # " - HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004 # " - -GLXHyperpipeMisc enum: - HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80 # SGIX_hyperpipe - -GLXBindToTextureTargetMask enum: - TEXTURE_1D_BIT_EXT = 0x00000001 # EXT_texture_from_pixmap - TEXTURE_2D_BIT_EXT = 0x00000002 - TEXTURE_RECTANGLE_BIT_EXT = 0x00000004 - -# CONTEXT_FLAGS_ARB bits -GLXContextFlags enum: - CONTEXT_DEBUG_BIT_ARB = 0x00000001 # ARB_create_context - CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 # ARB_create_context - -# CONTEXT_PROFILE_MASK_ARB bits -GLXContextProfileMask enum: - CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 # ARB_create_context_profile - CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 # ARB_create_context_profile - -GLXAttribute enum: - USE_GL = 1 # Visual attributes - BUFFER_SIZE = 2 # " - LEVEL = 3 # " - RGBA = 4 # " - DOUBLEBUFFER = 5 # " - STEREO = 6 # " - AUX_BUFFERS = 7 # " - RED_SIZE = 8 # " - GREEN_SIZE = 9 # " - BLUE_SIZE = 10 # " - ALPHA_SIZE = 11 # " - DEPTH_SIZE = 12 # " - STENCIL_SIZE = 13 # " - ACCUM_RED_SIZE = 14 # " - ACCUM_GREEN_SIZE = 15 # " - ACCUM_BLUE_SIZE = 16 # " - ACCUM_ALPHA_SIZE = 17 # " - CONFIG_CAVEAT = 0x20 # " - X_VISUAL_TYPE = 0x22 # " - TRANSPARENT_TYPE = 0x23 # " - TRANSPARENT_INDEX_VALUE = 0x24 # " - TRANSPARENT_RED_VALUE = 0x25 # " - TRANSPARENT_GREEN_VALUE = 0x26 # " - TRANSPARENT_BLUE_VALUE = 0x27 # " - TRANSPARENT_ALPHA_VALUE = 0x28 # " - DONT_CARE = 0xFFFFFFFF # may be specified for ChooseFBConfig attributes - NONE = 0x8000 # several attribute values - SLOW_CONFIG = 0x8001 # CONFIG_CAVEAT attribute value - TRUE_COLOR = 0x8002 # X_VISUAL_TYPE attribute value - DIRECT_COLOR = 0x8003 # " - PSEUDO_COLOR = 0x8004 # " - STATIC_COLOR = 0x8005 # " - GRAY_SCALE = 0x8006 # " - STATIC_GRAY = 0x8007 # " - TRANSPARENT_RGB = 0x8008 # TRANSPARENT_TYPE attribute value - TRANSPARENT_INDEX = 0x8009 # " - VISUAL_ID = 0x800B # Context attribute - SCREEN = 0x800C # " - NON_CONFORMANT_CONFIG = 0x800D # CONFIG_CAVEAT attribute value - DRAWABLE_TYPE = 0x8010 # FBConfig attribute - RENDER_TYPE = 0x8011 # " - X_RENDERABLE = 0x8012 # " - FBCONFIG_ID = 0x8013 # " - RGBA_TYPE = 0x8014 # CreateNewContext render_type value - COLOR_INDEX_TYPE = 0x8015 # " - MAX_PBUFFER_WIDTH = 0x8016 # FBConfig attribute - MAX_PBUFFER_HEIGHT = 0x8017 # " - MAX_PBUFFER_PIXELS = 0x8018 # " - PRESERVED_CONTENTS = 0x801B # CreateGLXPbuffer attribute - LARGEST_PBUFFER = 0x801C # " - WIDTH = 0x801D # Drawable attribute - HEIGHT = 0x801E # " - EVENT_MASK = 0x801F # " - DAMAGED = 0x8020 # PbufferClobber event_type value - SAVED = 0x8021 # " - WINDOW = 0x8022 # PbufferClobber draw_type value - PBUFFER = 0x8023 # " - PBUFFER_HEIGHT = 0x8040 # CreateGLXPbuffer attribute - PBUFFER_WIDTH = 0x8041 # " - VISUAL_CAVEAT_EXT = 0x20 # Visual attribute - X_VISUAL_TYPE_EXT = 0x22 # " - TRANSPARENT_TYPE_EXT = 0x23 # " - TRANSPARENT_INDEX_VALUE_EXT = 0x24 # " - TRANSPARENT_RED_VALUE_EXT = 0x25 # " - TRANSPARENT_GREEN_VALUE_EXT = 0x26 # " - TRANSPARENT_BLUE_VALUE_EXT = 0x27 # " - TRANSPARENT_ALPHA_VALUE_EXT = 0x28 # " - NONE_EXT = 0x8000 # several EXT attribute values - SLOW_VISUAL_EXT = 0x8001 # VISUAL_CAVEAT_EXT attribute value - TRUE_COLOR_EXT = 0x8002 # X_VISUAL_TYPE_EXT attribute value - DIRECT_COLOR_EXT = 0x8003 # " - PSEUDO_COLOR_EXT = 0x8004 # " - STATIC_COLOR_EXT = 0x8005 # " - GRAY_SCALE_EXT = 0x8006 # " - STATIC_GRAY_EXT = 0x8007 # " - TRANSPARENT_RGB_EXT = 0x8008 # TRANSPARENT_TYPE_EXT attribute value - TRANSPARENT_INDEX_EXT = 0x8009 # " - SHARE_CONTEXT_EXT = 0x800A # QueryContextInfoEXT attribute - VISUAL_ID_EXT = 0x800B # " - SCREEN_EXT = 0x800C # " - NON_CONFORMANT_VISUAL_EXT = 0x800D # VISUAL_CAVEAT_EXT attribute value - DRAWABLE_TYPE_SGIX = 0x8010 # FBConfigSGIX attribute - RENDER_TYPE_SGIX = 0x8011 # " - X_RENDERABLE_SGIX = 0x8012 # " - FBCONFIG_ID_SGIX = 0x8013 # " - RGBA_TYPE_SGIX = 0x8014 # CreateContextWithConfigSGIX render_type value - COLOR_INDEX_TYPE_SGIX = 0x8015 # " - MAX_PBUFFER_WIDTH_SGIX = 0x8016 # FBConfigSGIX attribute - MAX_PBUFFER_HEIGHT_SGIX = 0x8017 # " - MAX_PBUFFER_PIXELS_SGIX = 0x8018 # " - OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019 # " - OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A # " - PRESERVED_CONTENTS_SGIX = 0x801B # PbufferSGIX attribute - LARGEST_PBUFFER_SGIX = 0x801C # " - WIDTH_SGIX = 0x801D # " - HEIGHT_SGIX = 0x801E # " - EVENT_MASK_SGIX = 0x801F # " - DAMAGED_SGIX = 0x8020 # BufferClobberSGIX event_type value - SAVED_SGIX = 0x8021 # " - WINDOW_SGIX = 0x8022 # BufferClobberSGIX draw_type value - PBUFFER_SGIX = 0x8023 # " - DIGITAL_MEDIA_PBUFFER_SGIX = 0x8024 # PbufferSGIX attribute - BLENDED_RGBA_SGIS = 0x8025 # TRANSPARENT_TYPE_EXT attribute value - MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026 # Visual attribute (shared_multisample) - MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027 # " - VISUAL_SELECT_GROUP_SGIX = 0x8028 # Visual attribute (visual_select_group) - HYPERPIPE_ID_SGIX = 0x8030 # Associated hyperpipe ID (SGIX_hyperpipe) - SAMPLE_BUFFERS_SGIS = 100000 # Visual attribute (SGIS_multisample) - SAMPLES_SGIS = 100001 # " - SAMPLE_BUFFERS_ARB = 100000 # Visual attribute (ARB_multisample - alias of SGIS_multisample) - SAMPLES_ARB = 100001 # " - SAMPLE_BUFFERS = 100000 # Visual attribute (GLX 1.4 core - alias of SGIS_multisample) - SAMPLES = 100001 # " - -############################################################################### - -# ARB: 0x2070-0x209F (shared with WGL) - -# Also includes a bitmask - see ContextFlags above -# ARB_create_context enum: - CONTEXT_MAJOR_VERSION_ARB = 0x2091 - CONTEXT_MINOR_VERSION_ARB = 0x2092 - CONTEXT_FLAGS_ARB = 0x2094 - -############################################################################### - -# NVIDIA: 0x20A0 - 0x219F (shared with WGL) - -# NV_float_buffer enum: - FLOAT_COMPONENTS_NV = 0x20B0 -# EXT_fbconfig_packed_float enum: - RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1 -# EXT_framebuffer_sRGB enum: - FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2 - -# NV_future_use: 0x20B3-0x20B8 - -# ARB_fbconfig_float enum: - RGBA_FLOAT_TYPE_ARB = 0x20B9 - -# NV_future_use: 0x20BA-0x20C2 - -# NV_video_out enum: - VIDEO_OUT_COLOR_NV = 0x20C3 - VIDEO_OUT_ALPHA_NV = 0x20C4 - VIDEO_OUT_DEPTH_NV = 0x20C5 - VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6 - VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7 - VIDEO_OUT_FRAME_NV = 0x20C8 - VIDEO_OUT_FIELD_1_NV = 0x20C9 - VIDEO_OUT_FIELD_2_NV = 0x20CA - VIDEO_OUT_STACKED_FIELDS_1_2_NV = 0x20CB - VIDEO_OUT_STACKED_FIELDS_2_1_NV = 0x20CC - -# NV_video_capture enum: - DEVICE_ID_NV = 0x20CD - UNIQUE_ID_NV = 0x20CE - NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF - -# EXT_texture_from_pixmap enum: - BIND_TO_TEXTURE_RGB_EXT = 0x20D0 - BIND_TO_TEXTURE_RGBA_EXT = 0x20D1 - BIND_TO_MIPMAP_TEXTURE_EXT = 0x20D2 - BIND_TO_TEXTURE_TARGETS_EXT = 0x20D3 - Y_INVERTED_EXT = 0x20D4 - TEXTURE_FORMAT_EXT = 0x20D5 - TEXTURE_TARGET_EXT = 0x20D6 - MIPMAP_TEXTURE_EXT = 0x20D7 - TEXTURE_FORMAT_NONE_EXT = 0x20D8 - TEXTURE_FORMAT_RGB_EXT = 0x20D9 - TEXTURE_FORMAT_RGBA_EXT = 0x20DA - TEXTURE_1D_EXT = 0x20DB - TEXTURE_2D_EXT = 0x20DC - TEXTURE_RECTANGLE_EXT = 0x20DD - FRONT_LEFT_EXT = 0x20DE - FRONT_RIGHT_EXT = 0x20DF - BACK_LEFT_EXT = 0x20E0 - BACK_RIGHT_EXT = 0x20E1 - FRONT_EXT = GLX_FRONT_LEFT_EXT - BACK_EXT = GLX_BACK_LEFT_EXT - AUX0_EXT = 0x20E2 - AUX1_EXT = 0x20E3 - AUX2_EXT = 0x20E4 - AUX3_EXT = 0x20E5 - AUX4_EXT = 0x20E6 - AUX5_EXT = 0x20E7 - AUX6_EXT = 0x20E8 - AUX7_EXT = 0x20E9 - AUX8_EXT = 0x20EA - AUX9_EXT = 0x20EB - -# NV_future_use: 0x20EC-0x20EF - -NV_present_video enum: - NUM_VIDEO_SLOTS_NV = 0x20F0 - -EXT_swap_control enum: - SWAP_INTERVAL_EXT = 0x20F1 - MAX_SWAP_INTERVAL_EXT = 0x20F2 - -# NV_future_use: 0x20F3-0x219F - -############################################################################### - -# MESA (not in a reserved block) - -# MESA_set_3dfx_mode enum: -# 3DFX_WINDOW_MODE_MESA = 0x1 -# 3DFX_FULLSCREEN_MODE_MESA = 0x2 - -############################################################################### - -# SGI_future_use: 0x8029-0x802F -# SGIX_hyperpipe adds attribute name HYPERPIPE_ID_SGIX = 0x8030 -# SGI_future_use: 0x8031-0x803F - -############################################################################### - -# ARB_future_use: 0x8042-0x804F - -############################################################################### - -# 3DFX: 0x8050-0x805F - -# 3DFX_multisample enum: -# SAMPLE_BUFFERS_3DFX = 0x8050 -# SAMPLES_3DFX = 0x8051 - -############################################################################### - -# OML: 0x8060-0x806F - -# OML_swap_method enum: -# SWAP_METHOD_OML = 0x8060 -# SWAP_EXCHANGE_OML = 0x8061 -# SWAP_COPY_OML = 0x8062 -# SWAP_UNDEFINED_OML = 0x8063 - -# OML_future_use: 0x8064-0x806F - -############################################################################### - -# NVIDIA: 0x8070 - 0x816F - -NVIDIA_future_use: 0x8070-0x816F - -############################################################################### - -# SUN: 0x8170 - 0x817F - -SUN_future_use: 0x8170-0x817F - -############################################################################### - -# INTEL: 0x8180 - 0x818F - -# INTEL_swap_event: 0x8180-??? (in process, see Khronos bug 5752) - -INTEL_future_use: 0x8180-0x818F - -############################################################################### -### Please remember that new GLX enum allocations must be obtained by request -### to the Khronos API Registrar (see comments at the top of this file) -### File requests in the Khronos Bugzilla, OpenGL project, Registry component. -############################################################################### - -# Any_vendor_future_use: 0x8180-0x9125 - -# Also includes a bitmask - see ContextProfileMask above -# ARB_create_context_profile enum: (equivalent to corresponding GL token) - CONTEXT_PROFILE_MASK_ARB = 0x9126 - -# Any_vendor_future_use: 0x9127-0xFFFF -# -# This range must be the last range in the file. To generate a new -# range, allocate multiples of 16 from the beginning of the -# Any_vendor_future_use range and update glxenum.spec, glxenumext.spec, -# and extensions.reserved. diff --git a/src/glx/apple/specs/glxenumext.spec b/src/glx/apple/specs/glxenumext.spec deleted file mode 100644 index 762a19abef..0000000000 --- a/src/glx/apple/specs/glxenumext.spec +++ /dev/null @@ -1,503 +0,0 @@ -# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. -# -# This document is licensed under the SGI Free Software B License Version -# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - -# List of GLX enumerants for glxext.h header -# -# This is NOT the master GLX enumerant registry (glxenum.spec). -# -# Unlike glxenum.spec, glxenumext.spec is -# (1) In order by extension number. -# (2) Includes only GLX extensions and GLX 1.3/1.4 core enumerants, -# since it's assumed all today support at least GLX 1.2. -# (3) Has no 'Extensions' section, since enums are always -# conditionally protected against multiple definition -# by glextenum.pl. -# (4) Is processed by glextenum.pl, which has evolved -# from enum.pl - should merge back into one script. - -# glxext.h version number - this should be automatically updated, -# when changing either enum or template spec files. - -passthru: -passthru: /* Header file version number, required by OpenGL ABI for Linux */ -passthru: /* glxext.h last updated 2009/10/08 */ -passthru: /* Current version at http://www.opengl.org/registry/ */ -passthru: #define GLX_GLXEXT_VERSION 25 - -############################################################################### -# -# GLX 1.3 enums -# -############################################################################### - -VERSION_1_3 enum: - WINDOW_BIT = 0x00000001 # DRAWABLE_TYPE value - PIXMAP_BIT = 0x00000002 # " - PBUFFER_BIT = 0x00000004 # " - RGBA_BIT = 0x00000001 # RENDER_TYPE value - COLOR_INDEX_BIT = 0x00000002 # " - PBUFFER_CLOBBER_MASK = 0x08000000 # SelectEvent mask - FRONT_LEFT_BUFFER_BIT = 0x00000001 # PbufferClobberEvent mask - FRONT_RIGHT_BUFFER_BIT = 0x00000002 # " - BACK_LEFT_BUFFER_BIT = 0x00000004 # " - BACK_RIGHT_BUFFER_BIT = 0x00000008 # " - AUX_BUFFERS_BIT = 0x00000010 # " - DEPTH_BUFFER_BIT = 0x00000020 # " - STENCIL_BUFFER_BIT = 0x00000040 # " - ACCUM_BUFFER_BIT = 0x00000080 # " - CONFIG_CAVEAT = 0x20 # " - X_VISUAL_TYPE = 0x22 # " - TRANSPARENT_TYPE = 0x23 # " - TRANSPARENT_INDEX_VALUE = 0x24 # " - TRANSPARENT_RED_VALUE = 0x25 # " - TRANSPARENT_GREEN_VALUE = 0x26 # " - TRANSPARENT_BLUE_VALUE = 0x27 # " - TRANSPARENT_ALPHA_VALUE = 0x28 # " - DONT_CARE = 0xFFFFFFFF # may be specified for ChooseFBConfig attributes - NONE = 0x8000 # several attribute values - SLOW_CONFIG = 0x8001 # CONFIG_CAVEAT attribute value - TRUE_COLOR = 0x8002 # X_VISUAL_TYPE attribute value - DIRECT_COLOR = 0x8003 # " - PSEUDO_COLOR = 0x8004 # " - STATIC_COLOR = 0x8005 # " - GRAY_SCALE = 0x8006 # " - STATIC_GRAY = 0x8007 # " - TRANSPARENT_RGB = 0x8008 # TRANSPARENT_TYPE attribute value - TRANSPARENT_INDEX = 0x8009 # " - VISUAL_ID = 0x800B # Context attribute - SCREEN = 0x800C # " - NON_CONFORMANT_CONFIG = 0x800D # CONFIG_CAVEAT attribute value - DRAWABLE_TYPE = 0x8010 # FBConfig attribute - RENDER_TYPE = 0x8011 # " - X_RENDERABLE = 0x8012 # " - FBCONFIG_ID = 0x8013 # " - RGBA_TYPE = 0x8014 # CreateNewContext render_type value - COLOR_INDEX_TYPE = 0x8015 # " - MAX_PBUFFER_WIDTH = 0x8016 # FBConfig attribute - MAX_PBUFFER_HEIGHT = 0x8017 # " - MAX_PBUFFER_PIXELS = 0x8018 # " - PRESERVED_CONTENTS = 0x801B # CreateGLXPbuffer attribute - LARGEST_PBUFFER = 0x801C # " - WIDTH = 0x801D # Drawable attribute - HEIGHT = 0x801E # " - EVENT_MASK = 0x801F # " - DAMAGED = 0x8020 # PbufferClobber event_type value - SAVED = 0x8021 # " - WINDOW = 0x8022 # PbufferClobber draw_type value - PBUFFER = 0x8023 # " - PBUFFER_HEIGHT = 0x8040 # CreateGLXPbuffer attribute - PBUFFER_WIDTH = 0x8041 # " - -############################################################################### -# -# GLX 1.4 enums -# -############################################################################### - -VERSION_1_4 enum: - SAMPLE_BUFFERS = 100000 - SAMPLES = 100001 - -############################################################################### -# -# ARB GLX extensions, in ARB extension order -# -############################################################################### - -############################################################################### - -# No new tokens -# ARB Extension #2 -ARB_get_proc_address enum: - -############################################################################### - -# ARB Extension #5 -ARB_multisample enum: - SAMPLE_BUFFERS_ARB = 100000 - SAMPLES_ARB = 100001 - -############################################################################### - -# ARB Extension #39 -ARB_fbconfig_float enum: - RGBA_FLOAT_TYPE_ARB = 0x20B9 - RGBA_FLOAT_BIT_ARB = 0x00000004 - -############################################################################### - -# ARB Extension #56 -ARB_create_context enum: - CONTEXT_DEBUG_BIT_ARB = 0x00000001 - CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 - CONTEXT_MAJOR_VERSION_ARB = 0x2091 - CONTEXT_MINOR_VERSION_ARB = 0x2092 - CONTEXT_FLAGS_ARB = 0x2094 - -############################################################################### - -# ARB Extension #75 -ARB_create_context_profile enum: - CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 - CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 - CONTEXT_PROFILE_MASK_ARB = 0x9126 - - -############################################################################### -# -# non-ARB GLX extensions, in registry order -# -############################################################################### - -############################################################################### - -# Unfortunately, the SGIS_multisample specification and the IRIX -# implementation are inconsistent; the spec assigns enums as follows. -# ARB_multisample reuses these enums with ARB suffixes, and it can't -# be changed at this point. So in the interest of supporting both -# extensions on non-IRIX platforms, the SGIS enums will be defined -# here as originally specified. - -# Extension #25 -SGIS_multisample enum: - SAMPLE_BUFFERS_SGIS = 100000 - SAMPLES_SGIS = 100001 - -############################################################################### - -# Extension #28 -EXT_visual_info enum: - X_VISUAL_TYPE_EXT = 0x22 - TRANSPARENT_TYPE_EXT = 0x23 - TRANSPARENT_INDEX_VALUE_EXT = 0x24 - TRANSPARENT_RED_VALUE_EXT = 0x25 - TRANSPARENT_GREEN_VALUE_EXT = 0x26 - TRANSPARENT_BLUE_VALUE_EXT = 0x27 - TRANSPARENT_ALPHA_VALUE_EXT = 0x28 - NONE_EXT = 0x8000 - TRUE_COLOR_EXT = 0x8002 - DIRECT_COLOR_EXT = 0x8003 - PSEUDO_COLOR_EXT = 0x8004 - STATIC_COLOR_EXT = 0x8005 - GRAY_SCALE_EXT = 0x8006 - STATIC_GRAY_EXT = 0x8007 - TRANSPARENT_RGB_EXT = 0x8008 - TRANSPARENT_INDEX_EXT = 0x8009 - -############################################################################### - -# No new tokens -# Extension #40 -SGI_swap_control enum: - -############################################################################### - -# No new tokens -# Extension #41 -SGI_video_sync enum: - -############################################################################### - -# No new tokens -# Extension #42 -SGI_make_current_read enum: - -############################################################################### - -# No new tokens -# Extension #43 -SGIX_video_source enum: - -############################################################################### - -# Extension #44 -EXT_visual_rating enum: - VISUAL_CAVEAT_EXT = 0x20 - SLOW_VISUAL_EXT = 0x8001 - NON_CONFORMANT_VISUAL_EXT = 0x800D - use EXT_visual_info NONE_EXT - -############################################################################### - -# Extension #47 -EXT_import_context enum: - SHARE_CONTEXT_EXT = 0x800A - VISUAL_ID_EXT = 0x800B - SCREEN_EXT = 0x800C - -############################################################################### - -# Extension #49 -SGIX_fbconfig enum: - WINDOW_BIT_SGIX = 0x00000001 - PIXMAP_BIT_SGIX = 0x00000002 - RGBA_BIT_SGIX = 0x00000001 - COLOR_INDEX_BIT_SGIX = 0x00000002 - DRAWABLE_TYPE_SGIX = 0x8010 - RENDER_TYPE_SGIX = 0x8011 - X_RENDERABLE_SGIX = 0x8012 - FBCONFIG_ID_SGIX = 0x8013 - RGBA_TYPE_SGIX = 0x8014 - COLOR_INDEX_TYPE_SGIX = 0x8015 - use EXT_import_context SCREEN_EXT - -############################################################################### - -# Extension #50 -SGIX_pbuffer enum: - PBUFFER_BIT_SGIX = 0x00000004 - BUFFER_CLOBBER_MASK_SGIX = 0x08000000 - FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001 - FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002 - BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004 - BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008 - AUX_BUFFERS_BIT_SGIX = 0x00000010 - DEPTH_BUFFER_BIT_SGIX = 0x00000020 - STENCIL_BUFFER_BIT_SGIX = 0x00000040 - ACCUM_BUFFER_BIT_SGIX = 0x00000080 - SAMPLE_BUFFERS_BIT_SGIX = 0x00000100 - MAX_PBUFFER_WIDTH_SGIX = 0x8016 - MAX_PBUFFER_HEIGHT_SGIX = 0x8017 - MAX_PBUFFER_PIXELS_SGIX = 0x8018 - OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019 - OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A - PRESERVED_CONTENTS_SGIX = 0x801B - LARGEST_PBUFFER_SGIX = 0x801C - WIDTH_SGIX = 0x801D - HEIGHT_SGIX = 0x801E - EVENT_MASK_SGIX = 0x801F - DAMAGED_SGIX = 0x8020 - SAVED_SGIX = 0x8021 - WINDOW_SGIX = 0x8022 - PBUFFER_SGIX = 0x8023 - -############################################################################### - -# Extension #62 -SGI_cushion enum: -# CUSHION_BUFFERS_SGI ???? - -############################################################################### - -# Extension #83 -SGIX_video_resize enum: - SYNC_FRAME_SGIX = 0x00000000 - SYNC_SWAP_SGIX = 0x00000001 - -############################################################################### - -# Extension #86 -SGIX_dmbuffer enum: - DIGITAL_MEDIA_PBUFFER_SGIX = 0x8024 - -############################################################################### - -# No new tokens -# Extension #91 -SGIX_swap_group enum: - -############################################################################### - -# No new tokens -# Extension #92 -SGIX_swap_barrier enum: - -############################################################################### - -# Extension #142 -SGIS_blended_overlay enum: - BLENDED_RGBA_SGIS = 0x8025 - -############################################################################### - -# Extension #143 -SGIS_shared_multisample enum: - MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026 - MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027 - -############################################################################### - -# No new tokens -# Extension #183 -SUN_get_transparent_index enum: - -############################################################################### - -# Extension #207 -3DFX_multisample enum: - SAMPLE_BUFFERS_3DFX = 0x8050 - SAMPLES_3DFX = 0x8051 - -############################################################################### - -# No new tokens -# Extension #215 -MESA_copy_sub_buffer enum: - -############################################################################### - -# No new tokens -# Extension #216 -MESA_pixmap_colormap enum: - -############################################################################### - -# No new tokens -# Extension #217 -MESA_release_buffers enum: - -############################################################################### - -# Extension #218 -MESA_set_3dfx_mode enum: - 3DFX_WINDOW_MODE_MESA = 0x1 - 3DFX_FULLSCREEN_MODE_MESA = 0x2 - -############################################################################### - -# Extension #234 -SGIX_visual_select_group enum: - VISUAL_SELECT_GROUP_SGIX = 0x8028 - -############################################################################### - -# Extension #237 -OML_swap_method enum: - SWAP_METHOD_OML = 0x8060 - SWAP_EXCHANGE_OML = 0x8061 - SWAP_COPY_OML = 0x8062 - SWAP_UNDEFINED_OML = 0x8063 - -############################################################################### - -# No new tokens -# Extension #238 -OML_sync_control enum: - -############################################################################### - -# Extension #281 -NV_float_buffer enum: - FLOAT_COMPONENTS_NV = 0x20B0 - -############################################################################### - -# Extension #307 -SGIX_hyperpipe enum: - HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80 - BAD_HYPERPIPE_CONFIG_SGIX = 91 - BAD_HYPERPIPE_SGIX = 92 - HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001 - HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002 - PIPE_RECT_SGIX = 0x00000001 - PIPE_RECT_LIMITS_SGIX = 0x00000002 - HYPERPIPE_STEREO_SGIX = 0x00000003 - HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004 - HYPERPIPE_ID_SGIX = 0x8030 - -############################################################################### - -# No new tokens -# Extension #308 -MESA_agp_offset enum: - -############################################################################### - -# Extension #328 -EXT_fbconfig_packed_float enum: - RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1 - RGBA_UNSIGNED_FLOAT_BIT_EXT = 0x00000008 - -############################################################################### - -# Extension #337 -EXT_framebuffer_sRGB enum: - FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2 - -############################################################################### - -# Extension #344 -EXT_texture_from_pixmap enum: - TEXTURE_1D_BIT_EXT = 0x00000001 - TEXTURE_2D_BIT_EXT = 0x00000002 - TEXTURE_RECTANGLE_BIT_EXT = 0x00000004 - BIND_TO_TEXTURE_RGB_EXT = 0x20D0 - BIND_TO_TEXTURE_RGBA_EXT = 0x20D1 - BIND_TO_MIPMAP_TEXTURE_EXT = 0x20D2 - BIND_TO_TEXTURE_TARGETS_EXT = 0x20D3 - Y_INVERTED_EXT = 0x20D4 - TEXTURE_FORMAT_EXT = 0x20D5 - TEXTURE_TARGET_EXT = 0x20D6 - MIPMAP_TEXTURE_EXT = 0x20D7 - TEXTURE_FORMAT_NONE_EXT = 0x20D8 - TEXTURE_FORMAT_RGB_EXT = 0x20D9 - TEXTURE_FORMAT_RGBA_EXT = 0x20DA - TEXTURE_1D_EXT = 0x20DB - TEXTURE_2D_EXT = 0x20DC - TEXTURE_RECTANGLE_EXT = 0x20DD - FRONT_LEFT_EXT = 0x20DE - FRONT_RIGHT_EXT = 0x20DF - BACK_LEFT_EXT = 0x20E0 - BACK_RIGHT_EXT = 0x20E1 - FRONT_EXT = GLX_FRONT_LEFT_EXT - BACK_EXT = GLX_BACK_LEFT_EXT - AUX0_EXT = 0x20E2 - AUX1_EXT = 0x20E3 - AUX2_EXT = 0x20E4 - AUX3_EXT = 0x20E5 - AUX4_EXT = 0x20E6 - AUX5_EXT = 0x20E7 - AUX6_EXT = 0x20E8 - AUX7_EXT = 0x20E9 - AUX8_EXT = 0x20EA - AUX9_EXT = 0x20EB - -############################################################################### - -# Extension #347 -NV_present_video enum: - NUM_VIDEO_SLOTS_NV = 0x20F0 - -############################################################################### - -# Extension #348 -NV_video_out enum: - VIDEO_OUT_COLOR_NV = 0x20C3 - VIDEO_OUT_ALPHA_NV = 0x20C4 - VIDEO_OUT_DEPTH_NV = 0x20C5 - VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6 - VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7 - VIDEO_OUT_FRAME_NV = 0x20C8 - VIDEO_OUT_FIELD_1_NV = 0x20C9 - VIDEO_OUT_FIELD_2_NV = 0x20CA - VIDEO_OUT_STACKED_FIELDS_1_2_NV = 0x20CB - VIDEO_OUT_STACKED_FIELDS_2_1_NV = 0x20CC - -############################################################################### - -# No new tokens -# Extension #350 -NV_swap_group enum: - -############################################################################### - -# Extension #374 -NV_video_capture enum: - DEVICE_ID_NV = 0x20CD - UNIQUE_ID_NV = 0x20CE - NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF - -############################################################################### - -# Extension #375 -EXT_swap_control enum: - SWAP_INTERVAL_EXT = 0x20F1 - MAX_SWAP_INTERVAL_EXT = 0x20F2 - -############################################################################### - -# No new tokens -# Extension #376 -NV_copy_image enum: diff --git a/src/glx/apple/specs/glxext.spec b/src/glx/apple/specs/glxext.spec deleted file mode 100644 index c953adbb1b..0000000000 --- a/src/glx/apple/specs/glxext.spec +++ /dev/null @@ -1,1318 +0,0 @@ -# glxext.spec file -# DON'T REMOVE PREVIOUS LINE!!! libspec depends on it! -# -# Copyright (C) 1991-2005 Silicon Graphics, Inc. All Rights Reserved. -# -# This document is licensed under the SGI Free Software B License Version -# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . - -required-props: -param: retval retained -glxflags: client-handcode client-intercept server-handcode -glxvendorglx: * -vectorequiv: * -category: VERSION_1_3 VERSION_1_4 ARB_get_proc_address ARB_multisample ARB_fbconfig_float EXT_import_context SGIX_dmbuffer SGIX_fbconfig SGIX_pbuffer SGIX_swap_barrier SGIX_swap_group SGIX_video_resize SGIX_video_source SGI_cushion SGI_make_current_read SGI_swap_control SGI_video_sync SUN_get_transparent_index MESA_agp_offset MESA_copy_sub_buffer MESA_pixmap_colormap MESA_release_buffers MESA_set_3dfx_mode SGIX_visual_select_group OML_sync_control SGIX_hyperpipe EXT_texture_from_pixmap NV_swap_group NV_video_output NV_present_video ARB_create_context NV_video_capture NV_copy_image EXT_swap_control -glxopcode: * - -# -# Boilerplate to define types used by some extensions. This is done -# up front, since it involves some complexities in protecting -# the declarations whether or not the -protect flag is given to -# the generator scripts. -# - -passthru: #ifndef GLX_ARB_get_proc_address -passthru: typedef void (*__GLXextFuncPtr)(void); -passthru: #endif -passthru: -passthru: #ifndef GLX_SGIX_video_source -passthru: typedef XID GLXVideoSourceSGIX; -passthru: #endif -passthru: -passthru: #ifndef GLX_SGIX_fbconfig -passthru: typedef XID GLXFBConfigIDSGIX; -passthru: typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; -passthru: #endif -passthru: -passthru: #ifndef GLX_SGIX_pbuffer -passthru: typedef XID GLXPbufferSGIX; -passthru: typedef struct { -passthru: int type; -passthru: unsigned long serial; /* # of last request processed by server */ -passthru: Bool send_event; /* true if this came for SendEvent request */ -passthru: Display *display; /* display the event was read from */ -passthru: GLXDrawable drawable; /* i.d. of Drawable */ -passthru: int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ -passthru: int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ -passthru: unsigned int mask; /* mask indicating which buffers are affected*/ -passthru: int x, y; -passthru: int width, height; -passthru: int count; /* if nonzero, at least this many more */ -passthru: } GLXBufferClobberEventSGIX; -passthru: #endif -passthru: -passthru: #ifndef GLX_NV_video_output -passthru: typedef unsigned int GLXVideoDeviceNV; -passthru: #endif -passthru: -passthru: #ifndef GLX_NV_video_capture -passthru: typedef XID GLXVideoCaptureDeviceNV; -passthru: #endif -passthru: -passthru: #ifndef GLEXT_64_TYPES_DEFINED -passthru: /* This code block is duplicated in glext.h, so must be protected */ -passthru: #define GLEXT_64_TYPES_DEFINED -passthru: /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -passthru: /* (as used in the GLX_OML_sync_control extension). */ -passthru: #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -passthru: #include -passthru: #elif defined(__sun__) || defined(__digital__) -passthru: #include -passthru: #if defined(__STDC__) -passthru: #if defined(__arch64__) || defined(_LP64) -passthru: typedef long int int64_t; -passthru: typedef unsigned long int uint64_t; -passthru: #else -passthru: typedef long long int int64_t; -passthru: typedef unsigned long long int uint64_t; -passthru: #endif /* __arch64__ */ -passthru: #endif /* __STDC__ */ -passthru: #elif defined( __VMS ) || defined(__sgi) -passthru: #include -passthru: #elif defined(__SCO__) || defined(__USLC__) -passthru: #include -passthru: #elif defined(__UNIXOS2__) || defined(__SOL64__) -passthru: typedef long int int32_t; -passthru: typedef long long int int64_t; -passthru: typedef unsigned long long int uint64_t; -passthru: #elif defined(_WIN32) && defined(__GNUC__) -passthru: #include -passthru: #elif defined(_WIN32) -passthru: typedef __int32 int32_t; -passthru: typedef __int64 int64_t; -passthru: typedef unsigned __int64 uint64_t; -passthru: #else -passthru: #include /* Fallback option */ -passthru: #endif -passthru: #endif -passthru: - -############################################################################### -# -# GLX 1.3 commands -# -############################################################################### - -GetFBConfigs(dpy, screen, nelements) - return GLXFBConfigPointer - param dpy Display out reference - param screen int in value - param nelements int out reference - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 21 - -ChooseFBConfig(dpy, screen, attrib_list, nelements) - return GLXFBConfigPointer - param dpy Display out reference - param screen int in value - param attrib_list int in reference - param nelements int out reference - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -GetFBConfigAttrib(dpy, config, attribute, value) - return int - param dpy Display out reference - param config GLXFBConfig in value - param attribute int in value - param value int out reference - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -GetVisualFromFBConfig(dpy, config) - return XVisualInfoPointer - param dpy Display out reference - param config GLXFBConfig in value - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -CreateWindow(dpy, config, win, attrib_list) - return GLXWindow - param dpy Display out reference - param config GLXFBConfig in value - param win Window in value - param attrib_list int in reference - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 31 - -DestroyWindow(dpy, win) - return void - param dpy Display out reference - param win GLXWindow in value - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 32 - -CreatePixmap(dpy, config, pixmap, attrib_list) - return GLXPixmap - param dpy Display out reference - param config GLXFBConfig in value - param pixmap Pixmap in value - param attrib_list int in reference - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 22 - -DestroyPixmap(dpy, pixmap) - return void - param dpy Display out reference - param pixmap GLXPixmap in value - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 23 - -CreatePbuffer(dpy, config, attrib_list) - return GLXPbuffer - param dpy Display out reference - param config GLXFBConfig in value - param attrib_list int in reference - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 27 - -DestroyPbuffer(dpy, pbuf) - return void - param dpy Display out reference - param pbuf GLXPbuffer in value - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 28 - -# glXGetDrawableAttributes -> GLX opcode 29 -# glXChangeDrawableAttributes -> GLX opcode 30 - -# Uses glXGetDrawableAttributes protocol -QueryDrawable(dpy, draw, attribute, value) - return void - param dpy Display out reference - param draw GLXDrawable in value - param attribute int in value - param value uint out reference - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -CreateNewContext(dpy, config, render_type, share_list, direct) - return GLXContext - param dpy Display out reference - param config GLXFBConfig in value - param render_type int in value - param share_list GLXContext in value - param direct Bool in value - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 24 - -MakeContextCurrent(dpy, draw, read, ctx) - return Bool - param dpy Display out reference - param draw GLXDrawable in value - param read GLXDrawable in value - param ctx GLXContext in value - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 26 - -GetCurrentReadDrawable() - return GLXDrawable - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -GetCurrentDisplay() - return DisplayPointer - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -QueryContext(dpy, ctx, attribute, value) - return int - param dpy Display out reference - param ctx GLXContext in value - param attribute int in value - param value int out reference - category VERSION_1_3 - glxflags client-handcode server-handcode - glxopcode 25 - -# Uses glXChangeDrawableAttributes protocol -SelectEvent(dpy, draw, event_mask) - return void - param dpy Display out reference - param draw GLXDrawable in value - param event_mask ulong in value - category VERSION_1_3 - glxflags client-handcode server-handcode - -# Uses glXGetDrawableAttributes protocol -GetSelectedEvent(dpy, draw, event_mask) - return void - param dpy Display out reference - param draw GLXDrawable in value - param event_mask ulong out reference - category VERSION_1_3 - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# GLX 1.4 commands -# -############################################################################### - -GetProcAddress(procName) - return FunctionPointer - param procName GLubyte in reference - category VERSION_1_4 - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# ARB Extension #2 -# ARB_get_proc_address commands -# @promoted to core in GLX 1.4, but there's no provision for aliasing -# @in GLX spec files, yet -# -############################################################################### - -GetProcAddressARB(procName) - return FunctionPointer - param procName GLubyte in reference - category ARB_get_proc_address - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# ARB Extension #5 -# ARB_multisample commands -# -############################################################################### - -# (none) -newcategory: ARB_multisample - -############################################################################### -# -# ARB Extension #39 -# ARB_fbconfig_float commands -# -############################################################################### - -# (none) -newcategory: ARB_fbconfig_float - -############################################################################### -# -# ARB Extension #56 -# ARB_create_context commands -# -############################################################################### - -CreateContextAttribsARB(dpy, config, share_context, direct, attrib_list) - return GLXContext - param dpy Display out reference - param config GLXFBConfig in value - param share_context GLXContext in value - param direct Bool in value - param attrib_list int in reference - category ARB_create_context - glxflags client-handcode client-intercept server-handcode - glxopcode 34 - -############################################################################### -# -# ARB Extension #75 -# ARB_create_context_profile commands -# -############################################################################### - -# (none) -newcategory: ARB_create_context_profile - - -############################################################################### -# -# Extension #25 -# SGIS_multisample commands -# -############################################################################### - -# (none) -newcategory: SGIS_multisample - -############################################################################### -# -# Extension #28 -# EXT_visual_info commands -# -############################################################################### - -# (none) -newcategory: EXT_visual_info - -############################################################################### -# -# Extension #40 -# SGI_swap_control commands -# -############################################################################### - -SwapIntervalSGI(interval) - return int - param interval int in value - category SGI_swap_control - glxflags client-handcode server-handcode - glxvendorglx 65536 - -############################################################################### -# -# Extension #41 -# SGI_video_sync commands -# -############################################################################### - -GetVideoSyncSGI(count) - return int - param count uint out reference - category SGI_video_sync - glxflags client-handcode client-intercept server-handcode - -WaitVideoSyncSGI(divisor, remainder, count) - return int - param divisor int in value - param remainder int in value - param count uint out reference - category SGI_video_sync - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #42 -# SGI_make_current_read commands -# -############################################################################### - -MakeCurrentReadSGI(dpy, draw, read, ctx) - return Bool - param dpy Display out reference - param draw GLXDrawable in value - param read GLXDrawable in value - param ctx GLXContext in value - category SGI_make_current_read - glxflags client-handcode server-handcode - glxvendorglx 65537 - -GetCurrentReadDrawableSGI() - return GLXDrawable - category SGI_make_current_read - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #43 -# SGIX_video_source commands -# -############################################################################### - -newcategory: SGIX_video_source -passthru: #ifdef _VL_H - -CreateGLXVideoSourceSGIX(display, screen, server, path, nodeClass, drainNode) - return GLXVideoSourceSGIX - param display Display out reference - param screen int in value - param server VLServer in value - param path VLPath in value - param nodeClass int in value - param drainNode VLNode in value - category SGIX_video_source - glxflags client-handcode server-handcode - glxvendorglx 65538 - -DestroyGLXVideoSourceSGIX(dpy, glxvideosource) - return void - param dpy Display out reference - param glxvideosource GLXVideoSourceSGIX in value - category SGIX_video_source - glxflags client-handcode server-handcode - glxvendorglx 65539 - -passend: #endif /* _VL_H */ -endcategory: - -############################################################################### -# -# Extension #44 -# EXT_visual_rating commands -# -############################################################################### - -# (none) -newcategory: EXT_visual_rating - -############################################################################### -# -# Extension #47 -# EXT_import_context commands -# -############################################################################### - -GetCurrentDisplayEXT() - return DisplayPointer - category EXT_import_context - glxflags client-handcode client-intercept server-handcode - -QueryContextInfoEXT(dpy, context, attribute, value) - return int - param dpy Display out reference - param context GLXContext in value - param attribute int in value - param value int out reference - category EXT_import_context - glxflags client-handcode server-handcode - glxvendorglx 1024 - -# 'constGLXContext' is a hack; the extension specification and glx.h -# should be fixed instead. -GetContextIDEXT(context) - return GLXContextID - param context constGLXContext in value - category EXT_import_context - glxflags client-handcode client-intercept server-handcode - -ImportContextEXT(dpy, contextID) - return GLXContext - param dpy Display out reference - param contextID GLXContextID in value - category EXT_import_context - glxflags client-handcode client-intercept server-handcode - -FreeContextEXT(dpy, context) - return void - param dpy Display out reference - param context GLXContext in value - category EXT_import_context - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #49 -# SGIX_fbconfig commands -# -############################################################################### - -# GetFBConfigsSGIX protocol -> VendorPrivate opcode 65540 - -GetFBConfigAttribSGIX(dpy, config, attribute, value) - return int - param dpy Display out reference - param config GLXFBConfigSGIX in value - param attribute int in value - param value int out reference - category SGIX_fbconfig - glxflags client-handcode client-intercept server-handcode - -ChooseFBConfigSGIX(dpy, screen, attrib_list, nelements) - return GLXFBConfigSGIXPointer - param dpy Display out reference - param screen int in value - param attrib_list int out reference - param nelements int out reference - category SGIX_fbconfig - glxflags client-handcode client-intercept server-handcode - -CreateGLXPixmapWithConfigSGIX(dpy, config, pixmap) - return GLXPixmap - param dpy Display out reference - param config GLXFBConfigSGIX in value - param pixmap Pixmap in value - category SGIX_fbconfig - glxflags client-handcode server-handcode - glxvendorglx 65542 - -CreateContextWithConfigSGIX(dpy, config, render_type, share_list, direct) - return GLXContext - param dpy Display out reference - param config GLXFBConfigSGIX in value - param render_type int in value - param share_list GLXContext in value - param direct Bool in value - category SGIX_fbconfig - glxflags client-handcode server-handcode - glxvendorglx 65541 - -GetVisualFromFBConfigSGIX(dpy, config) - return XVisualInfoPointer - param dpy Display out reference - param config GLXFBConfigSGIX in value - category SGIX_fbconfig - glxflags client-handcode client-intercept server-handcode - -GetFBConfigFromVisualSGIX(dpy, vis) - return GLXFBConfigSGIX - param dpy Display out reference - param vis XVisualInfo out reference - category SGIX_fbconfig - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #50 -# SGIX_pbuffer commands -# -############################################################################### - -# ChangeDrawableAttributesSGIX protocol -> VendorPrivate opcode 65545 -# GetDrawableAttributesSGIX protocol -> VendorPrivate opcode 65546 - -CreateGLXPbufferSGIX(dpy, config, width, height, attrib_list) - return GLXPbufferSGIX - param dpy Display out reference - param config GLXFBConfigSGIX in value - param width uint in value - param height uint in value - param attrib_list int out reference - category SGIX_pbuffer - glxflags client-handcode server-handcode - glxvendorglx 65543 - -DestroyGLXPbufferSGIX(dpy, pbuf) - return void - param dpy Display out reference - param pbuf GLXPbufferSGIX in value - category SGIX_pbuffer - glxflags client-handcode - glxvendorglx 65544 - -QueryGLXPbufferSGIX(dpy, pbuf, attribute, value) - return int - param dpy Display out reference - param pbuf GLXPbufferSGIX in value - param attribute int in value - param value uint out reference - category SGIX_pbuffer - -SelectEventSGIX(dpy, drawable, mask) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param mask ulong in value - category SGIX_pbuffer - -GetSelectedEventSGIX(dpy, drawable, mask) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param mask ulong out reference - category SGIX_pbuffer - -############################################################################### -# -# Extension #62 -# SGI_cushion commands -# -############################################################################### - -CushionSGI(dpy, window, cushion) - return void - param dpy Display out reference - param window Window in value - param cushion float in value - category SGI_cushion - -############################################################################### -# -# Extension #83 -# SGIX_video_resize commands -# -############################################################################### - -BindChannelToWindowSGIX(display, screen, channel, window) - return int - param display Display out reference - param screen int in value - param channel int in value - param window Window in value - category SGIX_video_resize - -ChannelRectSGIX(display, screen, channel, x, y, w, h) - return int - param display Display out reference - param screen int in value - param channel int in value - param x int in value - param y int in value - param w int in value - param h int in value - category SGIX_video_resize - -QueryChannelRectSGIX(display, screen, channel, dx, dy, dw, dh) - return int - param display Display out reference - param screen int in value - param channel int in value - param dx int out reference - param dy int out reference - param dw int out reference - param dh int out reference - category SGIX_video_resize - -QueryChannelDeltasSGIX(display, screen, channel, x, y, w, h) - return int - param display Display out reference - param screen int in value - param channel int in value - param x int out reference - param y int out reference - param w int out reference - param h int out reference - category SGIX_video_resize - -# @@@ Not in man page - this entry point may not be shipping? -ChannelRectSyncSGIX(display, screen, channel, synctype) - return int - param display Display out reference - param screen int in value - param channel int in value - param synctype GLenum in value - category SGIX_video_resize - -############################################################################### -# -# Extension #86 -# SGIX_dmbuffer commands -# -############################################################################### - -newcategory: SGIX_dmbuffer -passthru: #ifdef _DM_BUFFER_H_ - -AssociateDMPbufferSGIX(dpy, pbuffer, params, dmbuffer) - return Bool - param dpy Display out reference - param pbuffer GLXPbufferSGIX in value - param params DMparams out reference - param dmbuffer DMbuffer in value - category SGIX_dmbuffer - -passend: #endif /* _DM_BUFFER_H_ */ -endcategory: - -############################################################################### -# -# Extension #91 -# SGIX_swap_group commands -# -############################################################################### - -JoinSwapGroupSGIX(dpy, drawable, member) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param member GLXDrawable in value - category SGIX_swap_group - glxflags client-handcode server-handcode - glxvendorglx 65547 - -############################################################################### -# -# Extension #92 -# SGIX_swap_barrier commands -# -############################################################################### - -BindSwapBarrierSGIX(dpy, drawable, barrier) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param barrier int in value - category SGIX_swap_barrier - glxflags client-handcode server-handcode - glxvendorglx 65548 - -QueryMaxSwapBarriersSGIX(dpy, screen, max) - return Bool - param dpy Display out reference - param screen int in value - param max int out reference - category SGIX_swap_barrier - glxflags client-handcode server-handcode - glxvendorglx 65549 - -############################################################################### -# -# Extension #183 -# SUN_get_transparent_index commands -# -############################################################################### - -GetTransparentIndexSUN(dpy, overlay, underlay, pTransparentIndex) - return Status - param dpy Display out reference - param overlay Window in value - param underlay Window in value - param pTransparentIndex long out reference - category SUN_get_transparent_index - -############################################################################### -# -# Extension #215 -# MESA_copy_sub_buffer commands -# -############################################################################### - -CopySubBufferMESA(dpy, drawable, x, y, width, height) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param x int in value - param y int in value - param width int in value - param height int in value - category MESA_copy_sub_buffer - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #216 -# MESA_pixmap_colormap commands -# -############################################################################### - -CreateGLXPixmapMESA(dpy, visual, pixmap, cmap) - return GLXPixmap - param dpy Display out reference - param visual XVisualInfo out reference - param pixmap Pixmap in value - param cmap Colormap in value - category MESA_pixmap_colormap - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #217 -# MESA_release_buffers commands -# -############################################################################### - -ReleaseBuffersMESA(dpy, drawable) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - category MESA_release_buffers - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #218 -# MESA_set_3dfx_mode commands -# -############################################################################### - -# Brian's spec has this as returning 'GLboolean' and taking 'GLint mode' -Set3DfxModeMESA(mode) - return Bool - param mode int in value - category MESA_set_3dfx_mode - glxflags client-handcode client-intercept server-handcode - -############################################################################### -# -# Extension #234 -# SGIX_visual_select_group commands -# -############################################################################### - -# (none) -newcategory: SGIX_visual_select_group - -############################################################################### -# -# Extension #237 -# OML_swap_method commands -# -############################################################################### - -# (none) -newcategory: OML_swap_method - -############################################################################### -# -# Extension #238 -# OML_sync_control commands -# -############################################################################### - -GetSyncValuesOML(dpy, drawable, ust, msc, sbc) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param ust int64_t out reference - param msc int64_t out reference - param sbc int64_t out reference - category OML_sync_control - glxflags client-handcode server-handcode - -GetMscRateOML(dpy, drawable, numerator, denominator) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param numerator int32_t out reference - param denominator int32_t out reference - category OML_sync_control - glxflags client-handcode server-handcode - -SwapBuffersMscOML(dpy, drawable, target_msc, divisor, remainder) - return int64_t - param dpy Display out reference - param drawable GLXDrawable in value - param target_msc int64_t in value - param divisor int64_t in value - param remainder int64_t in value - category OML_sync_control - glxflags client-handcode server-handcode - -WaitForMscOML(dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param target_msc int64_t in value - param divisor int64_t in value - param remainder int64_t in value - param ust int64_t out reference - param msc int64_t out reference - param sbc int64_t out reference - category OML_sync_control - glxflags client-handcode server-handcode - -WaitForSbcOML(dpy, drawable, target_sbc, ust, msc, sbc) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param target_sbc int64_t in value - param ust int64_t out reference - param msc int64_t out reference - param sbc int64_t out reference - category OML_sync_control - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #281 -# NV_float_buffer commands -# -############################################################################### - -# (none) -newcategory: NV_float_buffer - -############################################################################### -# -# Extension #307 -# SGIX_hyperpipe commands -# -############################################################################### - -newcategory: SGIX_hyperpipe -passthru: -passthru: typedef struct { -passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; -passthru: int networkId; -passthru: } GLXHyperpipeNetworkSGIX; -passthru: -passthru: typedef struct { -passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; -passthru: int channel; -passthru: unsigned int -passthru: participationType; -passthru: int timeSlice; -passthru: } GLXHyperpipeConfigSGIX; -passthru: -passthru: typedef struct { -passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; -passthru: int srcXOrigin, srcYOrigin, srcWidth, srcHeight; -passthru: int destXOrigin, destYOrigin, destWidth, destHeight; -passthru: } GLXPipeRect; -passthru: -passthru: typedef struct { -passthru: char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; -passthru: int XOrigin, YOrigin, maxHeight, maxWidth; -passthru: } GLXPipeRectLimits; -passthru: - -QueryHyperpipeNetworkSGIX(dpy, npipes) - return GLXHyperpipeNetworkSGIXPointer - param dpy Display out reference - param npipes int out reference - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx 65550 - -HyperpipeConfigSGIX(dpy, networkId, npipes, cfg, hpId) - return int - param dpy Display out reference - param networkId int in value - param npipes int in value - param cfg GLXHyperpipeConfigSGIX out array [COMPSIZE(npipes)] - param hpId int out reference - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx 65552 - -QueryHyperpipeConfigSGIX(dpy, hpId, npipes) - return GLXHyperpipeConfigSGIXPointer - param dpy Display out reference - param hpId int in value - param npipes int out reference - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx 65551 - -DestroyHyperpipeConfigSGIX(dpy, hpId) - return int - param dpy Display out reference - param hpId int in value - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx 65553 - -BindHyperpipeSGIX(dpy, hpId) - return int - param dpy Display out reference - param hpId int in value - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx ??? - -QueryHyperpipeBestAttribSGIX(dpy, timeSlice, attrib, size, attribList, returnAttribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param attribList void out array [COMPSIZE(size)] - param returnAttribList void out array [COMPSIZE(size)] - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx ??? - -HyperpipeAttribSGIX(dpy, timeSlice, attrib, size, attribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param attribList void out array [COMPSIZE(size)] - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx ??? - -QueryHyperpipeAttribSGIX(dpy, timeSlice, attrib, size, returnAttribList) - return int - param dpy Display out reference - param timeSlice int in value - param attrib int in value - param size int in value - param returnAttribList void out array [COMPSIZE(size)] - glxflags client-handcode server-handcode - category SGIX_hyperpipe - glxvendorglx ??? - -############################################################################### -# -# Extension #308 -# MESA_agp_offset commands -# -############################################################################### - -GetAGPOffsetMESA(pointer) - return uint - param pointer void in reference - glxflags client-handcode client-intercept server-handcode - category MESA_agp_offset - -############################################################################### -# -# Extension #328 -# EXT_fbconfig_packed_float commands -# -############################################################################### - -# (none) -newcategory: EXT_fbconfig_packed_float - -############################################################################### -# -# Extension #337 -# EXT_framebuffer_sRGB commands -# -############################################################################### - -# (none) -newcategory: EXT_framebuffer_sRGB - -############################################################################### -# -# Extension #344 -# EXT_texture_from_pixmap commands -# -############################################################################### - -BindTexImageEXT(dpy, drawable, buffer, attrib_list) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param buffer int in value - param attrib_list int in reference - category EXT_texture_from_pixmap - glxflags client-handcode server-handcode - glxvendorglx 1330 - -ReleaseTexImageEXT(dpy, drawable, buffer) - return void - param dpy Display out reference - param drawable GLXDrawable in value - param buffer int in value - category EXT_texture_from_pixmap - glxflags client-handcode server-handcode - glxvendorglx 1331 - -############################################################################### -# -# Extension #347 -# NV_present_video commands -# -############################################################################### - -EnumerateVideoDevicesNV(dpy, screen, nelements) - return uintPointer - param dpy Display out reference - param screen int in value - param nelements int out reference - category NV_present_video - glxflags client-handcode server-handcode - -BindVideoDeviceNV(dpy, video_slot, video_device, attrib_list) - return int - param dpy Display out reference - param video_slot uint in value - param video_device uint in value - param attrib_list int in reference - category NV_present_video - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #348 -# NV_video_output commands -# -############################################################################### - -GetVideoDeviceNV(dpy, screen, numVideoDevices, pVideoDevice) - return int - param dpy Display out reference - param screen int in value - param numVideoDevices int in value - param pVideoDevice GLXVideoDeviceNV out array [COMPSIZE(numVideoDevices)] - category NV_video_output - glxflags client-handcode server-handcode - -ReleaseVideoDeviceNV(dpy, screen, VideoDevice) - return int - param dpy Display out reference - param screen int in value - param VideoDevice GLXVideoDeviceNV in value - category NV_video_output - glxflags client-handcode server-handcode - -BindVideoImageNV(dpy, VideoDevice, pbuf, iVideoBuffer) - return int - param dpy Display out reference - param VideoDevice GLXVideoDeviceNV in value - param pbuf GLXPbuffer in value - param iVideoBuffer int in value - category NV_video_output - glxflags client-handcode server-handcode - -ReleaseVideoImageNV(dpy, pbuf) - return int - param dpy Display out reference - param pbuf GLXPbuffer in value - category NV_video_output - glxflags client-handcode server-handcode - -SendPbufferToVideoNV(dpy, pbuf, iBufferType, pulCounterPbuffer, bBlock) - return int - param dpy Display out reference - param pbuf GLXPbuffer in value - param iBufferType int in value - param pulCounterPbuffer ulong out reference - param bBlock GLboolean in value - category NV_video_output - glxflags client-handcode server-handcode - -GetVideoInfoNV(dpy, screen, VideoDevice, pulCounterOutputPbuffer, pulCounterOutputVideo) - return int - param dpy Display out reference - param screen int in value - param VideoDevice GLXVideoDeviceNV in value - param pulCounterOutputPbuffer ulong out reference - param pulCounterOutputVideo ulong out reference - category NV_video_output - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #350 -# NV_swap_group commands -# -############################################################################### - -JoinSwapGroupNV(dpy, drawable, group) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param group GLuint in value - category NV_swap_group - glxflags client-handcode server-handcode - -BindSwapBarrierNV(dpy, group, barrier) - return Bool - param dpy Display out reference - param group GLuint in value - param barrier GLuint in value - category NV_swap_group - glxflags client-handcode server-handcode - -QuerySwapGroupNV(dpy, drawable, group, barrier) - return Bool - param dpy Display out reference - param drawable GLXDrawable in value - param group GLuint out reference - param barrier GLuint out reference - category NV_swap_group - glxflags client-handcode server-handcode - -QueryMaxSwapGroupsNV(dpy, screen, maxGroups, maxBarriers) - return Bool - param dpy Display out reference - param screen int in value - param maxGroups GLuint out reference - param maxBarriers GLuint out reference - category NV_swap_group - glxflags client-handcode server-handcode - -QueryFrameCountNV(dpy, screen, count) - return Bool - param dpy Display out reference - param screen int in value - param count GLuint out reference - category NV_swap_group - glxflags client-handcode server-handcode - -ResetFrameCountNV(dpy, screen) - return Bool - param dpy Display out reference - param screen int in value - category NV_swap_group - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #374 -# NV_video_capture commands -# -############################################################################### - -BindVideoCaptureDeviceNV(dpy, video_capture_slot, device) - return int - param dpy Display out reference - param video_capture_slot uint in value - param device GLXVideoCaptureDeviceNV in value - category NV_video_capture - glxflags client-handcode server-handcode - -EnumerateVideoCaptureDevicesNV(dpy, screen, nelements) - return GLXVideoCaptureDeviceNVPointer - param dpy Display out reference - param screen int in value - param nelements int out reference - category NV_video_capture - glxflags client-handcode server-handcode - -LockVideoCaptureDeviceNV(dpy, device) - return void - param dpy Display out reference - param device GLXVideoCaptureDeviceNV in value - category NV_video_capture - glxflags client-handcode server-handcode - -QueryVideoCaptureDeviceNV(dpy, device, attribute, value) - return int - param dpy Display out reference - param device GLXVideoCaptureDeviceNV in value - param attribute int in value - param value int out array [COMPSIZE(attribute)] - category NV_video_capture - glxflags client-handcode server-handcode - -ReleaseVideoCaptureDeviceNV(dpy, device) - return void - param dpy Display out reference - param device GLXVideoCaptureDeviceNV in value - category NV_video_capture - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #375 -# EXT_swap_control commands -# -############################################################################### - -SwapIntervalEXT(dpy, drawable, interval) - return int - param dpy Display out reference - param drawable GLXDrawable in value - param interval int in value - category EXT_swap_control - glxflags client-handcode server-handcode - -############################################################################### -# -# Extension #376 -# GLX_NV_copy_image commands -# -############################################################################### - -CopyImageSubDataNV(dpy, srcCtx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstCtx, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth) - return void - param dpy Display out reference - param srcCtx GLXContext in value - param srcName GLuint in value - param srcTarget GLenum in value - param srcLevel GLint in value - param srcX GLint in value - param srcY GLint in value - param srcZ GLint in value - param dstCtx GLXContext in value - param dstName GLuint in value - param dstTarget GLenum in value - param dstLevel GLint in value - param dstX GLint in value - param dstY GLint in value - param dstZ GLint in value - param width GLsizei in value - param height GLsizei in value - param depth GLsizei in value - category NV_copy_image - glxflags client-handcode server-handcode - diff --git a/src/glx/clientattrib.c b/src/glx/clientattrib.c index b26c17938d..a7dfb53486 100644 --- a/src/glx/clientattrib.c +++ b/src/glx/clientattrib.c @@ -35,7 +35,6 @@ /*****************************************************************************/ -#ifndef GLX_USE_APPLEGL static void do_enable_disable(GLenum array, GLboolean val) { @@ -124,7 +123,6 @@ __indirect_glPopClientAttrib(void) return; } } -#endif void __glFreeAttributeState(__GLXcontext * gc) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 81fb0ddc88..14788b89be 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -30,7 +30,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include #include diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index d6ce681d70..e4034161bb 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -33,7 +33,7 @@ * Kristian Høgsberg (krh@redhat.com) */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include #include diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c index 74afa60301..e47db82b70 100644 --- a/src/glx/dri_glx.c +++ b/src/glx/dri_glx.c @@ -32,7 +32,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include #include diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index d8027cc96d..1b94a56fd1 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -21,7 +21,7 @@ * SOFTWARE. */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING #include #include "glxclient.h" diff --git a/src/glx/glcontextmodes.c b/src/glx/glcontextmodes.c index cdc16f8330..eb9037907f 100644 --- a/src/glx/glcontextmodes.c +++ b/src/glx/glcontextmodes.c @@ -237,11 +237,9 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_LEVEL: *value_return = mode->level; return 0; -#ifndef GLX_USE_APPLEGL /* This isn't supported by CGL. */ case GLX_TRANSPARENT_TYPE_EXT: *value_return = mode->transparentPixel; return 0; -#endif case GLX_TRANSPARENT_RED_VALUE: *value_return = mode->transparentRed; return 0; @@ -287,7 +285,6 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_MAX_PBUFFER_PIXELS: *value_return = mode->maxPbufferPixels; return 0; -#ifndef GLX_USE_APPLEGL /* These aren't supported by CGL. */ case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: *value_return = mode->optimalPbufferWidth; return 0; @@ -297,7 +294,6 @@ _gl_get_context_mode_data(const __GLcontextModes * mode, int attribute, case GLX_SWAP_METHOD_OML: *value_return = mode->swapMethod; return 0; -#endif case GLX_SAMPLE_BUFFERS_SGIS: *value_return = mode->sampleBuffers; return 0; diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 6c34cda154..52e067165c 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -37,12 +37,6 @@ #include #include "glxextensions.h" -#ifdef GLX_USE_APPLEGL -#include -#include "apple_glx_drawable.h" -#include "glx_error.h" -#endif - #define WARN_ONCE_GLX_1_3(a, b) { \ static int warned=1; \ if(warned) { \ @@ -55,19 +49,19 @@ * Emit a warning when clients use GLX 1.3 functions on pre-1.3 systems. */ static void -warn_GLX_1_3(Display * dpy, const char *function_name) +warn_GLX_1_3(Display *dpy, const char *function_name) { __GLXdisplayPrivate *priv = __glXInitialize(dpy); if (priv->minorVersion < 3) { - fprintf(stderr, - "WARNING: Application calling GLX 1.3 function \"%s\" " - "when GLX 1.3 is not supported! This is an application bug!\n", - function_name); + fprintf(stderr, + "WARNING: Application calling GLX 1.3 function \"%s\" " + "when GLX 1.3 is not supported! This is an application bug!\n", + function_name); } } -#ifndef GLX_USE_APPLEGL + /** * Change a drawable's attribute. * @@ -325,7 +319,7 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable, } } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -391,7 +385,7 @@ CreateDrawable(Display * dpy, const __GLcontextModes * fbconfig, UnlockDisplay(dpy); SyncHandle(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -455,7 +449,7 @@ DestroyDrawable(Display * dpy, GLXDrawable drawable, CARD32 glxCode) UnlockDisplay(dpy); SyncHandle(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); @@ -558,6 +552,7 @@ CreatePbuffer(Display * dpy, const __GLcontextModes * fbconfig, return id; } + /** * Create a new pbuffer. */ @@ -571,7 +566,6 @@ glXCreateGLXPbufferSGIX(Display * dpy, GLXFBConfigSGIX config, attrib_list, GL_FALSE); } -#endif /* GLX_USE_APPLEGL */ /** * Create a new pbuffer. @@ -580,57 +574,12 @@ PUBLIC GLXPbuffer glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) { int i, width, height; -#ifdef GLX_USE_APPLEGL - GLXPbuffer result; - int errorcode; -#endif width = 0; height = 0; WARN_ONCE_GLX_1_3(dpy, __func__); -#ifdef GLX_USE_APPLEGL - for (i = 0; attrib_list[i]; ++i) { - switch (attrib_list[i]) { - case GLX_PBUFFER_WIDTH: - width = attrib_list[i + 1]; - ++i; - break; - - case GLX_PBUFFER_HEIGHT: - height = attrib_list[i + 1]; - ++i; - break; - - case GLX_LARGEST_PBUFFER: - /* This is a hint we should probably handle, but how? */ - ++i; - break; - - case GLX_PRESERVED_CONTENTS: - /* The contents are always preserved with AppleSGLX with CGL. */ - ++i; - break; - - default: - return None; - } - } - - if (apple_glx_pbuffer_create(dpy, config, width, height, &errorcode, - &result)) { - /* - * apple_glx_pbuffer_create only sets the errorcode to core X11 - * errors. - */ - __glXSendError(dpy, errorcode, 0, X_GLXCreatePbuffer, true); - - return None; - } - - return result; -#else for (i = 0; attrib_list[i * 2]; i++) { switch (attrib_list[i * 2]) { case GLX_PBUFFER_WIDTH: @@ -644,7 +593,6 @@ glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) return (GLXPbuffer) CreatePbuffer(dpy, (__GLcontextModes *) config, width, height, attrib_list, GL_TRUE); -#endif } @@ -654,13 +602,7 @@ glXCreatePbuffer(Display * dpy, GLXFBConfig config, const int *attrib_list) PUBLIC void glXDestroyPbuffer(Display * dpy, GLXPbuffer pbuf) { -#ifdef GLX_USE_APPLEGL - if (apple_glx_pbuffer_destroy(dpy, pbuf)) { - __glXSendError(dpy, GLXBadPbuffer, pbuf, X_GLXDestroyPbuffer, false); - } -#else DestroyPbuffer(dpy, pbuf); -#endif } @@ -672,47 +614,10 @@ glXQueryDrawable(Display * dpy, GLXDrawable drawable, int attribute, unsigned int *value) { WARN_ONCE_GLX_1_3(dpy, __func__); -#ifdef GLX_USE_APPLEGL - Window root; - int x, y; - unsigned int width, height, bd, depth; - - if (apple_glx_pixmap_query(drawable, attribute, value)) - return; /*done */ - - if (apple_glx_pbuffer_query(drawable, attribute, value)) - return; /*done */ - - /* - * The OpenGL spec states that we should report GLXBadDrawable if - * the drawable is invalid, however doing so would require that we - * use XSetErrorHandler(), which is known to not be thread safe. - * If we use a round-trip call to validate the drawable, there could - * be a race, so instead we just opt in favor of letting the - * XGetGeometry request fail with a GetGeometry request X error - * rather than GLXBadDrawable, in what is hoped to be a rare - * case of an invalid drawable. In practice most and possibly all - * X11 apps using GLX shouldn't notice a difference. - */ - if (XGetGeometry - (dpy, drawable, &root, &x, &y, &width, &height, &bd, &depth)) { - switch (attribute) { - case GLX_WIDTH: - *value = width; - break; - - case GLX_HEIGHT: - *value = height; - break; - } - } -#else GetDrawableAttribute(dpy, drawable, attribute, value); -#endif } -#ifndef GLX_USE_APPLEGL /** * Query an attribute of a pbuffer. */ @@ -722,7 +627,7 @@ glXQueryGLXPbufferSGIX(Display * dpy, GLXPbufferSGIX drawable, { return GetDrawableAttribute(dpy, drawable, attribute, value); } -#endif + /** * Select the event mask for a drawable. @@ -730,30 +635,12 @@ glXQueryGLXPbufferSGIX(Display * dpy, GLXPbufferSGIX drawable, PUBLIC void glXSelectEvent(Display * dpy, GLXDrawable drawable, unsigned long mask) { -#ifdef GLX_USE_APPLEGL - XWindowAttributes xwattr; - - if (apple_glx_pbuffer_set_event_mask(drawable, mask)) - return; /*done */ - - /* - * The spec allows a window, but currently there are no valid - * events for a window, so do nothing. - */ - if (XGetWindowAttributes(dpy, drawable, &xwattr)) - return; /*done */ - /* The drawable seems to be invalid. Report an error. */ - - __glXSendError(dpy, GLXBadDrawable, drawable, - X_GLXChangeDrawableAttributes, false); -#else CARD32 attribs[2]; attribs[0] = (CARD32) GLX_EVENT_MASK; attribs[1] = (CARD32) mask; ChangeDrawableAttribute(dpy, drawable, attribs, 1); -#endif } @@ -763,26 +650,6 @@ glXSelectEvent(Display * dpy, GLXDrawable drawable, unsigned long mask) PUBLIC void glXGetSelectedEvent(Display * dpy, GLXDrawable drawable, unsigned long *mask) { -#ifdef GLX_USE_APPLEGL - XWindowAttributes xwattr; - - if (apple_glx_pbuffer_get_event_mask(drawable, mask)) - return; /*done */ - - /* - * The spec allows a window, but currently there are no valid - * events for a window, so do nothing, but set the mask to 0. - */ - if (XGetWindowAttributes(dpy, drawable, &xwattr)) { - /* The window is valid, so set the mask to 0. */ - *mask = 0; - return; /*done */ - } - /* The drawable seems to be invalid. Report an error. */ - - __glXSendError(dpy, GLXBadDrawable, drawable, X_GLXGetDrawableAttributes, - true); -#else unsigned int value; @@ -793,7 +660,6 @@ glXGetSelectedEvent(Display * dpy, GLXDrawable drawable, unsigned long *mask) GetDrawableAttribute(dpy, drawable, GLX_EVENT_MASK_SGIX, &value); *mask = value; -#endif } @@ -803,17 +669,8 @@ glXCreatePixmap(Display * dpy, GLXFBConfig config, Pixmap pixmap, { WARN_ONCE_GLX_1_3(dpy, __func__); -#ifdef GLX_USE_APPLEGL - const __GLcontextModes *modes = (const __GLcontextModes *) config; - - if (apple_glx_pixmap_create(dpy, modes->screen, pixmap, modes)) - return None; - - return pixmap; -#else return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) pixmap, attrib_list, X_GLXCreatePixmap); -#endif } @@ -822,33 +679,9 @@ glXCreateWindow(Display * dpy, GLXFBConfig config, Window win, const int *attrib_list) { WARN_ONCE_GLX_1_3(dpy, __func__); -#ifdef GLX_USE_APPLEGL - XWindowAttributes xwattr; - XVisualInfo *visinfo; - - (void) attrib_list; /*unused according to GLX 1.4 */ - XGetWindowAttributes(dpy, win, &xwattr); - - visinfo = glXGetVisualFromFBConfig(dpy, config); - - if (NULL == visinfo) { - __glXSendError(dpy, GLXBadFBConfig, 0, X_GLXCreateWindow, false); - return None; - } - - if (visinfo->visualid != XVisualIDFromVisual(xwattr.visual)) { - __glXSendError(dpy, BadMatch, 0, X_GLXCreateWindow, true); - return None; - } - - XFree(visinfo); - - return win; -#else return CreateDrawable(dpy, (__GLcontextModes *) config, (Drawable) win, attrib_list, X_GLXCreateWindow); -#endif } @@ -856,12 +689,8 @@ PUBLIC void glXDestroyPixmap(Display * dpy, GLXPixmap pixmap) { WARN_ONCE_GLX_1_3(dpy, __func__); -#ifdef GLX_USE_APPLEGL - if (apple_glx_pixmap_destroy(dpy, pixmap)) - __glXSendError(dpy, GLXBadPixmap, pixmap, X_GLXDestroyPixmap, false); -#else + DestroyDrawable(dpy, (GLXDrawable) pixmap, X_GLXDestroyPixmap); -#endif } @@ -869,12 +698,11 @@ PUBLIC void glXDestroyWindow(Display * dpy, GLXWindow win) { WARN_ONCE_GLX_1_3(dpy, __func__); -#ifndef GLX_USE_APPLEGL + DestroyDrawable(dpy, (GLXDrawable) win, X_GLXDestroyWindow); -#endif } -#ifndef GLX_USE_APPLEGL + PUBLIC GLX_ALIAS_VOID(glXDestroyGLXPbufferSGIX, (Display * dpy, GLXPbufferSGIX pbuf), @@ -890,4 +718,4 @@ GLX_ALIAS_VOID(glXGetSelectedEventSGIX, (Display * dpy, GLXDrawable drawable, unsigned long *mask), (dpy, drawable, mask), glXGetSelectedEvent) -#endif + diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 958e1526c9..8e5dc785dd 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -97,14 +97,9 @@ typedef struct _glapi_table __GLapi; #define containerOf(ptr, type, member) \ (type *)( (char *)ptr - offsetof(type,member) ) -extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); - -#endif - -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) - #include + /** * Display dependent methods. This structure is initialized during the * \c driCreateDisplay call. @@ -190,6 +185,8 @@ extern __GLXDRIdisplay *dri2CreateDisplay(Display * dpy); extern void dri2InvalidateBuffers(Display *dpy, XID drawable); +extern void DRI_glXUseXFont(Font font, int first, int count, int listbase); + /* ** Functions to obtain driver configuration information from a direct ** rendering client application @@ -408,13 +405,8 @@ struct __GLXcontextRec const __GLcontextModes *mode; #ifdef GLX_DIRECT_RENDERING -#ifdef GLX_USE_APPLEGL - void *driContext; - Bool do_destroy; -#else __GLXDRIcontext *driContext; __DRIcontext *__driContext; -#endif #endif /** @@ -511,7 +503,7 @@ struct __GLXscreenConfigsRec */ char *effectiveGLXexts; -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /** * Per screen direct rendering interface functions and data. */ @@ -622,7 +614,7 @@ struct __GLXdisplayPrivateRec */ __GLXscreenConfigs *screenConfigs; -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /** * Per display direct rendering interface functions and data. */ @@ -800,7 +792,7 @@ extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private); diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index ef8674f4e0..8f809dc525 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -39,17 +39,10 @@ #include "glcontextmodes.h" #ifdef GLX_DIRECT_RENDERING -#ifdef GLX_USE_APPLEGL -#include "apple_glx_context.h" -#include "apple_glx.h" -#include "glx_error.h" -#define GC_IS_DIRECT(gc) ((gc)->isDirect) -#else #include #include #include "xf86dri.h" #define GC_IS_DIRECT(gc) ((gc)->driContext != NULL) -#endif #else #define GC_IS_DIRECT(gc) (0) #endif @@ -66,7 +59,7 @@ static const char __glXGLXClientVersion[] = "1.4"; /****************************************************************************/ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING static Bool windowExistsFlag; static int @@ -351,12 +344,6 @@ AllocateGLXContext(Display * dpy) bufSize = __GLX_MAX_RENDER_CMD_SIZE; } gc->maxSmallRenderCommandSize = bufSize; - -#ifdef GLX_USE_APPLEGL - gc->driContext = NULL; - gc->do_destroy = False; -#endif - return gc; } @@ -380,13 +367,8 @@ CreateContext(Display * dpy, int generic_id, GLXContext gc; #ifdef GLX_DIRECT_RENDERING __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); -#ifdef GLX_USE_APPLEGL - const __GLcontextModes *mode; - int errorcode; - bool x11error; -#endif #endif - + if (dpy == NULL) return NULL; @@ -397,7 +379,6 @@ CreateContext(Display * dpy, int generic_id, if (!gc) return NULL; -#ifndef GLX_USE_APPLEGL /* TODO: darwin indirect */ #ifdef GLX_DIRECT_RENDERING if (allowDirect && psc->driScreen) { gc->driContext = psc->driScreen->createContext(psc, fbconfig, gc, @@ -474,36 +455,10 @@ CreateContext(Display * dpy, int generic_id, UnlockDisplay(dpy); SyncHandle(); -#endif gc->imported = GL_FALSE; gc->renderType = renderType; - /* TODO: darwin: Integrate with above to do indirect */ -#ifdef GLX_USE_APPLEGL - mode = _gl_context_modes_find_fbconfig(psc->configs, - fbconfig->fbconfigID); - - if(NULL == mode) { - __glXSendError(dpy, BadValue, fbconfig->fbconfigID, X_GLXCreateContext, - true); - __glXFreeContext(gc); - return NULL; - } - - if(apple_glx_create_context(&gc->driContext, dpy, screen, mode, - shareList ? shareList->driContext : NULL, - &errorcode, &x11error)) { - __glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error); - __glXFreeContext(gc); - return NULL; - } - - gc->currentContextTag = -1; - gc->mode = mode; - gc->isDirect = allowDirect; -#endif - return gc; } @@ -562,7 +517,6 @@ __glXFreeContext(__GLXcontext * gc) static void DestroyContext(Display * dpy, GLXContext gc) { -#ifndef GLX_USE_APPLEGL /* TODO: darwin: indirect */ xGLXDestroyContextReq *req; GLXContextID xid; CARD8 opcode; @@ -588,7 +542,7 @@ DestroyContext(Display * dpy, GLXContext gc) return; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /* Destroy the direct rendering context */ if (gc->driContext) { (*gc->driContext->destroyContext) (gc->driContext, gc->psc, dpy); @@ -598,31 +552,17 @@ DestroyContext(Display * dpy, GLXContext gc) #endif __glXFreeVertexArrayState(gc); -#else - __glXLock(); -#endif /* GLX_USE_APPLEGL */ if (gc->currentDpy) { -#ifdef GLX_USE_APPLEGL - /* - * Set the Bool that indicates that we should destroy this GLX context - * when the context is no longer current. - */ - gc->do_destroy = True; -#endif /* Have to free later cuz it's in use now */ __glXUnlock(); } else { /* Destroy the handle if not current to anybody */ __glXUnlock(); -#ifdef GLX_USE_APPLEGL - if(gc->driContext) - apple_glx_destroy_context(&gc->driContext, dpy); -#endif __glXFreeContext(gc); } -#ifndef GLX_USE_APPLEGL + if (!imported) { /* ** This dpy also created the server side part of the context. @@ -636,7 +576,6 @@ DestroyContext(Display * dpy, GLXContext gc) UnlockDisplay(dpy); SyncHandle(); } -#endif } PUBLIC void @@ -691,9 +630,7 @@ glXQueryExtension(Display * dpy, int *errorBase, int *eventBase) PUBLIC void glXWaitGL(void) { -#ifndef GLX_USE_APPLEGL xGLXWaitGLReq *req; -#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -702,10 +639,8 @@ glXWaitGL(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); -#ifdef GLX_USE_APPLEGL - glFinish(); -#else -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) + +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -729,7 +664,6 @@ glXWaitGL(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); -#endif /* GLX_USE_APPLEGL */ } /* @@ -739,9 +673,7 @@ glXWaitGL(void) PUBLIC void glXWaitX(void) { -#ifndef GLX_USE_APPLEGL xGLXWaitXReq *req; -#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -751,10 +683,7 @@ glXWaitX(void) /* Flush any pending commands out */ __glXFlushRenderBuffer(gc, gc->pc); -#ifdef GLX_USE_APPLEGL - apple_glx_waitx(dpy, gc->driContext); -#else -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { int screen; __GLXDRIdrawable *pdraw = @@ -781,15 +710,12 @@ glXWaitX(void) req->contextTag = gc->currentContextTag; UnlockDisplay(dpy); SyncHandle(); -#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXUseXFont(Font font, int first, int count, int listBase) { -#ifndef GLX_USE_APPLEGL xGLXUseXFontReq *req; -#endif GLXContext gc = __glXGetCurrentContext(); Display *dpy = gc->currentDpy; @@ -798,10 +724,8 @@ glXUseXFont(Font font, int first, int count, int listBase) /* Flush any pending commands out */ (void) __glXFlushRenderBuffer(gc, gc->pc); -#ifdef GLX_USE_APPLEGL - DRI_glXUseXFont(font, first, count, listBase); -#else -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) + +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { DRI_glXUseXFont(font, first, count, listBase); return; @@ -820,7 +744,6 @@ glXUseXFont(Font font, int first, int count, int listBase) req->listBase = listBase; UnlockDisplay(dpy); SyncHandle(); -#endif /* GLX_USE_APPLEGL */ } /************************************************************************/ @@ -833,17 +756,6 @@ PUBLIC void glXCopyContext(Display * dpy, GLXContext source, GLXContext dest, unsigned long mask) { -#ifdef GLX_USE_APPLEGL - GLXContext gc = __glXGetCurrentContext(); - int errorcode; - bool x11error; - - if(apple_glx_copy_context(gc->driContext, source->driContext, dest->driContext, - mask, &errorcode, &x11error)) { - __glXSendError(dpy, errorcode, 0, X_GLXCopyContext, x11error); - } - -#else xGLXCopyContextReq *req; GLXContext gc = __glXGetCurrentContext(); GLXContextTag tag; @@ -854,7 +766,7 @@ glXCopyContext(Display * dpy, GLXContext source, return; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { /* NOT_DONE: This does not work yet */ } @@ -882,7 +794,6 @@ glXCopyContext(Display * dpy, GLXContext source, req->contextTag = tag; UnlockDisplay(dpy); SyncHandle(); -#endif /* GLX_USE_APPLEGL */ } @@ -897,9 +808,6 @@ glXCopyContext(Display * dpy, GLXContext source, static Bool __glXIsDirect(Display * dpy, GLXContextID contextID) { -#ifndef GLX_USE_APPLEGL /* TODO: apple indirect */ - return GC_IS_DIRECT(gc); -#else #if !defined(USE_XCB) xGLXIsDirectReq *req; xGLXIsDirectReply reply; @@ -935,7 +843,6 @@ __glXIsDirect(Display * dpy, GLXContextID contextID) return reply.isDirect; #endif /* USE_XCB */ -#endif /* GLX_USE_APPLEGL */ } /** @@ -959,18 +866,6 @@ glXIsDirect(Display * dpy, GLXContext gc) PUBLIC GLXPixmap glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) { -#ifdef GLX_USE_APPLEGL - int screen = vis->screen; - __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); - const __GLcontextModes *modes; - - modes = _gl_context_modes_find_visual(psc->visuals, vis->visualid); - - if(apple_glx_pixmap_create(dpy, vis->screen, pixmap, modes)) - return None; - - return pixmap; -#else xGLXCreateGLXPixmapReq *req; GLXPixmap xid; CARD8 opcode; @@ -992,7 +887,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) UnlockDisplay(dpy); SyncHandle(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING do { /* FIXME: Maybe delay __DRIdrawable creation until the drawable * is actually bound to a context... */ @@ -1020,7 +915,6 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) #endif return xid; -#endif } /* @@ -1029,10 +923,6 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap) PUBLIC void glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) { -#ifdef GLX_USE_APPLEGL - if(apple_glx_pixmap_destroy(dpy, glxpixmap)) - __glXSendError(dpy, GLXBadPixmap, glxpixmap, X_GLXDestroyPixmap, false); -#else xGLXDestroyGLXPixmapReq *req; CARD8 opcode; @@ -1050,7 +940,7 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) UnlockDisplay(dpy); SyncHandle(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING { int screen; __GLXdisplayPrivate *const priv = __glXInitialize(dpy); @@ -1063,20 +953,11 @@ glXDestroyGLXPixmap(Display * dpy, GLXPixmap glxpixmap) } } #endif -#endif /* GLX_USE_APPLEGL */ } PUBLIC void glXSwapBuffers(Display * dpy, GLXDrawable drawable) { -#ifdef GLX_USE_APPLEGL - GLXContext gc = glXGetCurrentContext(); - if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) { - apple_glx_swap_buffers(gc->driContext); - } else { - __glXSendError(dpy, GLXBadCurrentWindow, 0, X_GLXSwapBuffers, false); - } -#else GLXContext gc; GLXContextTag tag; CARD8 opcode; @@ -1086,7 +967,7 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) xGLXSwapBuffersReq *req; #endif -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); if (pdraw != NULL) { @@ -1131,7 +1012,6 @@ glXSwapBuffers(Display * dpy, GLXDrawable drawable) SyncHandle(); XFlush(dpy); #endif /* USE_XCB */ -#endif /* GLX_USE_APPLEGL */ } @@ -1556,12 +1436,6 @@ glXChooseVisual(Display * dpy, int screen, int *attribList) } } -#ifdef GLX_USE_APPLEGL - if(visualList && getenv("LIBGL_DUMP_VISUALID")) { - printf("visualid 0x%lx\n", visualList[0].visualid); - } -#endif - return visualList; } @@ -1584,7 +1458,7 @@ glXQueryExtensionsString(Display * dpy, int screen) } __glXCalculateUsableExtensions(psc, -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING (psc->driScreen != NULL), #else GL_FALSE, @@ -1695,7 +1569,6 @@ PUBLIC GLX_ALIAS(Display *, glXGetCurrentDisplayEXT, (void), (), glXGetCurrentDisplay) -#ifndef GLX_USE_APPLEGL /** * Used internally by libGL to send \c xGLXQueryContextinfoExtReq requests * to the X-server. @@ -1807,16 +1680,13 @@ static int __glXQueryContextInfo(Display * dpy, GLXContext ctx) return retval; } -#endif - PUBLIC int glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) { -#ifndef GLX_USE_APPLEGL int retVal; /* get the information from the server if we don't have it already */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (!ctx->driContext && (ctx->mode == NULL)) { #else if (ctx->mode == NULL) { @@ -1825,17 +1695,13 @@ glXQueryContext(Display * dpy, GLXContext ctx, int attribute, int *value) if (Success != retVal) return retVal; } -#endif - switch (attribute) { -#ifndef GLX_USE_APPLEGL - case GLX_SHARE_CONTEXT_EXT: + case GLX_SHARE_CONTEXT_EXT: *value = (int) (ctx->share_xid); break; case GLX_VISUAL_ID_EXT: *value = ctx->mode ? ctx->mode->visualID : None; break; -#endif case GLX_SCREEN: *value = (int) (ctx->screen); break; @@ -1864,9 +1730,6 @@ PUBLIC GLXContextID glXGetContextIDEXT(const GLXContext ctx) PUBLIC GLXContext glXImportContextEXT(Display * dpy, GLXContextID contextID) { -#ifdef GLX_USE_APPLEGL - return NULL; -#else GLXContext ctx; if (contextID == None) { @@ -1887,7 +1750,6 @@ glXImportContextEXT(Display * dpy, GLXContextID contextID) } } return ctx; -#endif } PUBLIC void @@ -2015,7 +1877,7 @@ glXGetVisualFromFBConfig(Display * dpy, GLXFBConfig config) return XGetVisualInfo(dpy, VisualIDMask, &visualTemplate, &count); } -#ifndef GLX_USE_APPLEGL + /* ** GLX_SGI_swap_control */ @@ -2353,7 +2215,6 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) return GLX_BAD_CONTEXT; } -#endif /* GLX_USE_APPLEGL */ /* ** GLX_SGIX_fbconfig @@ -2380,24 +2241,17 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap) { -#ifndef GLX_USE_APPLEGL xGLXVendorPrivateWithReplyReq *vpreq; xGLXCreateGLXPixmapWithConfigSGIXReq *req; GLXPixmap xid = None; CARD8 opcode; - __GLXscreenConfigs *psc; -#endif const __GLcontextModes *const fbconfig = (__GLcontextModes *) config; + __GLXscreenConfigs *psc; if ((dpy == NULL) || (config == NULL)) { return None; } -#ifdef GLX_USE_APPLEGL - if(apple_glx_pixmap_create(dpy, fbconfig->screen, pixmap, fbconfig)) - return None; - return pixmap; -#else psc = GetGLXScreenConfigs(dpy, fbconfig->screen); if ((psc != NULL) @@ -2425,7 +2279,6 @@ glXCreateGLXPixmapWithConfigSGIX(Display * dpy, } return xid; -#endif } PUBLIC GLXContext @@ -2471,7 +2324,7 @@ glXGetFBConfigFromVisualSGIX(Display * dpy, XVisualInfo * vis) return NULL; } -#ifndef GLX_USE_APPLEGL + /* ** GLX_SGIX_swap_group */ @@ -2539,7 +2392,7 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, return False; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING _X_HIDDEN GLboolean __driGetMscRateOML(__DRIdrawable * draw, int32_t * numerator, int32_t * denominator, void *private) @@ -2979,7 +2832,7 @@ __glXBindTexImageEXT(Display * dpy, i++; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL); @@ -3069,8 +2922,6 @@ __glXReleaseTexImageEXT(Display * dpy, GLXDrawable drawable, int buffer) /*@}*/ -#endif /* GLX_USE_APPLEGL */ - /** * \c strdup is actually not a standard ANSI C or POSIX routine. * Irix will not define it if ANSI mode is in effect. @@ -3148,7 +2999,6 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION(glXQueryDrawable), GLX_FUNCTION(glXSelectEvent), -#ifndef GLX_USE_APPLEGL /*** GLX_SGI_swap_control ***/ GLX_FUNCTION2(glXSwapIntervalSGI, __glXSwapIntervalSGI), @@ -3166,7 +3016,6 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetCurrentDisplayEXT, glXGetCurrentDisplay), GLX_FUNCTION(glXImportContextEXT), GLX_FUNCTION2(glXQueryContextInfoEXT, glXQueryContext), -#endif /*** GLX_SGIX_fbconfig ***/ GLX_FUNCTION2(glXGetFBConfigAttribSGIX, glXGetFBConfigAttrib), @@ -3176,7 +3025,6 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXGetVisualFromFBConfigSGIX, glXGetVisualFromFBConfig), GLX_FUNCTION(glXGetFBConfigFromVisualSGIX), -#ifndef GLX_USE_APPLEGL /*** GLX_SGIX_pbuffer ***/ GLX_FUNCTION(glXCreateGLXPbufferSGIX), GLX_FUNCTION(glXDestroyGLXPbufferSGIX), @@ -3214,7 +3062,6 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXEndFrameTrackingMESA, __glXEndFrameTrackingMESA), GLX_FUNCTION2(glXGetFrameUsageMESA, __glXGetFrameUsageMESA), GLX_FUNCTION2(glXQueryFrameTrackingMESA, __glXQueryFrameTrackingMESA), -#endif /*** GLX_ARB_get_proc_address ***/ GLX_FUNCTION(glXGetProcAddressARB), @@ -3222,7 +3069,6 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX 1.4 ***/ GLX_FUNCTION2(glXGetProcAddress, glXGetProcAddressARB), -#ifndef GLX_USE_APPLEGL /*** GLX_OML_sync_control ***/ GLX_FUNCTION2(glXWaitForSbcOML, __glXWaitForSbcOML), GLX_FUNCTION2(glXWaitForMscOML, __glXWaitForMscOML), @@ -3233,9 +3079,8 @@ static const struct name_address_pair GLX_functions[] = { /*** GLX_EXT_texture_from_pixmap ***/ GLX_FUNCTION2(glXBindTexImageEXT, __glXBindTexImageEXT), GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), -#endif -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /*** DRI configuration ***/ GLX_FUNCTION(glXGetScreenDriver), GLX_FUNCTION(glXGetDriverConfig), @@ -3244,7 +3089,7 @@ static const struct name_address_pair GLX_functions[] = { {NULL, NULL} /* end of list */ }; -#ifndef GLX_USE_APPLEGL + static const GLvoid * get_glx_proc_address(const char *funcName) { @@ -3258,7 +3103,7 @@ get_glx_proc_address(const char *funcName) return NULL; } -#endif + /** * Get the address of a named GL function. This is the pre-GLX 1.4 name for @@ -3281,15 +3126,13 @@ PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void) * DRI based drivers from searching the core GL function table for * internal API functions. */ -#ifdef GLX_USE_APPLEGL - f = (gl_function) apple_glx_get_proc_address(procName); -#else + f = (gl_function) get_glx_proc_address((const char *) procName); if ((f == NULL) && (procName[0] == 'g') && (procName[1] == 'l') && (procName[2] != 'X')) { f = (gl_function) _glapi_get_proc_address((const char *) procName); } -#endif + return f; } @@ -3312,7 +3155,7 @@ PUBLIC void (*glXGetProcAddress(const GLubyte * procName)) (void) #endif /* __GNUC__ */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /** * Get the unadjusted system time (UST). Currently, the UST is measured in * microseconds since Epoc. The actual resolution of the UST may vary from diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c index 691e8dfadf..c28360bdde 100644 --- a/src/glx/glxcurrent.c +++ b/src/glx/glxcurrent.c @@ -33,20 +33,9 @@ * Client-side GLX interface for current context management. */ -#ifdef PTHREADS -#include -#endif - #include "glxclient.h" -#ifdef GLX_USE_APPLEGL -#include - -#include "apple_glx.h" -#include "apple_glx_context.h" -#else #include "glapi.h" #include "indirect_init.h" -#endif /* ** We setup some dummy structures here so that the API can be used @@ -70,12 +59,11 @@ static __GLXcontext dummyContext = { }; -#ifndef GLX_USE_APPLEGL /* ** All indirect rendering contexts will share the same indirect dispatch table. */ static __GLapi *IndirectAPI = NULL; -#endif + /* * Current context management and locking @@ -168,12 +156,10 @@ _X_HIDDEN void __glXSetCurrentContextNull(void) { __glXSetCurrentContext(&dummyContext); -#ifndef GLX_USE_APPLEGL -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING _glapi_set_dispatch(NULL); /* no-op functions */ _glapi_set_context(NULL); #endif -#endif } @@ -200,7 +186,6 @@ glXGetCurrentDrawable(void) } -#ifndef GLX_USE_APPLEGL /************************************************************************/ /** @@ -284,7 +269,7 @@ SendMakeCurrentRequest(Display * dpy, CARD8 opcode, } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING static __GLXDRIdrawable * FetchDRIDrawable(Display * dpy, GLXDrawable glxDrawable, GLXContext gc) { @@ -328,8 +313,6 @@ __glXGenerateError(Display * dpy, GLXContext gc, XID resource, _XError(dpy, &error); } -#endif /* GLX_USE_APPLEGL */ - /** * Make a particular context current. * @@ -339,17 +322,8 @@ static Bool MakeContextCurrent(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext gc) { - const GLXContext oldGC = __glXGetCurrentContext(); -#ifdef GLX_USE_APPLEGL - bool error = apple_glx_make_current_context(dpy, - (oldGC && oldGC != &dummyContext) ? oldGC->driContext : NULL, - gc ? gc->driContext : NULL, draw); - - apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO"); - if(error) - return GL_FALSE; -#else xGLXMakeCurrentReply reply; + const GLXContext oldGC = __glXGetCurrentContext(); const CARD8 opcode = __glXSetupForCommand(dpy); const CARD8 oldOpcode = ((gc == oldGC) || (oldGC == &dummyContext)) ? opcode : __glXSetupForCommand(oldGC->currentDpy); @@ -386,7 +360,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /* Bind the direct rendering context to the drawable */ if (gc && gc->driContext) { __GLXDRIdrawable *pdraw = FetchDRIDrawable(dpy, draw, gc); @@ -421,7 +395,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, return False; } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if ((dpy != oldGC->currentDpy || (gc && gc->driContext)) && !oldGC->isDirect && oldGC != &dummyContext) { #else @@ -439,13 +413,12 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, oldGC->currentContextTag, None, None, &dummy_reply); } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING else if (oldGC->driContext && oldGC != gc) { oldGC->driContext->unbindContext(oldGC->driContext); } #endif -#endif /* GLX_USE_APPLEGL */ /* Update our notion of what is current */ __glXLock(); @@ -455,10 +428,8 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, * cannot be NULL, therefore if they are the same, gc is not * NULL and not the dummy. */ - if(gc) { - gc->currentDrawable = draw; - gc->currentReadable = read; - } + gc->currentDrawable = draw; + gc->currentReadable = read; } else { if (oldGC != &dummyContext) { @@ -468,24 +439,13 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, oldGC->currentReadable = None; oldGC->currentContextTag = 0; oldGC->thread_id = 0; -#ifdef GLX_USE_APPLEGL - - /* - * At this point we should check if the context has been - * through glXDestroyContext, and redestroy it if so. - */ - if(oldGC->do_destroy) { - __glXUnlock(); - /* glXDestroyContext uses the same global lock. */ - glXDestroyContext(dpy, oldGC); - __glXLock(); -#else + if (oldGC->xid == None) { /* We are switching away from a context that was * previously destroyed, so we need to free the memory * for the old handle. */ -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /* Destroy the old direct rendering context */ if (oldGC->driContext) { oldGC->driContext->destroyContext(oldGC->driContext, @@ -495,7 +455,6 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, } #endif __glXFreeContext(oldGC); -#endif /* GLX_USE_APPLEGL */ } } if (gc) { @@ -504,10 +463,9 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, gc->currentDpy = dpy; gc->currentDrawable = draw; gc->currentReadable = read; -#ifndef GLX_USE_APPLEGL gc->thread_id = _glthread_GetID(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (!gc->driContext) { #endif if (!IndirectAPI) @@ -522,13 +480,12 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, (void) glGetString(GL_VERSION); __glXInitVertexArrayState(gc); } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING } else { gc->currentContextTag = -1; } #endif -#endif /* GLX_USE_APPLEGL */ } else { __glXSetCurrentContextNull(); diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 3e03d514ef..b5657baf2e 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -42,10 +42,6 @@ #include #include #include -#ifdef GLX_USE_APPLEGL -#include "apple_glx.h" -#include "apple_visual.h" -#endif #include "glxextensions.h" #include "glcontextmodes.h" @@ -69,12 +65,7 @@ _X_HIDDEN int __glXDebug = 0; /* Extension required boiler plate */ static char *__glXExtensionName = GLX_EXTENSION_NAME; -#ifdef GLX_USE_APPLEGL -static XExtensionInfo __glXExtensionInfo_data; -XExtensionInfo *__glXExtensionInfo = &__glXExtensionInfo_data; -#else XExtensionInfo *__glXExtensionInfo = NULL; -#endif static /* const */ char *error_list[] = { "GLXBadContext", @@ -107,11 +98,6 @@ __glXCloseDisplay(Display * dpy, XExtCodes * codes) } -#ifdef GLX_USE_APPLEGL -static char *__glXErrorString(Display *dpy, int code, XExtCodes *codes, - char *buf, int n); -#endif - static XEXT_GENERATE_ERROR_STRING(__glXErrorString, __glXExtensionName, __GLX_NUMBER_ERRORS, error_list) @@ -259,7 +245,7 @@ FreeScreenConfigs(__GLXdisplayPrivate * priv) } Xfree((char *) psc->serverGLXexts); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (psc->driver_configs) { unsigned int j; for (j = 0; psc->driver_configs[j]; j++) @@ -299,7 +285,7 @@ __glXFreeDisplayPrivate(XExtData * extension) priv->serverGLXversion = 0x0; /* to protect against double free's */ } -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING /* Free the direct rendering per display data */ if (priv->driswDisplay) (*priv->driswDisplay->destroyDisplay) (priv->driswDisplay); @@ -372,20 +358,7 @@ QueryVersion(Display * dpy, int opcode, int *major, int *minor) #endif /* USE_XCB */ } -/* - * We don't want to enable this GLX_OML_swap_method in glxext.h, - * because we can't support it. The X server writes it out though, - * so we should handle it somehow, to avoid false warnings. - */ -enum { - IGNORE_GLX_SWAP_METHOD_OML = 0x8060 -}; - -/* - * getVisualConfigs uses the !tagged_only path. - * getFBConfigs uses the tagged_only path. - */ _X_HIDDEN void __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, const INT32 * bp, Bool tagged_only, @@ -419,14 +392,7 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, config->numAuxBuffers = *bp++; config->level = *bp++; -#ifdef GLX_USE_APPLEGL - /* AppleSGLX supports pixmap and pbuffers with all config. */ - config->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; - /* Unfortunately this can create an ABI compatibility problem. */ - count -= 18; -#else count -= __GLX_MIN_CONFIG_PROPS; -#endif } /* @@ -439,9 +405,7 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, config-> tag = ( fbconfig_style_tags ) ? *bp++ : 1 for (i = 0; i < count; i += 2) { - long int tag = *bp++; - - switch (tag) { + switch (*bp++) { case GLX_RGBA: FETCH_OR_SET(rgbMode); break; @@ -519,10 +483,6 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, break; case GLX_DRAWABLE_TYPE: config->drawableType = *bp++; -#ifdef GLX_USE_APPLEGL - /* AppleSGLX supports pixmap and pbuffers with all config. */ - config->drawableType |= GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; -#endif break; case GLX_RENDER_TYPE: config->renderType = *bp++; @@ -542,7 +502,6 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_MAX_PBUFFER_PIXELS: config->maxPbufferPixels = *bp++; break; -#ifndef GLX_USE_APPLEGL case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: config->optimalPbufferWidth = *bp++; break; @@ -555,19 +514,12 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_SWAP_METHOD_OML: config->swapMethod = *bp++; break; -#endif case GLX_SAMPLE_BUFFERS_SGIS: config->sampleBuffers = *bp++; break; case GLX_SAMPLES_SGIS: config->samples = *bp++; break; -#ifdef GLX_USE_APPLEGL - case IGNORE_GLX_SWAP_METHOD_OML: - /* We ignore this tag. See the comment above this function. */ - ++bp; - break; -#else case GLX_BIND_TO_TEXTURE_RGB_EXT: config->bindToTextureRgb = *bp++; break; @@ -583,17 +535,11 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count, case GLX_Y_INVERTED_EXT: config->yInverted = *bp++; break; -#endif case None: i = count; break; default: - if(getenv("LIBGL_DIAGNOSTIC")) { - long int tagvalue = *bp++; - fprintf(stderr, "WARNING: unknown GLX tag from server: " - "tag 0x%lx value 0x%lx\n", tag, tagvalue); - } - break; + break; } } @@ -641,18 +587,9 @@ createConfigsFromProperties(Display * dpy, int nvisuals, int nprops, m = modes; for (i = 0; i < nvisuals; i++) { _XRead(dpy, (char *) props, prop_size); -#ifdef GLX_USE_APPLEGL - /* Older X servers don't send this so we default it here. */ + /* Older X servers don't send this so we default it here. */ m->drawableType = GLX_WINDOW_BIT; -#else - /* - * The XQuartz 2.3.2.1 X server doesn't set this properly, so - * set the proper bits here. - * AppleSGLX supports windows, pixmaps, and pbuffers with all config. - */ - m->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT | GLX_PBUFFER_BIT; -#endif - __glXInitializeVisualConfigFromTags(m, nprops, props, + __glXInitializeVisualConfigFromTags(m, nprops, props, tagged_only, GL_TRUE); m->screen = screen; m = m->next; @@ -773,7 +710,7 @@ AllocAndFetchScreenConfigs(Display * dpy, __GLXdisplayPrivate * priv) getVisualConfigs(dpy, priv, i); getFBConfigs(dpy, priv, i); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING psc->scr = i; psc->dpy = dpy; psc->drawHash = __glxHashCreate(); @@ -813,7 +750,7 @@ __glXInitialize(Display * dpy) __GLXdisplayPrivate *dpyPriv; XEDataObject dataObj; int major, minor; -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING Bool glx_direct, glx_accel; #endif @@ -870,7 +807,7 @@ __glXInitialize(Display * dpy) dpyPriv->serverGLXvendor = 0x0; dpyPriv->serverGLXversion = 0x0; -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING glx_direct = (getenv("LIBGL_ALWAYS_INDIRECT") == NULL); glx_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL); @@ -886,11 +823,8 @@ __glXInitialize(Display * dpy) if (glx_direct) dpyPriv->driswDisplay = driswCreateDisplay(dpy); #endif -#ifdef GLX_USE_APPLEGL - if (apple_init_glx(dpy) || !AllocAndFetchScreenConfigs(dpy, dpyPriv)) { -#else + if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) { -#endif __glXUnlock(); Xfree((char *) dpyPriv); Xfree((char *) private); diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c index e58c296b30..56c69cbfcb 100644 --- a/src/glx/glxextensions.c +++ b/src/glx/glxextensions.c @@ -75,72 +75,34 @@ static const struct extension_info known_glx_extensions[] = { { GLX(ARB_multisample), VER(1,4), Y, Y, N, N }, { GLX(ARB_render_texture), VER(0,0), N, N, N, N }, { GLX(ATI_pixel_format_float), VER(0,0), N, N, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(EXT_import_context), VER(0,0), N, N, N, N }, - { GLX(EXT_visual_info), VER(0,0), N, N, N, N }, -#else { GLX(EXT_import_context), VER(0,0), Y, Y, N, N }, { GLX(EXT_visual_info), VER(0,0), Y, Y, N, N }, -#endif { GLX(EXT_visual_rating), VER(0,0), Y, Y, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(MESA_agp_offset), VER(0,0), N, N, N, N }, /* Deprecated */ - { GLX(MESA_allocate_memory), VER(0,0), N, N, N, N }, - { GLX(MESA_copy_sub_buffer), VER(0,0), N, N, N, N }, -#else { GLX(MESA_agp_offset), VER(0,0), N, N, N, Y }, /* Deprecated */ { GLX(MESA_allocate_memory), VER(0,0), Y, N, N, Y }, { GLX(MESA_copy_sub_buffer), VER(0,0), Y, N, N, N }, -#endif { GLX(MESA_pixmap_colormap), VER(0,0), N, N, N, N }, /* Deprecated */ { GLX(MESA_release_buffers), VER(0,0), N, N, N, N }, /* Deprecated */ -#ifdef GLX_USE_APPLEGL - { GLX(MESA_swap_control), VER(0,0), N, N, N, N }, - { GLX(MESA_swap_frame_usage), VER(0,0), N, N, N, N }, -#else { GLX(MESA_swap_control), VER(0,0), Y, N, N, Y }, { GLX(MESA_swap_frame_usage), VER(0,0), Y, N, N, Y }, -#endif { GLX(NV_float_buffer), VER(0,0), N, N, N, N }, { GLX(NV_render_depth_texture), VER(0,0), N, N, N, N }, { GLX(NV_render_texture_rectangle), VER(0,0), N, N, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(NV_vertex_array_range), VER(0,0), N, N, N, N }, /* Deprecated */ - { GLX(OML_swap_method), VER(0,0), N, N, N, N }, - { GLX(OML_sync_control), VER(0,0), N, N, N, N }, - { GLX(SGI_make_current_read), VER(1,3), N, N, N, N }, - { GLX(SGI_swap_control), VER(0,0), N, N, N, N }, - { GLX(SGI_video_sync), VER(0,0), N, N, N, N }, -#else { GLX(NV_vertex_array_range), VER(0,0), N, N, N, Y }, /* Deprecated */ { GLX(OML_swap_method), VER(0,0), Y, Y, N, N }, { GLX(OML_sync_control), VER(0,0), Y, N, N, Y }, { GLX(SGI_make_current_read), VER(1,3), Y, N, N, N }, { GLX(SGI_swap_control), VER(0,0), Y, N, N, N }, { GLX(SGI_video_sync), VER(0,0), Y, N, N, Y }, -#endif { GLX(SGIS_blended_overlay), VER(0,0), N, N, N, N }, { GLX(SGIS_color_range), VER(0,0), N, N, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(SGIS_multisample), VER(0,0), N, N, N, N }, -#else { GLX(SGIS_multisample), VER(0,0), Y, Y, N, N }, -#endif { GLX(SGIX_fbconfig), VER(1,3), Y, Y, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(SGIX_pbuffer), VER(1,3), N, N, N, N }, -#else { GLX(SGIX_pbuffer), VER(1,3), Y, Y, N, N }, -#endif { GLX(SGIX_swap_barrier), VER(0,0), N, N, N, N }, { GLX(SGIX_swap_group), VER(0,0), N, N, N, N }, -#ifdef GLX_USE_APPLEGL - { GLX(SGIX_visual_select_group), VER(0,0), N, N, N, N }, - { GLX(EXT_texture_from_pixmap), VER(0,0), N, N, N, N }, -#else { GLX(SGIX_visual_select_group), VER(0,0), Y, Y, N, N }, { GLX(EXT_texture_from_pixmap), VER(0,0), Y, N, N, N }, -#endif { GLX(INTEL_swap_event), VER(1,4), Y, Y, N, N }, { NULL } }; diff --git a/src/glx/indirect.c b/src/glx/indirect.c index 172727860e..42a225f671 100644 --- a/src/glx/indirect.c +++ b/src/glx/indirect.c @@ -5198,7 +5198,7 @@ glDeleteTexturesEXT(GLsizei n, const GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_DeleteTextures(GET_DISPATCH(), (n, textures)); } else @@ -5269,7 +5269,7 @@ glGenTexturesEXT(GLsizei n, GLuint * textures) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GenTextures(GET_DISPATCH(), (n, textures)); } else @@ -5334,7 +5334,7 @@ glIsTextureEXT(GLuint texture) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { return CALL_IsTexture(GET_DISPATCH(), (texture)); } else @@ -5650,7 +5650,7 @@ glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid * table) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetColorTable(GET_DISPATCH(), (target, format, type, table)); } else @@ -5726,7 +5726,7 @@ glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetColorTableParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -5799,7 +5799,7 @@ glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetColorTableParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6125,7 +6125,7 @@ gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetConvolutionFilter(GET_DISPATCH(), (target, format, type, image)); @@ -6203,7 +6203,7 @@ gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetConvolutionParameterfv(GET_DISPATCH(), (target, pname, params)); @@ -6276,7 +6276,7 @@ gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetConvolutionParameteriv(GET_DISPATCH(), (target, pname, params)); @@ -6356,7 +6356,7 @@ gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetHistogram(GET_DISPATCH(), (target, reset, format, type, values)); @@ -6433,7 +6433,7 @@ gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetHistogramParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6504,7 +6504,7 @@ gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetHistogramParameteriv(GET_DISPATCH(), (target, pname, params)); } else @@ -6579,7 +6579,7 @@ gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, values)); } else @@ -6653,7 +6653,7 @@ gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetMinmaxParameterfv(GET_DISPATCH(), (target, pname, params)); } else @@ -6721,7 +6721,7 @@ gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params) { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetMinmaxParameteriv(GET_DISPATCH(), (target, pname, params)); } else diff --git a/src/glx/indirect_size.c b/src/glx/indirect_size.c index 411a0e42c5..0c136d26cd 100644 --- a/src/glx/indirect_size.c +++ b/src/glx/indirect_size.c @@ -48,7 +48,7 @@ # endif -#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL) +#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__APPLE__) # undef HAVE_ALIAS #endif #ifdef HAVE_ALIAS diff --git a/src/glx/singlepix.c b/src/glx/singlepix.c index c4010d79bd..f5ebf4dfdb 100644 --- a/src/glx/singlepix.c +++ b/src/glx/singlepix.c @@ -119,7 +119,7 @@ void NAME(_gloffset_GetSeparableFilter) (GLenum target, GLenum format, { __GLXcontext *const gc = __glXGetCurrentContext(); -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#ifdef GLX_DIRECT_RENDERING if (gc->driContext) { CALL_GetSeparableFilter(GET_DISPATCH(), (target, format, type, row, column, span)); -- cgit v1.2.3 From 2b4d8616f581a36ed98a491ac1ec14be69d37511 Mon Sep 17 00:00:00 2001 From: Jesse Barnes Date: Thu, 1 Apr 2010 17:26:04 -0700 Subject: GLX/DRI2: pass GLX drawable ID to dri2InvalidateBuffers The IDs will be the same in the case where an X window is used directly as a GLX drawable, but will fail if a new GLX drawable is created explicitly, as with glxgears_fbconfig. Fixes fdo bug #27190. --- src/glx/dri2_glx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 14788b89be..c4b5cb9c2c 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -329,7 +329,7 @@ dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate) /* Old servers don't send invalidate events */ if (!pdp->invalidateAvailable) - dri2InvalidateBuffers(priv->dpy, pdraw->base.xDrawable); + dri2InvalidateBuffers(priv->dpy, pdraw->base.drawable); dri2WaitGL(loaderPrivate); } @@ -393,7 +393,7 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor, /* Old servers don't send invalidate events */ if (!pdp->invalidateAvailable) - dri2InvalidateBuffers(dpyPriv->dpy, pdraw->xDrawable); + dri2InvalidateBuffers(dpyPriv->dpy, pdraw->drawable); /* Old servers can't handle swapbuffers */ if (!pdp->swapAvailable) { -- cgit v1.2.3 From aee5bb5b8ad80d4aed849519a80b1d696991e866 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 01:43:49 +0200 Subject: gallium/util: add util_format_init that inits s3tc and util_half Switch from auto-init to explicit init for util_half per Brian Paul's indication. NOTE: this is probably broken because not enough things call util_format_init. Will be fixed shortly --- progs/gallium/unit/u_format_test.c | 2 +- src/gallium/auxiliary/util/u_format.c | 10 ++++++++++ src/gallium/auxiliary/util/u_format.h | 3 +++ src/gallium/auxiliary/util/u_half.c | 8 ++++---- src/gallium/auxiliary/util/u_half.h | 5 ++++- src/gallium/drivers/softpipe/sp_screen.c | 3 ++- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index ca4c92f5b7..dcdbf6548d 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -404,7 +404,7 @@ int main(int argc, char **argv) { boolean success; - util_format_s3tc_init(); + util_format_init(); success = test_all(); diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index 7f16cf7d01..d3ee1f0339 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -33,6 +33,8 @@ */ #include "u_format.h" +#include "u_format_s3tc.h" +#include "u_half.h" void @@ -116,3 +118,11 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ format_desc->pack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } +boolean util_format_inited; + +void +util_format_do_init(void) +{ + util_format_s3tc_init(); + util_half_init(); +} diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 93818a3161..f7daa6d923 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -32,6 +32,7 @@ #include "pipe/p_format.h" #include "util/u_debug.h" +#include "util/u_inline_init.h" #ifdef __cplusplus extern "C" { @@ -530,6 +531,8 @@ util_format_write_4ub(enum pipe_format format, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h); +UTIL_INLINE_INIT(util_format); + #ifdef __cplusplus } // extern "C" { #endif diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c index 96b83e5ac0..4c8f8a51c5 100644 --- a/src/gallium/auxiliary/util/u_half.c +++ b/src/gallium/auxiliary/util/u_half.c @@ -59,8 +59,10 @@ uint32_t util_half_to_float_offset_table[64]; uint16_t util_float_to_half_base_table[512]; uint8_t util_float_to_half_shift_table[512]; -static void -util_half_init_tables(void) +boolean util_half_inited; + +void +util_half_do_init(void) { int i; @@ -161,5 +163,3 @@ util_half_init_tables(void) util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; } } - -UTIL_INIT(util_half_init_tables); diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 4b80d45b91..02f0f24193 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -2,7 +2,8 @@ #define U_HALF_H #include "pipe/p_compiler.h" -#include "u_math.h" +#include "util/u_math.h" +#include "util/u_inline_init.h" #ifdef __cplusplus extern "C" { @@ -55,6 +56,8 @@ util_float_to_half(float f) return util_floatui_to_half(i.ui); } +UTIL_INLINE_INIT(util_half); + #ifdef __cplusplus } #endif diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index be64048abf..26a4bba574 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -27,6 +27,7 @@ #include "util/u_memory.h" +#include "util/u_format.h" #include "util/u_format_s3tc.h" #include "pipe/p_defines.h" #include "pipe/p_screen.h" @@ -241,7 +242,7 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; - util_format_s3tc_init(); + util_format_init(); softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); -- cgit v1.2.3 From cbf4097b8dd097daf6d91cd0cf2c5b08151793bc Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 02:36:59 +0200 Subject: nv50: call util_format_init Needed to fetch static vertex attributes. --- src/gallium/drivers/nv50/nv50_context.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/nv50/nv50_context.c b/src/gallium/drivers/nv50/nv50_context.c index aa14e17872..0de75a70b9 100644 --- a/src/gallium/drivers/nv50/nv50_context.c +++ b/src/gallium/drivers/nv50/nv50_context.c @@ -22,6 +22,7 @@ #include "draw/draw_context.h" #include "pipe/p_defines.h" +#include "util/u_format.h" #include "nv50_context.h" #include "nv50_screen.h" @@ -70,6 +71,8 @@ nv50_create(struct pipe_screen *pscreen, void *priv) struct nv50_screen *screen = nv50_screen(pscreen); struct nv50_context *nv50; + util_format_init(); + nv50 = CALLOC_STRUCT(nv50_context); if (!nv50) return NULL; -- cgit v1.2.3 From 87275e8fab51a906903e676f8f1762afe096aeb0 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 1 Apr 2010 18:49:54 -0700 Subject: gallium/util: s/inline/INLINE/ Fixes MSVC build. --- src/gallium/auxiliary/util/u_inline_init.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_inline_init.h b/src/gallium/auxiliary/util/u_inline_init.h index 7f2c591a3d..2a1e775ed8 100644 --- a/src/gallium/auxiliary/util/u_inline_init.h +++ b/src/gallium/auxiliary/util/u_inline_init.h @@ -4,7 +4,7 @@ #define UTIL_INLINE_INIT(m) \ extern boolean m##_inited; \ extern void m##_do_init(void); \ - static inline void m##_init(void) \ + static INLINE void m##_init(void) \ { \ if(!m##_inited) { \ m##_do_init(); \ -- cgit v1.2.3 From 1054f22e480875b2d91c3d9ad1b85080e4705a35 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 2 Apr 2010 09:59:36 +0800 Subject: progs/egl: Link to eglut first. This moves eglut before EGL so that the symbols can be resolved. --- progs/egl/opengl/Makefile | 6 +++--- progs/egl/opengles1/Makefile | 6 +++--- progs/egl/openvg/Makefile | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile index cca843f457..9a91df9906 100644 --- a/progs/egl/opengl/Makefile +++ b/progs/egl/opengl/Makefile @@ -73,9 +73,9 @@ $(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) # build EGLUT demos $(EGLUT_X11_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 -$(EGLUT_SCREEN_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -L$(EGLUT_DIR) -leglut-$* + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(LIBS) -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(LIBS) clean: -rm -f *.o *~ diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index 27caa0cd0f..c575a9703e 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -91,9 +91,9 @@ $(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) # build EGLUT demos $(EGLUT_X11_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(ES1_LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 -$(EGLUT_SCREEN_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(ES1_LIBS) -L$(EGLUT_DIR) -leglut-$* + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(ES1_LIBS) -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(ES1_LIBS) clean: diff --git a/progs/egl/openvg/Makefile b/progs/egl/openvg/Makefile index 8ab0e68d87..5a10cc8055 100644 --- a/progs/egl/openvg/Makefile +++ b/progs/egl/openvg/Makefile @@ -27,11 +27,11 @@ default: $(PROGRAMS) $(EGLUT_X11_DEMOS) $(EGLUT_SCREEN_DEMOS) lion_x11: lion.o lion-render.o $(EGLUT_DIR)/libeglut-x11.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ lion.o lion-render.o \ - $(VG_LIBS) -L$(EGLUT_DIR) -leglut-x11 -lX11 + -L$(EGLUT_DIR) -leglut-x11 $(VG_LIBS) -lX11 lion_screen: lion.o lion-render.o $(EGLUT_DIR)/libeglut-screen.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ lion.o lion-render.o \ - $(VG_LIBS) -L$(EGLUT_DIR) -leglut-screen + -L$(EGLUT_DIR) -leglut-screen $(VG_LIBS) $(EGLUT_DIR)/libeglut-x11.a $(EGLUT_DIR)/libeglut-screen.a: @@ -45,9 +45,9 @@ $(foreach demo, $(EGLUT_DEMOS), $(eval $(call eglut-demo-rule,$(demo)))) # build EGLUT demos $(EGLUT_X11_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(VG_LIBS) -L$(EGLUT_DIR) -leglut-$* -lX11 -$(EGLUT_SCREEN_DEMOS): - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(VG_LIBS) -L$(EGLUT_DIR) -leglut-$* + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(VG_LIBS) -lX11 +$(EGLUT_SCREEN_DEMOS): + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -L$(EGLUT_DIR) -leglut-$* $(VG_LIBS) clean: rm -f *.o *~ -- cgit v1.2.3 From c36d15d158515bb7b7bc7daf9da4cae5e2766be9 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 2 Apr 2010 10:03:20 +0800 Subject: progs/egl: Update .gitignore. --- progs/egl/opengl/.gitignore | 7 ++++--- progs/egl/opengles1/.gitignore | 6 ++++-- progs/egl/openvg/.gitignore | 6 ++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/progs/egl/opengl/.gitignore b/progs/egl/opengl/.gitignore index 7a13d4686a..49c3a511f3 100644 --- a/progs/egl/opengl/.gitignore +++ b/progs/egl/opengl/.gitignore @@ -1,12 +1,13 @@ demo1 demo2 demo3 -eglgears +eglgears_x11 +eglgears_screen eglinfo eglscreen -egltri +egltri_x11 +egltri_screen peglgears xeglbindtex xeglgears xeglthreads -xegl_tri diff --git a/progs/egl/opengles1/.gitignore b/progs/egl/opengles1/.gitignore index e95e393b00..2caf094edb 100644 --- a/progs/egl/opengles1/.gitignore +++ b/progs/egl/opengles1/.gitignore @@ -1,10 +1,12 @@ bindtex drawtex es1_info -gears +gears_x11 +gears_screen msaa pbuffer render_tex torus -tri +tri_x11 +tri_screen two_win diff --git a/progs/egl/openvg/.gitignore b/progs/egl/openvg/.gitignore index 9b05e1e81d..3e1733c8c8 100644 --- a/progs/egl/openvg/.gitignore +++ b/progs/egl/openvg/.gitignore @@ -1,5 +1,7 @@ -demos/lion -demos/sp +lion_x11 +lion_screen +sp_x11 +sp_screen trivial/arc trivial/cap trivial/clear -- cgit v1.2.3 From 2ae66e9b97e9864367c26fc5f9cb86896bc83b45 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 2 Apr 2010 10:19:43 +0800 Subject: st/egl: Add a missing break. The swtich in egl_g3d_st_framebuffer_validate misses a break. --- src/gallium/state_trackers/egl/common/egl_g3d_st.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_st.c b/src/gallium/state_trackers/egl/common/egl_g3d_st.c index 36094096d3..6488965e5b 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_st.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d_st.c @@ -145,6 +145,7 @@ egl_g3d_st_framebuffer_validate(struct st_framebuffer_iface *stfbi, break; case ST_ATTACHMENT_BACK_RIGHT: natt = NATIVE_ATTACHMENT_BACK_RIGHT; + break; default: natt = -1; break; -- cgit v1.2.3 From 154d9242de865c3cca8e597be911d69a53077ab1 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 2 Apr 2010 10:27:57 +0800 Subject: st/vega: Do not depend on libm. This fixes the "no rule to make target -lm" error on darwin, reported by Jeremy Huddleston. --- src/gallium/state_trackers/vega/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/vega/Makefile b/src/gallium/state_trackers/vega/Makefile index 037d8dc911..f6d1ea029c 100644 --- a/src/gallium/state_trackers/vega/Makefile +++ b/src/gallium/state_trackers/vega/Makefile @@ -42,7 +42,8 @@ VG_SOURCES = \ VG_OBJECTS = $(VG_SOURCES:.c=.o) -VG_LIBS = $(GALLIUM_AUXILIARIES) -lm +VG_LIBS = $(GALLIUM_AUXILIARIES) +VG_LIB_DEPS = $(EXTRA_LIB_PATH) -lm ### Include directories @@ -64,7 +65,7 @@ $(TOP)/$(LIB_DIR)/$(VG_LIB_NAME): $(VG_OBJECTS) $(VG_LIBS) -minor $(VG_MINOR) \ -patch $(VG_TINY) \ -install $(TOP)/$(LIB_DIR) \ - $(VG_OBJECTS) $(VG_LIBS) + $(VG_OBJECTS) $(VG_LIBS) $(VG_LIB_DEPS) ###################################################################### # Generic stuff -- cgit v1.2.3 From c476305cdeb1ca9d755983e2058cb44f5b9109f0 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 03:48:59 +0200 Subject: gallium/util: pregenerate half float tables This solution avoids the issue of how to run the initializers and also allows those pages (and the parts of them in processor caches) to be shared between multiple processes. The drawback is slightly higher library size. --- src/gallium/auxiliary/Makefile | 5 +- src/gallium/auxiliary/SConscript | 8 ++ src/gallium/auxiliary/util/u_format.c | 1 - src/gallium/auxiliary/util/u_half.c | 165 ------------------------------- src/gallium/auxiliary/util/u_half.h | 3 - src/gallium/auxiliary/util/u_half.py | 179 ++++++++++++++++++++++++++++++++++ 6 files changed, 191 insertions(+), 170 deletions(-) delete mode 100644 src/gallium/auxiliary/util/u_half.c create mode 100644 src/gallium/auxiliary/util/u_half.py diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 1db4aaa439..843778d810 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -169,7 +169,8 @@ GALLIVM_CPP_SOURCES = \ GENERATED_SOURCES = \ indices/u_indices_gen.c \ indices/u_unfilled_gen.c \ - util/u_format_table.c + util/u_format_table.c \ + util/u_half.c ifeq ($(MESA_LLVM),1) @@ -198,3 +199,5 @@ util/u_format_table.c: util/u_format_table.py util/u_format_pack.py util/u_forma util/u_format_access.c: util/u_format_access.py util/u_format_parse.py util/u_format.csv python util/u_format_access.py util/u_format.csv > $@ +util/u_half.c: util/u_half.py + python util/u_half.py > $@ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index d0443db3f7..73d4150448 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -29,6 +29,14 @@ env.CodeGenerate( source = ['util/u_format.csv'], command = 'python $SCRIPT $SOURCE > $TARGET' ) + +env.CodeGenerate( + target = 'util/u_half.c', + script = 'util/u_half.py', + source = [], + command = 'python $SCRIPT > $TARGET' +) + env.Depends('util/u_format_table.c', [ 'util/u_format_parse.py', 'util/u_format_pack.py', diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index d3ee1f0339..fae0a462dc 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -124,5 +124,4 @@ void util_format_do_init(void) { util_format_s3tc_init(); - util_half_init(); } diff --git a/src/gallium/auxiliary/util/u_half.c b/src/gallium/auxiliary/util/u_half.c deleted file mode 100644 index 4c8f8a51c5..0000000000 --- a/src/gallium/auxiliary/util/u_half.c +++ /dev/null @@ -1,165 +0,0 @@ - -/* - * Copyright 2010 Luca Barbieri - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial - * portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - -/* The code is a reimplementation of the algorithm in - * www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf - * "Fast Half Float Conversions" by Jeroen van der Zijp, Nov 2008 - * - * The table contents have been slightly changed so that the exponent - * bias is now in the exponent table instead of the mantissa table (mostly - * for cosmetic reasons, and because it theoretically allows a variant - * that flushes denormal to zero but uses a mantissa table with 24-bit - * entries). - * - * The tables are also constructed slightly differently. - */ - -/* Note that using a 64K * 4 table is a terrible idea since it will not fit - * in the L1 cache and will massively pollute the L2 cache as well - * - * These should instead fit in the L1 cache. - * - * TODO: we could use a denormal bias table instead of the mantissa/offset - * tables: this would reduce the L1 cache usage from 8704 to 2304 bytes - * but would involve more computation - * - * Note however that if denormals are never encountered, the L1 cache usage - * is only about 4608 bytes anyway. - */ - -#include "util/u_half.h" -#include "util/u_init.h" - -uint32_t util_half_to_float_mantissa_table[2048]; -uint32_t util_half_to_float_exponent_table[64]; -uint32_t util_half_to_float_offset_table[64]; -uint16_t util_float_to_half_base_table[512]; -uint8_t util_float_to_half_shift_table[512]; - -boolean util_half_inited; - -void -util_half_do_init(void) -{ - int i; - - /* zero */ - util_half_to_float_mantissa_table[0] = 0; - - /* denormals */ - for(i = 1; i < 1024; ++i) - { - unsigned int m = i << 13; - unsigned int e = 0; - - /* Normalize number */ - while(!(m & 0x00800000)) - { - e -= 0x00800000; - m <<= 1; - } - m &= ~0x00800000; - e += 0x38800000; - util_half_to_float_mantissa_table[i] = m | e; - } - - /* normals */ - for(i = 1024; i < 2048; ++i) - util_half_to_float_mantissa_table[i] = ((i - 1024) << 13); - - /* positive zero or denormals */ - util_half_to_float_exponent_table[0] = 0; - - /* positive numbers */ - for(i = 1; i <= 30; ++i) - util_half_to_float_exponent_table[i] = 0x38000000 + (i << 23); - - /* positive infinity/NaN */ - util_half_to_float_exponent_table[31] = 0x7f800000; - - /* negative zero or denormals */ - util_half_to_float_exponent_table[32] = 0x80000000; - - /* negative numbers */ - for(i = 33; i <= 62; ++i) - util_half_to_float_exponent_table[i] = 0xb8000000 + ((i - 32) << 23); - - /* negative infinity/NaN */ - util_half_to_float_exponent_table[63] = 0xff800000; - - /* positive zero or denormals */ - util_half_to_float_offset_table[0] = 0; - - /* positive normals */ - for(i = 1; i < 32; ++i) - util_half_to_float_offset_table[i] = 1024; - - /* negative zero or denormals */ - util_half_to_float_offset_table[32] = 0; - - /* negative normals */ - for(i = 33; i < 64; ++i) - util_half_to_float_offset_table[i] = 1024; - - /* very small numbers mapping to zero */ - for(i = -127; i < -24; ++i) - { - util_float_to_half_base_table[127 + i] = 0; - util_float_to_half_shift_table[127 + i] = 24; - } - - /* small numbers mapping to denormals */ - for(i = -24; i < -14; ++i) - { - util_float_to_half_base_table[127 + i] = 0x0400 >> (-14 - i); - util_float_to_half_shift_table[127 + i] = -i - 1; - } - - /* normal numbers */ - for(i = -14; i < 16; ++i) - { - util_float_to_half_base_table[127 + i] = (i + 15) << 10; - util_float_to_half_shift_table[127 + i] = 13; - } - - /* large numbers mapping to infinity */ - for(i = 16; i < 128; ++i) - { - util_float_to_half_base_table[127 + i] = 0x7c00; - util_float_to_half_shift_table[127 + i] = 24; - } - - /* infinity and NaNs */ - util_float_to_half_base_table[255] = 0x7c00; - util_float_to_half_shift_table[255] = 13; - - /* negative numbers */ - for(i = 0; i < 256; ++i) - { - util_float_to_half_base_table[256 + i] = util_float_to_half_base_table[i] | 0x8000; - util_float_to_half_shift_table[256 + i] = util_float_to_half_shift_table[i]; - } -} diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 02f0f24193..a28b1fd1d9 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -3,7 +3,6 @@ #include "pipe/p_compiler.h" #include "util/u_math.h" -#include "util/u_inline_init.h" #ifdef __cplusplus extern "C" { @@ -56,8 +55,6 @@ util_float_to_half(float f) return util_floatui_to_half(i.ui); } -UTIL_INLINE_INIT(util_half); - #ifdef __cplusplus } #endif diff --git a/src/gallium/auxiliary/util/u_half.py b/src/gallium/auxiliary/util/u_half.py new file mode 100644 index 0000000000..a92f758750 --- /dev/null +++ b/src/gallium/auxiliary/util/u_half.py @@ -0,0 +1,179 @@ +# Copyright 2010 Luca Barbieri +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice (including the +# next paragraph) shall be included in all copies or substantial +# portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# ************************************************************************* + +# The code is a reimplementation of the algorithm in +# www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf +# "Fast Half Float Conversions" by Jeroen van der Zijp, Nov 2008 +# +# The table contents have been slightly changed so that the exponent +# bias is now in the exponent table instead of the mantissa table (mostly +# for cosmetic reasons, and because it theoretically allows a variant +# that flushes denormal to zero but uses a mantissa table with 24-bit +# entries). +# +# The tables are also constructed slightly differently. +# + +# Note that using a 64K * 4 table is a terrible idea since it will not fit +# in the L1 cache and will massively pollute the L2 cache as well +# +# These should instead fit in the L1 cache. +# +# TODO: we could use a denormal bias table instead of the mantissa/offset +# tables: this would reduce the L1 cache usage from 8704 to 2304 bytes +# but would involve more computation +# +# Note however that if denormals are never encountered, the L1 cache usage +# is only about 4608 bytes anyway. + +table_index = None +table_length = None + +def begin(t, n, l): + global table_length + global table_index + table_index = 0 + table_length = l + print + print t + " " + n + "[" + str(l) + "] = {" + +def value(v): + global table_index + table_index += 1 + print "\t" + hex(v) + "," + +def end(): + global table_length + global table_index + print "};" + assert table_index == table_length + +print "/* This file is autogenerated by u_half.py. Do not edit directly. */" +print "#include \"util/u_half.h\"" + +begin("uint32_t", "util_half_to_float_mantissa_table", 2048) +# zero +value(0) + +# denormals +for i in xrange(1, 1024): + m = i << 13 + e = 0 + + # normalize number + while (m & 0x00800000) == 0: + e -= 0x00800000; + m <<= 1; + + m &= ~0x00800000; + e += 0x38800000; + value(m | e) + +# normals +for i in xrange(1024, 2048): + value((i - 1024) << 13) +end() + +begin("uint32_t", "util_half_to_float_exponent_table", 64) +# positive zero or denormals +value(0) + +# positive numbers +for i in xrange(1, 31): + value(0x38000000 + (i << 23)) + +# positive infinity/NaN +value(0x7f800000) + +# negative zero or denormals +value(0x80000000) + +# negative numbers +for i in range(33, 63): + value(0xb8000000 + ((i - 32) << 23)) + +# negative infinity/NaN +value(0xff800000) +end() + +begin("uint32_t", "util_half_to_float_offset_table", 64) +# positive zero or denormals +value(0) + +# positive normals +for i in range(1, 32): + value(1024) + +# negative zero or denormals +value(0) + +# negative normals +for i in xrange(33, 64): + value(1024) +end() + +begin("uint16_t", "util_float_to_half_base_table", 512) +for sign in (0, 0x8000): + # very small numbers mapping to zero + for i in xrange(-127, -24): + value(sign | 0) + + # small numbers mapping to denormals + for i in xrange(-24, -14): + value(sign | (0x400 >> (-14 -i))) + + # normal numbers + for i in xrange(-14, 16): + value(sign | ((i + 15) << 10)) + + # large numbers mapping to infinity + for i in xrange(16, 128): + value(sign | 0x7c00) + + # infinity and NaNs + value(sign | 0x7c00) +end() + +begin("uint8_t", "util_float_to_half_shift_table", 512) +for sign in (0, 0x8000): + # very small numbers mapping to zero + for i in xrange(-127, -24): + value(24) + + # small numbers mapping to denormals + for i in xrange(-24, -14): + value(-1 - i) + + # normal numbers + for i in xrange(-14, 16): + value(13) + + # large numbers mapping to infinity + for i in xrange(16, 128): + value(24) + + # infinity and NaNs + value(13) +end() + -- cgit v1.2.3 From 6259264c57537896d72158f811674a192c6a1596 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 04:35:20 +0200 Subject: progs/gallium: add unit test for u_half --- progs/gallium/unit/Makefile | 44 ++++++++++++++++++++++++++++++++++++++++ progs/gallium/unit/SConscript | 3 ++- progs/gallium/unit/u_half_test.c | 31 ++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 progs/gallium/unit/Makefile create mode 100644 progs/gallium/unit/u_half_test.c diff --git a/progs/gallium/unit/Makefile b/progs/gallium/unit/Makefile new file mode 100644 index 0000000000..f3dbd7695c --- /dev/null +++ b/progs/gallium/unit/Makefile @@ -0,0 +1,44 @@ +# progs/gallium/simple/Makefile + +TOP = ../../.. +include $(TOP)/configs/current + +INCLUDES = \ + -I. \ + -I$(TOP)/src/gallium/include \ + -I$(TOP)/src/gallium/auxiliary \ + -I$(TOP)/src/gallium/drivers \ + -I$(TOP)/src/gallium/winsys \ + $(PROG_INCLUDES) + +LINKS = \ + $(TOP)/src/gallium/drivers/trace/libtrace.a \ + $(TOP)/src/gallium/winsys/sw/null/libws_null.a \ + $(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a \ + $(GALLIUM_AUXILIARIES) \ + $(PROG_LINKS) + +SOURCES = \ + u_format_test.c \ + u_half_test.c + +OBJECTS = $(SOURCES:.c=.o) + +PROGS = $(OBJECTS:.o=) + +##### TARGETS ##### + +default: $(PROGS) + +clean: + -rm -f $(PROGS) + -rm -f *.o + -rm -f result.bmp + +##### RULES ##### + +$(OBJECTS): %.o: %.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $(PROG_DEFINES) $< -o $@ + +$(PROGS): %: %.o + $(CC) $(LDFLAGS) $< $(LINKS) -lm -lpthread -ldl -o $@ diff --git a/progs/gallium/unit/SConscript b/progs/gallium/unit/SConscript index a8c39c152b..0db3bb687c 100644 --- a/progs/gallium/unit/SConscript +++ b/progs/gallium/unit/SConscript @@ -5,7 +5,8 @@ env = env.Clone() env.Prepend(LIBS = [gallium]) progs = [ - 'u_format_test' + 'u_format_test', + 'u_half_test' ] for prog in progs: diff --git a/progs/gallium/unit/u_half_test.c b/progs/gallium/unit/u_half_test.c new file mode 100644 index 0000000000..0486f731ac --- /dev/null +++ b/progs/gallium/unit/u_half_test.c @@ -0,0 +1,31 @@ +#include +#include +#include + +#include "util/u_math.h" +#include "util/u_half.h" + +int +main(int argc, char **argv) +{ + unsigned i; + unsigned roundtrip_fails = 0; + for(i = 0; i < 1 << 16; ++i) + { + half h = (half) i; + union fi f; + f.ui = util_half_to_floatui(h); + half rh = util_floatui_to_half(f.ui); + if(h != rh) + { + printf("Roundtrip failed: %x -> %x = %f -> %x\n", h, f.ui, f.f, rh); + ++roundtrip_fails; + } + } + + if(roundtrip_fails) + printf("Failure! %u/65536 half floats failed a conversion to float and back.\n", roundtrip_fails); + else + printf("Success!\n"); + return 0; +} -- cgit v1.2.3 From 52e9b990a192a9329006d5f7dd2ac222effea5a5 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 04:48:42 +0200 Subject: gallium/util: load s3tc on demand This changes the S3TC function pointers to be initialized to stubs that load the S3TC library and then delegate to the real functions. If the S3TC library fails to load, the function pointers are replaced with a "nop" function. The code is also changed to attempt to load the library only one time.c Note that unlike checking for a flag, this method has no performance cost at all. The use of the "nop" functions also allows to avoid most checks, that are only preserved when the function does non-trivial work. --- src/gallium/auxiliary/util/u_format_s3tc.c | 254 +++++++++++++++++------------ src/gallium/auxiliary/util/u_format_s3tc.h | 4 +- 2 files changed, 151 insertions(+), 107 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 268f0e8dfa..8a5e6f0c43 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -34,58 +34,118 @@ #define DXTN_LIBNAME "libtxc_dxtn.so" #endif +static void +util_format_dxt1_rgb_fetch_stub( int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + util_format_s3tc_init(); + util_format_dxt1_rgb_fetch(src_stride, src, col, row, dst); +} -boolean util_format_s3tc_enabled = FALSE; - -util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = NULL; +static void +util_format_dxt1_rgba_fetch_stub( int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + util_format_s3tc_init(); + util_format_dxt1_rgba_fetch(src_stride, src, col, row, dst); +} -util_format_dxtn_pack_t util_format_dxtn_pack = NULL; +static void +util_format_dxt3_rgba_fetch_stub( int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + util_format_s3tc_init(); + util_format_dxt3_rgba_fetch(src_stride, src, col, row, dst); +} +static void +util_format_dxt5_rgba_fetch_stub( int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + util_format_s3tc_init(); + util_format_dxt5_rgba_fetch(src_stride, src, col, row, dst); +} -void -util_format_s3tc_init(void) +static +void util_format_dxtn_pack_stub( int src_comps, + int width, int height, + const uint8_t *src, + enum util_format_dxtn dst_format, + uint8_t *dst, + int dst_stride) { - static struct util_dl_library * - library = NULL; + util_format_s3tc_init(); + util_format_dxtn_pack_stub(src_comps, width, height, src, dst_format, dst, dst_stride); +} - if (util_format_s3tc_enabled) - return; +boolean util_format_s3tc_enabled = FALSE; +boolean util_format_s3tc_inited = FALSE; - if (!library) { - library = util_dl_open(DXTN_LIBNAME); - if (!library) { - debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " - "compression/decompression unavailable"); - } - else { - util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgb_dxt1"); - util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt1"); - util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt3"); - util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt5"); - util_format_dxtn_pack = (util_format_dxtn_pack_t) - util_dl_get_proc_address(library, "tx_compress_dxtn"); - - if (util_format_dxt1_rgb_fetch || - util_format_dxt1_rgba_fetch || - util_format_dxt3_rgba_fetch || - util_format_dxt5_rgba_fetch || - util_format_dxtn_pack) { - util_format_s3tc_enabled = TRUE; - debug_printf("software DXTn compression/decompression available"); - - } else { - debug_printf("couldn't reference all symbols in " - DXTN_LIBNAME ", software DXTn compression/decompression " - "unavailable"); - } - } +util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = util_format_dxt1_rgb_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = util_format_dxt1_rgba_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = util_format_dxt3_rgba_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = util_format_dxt5_rgba_fetch_stub; + +util_format_dxtn_pack_t util_format_dxtn_pack = util_format_dxtn_pack_stub; + +static void +nop(void) +{} + +#define is_nop(f) ((void*)(f) == (void*)nop) + +static util_dl_proc +get_proc_address_or_nop(struct util_dl_library *library, + const char *procname) +{ + if(library) { + util_dl_proc proc = util_dl_get_proc_address(library, procname); + if(proc) + return proc; + } + return (util_dl_proc)nop; +} + +void +util_format_s3tc_do_init(void) +{ + struct util_dl_library *library; + + library = util_dl_open(DXTN_LIBNAME); + util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) + get_proc_address_or_nop(library, "fetch_2d_texel_rgb_dxt1"); + util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) + get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt1"); + util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) + get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt3"); + util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) + get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt5"); + util_format_dxtn_pack = (util_format_dxtn_pack_t) + get_proc_address_or_nop(library, "tx_compress_dxtn"); + + if (!library) + debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " + "compression/decompression unavailable"); + else { + if (!is_nop(util_format_dxt1_rgb_fetch) && + !is_nop(util_format_dxt1_rgba_fetch) && + !is_nop(util_format_dxt3_rgba_fetch) && + !is_nop(util_format_dxt5_rgba_fetch) && + !is_nop(util_format_dxtn_pack)) { + debug_printf("software DXTn compression/decompression available"); + util_format_s3tc_enabled = TRUE; + } else + debug_printf("couldn't reference all symbols in " + DXTN_LIBNAME ", software DXTn compression/decompression " + "unavailable"); } } @@ -97,85 +157,69 @@ util_format_s3tc_init(void) void util_format_dxt1_rgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgb_fetch) { - util_format_dxt1_rgb_fetch(0, src, i, j, dst); - } + util_format_dxt1_rgb_fetch(0, src, i, j, dst); } void util_format_dxt1_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgba_fetch) { - util_format_dxt1_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt1_rgba_fetch(0, src, i, j, dst); } void util_format_dxt3_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt3_rgba_fetch) { - util_format_dxt3_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt3_rgba_fetch(0, src, i, j, dst); } void util_format_dxt5_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt5_rgba_fetch) { - util_format_dxt5_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt5_rgba_fetch(0, src, i, j, dst); } void util_format_dxt1_rgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgb_fetch) { - uint8_t tmp[4]; - util_format_dxt1_rgb_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = 1.0; - } + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; } void util_format_dxt1_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt1_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } void util_format_dxt3_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt3_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt3_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } void util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt5_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt5_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } @@ -186,7 +230,7 @@ util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, un void util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgb_fetch) { + if (!is_nop(util_format_dxt1_rgb_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -207,7 +251,7 @@ util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgba_fetch) { + if (!is_nop(util_format_dxt1_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -228,7 +272,7 @@ util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt3_rgba_fetch) { + if (!is_nop(util_format_dxt3_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -249,7 +293,7 @@ util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt5_rgba_fetch) { + if (is_nop(util_format_dxt5_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -270,7 +314,7 @@ util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgb_fetch) { + if (is_nop(util_format_dxt1_rgb_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -296,7 +340,7 @@ util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uin void util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgba_fetch) { + if (!is_nop(util_format_dxt1_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -322,7 +366,7 @@ util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt3_rgba_fetch) { + if (!is_nop(util_format_dxt3_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -348,7 +392,7 @@ util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt5_rgba_fetch) { + if (!is_nop(util_format_dxt5_rgba_fetch)) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -379,7 +423,7 @@ util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -406,7 +450,7 @@ util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -433,7 +477,7 @@ util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -460,7 +504,7 @@ util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -487,7 +531,7 @@ util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -514,7 +558,7 @@ util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const flo void util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -541,7 +585,7 @@ util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const fl void util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -568,7 +612,7 @@ util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const fl void util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { + if (!is_nop(util_format_dxtn_pack)) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; diff --git a/src/gallium/auxiliary/util/u_format_s3tc.h b/src/gallium/auxiliary/util/u_format_s3tc.h index 5c3a9dd22c..5be4bbec12 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.h +++ b/src/gallium/auxiliary/util/u_format_s3tc.h @@ -31,6 +31,7 @@ #include "pipe/p_compiler.h" +#include "util/u_inline_init.h" enum util_format_dxtn { @@ -65,8 +66,7 @@ extern util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch; extern util_format_dxtn_pack_t util_format_dxtn_pack; -void -util_format_s3tc_init(void); +UTIL_INLINE_INIT(util_format_s3tc); void -- cgit v1.2.3 From 5126683e3b971ccfb51e50e560750ce44e86bae8 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 05:23:32 +0200 Subject: gallium/util: add util_format_is_supported to check for pack/unpack This improves the code by making it more readable, and removes special knowledge of S3TC and other formats from softpipe. --- progs/gallium/unit/u_format_test.c | 4 +--- src/gallium/auxiliary/util/u_format.h | 23 ++++++++++++++++++++++- src/gallium/auxiliary/util/u_format_s3tc.c | 18 ++++++++++++++---- src/gallium/auxiliary/util/u_format_table.py | 3 ++- src/gallium/drivers/softpipe/sp_screen.c | 20 +------------------- 5 files changed, 40 insertions(+), 28 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index dcdbf6548d..9883e1e41c 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -354,10 +354,8 @@ test_one(test_func_t func, const char *suffix) format_desc = util_format_description(test->format); - if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC && - !util_format_s3tc_enabled) { + if (!util_format_is_supported(test->format)) skip = TRUE; - } if (test->format != last_format) { printf("%s util_format_%s_%s ...\n", diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index f7daa6d923..fc550405d8 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -32,7 +32,7 @@ #include "pipe/p_format.h" #include "util/u_debug.h" -#include "util/u_inline_init.h" +#include "util/u_format_s3tc.h" #ifdef __cplusplus extern "C" { @@ -168,6 +168,13 @@ struct util_format_description */ unsigned is_mixed:1; + /** + * Whether the pack/unpack functions actually work. + * + * Call util_format_is_supported instead of using this directly. + */ + unsigned is_supported:1; + /** * Input channel description. * @@ -507,6 +514,20 @@ util_format_get_nr_components(enum pipe_format format) * Format access functions. */ +static INLINE boolean +util_format_is_supported(enum pipe_format format) +{ + const struct util_format_description *desc = util_format_description(format); + + if(!desc) + return FALSE; + + if(desc->layout == UTIL_FORMAT_LAYOUT_S3TC) + util_format_s3tc_init(); + + return desc->is_supported; +} + void util_format_read_4f(enum pipe_format format, float *dst, unsigned dst_stride, diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 8a5e6f0c43..c1c844e420 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -86,7 +86,6 @@ void util_format_dxtn_pack_stub( int src_comps, util_format_dxtn_pack_stub(src_comps, width, height, src, dst_format, dst, dst_stride); } -boolean util_format_s3tc_enabled = FALSE; boolean util_format_s3tc_inited = FALSE; util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = util_format_dxt1_rgb_fetch_stub; @@ -141,12 +140,23 @@ util_format_s3tc_do_init(void) !is_nop(util_format_dxt5_rgba_fetch) && !is_nop(util_format_dxtn_pack)) { debug_printf("software DXTn compression/decompression available"); - util_format_s3tc_enabled = TRUE; } else debug_printf("couldn't reference all symbols in " - DXTN_LIBNAME ", software DXTn compression/decompression " - "unavailable"); + DXTN_LIBNAME ", software DXTn compression/decompression " + "unavailable or partially available"); } + +#define DO(n, a, A) \ + ((struct util_format_description *)util_format_description(PIPE_FORMAT_DXT##n##_SRGB##A))->is_supported = \ + ((struct util_format_description *)util_format_description(PIPE_FORMAT_DXT##n##_RGB##A))->is_supported = \ + !is_nop(util_format_dxt##n##_rgb##a##_fetch); + + DO(1,,); + DO(1,a,A); + DO(3,a,A); + DO(5,a,A); + +#undef DO } diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py index 94a4331b15..2c0c9bffee 100755 --- a/src/gallium/auxiliary/util/u_format_table.py +++ b/src/gallium/auxiliary/util/u_format_table.py @@ -92,7 +92,7 @@ def write_format_table(formats): u_format_pack.generate(formats) for format in formats: - print 'const struct util_format_description' + print 'struct util_format_description' print 'util_format_%s_description = {' % (format.short_name(),) print " %s," % (format.name,) print " \"%s\"," % (format.name,) @@ -103,6 +103,7 @@ def write_format_table(formats): print " %s,\t/* is_array */" % (bool_map(format.is_array()),) print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),) print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),) + print " %s,\t/* is_supported */" % ("TRUE" if u_format_pack.is_format_supported(format) else "FALSE",) print " {" for i in range(4): channel = format.channels[i] diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index 26a4bba574..df527f5cb1 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -156,25 +156,9 @@ softpipe_is_format_supported( struct pipe_screen *screen, target == PIPE_TEXTURE_3D || target == PIPE_TEXTURE_CUBE); - switch(format) { - case PIPE_FORMAT_YUYV: - case PIPE_FORMAT_UYVY: + if(!util_format_is_supported(format)) return FALSE; - case PIPE_FORMAT_DXT1_RGB: - case PIPE_FORMAT_DXT1_RGBA: - case PIPE_FORMAT_DXT3_RGBA: - case PIPE_FORMAT_DXT5_RGBA: - return util_format_s3tc_enabled; - - case PIPE_FORMAT_Z32_FLOAT: - case PIPE_FORMAT_NONE: - return FALSE; - - default: - break; - } - if(tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET | PIPE_TEXTURE_USAGE_SCANOUT | PIPE_TEXTURE_USAGE_SHARED)) { @@ -182,8 +166,6 @@ softpipe_is_format_supported( struct pipe_screen *screen, return FALSE; } - /* XXX: this is often a lie. Pull in logic from llvmpipe to fix. - */ return TRUE; } -- cgit v1.2.3 From 2a090ae80a597f498f113fe58a772ddf3dca12e0 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 04:51:50 +0200 Subject: gallium/util: revert util_format_init addition Putting calls to util_format_init all over the codebase is infeasible. Instead, half float tables are pregenerated, and the s3tc library is loaded on demand. I believe this is a solution that combines performance, cleanliness, flexibility and portability. --- progs/gallium/unit/u_format_test.c | 4 ---- src/gallium/auxiliary/util/u_format.c | 8 -------- src/gallium/auxiliary/util/u_format.h | 2 -- src/gallium/drivers/nv50/nv50_context.c | 2 -- src/gallium/drivers/softpipe/sp_screen.c | 2 +- 5 files changed, 1 insertion(+), 17 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 9883e1e41c..2fb7badd62 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -30,10 +30,8 @@ #include #include -#include "util/u_half.h" #include "util/u_format.h" #include "util/u_format_tests.h" -#include "util/u_format_s3tc.h" static boolean @@ -402,8 +400,6 @@ int main(int argc, char **argv) { boolean success; - util_format_init(); - success = test_all(); return success ? 0 : 1; diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index fae0a462dc..112490f3b4 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -117,11 +117,3 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ format_desc->pack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } - -boolean util_format_inited; - -void -util_format_do_init(void) -{ - util_format_s3tc_init(); -} diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index fc550405d8..2ac3abab23 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -552,8 +552,6 @@ util_format_write_4ub(enum pipe_format format, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h); -UTIL_INLINE_INIT(util_format); - #ifdef __cplusplus } // extern "C" { #endif diff --git a/src/gallium/drivers/nv50/nv50_context.c b/src/gallium/drivers/nv50/nv50_context.c index 0de75a70b9..92b194a8f8 100644 --- a/src/gallium/drivers/nv50/nv50_context.c +++ b/src/gallium/drivers/nv50/nv50_context.c @@ -71,8 +71,6 @@ nv50_create(struct pipe_screen *pscreen, void *priv) struct nv50_screen *screen = nv50_screen(pscreen); struct nv50_context *nv50; - util_format_init(); - nv50 = CALLOC_STRUCT(nv50_context); if (!nv50) return NULL; diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index df527f5cb1..5c1012b400 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -224,7 +224,7 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; - util_format_init(); + util_format_s3tc_init(); softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); -- cgit v1.2.3 From ee91c1e367b9e3bcbb156ed80ab94694f0d4b4ca Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: glsl: add more vertex/fragment output info helpers --- src/mesa/shader/slang/slang_builtin.c | 67 ++++++++++++++++++++++++++++------- src/mesa/shader/slang/slang_builtin.h | 10 ++++++ 2 files changed, 64 insertions(+), 13 deletions(-) diff --git a/src/mesa/shader/slang/slang_builtin.c b/src/mesa/shader/slang/slang_builtin.c index 791e751526..492d423d0a 100644 --- a/src/mesa/shader/slang/slang_builtin.c +++ b/src/mesa/shader/slang/slang_builtin.c @@ -839,27 +839,28 @@ struct output_info { const char *Name; GLuint Attrib; + GLenum Type; }; /** Predefined vertex shader outputs */ static const struct output_info vertOutputs[] = { - { "gl_Position", VERT_RESULT_HPOS }, - { "gl_FrontColor", VERT_RESULT_COL0 }, - { "gl_BackColor", VERT_RESULT_BFC0 }, - { "gl_FrontSecondaryColor", VERT_RESULT_COL1 }, - { "gl_BackSecondaryColor", VERT_RESULT_BFC1 }, - { "gl_TexCoord", VERT_RESULT_TEX0 }, - { "gl_FogFragCoord", VERT_RESULT_FOGC }, - { "gl_PointSize", VERT_RESULT_PSIZ }, - { NULL, 0 } + { "gl_Position", VERT_RESULT_HPOS, GL_FLOAT_VEC4 }, + { "gl_FrontColor", VERT_RESULT_COL0, GL_FLOAT_VEC4 }, + { "gl_BackColor", VERT_RESULT_BFC0, GL_FLOAT_VEC4 }, + { "gl_FrontSecondaryColor", VERT_RESULT_COL1, GL_FLOAT_VEC4 }, + { "gl_BackSecondaryColor", VERT_RESULT_BFC1, GL_FLOAT_VEC4 }, + { "gl_TexCoord", VERT_RESULT_TEX0, GL_FLOAT_VEC4 }, + { "gl_FogFragCoord", VERT_RESULT_FOGC, GL_FLOAT }, + { "gl_PointSize", VERT_RESULT_PSIZ, GL_FLOAT }, + { NULL, 0, GL_NONE } }; /** Predefined fragment shader outputs */ static const struct output_info fragOutputs[] = { - { "gl_FragColor", FRAG_RESULT_COLOR }, - { "gl_FragDepth", FRAG_RESULT_DEPTH }, - { "gl_FragData", FRAG_RESULT_DATA0 }, - { NULL, 0 } + { "gl_FragColor", FRAG_RESULT_COLOR, GL_FLOAT_VEC4 }, + { "gl_FragDepth", FRAG_RESULT_DEPTH, GL_FLOAT }, + { "gl_FragData", FRAG_RESULT_DATA0, GL_FLOAT_VEC4 }, + { NULL, 0, GL_NONE } }; @@ -895,3 +896,43 @@ _slang_output_index(const char *name, GLenum target) } return -1; } + + +/** + * Given a VERT_RESULT_x index, return the corresponding string name. + */ +const char * +_slang_vertex_output_name(gl_vert_result index) +{ + if (index < Elements(vertOutputs)) + return vertOutputs[index].Name; + else + return NULL; +} + + +/** + * Given a FRAG_RESULT_x index, return the corresponding string name. + */ +const char * +_slang_fragment_output_name(gl_frag_result index) +{ + if (index < Elements(fragOutputs)) + return fragOutputs[index].Name; + else + return NULL; +} + + +/** + * Given a VERT_RESULT_x index, return the corresponding varying + * var's datatype. + */ +GLenum +_slang_vertex_output_type(gl_vert_result index) +{ + if (index < Elements(vertOutputs)) + return vertOutputs[index].Type; + else + return GL_NONE; +} diff --git a/src/mesa/shader/slang/slang_builtin.h b/src/mesa/shader/slang/slang_builtin.h index f814d11ac7..c3021ca33c 100644 --- a/src/mesa/shader/slang/slang_builtin.h +++ b/src/mesa/shader/slang/slang_builtin.h @@ -51,4 +51,14 @@ extern GLenum _slang_vert_attrib_type(GLuint attrib); +const char * +_slang_vertex_output_name(gl_vert_result index); + +const char * +_slang_fragment_output_name(gl_frag_result index); + +GLenum +_slang_vertex_output_type(gl_vert_result index); + + #endif /* SLANG_BUILTIN_H */ -- cgit v1.2.3 From 038aba1f082d696a49db7c818766c5886f4efa83 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: glsl: pass datatype to _mesa_add_varying() Will be needed later for transform feedback support. --- src/mesa/shader/prog_parameter.c | 5 +++-- src/mesa/shader/prog_parameter.h | 3 ++- src/mesa/shader/slang/slang_codegen.c | 2 +- src/mesa/shader/slang/slang_link.c | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mesa/shader/prog_parameter.c b/src/mesa/shader/prog_parameter.c index 25bb4f3d44..aac488c79a 100644 --- a/src/mesa/shader/prog_parameter.c +++ b/src/mesa/shader/prog_parameter.c @@ -376,7 +376,8 @@ _mesa_add_sampler(struct gl_program_parameter_list *paramList, */ GLint _mesa_add_varying(struct gl_program_parameter_list *paramList, - const char *name, GLuint size, GLbitfield flags) + const char *name, GLuint size, GLenum datatype, + GLbitfield flags) { GLint i = _mesa_lookup_parameter_index(paramList, -1, name); if (i >= 0 && paramList->Parameters[i].Type == PROGRAM_VARYING) { @@ -386,7 +387,7 @@ _mesa_add_varying(struct gl_program_parameter_list *paramList, else { /*assert(size == 4);*/ i = _mesa_add_parameter(paramList, PROGRAM_VARYING, name, - size, GL_NONE, NULL, NULL, flags); + size, datatype, NULL, NULL, flags); return i; } } diff --git a/src/mesa/shader/prog_parameter.h b/src/mesa/shader/prog_parameter.h index 1111c85976..cc3378ae20 100644 --- a/src/mesa/shader/prog_parameter.h +++ b/src/mesa/shader/prog_parameter.h @@ -146,7 +146,8 @@ _mesa_add_sampler(struct gl_program_parameter_list *paramList, extern GLint _mesa_add_varying(struct gl_program_parameter_list *paramList, - const char *name, GLuint size, GLbitfield flags); + const char *name, GLuint size, GLenum datatype, + GLbitfield flags); extern GLint _mesa_add_attribute(struct gl_program_parameter_list *paramList, diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c index ecb2f6d5c1..fa79632c18 100644 --- a/src/mesa/shader/slang/slang_codegen.c +++ b/src/mesa/shader/slang/slang_codegen.c @@ -5130,7 +5130,7 @@ _slang_codegen_global_variable(slang_assemble_ctx *A, slang_variable *var, flags |= PROG_PARAM_BIT_INVARIANT; varyingLoc = _mesa_add_varying(prog->Varying, varName, - totalSize, flags); + totalSize, GL_NONE, flags); swizzle = _slang_var_swizzle(size, 0); store = _slang_new_ir_storage_swz(PROGRAM_VARYING, varyingLoc, totalSize, swizzle); diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c index 7c7bfbdbc5..f79af0508f 100644 --- a/src/mesa/shader/slang/slang_link.c +++ b/src/mesa/shader/slang/slang_link.c @@ -157,7 +157,7 @@ link_varying_vars(GLcontext *ctx, else { /* not already in linked list */ j = _mesa_add_varying(shProg->Varying, var->Name, var->Size, - var->Flags); + var->DataType, var->Flags); } if (shProg->Varying->NumParameters > ctx->Const.MaxVarying) { -- cgit v1.2.3 From 1a14866689b1e207b1af4c57f9727e2712e9f49e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: mesa: make _mesa_copy_string() non-static --- src/mesa/shader/shader_api.c | 29 ++++++++++++++++++++++------- src/mesa/shader/shader_api.h | 3 +++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 36fe0a1bb7..4ff032d4ec 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -782,8 +782,11 @@ _mesa_detach_shader(GLcontext *ctx, GLuint program, GLuint shader) } -static GLint -sizeof_glsl_type(GLenum type) +/** + * Return the size of the given GLSL datatype, in floats (components). + */ +GLint +_mesa_sizeof_glsl_type(GLenum type) { switch (type) { case GL_FLOAT: @@ -828,7 +831,7 @@ sizeof_glsl_type(GLenum type) case GL_FLOAT_MAT4x3: return 16; /* four float[4] vectors */ default: - _mesa_problem(NULL, "Invalid type in sizeof_glsl_type()"); + _mesa_problem(NULL, "Invalid type in _mesa_sizeof_glsl_type()"); return 1; } } @@ -912,7 +915,7 @@ _mesa_get_active_attrib(GLcontext *ctx, GLuint program, GLuint index, if (size) *size = attribs->Parameters[index].Size - / sizeof_glsl_type(attribs->Parameters[index].DataType); + / _mesa_sizeof_glsl_type(attribs->Parameters[index].DataType); if (type) *type = attribs->Parameters[index].DataType; @@ -987,7 +990,7 @@ _mesa_get_active_uniform(GLcontext *ctx, GLuint program, GLuint index, } if (size) { - GLint typeSize = sizeof_glsl_type(param->DataType); + GLint typeSize = _mesa_sizeof_glsl_type(param->DataType); if ((GLint) param->Size > typeSize) { /* This is an array. * Array elements are placed on vector[4] boundaries so they're @@ -1519,6 +1522,12 @@ _mesa_link_program(GLcontext *ctx, GLuint program) if (!shProg) return; + if (ctx->TransformFeedback.Active && shProg == ctx->Shader.CurrentProgram) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glLinkProgram(transform feedback active"); + return; + } + FLUSH_VERTICES(ctx, _NEW_PROGRAM); _slang_link(ctx, program, shProg); @@ -1583,6 +1592,12 @@ _mesa_use_program(GLcontext *ctx, GLuint program) { struct gl_shader_program *shProg; + if (ctx->TransformFeedback.Active) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glUseProgram(transform feedback active)"); + return; + } + if (ctx->Shader.CurrentProgram && ctx->Shader.CurrentProgram->Name == program) { /* no-op */ @@ -1771,7 +1786,7 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, const GLboolean isUniformBool = is_boolean_type(param->DataType); const GLboolean areIntValues = is_integer_type(type); const GLint slots = (param->Size + 3) / 4; - const GLint typeSize = sizeof_glsl_type(param->DataType); + const GLint typeSize = _mesa_sizeof_glsl_type(param->DataType); GLsizei k, i; if ((GLint) param->Size > typeSize) { @@ -1960,7 +1975,7 @@ set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program, GLuint src = 0; const struct gl_program_parameter * param = &program->Parameters->Parameters[index]; const GLuint slots = (param->Size + 3) / 4; - const GLint typeSize = sizeof_glsl_type(param->DataType); + const GLint typeSize = _mesa_sizeof_glsl_type(param->DataType); GLint nr, nc; /* check that the number of rows, columns is correct */ diff --git a/src/mesa/shader/shader_api.h b/src/mesa/shader/shader_api.h index 3ed52747cd..597f0b8e75 100644 --- a/src/mesa/shader/shader_api.h +++ b/src/mesa/shader/shader_api.h @@ -47,6 +47,9 @@ extern void _mesa_copy_string(GLchar *dst, GLsizei maxLength, GLsizei *length, const GLchar *src); +extern GLint +_mesa_sizeof_glsl_type(GLenum type); + /* extern struct gl_shader_program * -- cgit v1.2.3 From 3b49437372218e12f4270b750199f8825f9b0f45 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: glsl: append built-in, used varying vars to the varying vars list --- src/mesa/shader/slang/slang_link.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c index f79af0508f..1c21924f48 100644 --- a/src/mesa/shader/slang/slang_link.c +++ b/src/mesa/shader/slang/slang_link.c @@ -86,6 +86,31 @@ bits_agree(GLbitfield flags1, GLbitfield flags2, GLbitfield bit) } +/** + * Examine the outputs/varyings written by the vertex shader and + * append the names of those outputs onto the Varyings list. + * This will only capture the pre-defined/built-in varyings like + * gl_Position, not user-defined varyings. The later should already + * be in the varying vars list. + */ +static void +update_varying_var_list(GLcontext *ctx, struct gl_shader_program *shProg) +{ + if (shProg->VertexProgram) { + GLbitfield64 written = shProg->VertexProgram->Base.OutputsWritten; + GLuint i; + for (i = 0; written && i < VERT_RESULT_MAX; i++) { + if (written & BITFIELD64_BIT(i)) { + const char *name = _slang_vertex_output_name(i); + if (name) + _mesa_add_varying(shProg->Varying, name, 1, GL_FLOAT_VEC4, 0x0); + written &= ~BITFIELD64_BIT(i); + } + } + } +} + + /** * Linking varying vars involves rearranging varying vars so that the * vertex program's output varyings matches the order of the fragment @@ -866,6 +891,8 @@ _slang_link(GLcontext *ctx, } } + /* Append built-in, used varyings to the varying var list */ + update_varying_var_list(ctx, shProg); if (fragProg && shProg->FragmentProgram) { /* Compute initial program's TexturesUsed info */ -- cgit v1.2.3 From 3100f31b747a3294e1e7043ed9a61d8b90bf423a Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: mesa: minor fixes in _mesa_GetTransformFeedbackVarying() --- src/mesa/main/transformfeedback.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index d988fc6b9a..74519ba38a 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -418,9 +418,18 @@ _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index, /* return the datatype and value's size (in datatype units) */ if (type) - *type = param->Type; + *type = param->DataType; if (size) *size = param->Size; } + else { + name[0] = 0; + if (length) + *length = 0; + if (type) + *type = 0; + if (size) + *size = 0; + } } -- cgit v1.2.3 From 50a75a0b4a1ebbc54feff1a7dc2c71b27d8a5067 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:16 -0600 Subject: docs: update GL3 / GL_ARB_fragment_coord_conventions status --- docs/GL3.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index a485878af2..565ce2b234 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -57,7 +57,7 @@ GLSL 1.50 not started Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) BGRA vertex order (GL_ARB_vertex_array_bgra) DONE Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE -Frag shader coord (GL_ARB_fragment_coord_conventions) not started +Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (swrast, gallium) Provoking vertex (GL_ARB_provoking_vertex) DONE Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly? Multisample textures (GL_ARB_texture_multisample) not started -- cgit v1.2.3 From 107c72f355a3006d716ec5e8d550f0fcd3766bbc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:17 -0600 Subject: glsl: do extra link checking for transform feedback --- src/mesa/shader/slang/slang_link.c | 86 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c index 1c21924f48..c47dd399d2 100644 --- a/src/mesa/shader/slang/slang_link.c +++ b/src/mesa/shader/slang/slang_link.c @@ -90,8 +90,7 @@ bits_agree(GLbitfield flags1, GLbitfield flags2, GLbitfield bit) * Examine the outputs/varyings written by the vertex shader and * append the names of those outputs onto the Varyings list. * This will only capture the pre-defined/built-in varyings like - * gl_Position, not user-defined varyings. The later should already - * be in the varying vars list. + * gl_Position, not user-defined varyings. */ static void update_varying_var_list(GLcontext *ctx, struct gl_shader_program *shProg) @@ -111,6 +110,83 @@ update_varying_var_list(GLcontext *ctx, struct gl_shader_program *shProg) } +/** + * Do link error checking related to transform feedback. + */ +static GLboolean +link_transform_feedback(GLcontext *ctx, struct gl_shader_program *shProg) +{ + GLbitfield varyingMask; + GLuint totalComps, maxComps, i; + + if (shProg->TransformFeedback.NumVarying == 0) { + /* nothing to do */ + return GL_FALSE; + } + + /* Check that there's a vertex shader */ + if (shProg->TransformFeedback.NumVarying > 0 && + !shProg->VertexProgram) { + link_error(shProg, "Transform feedback without vertex shader"); + return GL_FALSE; + } + + /* Check that all named variables exist, and that none are duplicated. + * Also, build a count of the number of varying components to feedback. + */ + totalComps = 0; + varyingMask = 0x0; + for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) { + const GLchar *name = shProg->TransformFeedback.VaryingNames[i]; + GLint v = _mesa_lookup_parameter_index(shProg->Varying, -1, name); + struct gl_program_parameter *p; + + if (v < 0) { + char msg[100]; + _mesa_snprintf(msg, sizeof(msg), + "vertex shader does not emit %s", name); + link_error(shProg, msg); + return GL_FALSE; + } + + assert(v < MAX_VARYING); + + /* already seen this varying name? */ + if (varyingMask & (1 << v)) { + char msg[100]; + _mesa_snprintf(msg, sizeof(msg), + "duplicated transform feedback varying name: %s", + name); + link_error(shProg, msg); + return GL_FALSE; + } + + varyingMask |= (1 << v); + + p = &shProg->Varying->Parameters[v]; + + totalComps += _mesa_sizeof_glsl_type(p->DataType); + } + + if (shProg->TransformFeedback.BufferMode == GL_INTERLEAVED_ATTRIBS) + maxComps = ctx->Const.MaxTransformFeedbackInterleavedComponents; + else + maxComps = ctx->Const.MaxTransformFeedbackSeparateComponents; + + /* check max varying components against the limit */ + if (totalComps > maxComps) { + char msg[100]; + _mesa_snprintf(msg, sizeof(msg), + "Too many feedback components: %u, max is %u", + totalComps, maxComps); + link_error(shProg, msg); + return GL_FALSE; + } + + return GL_TRUE; +} + + /** * Linking varying vars involves rearranging varying vars so that the * vertex program's output varyings matches the order of the fragment @@ -891,9 +967,13 @@ _slang_link(GLcontext *ctx, } } - /* Append built-in, used varyings to the varying var list */ update_varying_var_list(ctx, shProg); + /* checks related to transform feedback */ + if (!link_transform_feedback(ctx, shProg)) { + return; + } + if (fragProg && shProg->FragmentProgram) { /* Compute initial program's TexturesUsed info */ _mesa_update_shader_textures_used(&shProg->FragmentProgram->Base); -- cgit v1.2.3 From 30b9ead229fabd9a4c68f676ac7a6cba2de74f70 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:17 -0600 Subject: glsl: remove obsolete comment --- src/mesa/shader/slang/slang_builtin.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mesa/shader/slang/slang_builtin.c b/src/mesa/shader/slang/slang_builtin.c index 492d423d0a..b7bf4e06dc 100644 --- a/src/mesa/shader/slang/slang_builtin.c +++ b/src/mesa/shader/slang/slang_builtin.c @@ -752,7 +752,6 @@ static const struct input_info fragInputs[] = { { "gl_Color", FRAG_ATTRIB_COL0, GL_FLOAT_VEC4, SWIZZLE_NOOP }, { "gl_SecondaryColor", FRAG_ATTRIB_COL1, GL_FLOAT_VEC4, SWIZZLE_NOOP }, { "gl_TexCoord", FRAG_ATTRIB_TEX0, GL_FLOAT_VEC4, SWIZZLE_NOOP }, - /* note: we're packing several quantities into the fogcoord vector */ { "gl_FogFragCoord", FRAG_ATTRIB_FOGC, GL_FLOAT, SWIZZLE_XXXX }, { "gl_FrontFacing", FRAG_ATTRIB_FACE, GL_FLOAT, SWIZZLE_XXXX }, { "gl_PointCoord", FRAG_ATTRIB_PNTC, GL_FLOAT_VEC2, SWIZZLE_XYZW }, -- cgit v1.2.3 From 361b179720dc5d7bb4e046d3e91ce3b1a64a4cd2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:15:17 -0600 Subject: gallium: remove old comment about return values --- src/gallium/include/pipe/p_context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index d1b734a9f9..6aba6ef1ee 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -58,7 +58,7 @@ struct pipe_context { void (*destroy)( struct pipe_context * ); /** - * VBO drawing (return false on fallbacks (temporary??)) + * VBO drawing */ /*@{*/ void (*draw_arrays)( struct pipe_context *pipe, -- cgit v1.2.3 From e47d7e87905486a06ca5183c58f4af45ca69470e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:19:52 -0600 Subject: gallium/util: remove extraneous semicolon --- src/gallium/auxiliary/util/u_format_s3tc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.h b/src/gallium/auxiliary/util/u_format_s3tc.h index 5be4bbec12..da14b9b93a 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.h +++ b/src/gallium/auxiliary/util/u_format_s3tc.h @@ -66,7 +66,7 @@ extern util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch; extern util_format_dxtn_pack_t util_format_dxtn_pack; -UTIL_INLINE_INIT(util_format_s3tc); +UTIL_INLINE_INIT(util_format_s3tc) void -- cgit v1.2.3 From 3e1a3923f44bfa550ea152c57c99f9ec558b7571 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 1 Apr 2010 22:32:44 -0600 Subject: glsl: fix bad return value in link_transform_feedback() --- src/mesa/shader/slang/slang_link.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c index c47dd399d2..f71fde1d72 100644 --- a/src/mesa/shader/slang/slang_link.c +++ b/src/mesa/shader/slang/slang_link.c @@ -121,7 +121,7 @@ link_transform_feedback(GLcontext *ctx, struct gl_shader_program *shProg) if (shProg->TransformFeedback.NumVarying == 0) { /* nothing to do */ - return GL_FALSE; + return GL_TRUE; } /* Check that there's a vertex shader */ -- cgit v1.2.3 From 36ed9a7f1356bc9c7c83388500ed8fbda8bff8aa Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 1 Apr 2010 22:29:23 -0700 Subject: progs/gallium/unit: Move declaration before code. Fixes SCons build. --- progs/gallium/unit/u_half_test.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/progs/gallium/unit/u_half_test.c b/progs/gallium/unit/u_half_test.c index 0486f731ac..9e3392e6d6 100644 --- a/progs/gallium/unit/u_half_test.c +++ b/progs/gallium/unit/u_half_test.c @@ -14,8 +14,9 @@ main(int argc, char **argv) { half h = (half) i; union fi f; + half rh; f.ui = util_half_to_floatui(h); - half rh = util_floatui_to_half(f.ui); + rh = util_floatui_to_half(f.ui); if(h != rh) { printf("Roundtrip failed: %x -> %x = %f -> %x\n", h, f.ui, f.f, rh); -- cgit v1.2.3 From f50247c9aae036c9131bc2b5726c879c114eece0 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 06:21:19 +0200 Subject: softpipe: remove S3TC init, since it's done on-demand now --- src/gallium/drivers/softpipe/sp_screen.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index 5c1012b400..ddc53b336f 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -224,8 +224,6 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; - util_format_s3tc_init(); - softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); softpipe_init_screen_fence_funcs(&screen->base); -- cgit v1.2.3 From 2d65a7caf97684aa654088c76a74b632fbd685fa Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Fri, 2 Apr 2010 07:26:33 +0200 Subject: gallium/util: print \n after DXTn printf --- src/gallium/auxiliary/util/u_format_s3tc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index c1c844e420..d48551f23b 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -132,18 +132,18 @@ util_format_s3tc_do_init(void) if (!library) debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " - "compression/decompression unavailable"); + "compression/decompression unavailable\n"); else { if (!is_nop(util_format_dxt1_rgb_fetch) && !is_nop(util_format_dxt1_rgba_fetch) && !is_nop(util_format_dxt3_rgba_fetch) && !is_nop(util_format_dxt5_rgba_fetch) && !is_nop(util_format_dxtn_pack)) { - debug_printf("software DXTn compression/decompression available"); + debug_printf("software DXTn compression/decompression available\n"); } else debug_printf("couldn't reference all symbols in " DXTN_LIBNAME ", software DXTn compression/decompression " - "unavailable or partially available"); + "unavailable or partially available\n"); } #define DO(n, a, A) \ -- cgit v1.2.3 From 67776f66c93abb44ee4d1432ba59458ce4fb28f7 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 2 Apr 2010 00:12:59 -0700 Subject: glx: Fix compilation errors on non-GLX_DIRECT_RENDERING builds. Add ifdef guards around variables of types defined only for GLX_DIRECT_RENDERING. --- src/glx/glxcmds.c | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 8f809dc525..51a75e352b 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -2013,6 +2013,8 @@ __glXGetSwapIntervalMESA(void) } } #endif + +#ifdef GLX_DIRECT_RENDERING if (gc != NULL && gc->driContext) { __GLXscreenConfigs *psc; @@ -2023,6 +2025,7 @@ __glXGetSwapIntervalMESA(void) return psc->driScreen->getSwapInterval(pdraw); } } +#endif return 0; } @@ -2139,7 +2142,9 @@ __glXGetVideoSyncSGI(unsigned int *count) int ret; GLXContext gc = __glXGetCurrentContext(); __GLXscreenConfigs *psc; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw; +#endif if (!gc) return GLX_BAD_CONTEXT; @@ -2150,7 +2155,9 @@ __glXGetVideoSyncSGI(unsigned int *count) #endif psc = GetGLXScreenConfigs(gc->currentDpy, gc->screen); +#ifdef GLX_DIRECT_RENDERING pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable, NULL); +#endif /* FIXME: Looking at the GLX_SGI_video_sync spec in the extension registry, * FIXME: there should be a GLX encoding for this call. I can find no @@ -2165,11 +2172,14 @@ __glXGetVideoSyncSGI(unsigned int *count) return (ret == 0) ? 0 : GLX_BAD_CONTEXT; } #endif + +#ifdef GLX_DIRECT_RENDERING if (psc->driScreen && psc->driScreen->getDrawableMSC) { ret = psc->driScreen->getDrawableMSC(psc, pdraw, &ust, &msc, &sbc); *count = (unsigned) msc; return (ret == True) ? 0 : GLX_BAD_CONTEXT; } +#endif return GLX_BAD_CONTEXT; } @@ -2179,7 +2189,9 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) { GLXContext gc = __glXGetCurrentContext(); __GLXscreenConfigs *psc; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw; +#endif int64_t ust, msc, sbc; int ret; @@ -2195,7 +2207,9 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) #endif psc = GetGLXScreenConfigs( gc->currentDpy, gc->screen); +#ifdef GLX_DIRECT_RENDERING pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable, NULL); +#endif #ifdef __DRI_MEDIA_STREAM_COUNTER if (psc->msc != NULL && psc->driScreen ) { @@ -2205,12 +2219,15 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) return (ret == 0) ? 0 : GLX_BAD_CONTEXT; } #endif + +#ifdef GLX_DIRECT_RENDERING if (psc->driScreen && psc->driScreen->waitForMSC) { ret = psc->driScreen->waitForMSC(pdraw, 0, divisor, remainder, &ust, &msc, &sbc); *count = (unsigned) msc; return (ret == True) ? 0 : GLX_BAD_CONTEXT; } +#endif return GLX_BAD_CONTEXT; } @@ -2368,13 +2385,17 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, { __GLXdisplayPrivate * const priv = __glXInitialize(dpy); int i, ret; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw; +#endif __GLXscreenConfigs *psc; if (!priv) return False; +#ifdef GLX_DIRECT_RENDERING pdraw = GetGLXDRIDrawable(dpy, drawable, &i); +#endif psc = &priv->screenConfigs[i]; #if defined(__DRI_SWAP_BUFFER_COUNTER) && defined(__DRI_MEDIA_STREAM_COUNTER) @@ -2384,10 +2405,13 @@ __glXGetSyncValuesOML(Display * dpy, GLXDrawable drawable, && ((*psc->sbc->getSBC)(pdraw->driDrawable, sbc) == 0) && (__glXGetUST(ust) == 0) ); #endif + +#ifdef GLX_DIRECT_RENDERING if (pdraw && psc && psc->driScreen && psc->driScreen->getDrawableMSC) { ret = psc->driScreen->getDrawableMSC(psc, pdraw, ust, msc, sbc); return ret; } +#endif return False; } @@ -2505,14 +2529,16 @@ __glXSwapBuffersMscOML(Display * dpy, GLXDrawable drawable, { GLXContext gc = __glXGetCurrentContext(); int screen; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, &screen); +#endif __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); - if (!pdraw || !gc) /* no GLX for this */ + if (!gc) /* no GLX for this */ return -1; #ifdef GLX_DIRECT_RENDERING - if (!gc->driContext) + if (!pdraw || !gc->driContext) return -1; #endif @@ -2549,7 +2575,9 @@ __glXWaitForMscOML(Display * dpy, GLXDrawable drawable, int64_t * msc, int64_t * sbc) { int screen; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, &screen); +#endif __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, screen ); int ret; @@ -2573,11 +2601,14 @@ __glXWaitForMscOML(Display * dpy, GLXDrawable drawable, return ((ret == 0) && (__glXGetUST(ust) == 0)); } #endif + +#ifdef GLX_DIRECT_RENDERING if (pdraw && psc->driScreen && psc->driScreen->waitForMSC) { ret = psc->driScreen->waitForMSC(pdraw, target_msc, divisor, remainder, ust, msc, sbc); return ret; } +#endif return False; } @@ -2589,7 +2620,9 @@ __glXWaitForSbcOML(Display * dpy, GLXDrawable drawable, int64_t * msc, int64_t * sbc) { int screen; +#ifdef GLX_DIRECT_RENDERING __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, &screen); +#endif __GLXscreenConfigs *const psc = GetGLXScreenConfigs(dpy, screen); int ret; @@ -2609,10 +2642,14 @@ __glXWaitForSbcOML(Display * dpy, GLXDrawable drawable, return ((ret == 0) && (__glXGetUST(ust) == 0)); } #endif + +#ifdef GLX_DIRECT_RENDERING if (pdraw && psc->driScreen && psc->driScreen->waitForSBC) { ret = psc->driScreen->waitForSBC(pdraw, target_sbc, ust, msc, sbc); return ret; } +#endif + return False; } -- cgit v1.2.3 From c87e6e50ee02c8cda11d14a0ea242bb19e77300f Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 2 Apr 2010 01:08:31 -0700 Subject: progs/gallium/unit: Silence uninitialized variable warnings. --- progs/gallium/unit/u_format_test.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 2fb7badd62..8dffaf4936 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -134,7 +134,7 @@ static boolean test_format_fetch_float(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4] = { { { 0 } } }; unsigned i, j, k; boolean success; @@ -163,7 +163,7 @@ static boolean test_format_unpack_float(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + float unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4] = { { { 0 } } }; unsigned i, j, k; boolean success; @@ -261,8 +261,8 @@ static boolean test_format_unpack_8unorm(const struct util_format_description *format_desc, const struct util_format_test_case *test) { - uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; - uint8_t expected[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4]; + uint8_t unpacked[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4] = { { { 0 } } }; + uint8_t expected[UTIL_FORMAT_MAX_UNPACKED_HEIGHT][UTIL_FORMAT_MAX_UNPACKED_WIDTH][4] = { { { 0 } } }; unsigned i, j, k; boolean success; -- cgit v1.2.3 From 82e289d355089952a217b14081bac8ffff04ab2e Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 2 Apr 2010 01:14:24 -0700 Subject: gallivm: Add fallthrough comment at end of case statement. The code is correct. Tell Coverity that the fallthrough case is intentional. --- src/gallium/auxiliary/gallivm/lp_bld_printf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c index e4fa2c264c..153ba5b15b 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c @@ -54,6 +54,7 @@ lp_get_printf_arg_count(const char *fmt) p += 3; continue; } + /* fallthrough */ default: count ++; } -- cgit v1.2.3 From bc50336b6ab40b6f4df7dbe19abe8b1d89938472 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 09:17:47 -0600 Subject: llvmpipe: limit max texture size to 2Kx2K for now MAXWIDTH/HEIGHT were 2048 but the max texture size was 4096. This caused a crash if a 4Kx4K texture was created and rendered to. See comment about max framebuffer size in lp_scene.h. Also added assertions to catch this inconsistancy in the future. --- src/gallium/drivers/llvmpipe/lp_scene.c | 3 +++ src/gallium/drivers/llvmpipe/lp_state_surface.c | 4 ++++ src/gallium/drivers/llvmpipe/lp_texture.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_scene.c b/src/gallium/drivers/llvmpipe/lp_scene.c index 681ce674d4..0c51b52d17 100644 --- a/src/gallium/drivers/llvmpipe/lp_scene.c +++ b/src/gallium/drivers/llvmpipe/lp_scene.c @@ -483,6 +483,9 @@ void lp_scene_begin_binning( struct lp_scene *scene, scene->tiles_x = align(fb->width, TILE_SIZE) / TILE_SIZE; scene->tiles_y = align(fb->height, TILE_SIZE) / TILE_SIZE; + + assert(scene->tiles_x <= TILES_X); + assert(scene->tiles_y <= TILES_Y); } diff --git a/src/gallium/drivers/llvmpipe/lp_state_surface.c b/src/gallium/drivers/llvmpipe/lp_state_surface.c index 048ac5b968..7d86c5750c 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_surface.c +++ b/src/gallium/drivers/llvmpipe/lp_state_surface.c @@ -32,6 +32,7 @@ #include "util/u_inlines.h" #include "util/u_surface.h" #include "lp_context.h" +#include "lp_scene.h" #include "lp_state.h" #include "lp_setup.h" @@ -51,6 +52,9 @@ llvmpipe_set_framebuffer_state(struct pipe_context *pipe, boolean changed = !util_framebuffer_state_equal(&lp->framebuffer, fb); + assert(fb->width <= MAXWIDTH); + assert(fb->height <= MAXHEIGHT); + if (changed) { util_copy_framebuffer_state(&lp->framebuffer, fb); diff --git a/src/gallium/drivers/llvmpipe/lp_texture.h b/src/gallium/drivers/llvmpipe/lp_texture.h index 2350c26e4f..49623949bf 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.h +++ b/src/gallium/drivers/llvmpipe/lp_texture.h @@ -32,7 +32,7 @@ #include "pipe/p_state.h" -#define LP_MAX_TEXTURE_2D_LEVELS 13 /* 4K x 4K for now */ +#define LP_MAX_TEXTURE_2D_LEVELS 12 /* 2K x 2K for now */ #define LP_MAX_TEXTURE_3D_LEVELS 10 /* 512 x 512 x 512 for now */ -- cgit v1.2.3 From 557b75248a3ebc6daabe3c2b69ac24d409aaa1e0 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Fri, 2 Apr 2010 15:56:34 -0400 Subject: draw llvm: fix translation of formats with variable components --- src/gallium/auxiliary/draw/draw_llvm_translate.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index bc17d3861a..b29ebdec3a 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -428,6 +428,12 @@ fetch(LLVMBuilderRef builder, int offset = 0; LLVMValueRef res = LLVMConstNull( LLVMVectorType(LLVMFloatType(), 4)); + LLVMValueRef defaults[4]; + + defaults[0] = LLVMConstReal(LLVMFloatType(), 0); + defaults[1] = LLVMConstReal(LLVMFloatType(), 0); + defaults[2] = LLVMConstReal(LLVMFloatType(), 0); + defaults[3] = LLVMConstReal(LLVMFloatType(), 1); for (i = 0; i < nr_components; ++i) { LLVMValueRef src_index = LLVMConstInt(LLVMInt32Type(), offset, 0); @@ -447,6 +453,13 @@ fetch(LLVMBuilderRef builder, dst_index, ""); offset += val_size; } + for (; i < 4; ++i) { + LLVMValueRef dst_index = LLVMConstInt(LLVMInt32Type(), i, 0); + res = LLVMBuildInsertElement(builder, + res, + defaults[i], + dst_index, ""); + } return res; } -- cgit v1.2.3 From 1d11ba0ba3d3919bdee62a6513bc0c0d1e68aa66 Mon Sep 17 00:00:00 2001 From: Yann Droneaud Date: Fri, 2 Apr 2010 13:44:26 +0000 Subject: gallium: fix dri_destroy_option_cache() when optionCache.info is NULL With an Intel 855GM handled by intel_drv, there's a crash with Gallium3D enabled DRI driver for Intel i915 (--enable-gallium-intel). The Gallium3D driver doesn't support the 855GM as expected by intel_drv, it failed to open the screen and give an half initialized screen structure to dri_destroy_option_cache(): optionCache.info is NULL, so it's crashing while trying to free array content. This patch at least fix the crash in the function. Here's some logs of the fixed version: [ 16274.137] LoaderOpen(/opt/mesa/lib/xorg/modules/drivers/intel_drv.so) [ 16274.139] (II) Loading /opt/mesa/lib/xorg/modules/drivers/intel_drv.so [ 16274.183] (II) Module intel: vendor="X.Org Foundation" [ 16274.183] compiled for 1.8.0, module version = 2.11.0 [ 16274.183] Module class: X.Org Video Driver [ 16274.183] ABI class: X.Org Video Driver, version 7.0 [ 16274.183] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810, i810-dc100, i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45, 4 Series, G45/G43, Q45/Q43, G41, B43, Clarkdale, Arrandale [ 16274.382] (II) intel(0): Integrated Graphics Chipset: Intel(R) 855GME [ 16274.382] (--) intel(0): Chipset: "852GM/855GM" [ 16276.675] (II) intel(0): [DRI2] Setup complete [ 16276.675] (II) intel(0): [DRI2] DRI driver: i915 debug_get_option: GALLIUM_TRACE = (null) debug_get_bool_option: GALLIUM_RBUG = FALSE debug_get_bool_option: INTEL_DUMP_CMD = FALSE i915_create_screen: unknown pci id 0x3582, cannot create screen dri_init_screen_helper: failed to create pipe_screen [ 16276.794] (EE) AIGLX error: Calling driver entry point failed [ 16276.794] (EE) AIGLX: reverting to software rendering [ 16276.794] (II) AIGLX: Screen 0 is not DRI capable [ 16276.796] (II) AIGLX: Loaded and initialized /opt/mesa/lib/dri/swrast_dri.so [ 16276.796] (II) GLX: Initialized DRISWRAST GL provider for screen 0 Signed-off-by: Yann Droneaud Reviewed-by: Corbin Simpson --- src/gallium/state_trackers/dri/common/dri_screen.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/state_trackers/dri/common/dri_screen.c b/src/gallium/state_trackers/dri/common/dri_screen.c index 6fc7487071..6e1761443e 100644 --- a/src/gallium/state_trackers/dri/common/dri_screen.c +++ b/src/gallium/state_trackers/dri/common/dri_screen.c @@ -288,12 +288,14 @@ dri_destroy_option_cache(struct dri_screen * screen) { int i; - for (i = 0; i < (1 << screen->optionCache.tableSize); ++i) { - FREE(screen->optionCache.info[i].name); - FREE(screen->optionCache.info[i].ranges); + if (screen->optionCache.info) { + for (i = 0; i < (1 << screen->optionCache.tableSize); ++i) { + FREE(screen->optionCache.info[i].name); + FREE(screen->optionCache.info[i].ranges); + } + FREE(screen->optionCache.info); } - FREE(screen->optionCache.info); FREE(screen->optionCache.values); } -- cgit v1.2.3 From f6c7b911653fb1508256c63518ef0bd15d68186e Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 3 Apr 2010 07:00:03 +1000 Subject: r300g: make dithering work like fglrx. From fglrx traces the dithering is never enabled. Signed-off-by: Dave Airlie --- src/gallium/drivers/r300/r300_state.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 39e05583dd..bf17d5d920 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -321,8 +321,10 @@ static void* r300_create_blend_state(struct pipe_context* pipe, } if (state->dither) { - blend->dither = R300_RB3D_DITHER_CTL_DITHER_MODE_LUT | - R300_RB3D_DITHER_CTL_ALPHA_DITHER_MODE_LUT; + /* fglrx appears to never set this */ + blend->dither = 0; + /* blend->dither = R300_RB3D_DITHER_CTL_DITHER_MODE_LUT | + R300_RB3D_DITHER_CTL_ALPHA_DITHER_MODE_LUT; */ } return (void*)blend; -- cgit v1.2.3 From 21961f6e9614f234be704da93032cb4ec197eef4 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Fri, 2 Apr 2010 14:21:50 -0700 Subject: r300g: Expound on dithering comment. --- src/gallium/drivers/r300/r300_state.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index bf17d5d920..2c0a7d82f5 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -320,12 +320,17 @@ static void* r300_create_blend_state(struct pipe_context* pipe, } } + /* Neither fglrx nor classic r300 ever set this, regardless of dithering + * state. Since it's an optional implementation detail, we can leave it + * out and never dither. + * + * This could be revisited if we ever get quality or conformance hints. + * if (state->dither) { - /* fglrx appears to never set this */ - blend->dither = 0; - /* blend->dither = R300_RB3D_DITHER_CTL_DITHER_MODE_LUT | - R300_RB3D_DITHER_CTL_ALPHA_DITHER_MODE_LUT; */ + blend->dither = R300_RB3D_DITHER_CTL_DITHER_MODE_LUT | + R300_RB3D_DITHER_CTL_ALPHA_DITHER_MODE_LUT; } + */ return (void*)blend; } -- cgit v1.2.3 From 73cd1cf7c1ab28eadbd6b7564fd103b799b126a0 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Fri, 2 Apr 2010 14:25:38 -0700 Subject: gallium/docs: Dithering might not actually do anything. --- src/gallium/docs/source/cso/blend.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/docs/source/cso/blend.rst b/src/gallium/docs/source/cso/blend.rst index 55c0f32885..c74396284c 100644 --- a/src/gallium/docs/source/cso/blend.rst +++ b/src/gallium/docs/source/cso/blend.rst @@ -28,7 +28,7 @@ logicop_enable logicop_func The logic operation to use if logic ops are enabled. One of PIPE_LOGICOP. dither - Whether dithering is enabled. + Whether dithering is enabled. Note: Dithering is implementation-dependent. rt Contains the per-rendertarget blend state. -- cgit v1.2.3 From cb31d3b5fec6260142ed27cc37f7155915ecfe89 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Fri, 2 Apr 2010 18:52:32 -0400 Subject: draw llvm: fix storing of outputs for the rest of the pipeline there's no good way of aligning the output's, and since the vertex_header is variable sized in the first place we need to extract elements from a vector and store them individually into an array. this gets the basic examples working again --- src/gallium/auxiliary/draw/draw_llvm.c | 141 +++++++++++++-------- src/gallium/auxiliary/draw/draw_llvm.h | 2 +- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 +- src/gallium/auxiliary/draw/draw_pt_post_vs.c | 3 + 4 files changed, 94 insertions(+), 54 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 30058c8cff..388c991075 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -20,48 +20,9 @@ static void init_globals(struct draw_llvm *llvm) { - LLVMTypeRef vertex_header; - LLVMTypeRef texture_type; + LLVMTypeRef texture_type; - /* struct vertex_header */ - { - LLVMTypeRef elem_types[3]; - - elem_types[0] = LLVMIntType(32); - elem_types[1] = LLVMArrayType(LLVMFloatType(), 4); - elem_types[2] = LLVMArrayType(elem_types[1], 0); - - vertex_header = LLVMStructType(elem_types, Elements(elem_types), 0); - - /* these are bit-fields and we can't take address of them - LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_CLIPMASK); - LP_CHECK_MEMBER_OFFSET(struct vertex_header, edgeflag, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_EDGEFLAG); - LP_CHECK_MEMBER_OFFSET(struct vertex_header, pad, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_PAD); - LP_CHECK_MEMBER_OFFSET(struct vertex_header, vertex_id, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_VERTEX_ID); - */ - LP_CHECK_MEMBER_OFFSET(struct vertex_header, clip, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_CLIP); - LP_CHECK_MEMBER_OFFSET(struct vertex_header, data, - llvm->target, vertex_header, - DRAW_JIT_VERTEX_DATA); - - LP_CHECK_STRUCT_SIZE(struct vertex_header, - llvm->target, vertex_header); - - LLVMAddTypeName(llvm->module, "vertex_header", vertex_header); - - llvm->vertex_header_ptr_type = LLVMPointerType(vertex_header, 0); - } - /* struct draw_jit_texture */ + /* struct draw_jit_texture */ { LLVMTypeRef elem_types[4]; @@ -122,6 +83,45 @@ init_globals(struct draw_llvm *llvm) } } +static LLVMTypeRef +create_vertex_header(struct draw_llvm *llvm, int data_elems) +{ + /* struct vertex_header */ + LLVMTypeRef elem_types[3]; + LLVMTypeRef vertex_header; + + elem_types[0] = LLVMIntType(32); + elem_types[1] = LLVMArrayType(LLVMFloatType(), 4); + elem_types[2] = LLVMArrayType(elem_types[1], data_elems); + + vertex_header = LLVMStructType(elem_types, Elements(elem_types), 0); + + /* these are bit-fields and we can't take address of them + LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_CLIPMASK); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, edgeflag, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_EDGEFLAG); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, pad, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_PAD); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, vertex_id, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_VERTEX_ID); + */ + LP_CHECK_MEMBER_OFFSET(struct vertex_header, clip, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_CLIP); + LP_CHECK_MEMBER_OFFSET(struct vertex_header, data, + llvm->target, vertex_header, + DRAW_JIT_VERTEX_DATA); + + LLVMAddTypeName(llvm->module, "vertex_header", vertex_header); + + return LLVMPointerType(vertex_header, 0); +} + struct draw_llvm * draw_llvm_create(struct draw_context *draw) { @@ -175,8 +175,9 @@ draw_llvm_destroy(struct draw_llvm *llvm) } void -draw_llvm_prepare(struct draw_llvm *llvm) +draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs) { + llvm->vertex_header_ptr_type = create_vertex_header(llvm, num_inputs); draw_llvm_generate(llvm); } @@ -390,24 +391,59 @@ store_aos(LLVMBuilderRef builder, { LLVMValueRef id_ptr = draw_jit_header_id(builder, io_ptr); LLVMValueRef data_ptr = draw_jit_header_data(builder, io_ptr); - LLVMValueRef indices[2]; + LLVMValueRef indices[3]; indices[0] = LLVMConstInt(LLVMInt32Type(), 0, 0); indices[1] = index; + indices[2] = LLVMConstInt(LLVMInt32Type(), 0, 0); /* undefined vertex */ LLVMBuildStore(builder, LLVMConstInt(LLVMInt32Type(), 0xffff, 0), id_ptr); - - data_ptr = LLVMBuildInBoundsGEP(builder, data_ptr, indices, 2, ""); - lp_build_printf(builder, " ---- storing at %d (%p) ", index, data_ptr); - print_vectorf(builder, value); +#if 0 + /*lp_build_printf(builder, " ---- %p storing at %d (%p) ", io_ptr, index, data_ptr); + print_vectorf(builder, value);*/ data_ptr = LLVMBuildBitCast(builder, data_ptr, - LLVMPointerType(LLVMVectorType(LLVMFloatType(), 4), 0), + LLVMPointerType(LLVMArrayType(LLVMVectorType(LLVMFloatType(), 4), 0), 0), "datavec"); + data_ptr = LLVMBuildGEP(builder, data_ptr, indices, 2, ""); + LLVMBuildStore(builder, value, data_ptr); - lp_build_printf(builder, " ++ stored\n"); +#else + { + LLVMValueRef x, y, z, w; + LLVMValueRef idx0, idx1, idx2, idx3; + LLVMValueRef gep0, gep1, gep2, gep3; + data_ptr = LLVMBuildGEP(builder, data_ptr, indices, 3, ""); + + idx0 = LLVMConstInt(LLVMInt32Type(), 0, 0); + idx1 = LLVMConstInt(LLVMInt32Type(), 1, 0); + idx2 = LLVMConstInt(LLVMInt32Type(), 2, 0); + idx3 = LLVMConstInt(LLVMInt32Type(), 3, 0); + + x = LLVMBuildExtractElement(builder, value, + idx0, ""); + y = LLVMBuildExtractElement(builder, value, + idx1, ""); + z = LLVMBuildExtractElement(builder, value, + idx2, ""); + w = LLVMBuildExtractElement(builder, value, + idx3, ""); + + gep0 = LLVMBuildGEP(builder, data_ptr, &idx0, 1, ""); + gep1 = LLVMBuildGEP(builder, data_ptr, &idx1, 1, ""); + gep2 = LLVMBuildGEP(builder, data_ptr, &idx2, 1, ""); + gep3 = LLVMBuildGEP(builder, data_ptr, &idx3, 1, ""); + + /*lp_build_printf(builder, "##### x = %f (%p), y = %f (%p), z = %f (%p), w = %f (%p)\n", + x, gep0, y, gep1, z, gep2, w, gep3);*/ + LLVMBuildStore(builder, x, gep0); + LLVMBuildStore(builder, y, gep1); + LLVMBuildStore(builder, z, gep2); + LLVMBuildStore(builder, w, gep3); + } +#endif } static void @@ -442,6 +478,8 @@ store_aos_array(LLVMBuilderRef builder, io3_ptr = LLVMBuildGEP(builder, io_ptr, &ind3, 1, ""); + /*lp_build_printf(builder, "io = %d\n", start_index);*/ + store_aos(builder, io0_ptr, attr_index, aos[0]); store_aos(builder, io1_ptr, attr_index, aos[1]); store_aos(builder, io2_ptr, attr_index, aos[2]); @@ -465,10 +503,10 @@ convert_to_aos(LLVMBuilderRef builder, if(outputs[attrib][chan]) { LLVMValueRef out = LLVMBuildLoad(builder, outputs[attrib][chan], ""); lp_build_name(out, "output%u.%c", attrib, "xyzw"[chan]); - lp_build_printf(builder, "output %d : %d ", + /*lp_build_printf(builder, "output %d : %d ", LLVMConstInt(LLVMInt32Type(), attrib, 0), LLVMConstInt(LLVMInt32Type(), chan, 0)); - print_vectorf(builder, out); + print_vectorf(builder, out);*/ soa[chan] = out; } else soa[chan] = 0; @@ -563,7 +601,6 @@ draw_llvm_generate(struct draw_llvm *llvm) velem->vertex_buffer_index]; generate_fetch(builder, vbuffers_ptr, &aos_attribs[j][i], velem, vbuf, true_index); - /*print_vectorf(builder, aos_attribs[j][i]);*/ } } convert_to_soa(builder, aos_attribs, inputs, diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index 46ce236e3c..afafa15e68 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -157,7 +157,7 @@ void draw_llvm_destroy(struct draw_llvm *llvm); void -draw_llvm_prepare(struct draw_llvm *llvm); +draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs); /* generates the draw jit function */ void diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 07d464b159..f65cf3822c 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -129,7 +129,7 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, /* return even number */ *max_vertices = *max_vertices & ~1; - draw_llvm_prepare(fpme->llvm); + draw_llvm_prepare(fpme->llvm, nr); /*XXX we only support one constant buffer */ fpme->llvm->jit_context.vs_constants = diff --git a/src/gallium/auxiliary/draw/draw_pt_post_vs.c b/src/gallium/auxiliary/draw/draw_pt_post_vs.c index 9728d5c2bd..7afbf6fa46 100644 --- a/src/gallium/auxiliary/draw/draw_pt_post_vs.c +++ b/src/gallium/auxiliary/draw/draw_pt_post_vs.c @@ -108,6 +108,9 @@ static boolean post_vs_cliptest_viewport_gl( struct pt_post_vs *pvs, for (j = 0; j < count; j++) { float *position = out->data[pos]; + debug_printf("%d) %p %p = [%f, %f, %f, %f]\n", + j, out, position, position[0], position[1], position[2], position[3]); + out->clip[0] = position[0]; out->clip[1] = position[1]; out->clip[2] = position[2]; -- cgit v1.2.3 From dd194b6932c9b7bbb87b34b501254ec83d82ba49 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Fri, 2 Apr 2010 19:39:16 +0100 Subject: python/tests: Output test results in a format that Hudson CI can understand. --- progs/gallium/python/tests/base.py | 74 +++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/progs/gallium/python/tests/base.py b/progs/gallium/python/tests/base.py index 8c55e3ae5d..d8cf84db36 100755 --- a/progs/gallium/python/tests/base.py +++ b/progs/gallium/python/tests/base.py @@ -116,7 +116,7 @@ class Test: def run(self): result = TestResult() self._run(result) - result.summary() + result.report() def assert_rgba(self, ctx, surface, x, y, w, h, expected_rgba, pixel_tol=4.0/256, surface_tol=0.85): total = h*w @@ -250,7 +250,7 @@ class TestResult: sys.stdout.write("SKIP\n") sys.stdout.flush() self.skipped += 1 - #self.log_result(test, 'skip') + self.log_result(test, 'skip') def test_failed(self, test): sys.stdout.write("FAIL\n") @@ -296,11 +296,16 @@ class TestResult: self.rows.append(row) - def summary(self): + def report(self): sys.stdout.write("%u tests, %u passed, %u skipped, %u failed\n\n" % (self.tests, self.passed, self.skipped, self.failed)) sys.stdout.flush() name, ext = os.path.splitext(os.path.basename(sys.argv[0])) + + tree = self.report_tree(name) + self.report_junit(name, stdout=tree) + + def report_tree(self, name): filename = name + '.tsv' stream = file(filename, 'wt') @@ -311,6 +316,8 @@ class TestResult: # rows for row in self.rows: + if row[0] == 'skip': + continue row += ['']*(len(self.names) - len(row)) stream.write('\t'.join(row) + '\n') @@ -322,7 +329,7 @@ class TestResult: import orngTree except ImportError: sys.stderr.write('Install Orange from http://www.ailab.si/orange/ for a classification tree.\n') - return + return None data = orange.ExampleTable(filename) @@ -330,6 +337,63 @@ class TestResult: orngTree.printTxt(tree, maxDepth=4) - file(name+'.txt', 'wt').write(orngTree.dumpTree(tree)) + text_tree = orngTree.dumpTree(tree) + + file(name + '.txt', 'wt').write(text_tree) orngTree.printDot(tree, fileName=name+'.dot', nodeShape='ellipse', leafShape='box') + + return text_tree + + def report_junit(self, name, stdout=None, stderr=None): + """Write test results in ANT's junit XML format, to use with Hudson CI. + + See also: + - http://fisheye.hudson-ci.org/browse/Hudson/trunk/hudson/main/core/src/test/resources/hudson/tasks/junit + - http://www.junit.org/node/399 + - http://wiki.apache.org/ant/Proposals/EnhancedTestReports + """ + + stream = file(name + '.xml', 'wt') + + stream.write('\n') + stream.write('\n' % self.escape_xml(name)) + stream.write(' \n') + stream.write(' \n') + + names = self.names[1:] + + for row in self.rows: + + test_name = ' '.join(['%s=%s' % pair for pair in zip(self.names[1:], row[1:])]) + + stream.write(' \n' % (self.escape_xml(test_name))) + + result = row[0] + if result == 'pass': + pass + elif result == 'skip': + stream.write(' \n') + else: + stream.write(' \n') + + stream.write(' \n') + + if stdout: + stream.write(' %s\n' % self.escape_xml(stdout)) + if stderr: + stream.write(' %s\n' % self.escape_xml(stderr)) + + stream.write('\n') + + stream.close() + + def escape_xml(self, s): + '''Escape a XML string.''' + s = s.replace('&', '&') + s = s.replace('<', '<') + s = s.replace('>', '>') + s = s.replace('"', '"') + s = s.replace("'", ''') + return s + -- cgit v1.2.3 From 47e61426586bb9f9f40950e9c4372e4f12bb9ed6 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Sat, 3 Apr 2010 00:51:19 +0100 Subject: util: Revert unsolicited, untested, unreviewed, and broken changes to format support. Not all is bad, but I'm afraid I'll have to throw the baby with the water given they are all tied to together. --- progs/gallium/unit/u_format_test.c | 8 +- src/gallium/auxiliary/util/u_format.c | 3 +- src/gallium/auxiliary/util/u_format.h | 22 --- src/gallium/auxiliary/util/u_format_s3tc.c | 264 +++++++++++---------------- src/gallium/auxiliary/util/u_format_s3tc.h | 4 +- src/gallium/auxiliary/util/u_format_table.py | 3 +- src/gallium/auxiliary/util/u_inline_init.h | 15 -- src/gallium/drivers/nv50/nv50_context.c | 1 - src/gallium/drivers/softpipe/sp_screen.c | 23 ++- 9 files changed, 137 insertions(+), 206 deletions(-) delete mode 100644 src/gallium/auxiliary/util/u_inline_init.h diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 8dffaf4936..53e028482b 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -30,8 +30,10 @@ #include #include +#include "util/u_half.h" #include "util/u_format.h" #include "util/u_format_tests.h" +#include "util/u_format_s3tc.h" static boolean @@ -352,8 +354,10 @@ test_one(test_func_t func, const char *suffix) format_desc = util_format_description(test->format); - if (!util_format_is_supported(test->format)) + if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC && + !util_format_s3tc_enabled) { skip = TRUE; + } if (test->format != last_format) { printf("%s util_format_%s_%s ...\n", @@ -400,6 +404,8 @@ int main(int argc, char **argv) { boolean success; + util_format_s3tc_init(); + success = test_all(); return success ? 0 : 1; diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index 112490f3b4..7f16cf7d01 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -33,8 +33,6 @@ */ #include "u_format.h" -#include "u_format_s3tc.h" -#include "u_half.h" void @@ -117,3 +115,4 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ format_desc->pack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } + diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 2ac3abab23..93818a3161 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -32,7 +32,6 @@ #include "pipe/p_format.h" #include "util/u_debug.h" -#include "util/u_format_s3tc.h" #ifdef __cplusplus extern "C" { @@ -168,13 +167,6 @@ struct util_format_description */ unsigned is_mixed:1; - /** - * Whether the pack/unpack functions actually work. - * - * Call util_format_is_supported instead of using this directly. - */ - unsigned is_supported:1; - /** * Input channel description. * @@ -514,20 +506,6 @@ util_format_get_nr_components(enum pipe_format format) * Format access functions. */ -static INLINE boolean -util_format_is_supported(enum pipe_format format) -{ - const struct util_format_description *desc = util_format_description(format); - - if(!desc) - return FALSE; - - if(desc->layout == UTIL_FORMAT_LAYOUT_S3TC) - util_format_s3tc_init(); - - return desc->is_supported; -} - void util_format_read_4f(enum pipe_format format, float *dst, unsigned dst_stride, diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index d48551f23b..268f0e8dfa 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -34,129 +34,59 @@ #define DXTN_LIBNAME "libtxc_dxtn.so" #endif -static void -util_format_dxt1_rgb_fetch_stub( int src_stride, - const uint8_t *src, - int col, int row, - uint8_t *dst ) -{ - util_format_s3tc_init(); - util_format_dxt1_rgb_fetch(src_stride, src, col, row, dst); -} - -static void -util_format_dxt1_rgba_fetch_stub( int src_stride, - const uint8_t *src, - int col, int row, - uint8_t *dst ) -{ - util_format_s3tc_init(); - util_format_dxt1_rgba_fetch(src_stride, src, col, row, dst); -} - -static void -util_format_dxt3_rgba_fetch_stub( int src_stride, - const uint8_t *src, - int col, int row, - uint8_t *dst ) -{ - util_format_s3tc_init(); - util_format_dxt3_rgba_fetch(src_stride, src, col, row, dst); -} -static void -util_format_dxt5_rgba_fetch_stub( int src_stride, - const uint8_t *src, - int col, int row, - uint8_t *dst ) -{ - util_format_s3tc_init(); - util_format_dxt5_rgba_fetch(src_stride, src, col, row, dst); -} - -static -void util_format_dxtn_pack_stub( int src_comps, - int width, int height, - const uint8_t *src, - enum util_format_dxtn dst_format, - uint8_t *dst, - int dst_stride) -{ - util_format_s3tc_init(); - util_format_dxtn_pack_stub(src_comps, width, height, src, dst_format, dst, dst_stride); -} - -boolean util_format_s3tc_inited = FALSE; +boolean util_format_s3tc_enabled = FALSE; -util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = util_format_dxt1_rgb_fetch_stub; -util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = util_format_dxt1_rgba_fetch_stub; -util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = util_format_dxt3_rgba_fetch_stub; -util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = util_format_dxt5_rgba_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = NULL; -util_format_dxtn_pack_t util_format_dxtn_pack = util_format_dxtn_pack_stub; +util_format_dxtn_pack_t util_format_dxtn_pack = NULL; -static void -nop(void) -{} -#define is_nop(f) ((void*)(f) == (void*)nop) - -static util_dl_proc -get_proc_address_or_nop(struct util_dl_library *library, - const char *procname) +void +util_format_s3tc_init(void) { - if(library) { - util_dl_proc proc = util_dl_get_proc_address(library, procname); - if(proc) - return proc; - } - return (util_dl_proc)nop; -} - -void -util_format_s3tc_do_init(void) -{ - struct util_dl_library *library; - - library = util_dl_open(DXTN_LIBNAME); - util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) - get_proc_address_or_nop(library, "fetch_2d_texel_rgb_dxt1"); - util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) - get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt1"); - util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) - get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt3"); - util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) - get_proc_address_or_nop(library, "fetch_2d_texel_rgba_dxt5"); - util_format_dxtn_pack = (util_format_dxtn_pack_t) - get_proc_address_or_nop(library, "tx_compress_dxtn"); - - if (!library) - debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " - "compression/decompression unavailable\n"); - else { - if (!is_nop(util_format_dxt1_rgb_fetch) && - !is_nop(util_format_dxt1_rgba_fetch) && - !is_nop(util_format_dxt3_rgba_fetch) && - !is_nop(util_format_dxt5_rgba_fetch) && - !is_nop(util_format_dxtn_pack)) { - debug_printf("software DXTn compression/decompression available\n"); - } else - debug_printf("couldn't reference all symbols in " - DXTN_LIBNAME ", software DXTn compression/decompression " - "unavailable or partially available\n"); - } + static struct util_dl_library * + library = NULL; -#define DO(n, a, A) \ - ((struct util_format_description *)util_format_description(PIPE_FORMAT_DXT##n##_SRGB##A))->is_supported = \ - ((struct util_format_description *)util_format_description(PIPE_FORMAT_DXT##n##_RGB##A))->is_supported = \ - !is_nop(util_format_dxt##n##_rgb##a##_fetch); + if (util_format_s3tc_enabled) + return; - DO(1,,); - DO(1,a,A); - DO(3,a,A); - DO(5,a,A); - -#undef DO + if (!library) { + library = util_dl_open(DXTN_LIBNAME); + if (!library) { + debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " + "compression/decompression unavailable"); + } + else { + util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgb_dxt1"); + util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt1"); + util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt3"); + util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt5"); + util_format_dxtn_pack = (util_format_dxtn_pack_t) + util_dl_get_proc_address(library, "tx_compress_dxtn"); + + if (util_format_dxt1_rgb_fetch || + util_format_dxt1_rgba_fetch || + util_format_dxt3_rgba_fetch || + util_format_dxt5_rgba_fetch || + util_format_dxtn_pack) { + util_format_s3tc_enabled = TRUE; + debug_printf("software DXTn compression/decompression available"); + + } else { + debug_printf("couldn't reference all symbols in " + DXTN_LIBNAME ", software DXTn compression/decompression " + "unavailable"); + } + } + } } @@ -167,69 +97,85 @@ util_format_s3tc_do_init(void) void util_format_dxt1_rgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - util_format_dxt1_rgb_fetch(0, src, i, j, dst); + if (util_format_dxt1_rgb_fetch) { + util_format_dxt1_rgb_fetch(0, src, i, j, dst); + } } void util_format_dxt1_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - util_format_dxt1_rgba_fetch(0, src, i, j, dst); + if (util_format_dxt1_rgba_fetch) { + util_format_dxt1_rgba_fetch(0, src, i, j, dst); + } } void util_format_dxt3_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - util_format_dxt3_rgba_fetch(0, src, i, j, dst); + if (util_format_dxt3_rgba_fetch) { + util_format_dxt3_rgba_fetch(0, src, i, j, dst); + } } void util_format_dxt5_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - util_format_dxt5_rgba_fetch(0, src, i, j, dst); + if (util_format_dxt5_rgba_fetch) { + util_format_dxt5_rgba_fetch(0, src, i, j, dst); + } } void util_format_dxt1_rgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - uint8_t tmp[4]; - util_format_dxt1_rgb_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = 1.0; + if (util_format_dxt1_rgb_fetch) { + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; + } } void util_format_dxt1_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - uint8_t tmp[4]; - util_format_dxt1_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); + if (util_format_dxt1_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } } void util_format_dxt3_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - uint8_t tmp[4]; - util_format_dxt3_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); + if (util_format_dxt3_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } } void util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - uint8_t tmp[4]; - util_format_dxt5_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); + if (util_format_dxt5_rgba_fetch) { + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); + } } @@ -240,7 +186,7 @@ util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, un void util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt1_rgb_fetch)) { + if (util_format_dxt1_rgb_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -261,7 +207,7 @@ util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt1_rgba_fetch)) { + if (util_format_dxt1_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -282,7 +228,7 @@ util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt3_rgba_fetch)) { + if (util_format_dxt3_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -303,7 +249,7 @@ util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (is_nop(util_format_dxt5_rgba_fetch)) { + if (util_format_dxt5_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -324,7 +270,7 @@ util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const void util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (is_nop(util_format_dxt1_rgb_fetch)) { + if (util_format_dxt1_rgb_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -350,7 +296,7 @@ util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uin void util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt1_rgba_fetch)) { + if (util_format_dxt1_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -376,7 +322,7 @@ util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt3_rgba_fetch)) { + if (util_format_dxt3_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -402,7 +348,7 @@ util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxt5_rgba_fetch)) { + if (util_format_dxt5_rgba_fetch) { unsigned x, y, i, j; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -433,7 +379,7 @@ util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -460,7 +406,7 @@ util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -487,7 +433,7 @@ util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -514,7 +460,7 @@ util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const uint8_t *src = src_row; @@ -541,7 +487,7 @@ util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const u void util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -568,7 +514,7 @@ util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const flo void util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -595,7 +541,7 @@ util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const fl void util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; @@ -622,7 +568,7 @@ util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const fl void util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (!is_nop(util_format_dxtn_pack)) { + if (util_format_dxtn_pack) { unsigned x, y, i, j, k; for(y = 0; y < height; y += 4) { const float *src = src_row; diff --git a/src/gallium/auxiliary/util/u_format_s3tc.h b/src/gallium/auxiliary/util/u_format_s3tc.h index da14b9b93a..5c3a9dd22c 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.h +++ b/src/gallium/auxiliary/util/u_format_s3tc.h @@ -31,7 +31,6 @@ #include "pipe/p_compiler.h" -#include "util/u_inline_init.h" enum util_format_dxtn { @@ -66,7 +65,8 @@ extern util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch; extern util_format_dxtn_pack_t util_format_dxtn_pack; -UTIL_INLINE_INIT(util_format_s3tc) +void +util_format_s3tc_init(void); void diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py index 2c0c9bffee..94a4331b15 100755 --- a/src/gallium/auxiliary/util/u_format_table.py +++ b/src/gallium/auxiliary/util/u_format_table.py @@ -92,7 +92,7 @@ def write_format_table(formats): u_format_pack.generate(formats) for format in formats: - print 'struct util_format_description' + print 'const struct util_format_description' print 'util_format_%s_description = {' % (format.short_name(),) print " %s," % (format.name,) print " \"%s\"," % (format.name,) @@ -103,7 +103,6 @@ def write_format_table(formats): print " %s,\t/* is_array */" % (bool_map(format.is_array()),) print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),) print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),) - print " %s,\t/* is_supported */" % ("TRUE" if u_format_pack.is_format_supported(format) else "FALSE",) print " {" for i in range(4): channel = format.channels[i] diff --git a/src/gallium/auxiliary/util/u_inline_init.h b/src/gallium/auxiliary/util/u_inline_init.h deleted file mode 100644 index 2a1e775ed8..0000000000 --- a/src/gallium/auxiliary/util/u_inline_init.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef U_INLINE_INIT_H_ -#define U_INLINE_INIT_H_ - -#define UTIL_INLINE_INIT(m) \ - extern boolean m##_inited; \ - extern void m##_do_init(void); \ - static INLINE void m##_init(void) \ - { \ - if(!m##_inited) { \ - m##_do_init(); \ - m##_inited = TRUE; \ - } \ - } - -#endif /* U_INLINE_INIT_H_ */ diff --git a/src/gallium/drivers/nv50/nv50_context.c b/src/gallium/drivers/nv50/nv50_context.c index 92b194a8f8..aa14e17872 100644 --- a/src/gallium/drivers/nv50/nv50_context.c +++ b/src/gallium/drivers/nv50/nv50_context.c @@ -22,7 +22,6 @@ #include "draw/draw_context.h" #include "pipe/p_defines.h" -#include "util/u_format.h" #include "nv50_context.h" #include "nv50_screen.h" diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index ddc53b336f..be64048abf 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -27,7 +27,6 @@ #include "util/u_memory.h" -#include "util/u_format.h" #include "util/u_format_s3tc.h" #include "pipe/p_defines.h" #include "pipe/p_screen.h" @@ -156,9 +155,25 @@ softpipe_is_format_supported( struct pipe_screen *screen, target == PIPE_TEXTURE_3D || target == PIPE_TEXTURE_CUBE); - if(!util_format_is_supported(format)) + switch(format) { + case PIPE_FORMAT_YUYV: + case PIPE_FORMAT_UYVY: return FALSE; + case PIPE_FORMAT_DXT1_RGB: + case PIPE_FORMAT_DXT1_RGBA: + case PIPE_FORMAT_DXT3_RGBA: + case PIPE_FORMAT_DXT5_RGBA: + return util_format_s3tc_enabled; + + case PIPE_FORMAT_Z32_FLOAT: + case PIPE_FORMAT_NONE: + return FALSE; + + default: + break; + } + if(tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET | PIPE_TEXTURE_USAGE_SCANOUT | PIPE_TEXTURE_USAGE_SHARED)) { @@ -166,6 +181,8 @@ softpipe_is_format_supported( struct pipe_screen *screen, return FALSE; } + /* XXX: this is often a lie. Pull in logic from llvmpipe to fix. + */ return TRUE; } @@ -224,6 +241,8 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; + util_format_s3tc_init(); + softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); softpipe_init_screen_fence_funcs(&screen->base); -- cgit v1.2.3 From 073bae1ce441d175fd1ab60bcdef2cabe3074e00 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 3 Apr 2010 12:17:57 +1000 Subject: r300 compiler: add target output debugging. print the output target in the FP debug. Signed-off-by: Dave Airlie --- src/mesa/drivers/dri/r300/compiler/r500_fragprog.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c index b0fb8e970b..b78d7d5715 100644 --- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c @@ -433,19 +433,20 @@ void r500FragmentProgramDump(struct rX00_fragment_program_code *c) (inst >> 30)); fprintf(stderr,"\t3 RGB_INST: 0x%08x:", code->inst[n].inst3); inst = code->inst[n].inst3; - fprintf(stderr,"rgb_A_src:%d %s/%s/%s %d rgb_B_src:%d %s/%s/%s %d\n", + fprintf(stderr,"rgb_A_src:%d %s/%s/%s %d rgb_B_src:%d %s/%s/%s %d targ: %d\n", (inst) & 0x3, toswiz((inst >> 2) & 0x7), toswiz((inst >> 5) & 0x7), toswiz((inst >> 8) & 0x7), (inst >> 11) & 0x3, (inst >> 13) & 0x3, toswiz((inst >> 15) & 0x7), toswiz((inst >> 18) & 0x7), toswiz((inst >> 21) & 0x7), - (inst >> 24) & 0x3); + (inst >> 24) & 0x3, (inst >> 29) & 0x3); fprintf(stderr,"\t4 ALPHA_INST:0x%08x:", code->inst[n].inst4); inst = code->inst[n].inst4; - fprintf(stderr,"%s dest:%d%s alp_A_src:%d %s %d alp_B_src:%d %s %d w:%d\n", to_alpha_op(inst & 0xf), + fprintf(stderr,"%s dest:%d%s alp_A_src:%d %s %d alp_B_src:%d %s %d targ %d w:%d\n", to_alpha_op(inst & 0xf), (inst >> 4) & 0x7f, inst & (1<<11) ? "(rel)":"", (inst >> 12) & 0x3, toswiz((inst >> 14) & 0x7), (inst >> 17) & 0x3, (inst >> 19) & 0x3, toswiz((inst >> 21) & 0x7), (inst >> 24) & 0x3, + (inst >> 29) & 0x3, (inst >> 31) & 0x1); fprintf(stderr,"\t5 RGBA_INST: 0x%08x:", code->inst[n].inst5); -- cgit v1.2.3 From d661931fbc6fc14cfa11fb72611aefbc5fc86288 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:32:52 -0600 Subject: glapi: fix error message --- src/mesa/glapi/gen/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/glapi/gen/Makefile b/src/mesa/glapi/gen/Makefile index 8aa74ce434..4daba7d994 100644 --- a/src/mesa/glapi/gen/Makefile +++ b/src/mesa/glapi/gen/Makefile @@ -103,7 +103,7 @@ xorg: check-xorg-source $(XORG_OUTPUTS) check-xorg-source: @if ! test -d $(XORG_GLX_DIR); then \ - echo "ERROR: Must specify path to xserver checkout; set XORG_BASE."; \ + echo "ERROR: Must specify path to xserver/GL/GLX checkout; set XORG_GLX_DIR."; \ exit 1; \ fi -- cgit v1.2.3 From 9bfdd88ac222396fbc72a4a82ff5739422a6300b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:35:56 -0600 Subject: glapi: new EXT_transform_feedback.xml file --- src/mesa/glapi/gen/EXT_transform_feedback.xml | 123 ++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 src/mesa/glapi/gen/EXT_transform_feedback.xml diff --git a/src/mesa/glapi/gen/EXT_transform_feedback.xml b/src/mesa/glapi/gen/EXT_transform_feedback.xml new file mode 100644 index 0000000000..abbed9b25b --- /dev/null +++ b/src/mesa/glapi/gen/EXT_transform_feedback.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 0101507ff0f875c66041c64faa66506da31ac5fe Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:36:30 -0600 Subject: glapi: include/build EXT_transform_feedback.xml --- src/mesa/glapi/gen/Makefile | 1 + src/mesa/glapi/gen/gl_API.xml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/mesa/glapi/gen/Makefile b/src/mesa/glapi/gen/Makefile index 4daba7d994..4ac95a29cb 100644 --- a/src/mesa/glapi/gen/Makefile +++ b/src/mesa/glapi/gen/Makefile @@ -86,6 +86,7 @@ API_XML = \ EXT_packed_depth_stencil.xml \ EXT_provoking_vertex.xml \ EXT_texture_array.xml \ + EXT_transform_feedback.xml \ NV_conditional_render.xml \ OES_EGL_image.xml diff --git a/src/mesa/glapi/gen/gl_API.xml b/src/mesa/glapi/gen/gl_API.xml index 4a4d0d5382..10fdc0e1bb 100644 --- a/src/mesa/glapi/gen/gl_API.xml +++ b/src/mesa/glapi/gen/gl_API.xml @@ -7967,6 +7967,8 @@ + + -- cgit v1.2.3 From d2f5d056d84dec41df2c96734462369e2c4e0137 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:37:30 -0600 Subject: glapi: regenerated files for EXT_transform_feedback --- src/mesa/glapi/glapidispatch.h | 77 +- src/mesa/glapi/glapioffsets.h | 42 +- src/mesa/glapi/glapitable.h | 33 +- src/mesa/glapi/glapitemp.h | 120 +- src/mesa/glapi/glprocs.h | 680 ++++--- src/mesa/main/enums.c | 4345 ++++++++++++++++++++-------------------- src/mesa/main/remap_helper.h | 2707 +++++++++++++------------ src/mesa/sparc/glapi_sparc.S | 41 +- src/mesa/x86-64/glapi_x86-64.S | 447 ++++- src/mesa/x86/glapi_x86.S | 41 +- 10 files changed, 4561 insertions(+), 3972 deletions(-) diff --git a/src/mesa/glapi/glapidispatch.h b/src/mesa/glapi/glapidispatch.h index 7e0f21390f..07bcbd905d 100644 --- a/src/mesa/glapi/glapidispatch.h +++ b/src/mesa/glapi/glapidispatch.h @@ -2446,6 +2446,27 @@ #define CALL_EndConditionalRenderNV(disp, parameters) (*((disp)->EndConditionalRenderNV)) parameters #define GET_EndConditionalRenderNV(disp) ((disp)->EndConditionalRenderNV) #define SET_EndConditionalRenderNV(disp, fn) ((disp)->EndConditionalRenderNV = fn) +#define CALL_BeginTransformFeedbackEXT(disp, parameters) (*((disp)->BeginTransformFeedbackEXT)) parameters +#define GET_BeginTransformFeedbackEXT(disp) ((disp)->BeginTransformFeedbackEXT) +#define SET_BeginTransformFeedbackEXT(disp, fn) ((disp)->BeginTransformFeedbackEXT = fn) +#define CALL_BindBufferBaseEXT(disp, parameters) (*((disp)->BindBufferBaseEXT)) parameters +#define GET_BindBufferBaseEXT(disp) ((disp)->BindBufferBaseEXT) +#define SET_BindBufferBaseEXT(disp, fn) ((disp)->BindBufferBaseEXT = fn) +#define CALL_BindBufferOffsetEXT(disp, parameters) (*((disp)->BindBufferOffsetEXT)) parameters +#define GET_BindBufferOffsetEXT(disp) ((disp)->BindBufferOffsetEXT) +#define SET_BindBufferOffsetEXT(disp, fn) ((disp)->BindBufferOffsetEXT = fn) +#define CALL_BindBufferRangeEXT(disp, parameters) (*((disp)->BindBufferRangeEXT)) parameters +#define GET_BindBufferRangeEXT(disp) ((disp)->BindBufferRangeEXT) +#define SET_BindBufferRangeEXT(disp, fn) ((disp)->BindBufferRangeEXT = fn) +#define CALL_EndTransformFeedbackEXT(disp, parameters) (*((disp)->EndTransformFeedbackEXT)) parameters +#define GET_EndTransformFeedbackEXT(disp) ((disp)->EndTransformFeedbackEXT) +#define SET_EndTransformFeedbackEXT(disp, fn) ((disp)->EndTransformFeedbackEXT = fn) +#define CALL_GetTransformFeedbackVaryingEXT(disp, parameters) (*((disp)->GetTransformFeedbackVaryingEXT)) parameters +#define GET_GetTransformFeedbackVaryingEXT(disp) ((disp)->GetTransformFeedbackVaryingEXT) +#define SET_GetTransformFeedbackVaryingEXT(disp, fn) ((disp)->GetTransformFeedbackVaryingEXT = fn) +#define CALL_TransformFeedbackVaryingsEXT(disp, parameters) (*((disp)->TransformFeedbackVaryingsEXT)) parameters +#define GET_TransformFeedbackVaryingsEXT(disp) ((disp)->TransformFeedbackVaryingsEXT) +#define SET_TransformFeedbackVaryingsEXT(disp, fn) ((disp)->TransformFeedbackVaryingsEXT = fn) #define CALL_ProvokingVertexEXT(disp, parameters) (*((disp)->ProvokingVertexEXT)) parameters #define GET_ProvokingVertexEXT(disp) ((disp)->ProvokingVertexEXT) #define SET_ProvokingVertexEXT(disp, fn) ((disp)->ProvokingVertexEXT = fn) @@ -2488,7 +2509,7 @@ #else -#define driDispatchRemapTable_size 400 +#define driDispatchRemapTable_size 407 extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define AttachShader_remap_index 0 @@ -2878,19 +2899,26 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define IsEnabledIndexedEXT_remap_index 384 #define BeginConditionalRenderNV_remap_index 385 #define EndConditionalRenderNV_remap_index 386 -#define ProvokingVertexEXT_remap_index 387 -#define GetTexParameterPointervAPPLE_remap_index 388 -#define TextureRangeAPPLE_remap_index 389 -#define GetObjectParameterivAPPLE_remap_index 390 -#define ObjectPurgeableAPPLE_remap_index 391 -#define ObjectUnpurgeableAPPLE_remap_index 392 -#define StencilFuncSeparateATI_remap_index 393 -#define ProgramEnvParameters4fvEXT_remap_index 394 -#define ProgramLocalParameters4fvEXT_remap_index 395 -#define GetQueryObjecti64vEXT_remap_index 396 -#define GetQueryObjectui64vEXT_remap_index 397 -#define EGLImageTargetRenderbufferStorageOES_remap_index 398 -#define EGLImageTargetTexture2DOES_remap_index 399 +#define BeginTransformFeedbackEXT_remap_index 387 +#define BindBufferBaseEXT_remap_index 388 +#define BindBufferOffsetEXT_remap_index 389 +#define BindBufferRangeEXT_remap_index 390 +#define EndTransformFeedbackEXT_remap_index 391 +#define GetTransformFeedbackVaryingEXT_remap_index 392 +#define TransformFeedbackVaryingsEXT_remap_index 393 +#define ProvokingVertexEXT_remap_index 394 +#define GetTexParameterPointervAPPLE_remap_index 395 +#define TextureRangeAPPLE_remap_index 396 +#define GetObjectParameterivAPPLE_remap_index 397 +#define ObjectPurgeableAPPLE_remap_index 398 +#define ObjectUnpurgeableAPPLE_remap_index 399 +#define StencilFuncSeparateATI_remap_index 400 +#define ProgramEnvParameters4fvEXT_remap_index 401 +#define ProgramLocalParameters4fvEXT_remap_index 402 +#define GetQueryObjecti64vEXT_remap_index 403 +#define GetQueryObjectui64vEXT_remap_index 404 +#define EGLImageTargetRenderbufferStorageOES_remap_index 405 +#define EGLImageTargetTexture2DOES_remap_index 406 #define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters) #define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index]) @@ -4053,6 +4081,27 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define CALL_EndConditionalRenderNV(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(void)), driDispatchRemapTable[EndConditionalRenderNV_remap_index], parameters) #define GET_EndConditionalRenderNV(disp) GET_by_offset(disp, driDispatchRemapTable[EndConditionalRenderNV_remap_index]) #define SET_EndConditionalRenderNV(disp, fn) SET_by_offset(disp, driDispatchRemapTable[EndConditionalRenderNV_remap_index], fn) +#define CALL_BeginTransformFeedbackEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum)), driDispatchRemapTable[BeginTransformFeedbackEXT_remap_index], parameters) +#define GET_BeginTransformFeedbackEXT(disp) GET_by_offset(disp, driDispatchRemapTable[BeginTransformFeedbackEXT_remap_index]) +#define SET_BeginTransformFeedbackEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[BeginTransformFeedbackEXT_remap_index], fn) +#define CALL_BindBufferBaseEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLuint, GLuint)), driDispatchRemapTable[BindBufferBaseEXT_remap_index], parameters) +#define GET_BindBufferBaseEXT(disp) GET_by_offset(disp, driDispatchRemapTable[BindBufferBaseEXT_remap_index]) +#define SET_BindBufferBaseEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[BindBufferBaseEXT_remap_index], fn) +#define CALL_BindBufferOffsetEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLuint, GLuint, GLintptr)), driDispatchRemapTable[BindBufferOffsetEXT_remap_index], parameters) +#define GET_BindBufferOffsetEXT(disp) GET_by_offset(disp, driDispatchRemapTable[BindBufferOffsetEXT_remap_index]) +#define SET_BindBufferOffsetEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[BindBufferOffsetEXT_remap_index], fn) +#define CALL_BindBufferRangeEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr)), driDispatchRemapTable[BindBufferRangeEXT_remap_index], parameters) +#define GET_BindBufferRangeEXT(disp) GET_by_offset(disp, driDispatchRemapTable[BindBufferRangeEXT_remap_index]) +#define SET_BindBufferRangeEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[BindBufferRangeEXT_remap_index], fn) +#define CALL_EndTransformFeedbackEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(void)), driDispatchRemapTable[EndTransformFeedbackEXT_remap_index], parameters) +#define GET_EndTransformFeedbackEXT(disp) GET_by_offset(disp, driDispatchRemapTable[EndTransformFeedbackEXT_remap_index]) +#define SET_EndTransformFeedbackEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[EndTransformFeedbackEXT_remap_index], fn) +#define CALL_GetTransformFeedbackVaryingEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *)), driDispatchRemapTable[GetTransformFeedbackVaryingEXT_remap_index], parameters) +#define GET_GetTransformFeedbackVaryingEXT(disp) GET_by_offset(disp, driDispatchRemapTable[GetTransformFeedbackVaryingEXT_remap_index]) +#define SET_GetTransformFeedbackVaryingEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[GetTransformFeedbackVaryingEXT_remap_index], fn) +#define CALL_TransformFeedbackVaryingsEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLsizei, const char **, GLenum)), driDispatchRemapTable[TransformFeedbackVaryingsEXT_remap_index], parameters) +#define GET_TransformFeedbackVaryingsEXT(disp) GET_by_offset(disp, driDispatchRemapTable[TransformFeedbackVaryingsEXT_remap_index]) +#define SET_TransformFeedbackVaryingsEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[TransformFeedbackVaryingsEXT_remap_index], fn) #define CALL_ProvokingVertexEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum)), driDispatchRemapTable[ProvokingVertexEXT_remap_index], parameters) #define GET_ProvokingVertexEXT(disp) GET_by_offset(disp, driDispatchRemapTable[ProvokingVertexEXT_remap_index]) #define SET_ProvokingVertexEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[ProvokingVertexEXT_remap_index], fn) diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index 6d7bc2a0fa..abd29fbc48 100644 --- a/src/mesa/glapi/glapioffsets.h +++ b/src/mesa/glapi/glapioffsets.h @@ -829,20 +829,27 @@ #define _gloffset_IsEnabledIndexedEXT 792 #define _gloffset_BeginConditionalRenderNV 793 #define _gloffset_EndConditionalRenderNV 794 -#define _gloffset_ProvokingVertexEXT 795 -#define _gloffset_GetTexParameterPointervAPPLE 796 -#define _gloffset_TextureRangeAPPLE 797 -#define _gloffset_GetObjectParameterivAPPLE 798 -#define _gloffset_ObjectPurgeableAPPLE 799 -#define _gloffset_ObjectUnpurgeableAPPLE 800 -#define _gloffset_StencilFuncSeparateATI 801 -#define _gloffset_ProgramEnvParameters4fvEXT 802 -#define _gloffset_ProgramLocalParameters4fvEXT 803 -#define _gloffset_GetQueryObjecti64vEXT 804 -#define _gloffset_GetQueryObjectui64vEXT 805 -#define _gloffset_EGLImageTargetRenderbufferStorageOES 806 -#define _gloffset_EGLImageTargetTexture2DOES 807 -#define _gloffset_FIRST_DYNAMIC 808 +#define _gloffset_BeginTransformFeedbackEXT 795 +#define _gloffset_BindBufferBaseEXT 796 +#define _gloffset_BindBufferOffsetEXT 797 +#define _gloffset_BindBufferRangeEXT 798 +#define _gloffset_EndTransformFeedbackEXT 799 +#define _gloffset_GetTransformFeedbackVaryingEXT 800 +#define _gloffset_TransformFeedbackVaryingsEXT 801 +#define _gloffset_ProvokingVertexEXT 802 +#define _gloffset_GetTexParameterPointervAPPLE 803 +#define _gloffset_TextureRangeAPPLE 804 +#define _gloffset_GetObjectParameterivAPPLE 805 +#define _gloffset_ObjectPurgeableAPPLE 806 +#define _gloffset_ObjectUnpurgeableAPPLE 807 +#define _gloffset_StencilFuncSeparateATI 808 +#define _gloffset_ProgramEnvParameters4fvEXT 809 +#define _gloffset_ProgramLocalParameters4fvEXT 810 +#define _gloffset_GetQueryObjecti64vEXT 811 +#define _gloffset_GetQueryObjectui64vEXT 812 +#define _gloffset_EGLImageTargetRenderbufferStorageOES 813 +#define _gloffset_EGLImageTargetTexture2DOES 814 +#define _gloffset_FIRST_DYNAMIC 815 #else @@ -1233,6 +1240,13 @@ #define _gloffset_IsEnabledIndexedEXT driDispatchRemapTable[IsEnabledIndexedEXT_remap_index] #define _gloffset_BeginConditionalRenderNV driDispatchRemapTable[BeginConditionalRenderNV_remap_index] #define _gloffset_EndConditionalRenderNV driDispatchRemapTable[EndConditionalRenderNV_remap_index] +#define _gloffset_BeginTransformFeedbackEXT driDispatchRemapTable[BeginTransformFeedbackEXT_remap_index] +#define _gloffset_BindBufferBaseEXT driDispatchRemapTable[BindBufferBaseEXT_remap_index] +#define _gloffset_BindBufferOffsetEXT driDispatchRemapTable[BindBufferOffsetEXT_remap_index] +#define _gloffset_BindBufferRangeEXT driDispatchRemapTable[BindBufferRangeEXT_remap_index] +#define _gloffset_EndTransformFeedbackEXT driDispatchRemapTable[EndTransformFeedbackEXT_remap_index] +#define _gloffset_GetTransformFeedbackVaryingEXT driDispatchRemapTable[GetTransformFeedbackVaryingEXT_remap_index] +#define _gloffset_TransformFeedbackVaryingsEXT driDispatchRemapTable[TransformFeedbackVaryingsEXT_remap_index] #define _gloffset_ProvokingVertexEXT driDispatchRemapTable[ProvokingVertexEXT_remap_index] #define _gloffset_GetTexParameterPointervAPPLE driDispatchRemapTable[GetTexParameterPointervAPPLE_remap_index] #define _gloffset_TextureRangeAPPLE driDispatchRemapTable[TextureRangeAPPLE_remap_index] diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 149ff3f3c4..317c64de00 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -835,19 +835,26 @@ struct _glapi_table GLboolean (GLAPIENTRYP IsEnabledIndexedEXT)(GLenum target, GLuint index); /* 792 */ void (GLAPIENTRYP BeginConditionalRenderNV)(GLuint query, GLenum mode); /* 793 */ void (GLAPIENTRYP EndConditionalRenderNV)(void); /* 794 */ - void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 795 */ - void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 796 */ - void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 797 */ - void (GLAPIENTRYP GetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * value); /* 798 */ - GLenum (GLAPIENTRYP ObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 799 */ - GLenum (GLAPIENTRYP ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 800 */ - void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 801 */ - void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 802 */ - void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 803 */ - void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 804 */ - void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 805 */ - void (GLAPIENTRYP EGLImageTargetRenderbufferStorageOES)(GLenum target, GLvoid * writeOffset); /* 806 */ - void (GLAPIENTRYP EGLImageTargetTexture2DOES)(GLenum target, GLvoid * writeOffset); /* 807 */ + void (GLAPIENTRYP BeginTransformFeedbackEXT)(GLenum mode); /* 795 */ + void (GLAPIENTRYP BindBufferBaseEXT)(GLenum target, GLuint index, GLuint buffer); /* 796 */ + void (GLAPIENTRYP BindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); /* 797 */ + void (GLAPIENTRYP BindBufferRangeEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); /* 798 */ + void (GLAPIENTRYP EndTransformFeedbackEXT)(void); /* 799 */ + void (GLAPIENTRYP GetTransformFeedbackVaryingEXT)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); /* 800 */ + void (GLAPIENTRYP TransformFeedbackVaryingsEXT)(GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); /* 801 */ + void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 802 */ + void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 803 */ + void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 804 */ + void (GLAPIENTRYP GetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * value); /* 805 */ + GLenum (GLAPIENTRYP ObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 806 */ + GLenum (GLAPIENTRYP ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 807 */ + void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 808 */ + void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 809 */ + void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 810 */ + void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 811 */ + void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 812 */ + void (GLAPIENTRYP EGLImageTargetRenderbufferStorageOES)(GLenum target, GLvoid * writeOffset); /* 813 */ + void (GLAPIENTRYP EGLImageTargetTexture2DOES)(GLenum target, GLvoid * writeOffset); /* 814 */ }; #endif /* !defined( _GLAPI_TABLE_H_ ) */ diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index ea6b61159d..bd805ca923 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -5553,6 +5553,71 @@ KEYWORD1 void KEYWORD2 NAME(EndConditionalRenderNV)(void) DISPATCH(EndConditionalRenderNV, (), (F, "glEndConditionalRenderNV();\n")); } +KEYWORD1 void KEYWORD2 NAME(BeginTransformFeedbackEXT)(GLenum mode) +{ + DISPATCH(BeginTransformFeedbackEXT, (mode), (F, "glBeginTransformFeedbackEXT(0x%x);\n", mode)); +} + +KEYWORD1 void KEYWORD2 NAME(BeginTransformFeedback)(GLenum mode) +{ + DISPATCH(BeginTransformFeedbackEXT, (mode), (F, "glBeginTransformFeedback(0x%x);\n", mode)); +} + +KEYWORD1 void KEYWORD2 NAME(BindBufferBaseEXT)(GLenum target, GLuint index, GLuint buffer) +{ + DISPATCH(BindBufferBaseEXT, (target, index, buffer), (F, "glBindBufferBaseEXT(0x%x, %d, %d);\n", target, index, buffer)); +} + +KEYWORD1 void KEYWORD2 NAME(BindBufferBase)(GLenum target, GLuint index, GLuint buffer) +{ + DISPATCH(BindBufferBaseEXT, (target, index, buffer), (F, "glBindBufferBase(0x%x, %d, %d);\n", target, index, buffer)); +} + +KEYWORD1 void KEYWORD2 NAME(BindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset) +{ + DISPATCH(BindBufferOffsetEXT, (target, index, buffer, offset), (F, "glBindBufferOffsetEXT(0x%x, %d, %d, %d);\n", target, index, buffer, offset)); +} + +KEYWORD1 void KEYWORD2 NAME(BindBufferRangeEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + DISPATCH(BindBufferRangeEXT, (target, index, buffer, offset, size), (F, "glBindBufferRangeEXT(0x%x, %d, %d, %d, %d);\n", target, index, buffer, offset, size)); +} + +KEYWORD1 void KEYWORD2 NAME(BindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + DISPATCH(BindBufferRangeEXT, (target, index, buffer, offset, size), (F, "glBindBufferRange(0x%x, %d, %d, %d, %d);\n", target, index, buffer, offset, size)); +} + +KEYWORD1 void KEYWORD2 NAME(EndTransformFeedbackEXT)(void) +{ + DISPATCH(EndTransformFeedbackEXT, (), (F, "glEndTransformFeedbackEXT();\n")); +} + +KEYWORD1 void KEYWORD2 NAME(EndTransformFeedback)(void) +{ + DISPATCH(EndTransformFeedbackEXT, (), (F, "glEndTransformFeedback();\n")); +} + +KEYWORD1 void KEYWORD2 NAME(GetTransformFeedbackVaryingEXT)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) +{ + DISPATCH(GetTransformFeedbackVaryingEXT, (program, index, bufSize, length, size, type, name), (F, "glGetTransformFeedbackVaryingEXT(%d, %d, %d, %p, %p, %p, %p);\n", program, index, bufSize, (const void *) length, (const void *) size, (const void *) type, (const void *) name)); +} + +KEYWORD1 void KEYWORD2 NAME(GetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) +{ + DISPATCH(GetTransformFeedbackVaryingEXT, (program, index, bufSize, length, size, type, name), (F, "glGetTransformFeedbackVarying(%d, %d, %d, %p, %p, %p, %p);\n", program, index, bufSize, (const void *) length, (const void *) size, (const void *) type, (const void *) name)); +} + +KEYWORD1 void KEYWORD2 NAME(TransformFeedbackVaryingsEXT)(GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode) +{ + DISPATCH(TransformFeedbackVaryingsEXT, (program, count, varyings, bufferMode), (F, "glTransformFeedbackVaryingsEXT(%d, %d, %p, 0x%x);\n", program, count, (const void *) varyings, bufferMode)); +} + +KEYWORD1 void KEYWORD2 NAME(TransformFeedbackVaryings)(GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode) +{ + DISPATCH(TransformFeedbackVaryingsEXT, (program, count, varyings, bufferMode), (F, "glTransformFeedbackVaryings(%d, %d, %p, 0x%x);\n", program, count, (const void *) varyings, bufferMode)); +} + KEYWORD1 void KEYWORD2 NAME(ProvokingVertexEXT)(GLenum mode) { DISPATCH(ProvokingVertexEXT, (mode), (F, "glProvokingVertexEXT(0x%x);\n", mode)); @@ -5563,16 +5628,16 @@ KEYWORD1 void KEYWORD2 NAME(ProvokingVertex)(GLenum mode) DISPATCH(ProvokingVertexEXT, (mode), (F, "glProvokingVertex(0x%x);\n", mode)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_796)(GLenum target, GLenum pname, GLvoid ** params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLenum pname, GLvoid ** params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_796)(GLenum target, GLenum pname, GLvoid ** params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLenum pname, GLvoid ** params) { DISPATCH(GetTexParameterPointervAPPLE, (target, pname, params), (F, "glGetTexParameterPointervAPPLE(0x%x, 0x%x, %p);\n", target, pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_797)(GLenum target, GLsizei length, GLvoid * pointer); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLenum target, GLsizei length, GLvoid * pointer); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_797)(GLenum target, GLsizei length, GLvoid * pointer) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLenum target, GLsizei length, GLvoid * pointer) { DISPATCH(TextureRangeAPPLE, (target, length, pointer), (F, "glTextureRangeAPPLE(0x%x, %d, %p);\n", target, length, (const void *) pointer)); } @@ -5592,37 +5657,37 @@ KEYWORD1 GLenum KEYWORD2 NAME(ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint RETURN_DISPATCH(ObjectUnpurgeableAPPLE, (objectType, name, option), (F, "glObjectUnpurgeableAPPLE(0x%x, %d, 0x%x);\n", objectType, name, option)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_801)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_808)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_801)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_808)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) { DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_802)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_809)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_802)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_809)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) { DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) { DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLuint id, GLenum pname, GLint64EXT * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLuint id, GLenum pname, GLint64EXT * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLuint id, GLenum pname, GLint64EXT * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLuint id, GLenum pname, GLint64EXT * params) { DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_805)(GLuint id, GLenum pname, GLuint64EXT * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLuint id, GLenum pname, GLuint64EXT * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_805)(GLuint id, GLenum pname, GLuint64EXT * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLuint id, GLenum pname, GLuint64EXT * params) { DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params)); } @@ -6585,17 +6650,24 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(IsEnabledIndexedEXT), TABLE_ENTRY(BeginConditionalRenderNV), TABLE_ENTRY(EndConditionalRenderNV), + TABLE_ENTRY(BeginTransformFeedbackEXT), + TABLE_ENTRY(BindBufferBaseEXT), + TABLE_ENTRY(BindBufferOffsetEXT), + TABLE_ENTRY(BindBufferRangeEXT), + TABLE_ENTRY(EndTransformFeedbackEXT), + TABLE_ENTRY(GetTransformFeedbackVaryingEXT), + TABLE_ENTRY(TransformFeedbackVaryingsEXT), TABLE_ENTRY(ProvokingVertexEXT), - TABLE_ENTRY(_dispatch_stub_796), - TABLE_ENTRY(_dispatch_stub_797), + TABLE_ENTRY(_dispatch_stub_803), + TABLE_ENTRY(_dispatch_stub_804), TABLE_ENTRY(GetObjectParameterivAPPLE), TABLE_ENTRY(ObjectPurgeableAPPLE), TABLE_ENTRY(ObjectUnpurgeableAPPLE), - TABLE_ENTRY(_dispatch_stub_801), - TABLE_ENTRY(_dispatch_stub_802), - TABLE_ENTRY(_dispatch_stub_803), - TABLE_ENTRY(_dispatch_stub_804), - TABLE_ENTRY(_dispatch_stub_805), + TABLE_ENTRY(_dispatch_stub_808), + TABLE_ENTRY(_dispatch_stub_809), + TABLE_ENTRY(_dispatch_stub_810), + TABLE_ENTRY(_dispatch_stub_811), + TABLE_ENTRY(_dispatch_stub_812), TABLE_ENTRY(EGLImageTargetRenderbufferStorageOES), TABLE_ENTRY(EGLImageTargetTexture2DOES), /* A whole bunch of no-op functions. These might be called @@ -6990,6 +7062,12 @@ _glapi_proc UNUSED_TABLE_NAME[] = { TABLE_ENTRY(RenderbufferStorage), TABLE_ENTRY(BlitFramebuffer), TABLE_ENTRY(FramebufferTextureLayer), + TABLE_ENTRY(BeginTransformFeedback), + TABLE_ENTRY(BindBufferBase), + TABLE_ENTRY(BindBufferRange), + TABLE_ENTRY(EndTransformFeedback), + TABLE_ENTRY(GetTransformFeedbackVarying), + TABLE_ENTRY(TransformFeedbackVaryings), TABLE_ENTRY(ProvokingVertex), #endif /* _GLAPI_SKIP_NORMAL_ENTRY_POINTS */ #ifndef _GLAPI_SKIP_PROTO_ENTRY_POINTS diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h index 44861863e6..bdeafb4df5 100644 --- a/src/mesa/glapi/glprocs.h +++ b/src/mesa/glapi/glprocs.h @@ -847,6 +847,13 @@ static const char gl_string_table[] = "glIsEnabledIndexedEXT\0" "glBeginConditionalRenderNV\0" "glEndConditionalRenderNV\0" + "glBeginTransformFeedbackEXT\0" + "glBindBufferBaseEXT\0" + "glBindBufferOffsetEXT\0" + "glBindBufferRangeEXT\0" + "glEndTransformFeedbackEXT\0" + "glGetTransformFeedbackVaryingEXT\0" + "glTransformFeedbackVaryingsEXT\0" "glProvokingVertexEXT\0" "glGetTexParameterPointervAPPLE\0" "glTextureRangeAPPLE\0" @@ -1161,6 +1168,12 @@ static const char gl_string_table[] = "glRenderbufferStorage\0" "glBlitFramebuffer\0" "glFramebufferTextureLayer\0" + "glBeginTransformFeedback\0" + "glBindBufferBase\0" + "glBindBufferRange\0" + "glEndTransformFeedback\0" + "glGetTransformFeedbackVarying\0" + "glTransformFeedbackVaryings\0" "glProvokingVertex\0" ; @@ -1209,13 +1222,13 @@ static const char gl_string_table[] = #define gl_dispatch_stub_783 mgl_dispatch_stub_783 #define gl_dispatch_stub_784 mgl_dispatch_stub_784 #define gl_dispatch_stub_785 mgl_dispatch_stub_785 -#define gl_dispatch_stub_796 mgl_dispatch_stub_796 -#define gl_dispatch_stub_797 mgl_dispatch_stub_797 -#define gl_dispatch_stub_801 mgl_dispatch_stub_801 -#define gl_dispatch_stub_802 mgl_dispatch_stub_802 #define gl_dispatch_stub_803 mgl_dispatch_stub_803 #define gl_dispatch_stub_804 mgl_dispatch_stub_804 -#define gl_dispatch_stub_805 mgl_dispatch_stub_805 +#define gl_dispatch_stub_808 mgl_dispatch_stub_808 +#define gl_dispatch_stub_809 mgl_dispatch_stub_809 +#define gl_dispatch_stub_810 mgl_dispatch_stub_810 +#define gl_dispatch_stub_811 mgl_dispatch_stub_811 +#define gl_dispatch_stub_812 mgl_dispatch_stub_812 #endif /* USE_MGL_NAMESPACE */ @@ -1263,13 +1276,13 @@ void GLAPIENTRY gl_dispatch_stub_765(GLenum modeRGB, GLenum modeA); void GLAPIENTRY gl_dispatch_stub_783(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); void GLAPIENTRY gl_dispatch_stub_784(GLenum target, GLenum pname, GLint param); void GLAPIENTRY gl_dispatch_stub_785(GLenum target, GLintptr offset, GLsizeiptr size); -void GLAPIENTRY gl_dispatch_stub_796(GLenum target, GLenum pname, GLvoid ** params); -void GLAPIENTRY gl_dispatch_stub_797(GLenum target, GLsizei length, GLvoid * pointer); -void GLAPIENTRY gl_dispatch_stub_801(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -void GLAPIENTRY gl_dispatch_stub_802(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_803(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_804(GLuint id, GLenum pname, GLint64EXT * params); -void GLAPIENTRY gl_dispatch_stub_805(GLuint id, GLenum pname, GLuint64EXT * params); +void GLAPIENTRY gl_dispatch_stub_803(GLenum target, GLenum pname, GLvoid ** params); +void GLAPIENTRY gl_dispatch_stub_804(GLenum target, GLsizei length, GLvoid * pointer); +void GLAPIENTRY gl_dispatch_stub_808(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +void GLAPIENTRY gl_dispatch_stub_809(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_810(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_811(GLuint id, GLenum pname, GLint64EXT * params); +void GLAPIENTRY gl_dispatch_stub_812(GLuint id, GLenum pname, GLuint64EXT * params); #endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */ static const glprocs_table_t static_functions[] = { @@ -2068,321 +2081,334 @@ static const glprocs_table_t static_functions[] = { NAME_FUNC_OFFSET(13976, glIsEnabledIndexedEXT, glIsEnabledIndexedEXT, NULL, _gloffset_IsEnabledIndexedEXT), NAME_FUNC_OFFSET(13998, glBeginConditionalRenderNV, glBeginConditionalRenderNV, NULL, _gloffset_BeginConditionalRenderNV), NAME_FUNC_OFFSET(14025, glEndConditionalRenderNV, glEndConditionalRenderNV, NULL, _gloffset_EndConditionalRenderNV), - NAME_FUNC_OFFSET(14050, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), - NAME_FUNC_OFFSET(14071, gl_dispatch_stub_796, gl_dispatch_stub_796, NULL, _gloffset_GetTexParameterPointervAPPLE), - NAME_FUNC_OFFSET(14102, gl_dispatch_stub_797, gl_dispatch_stub_797, NULL, _gloffset_TextureRangeAPPLE), - NAME_FUNC_OFFSET(14122, glGetObjectParameterivAPPLE, glGetObjectParameterivAPPLE, NULL, _gloffset_GetObjectParameterivAPPLE), - NAME_FUNC_OFFSET(14150, glObjectPurgeableAPPLE, glObjectPurgeableAPPLE, NULL, _gloffset_ObjectPurgeableAPPLE), - NAME_FUNC_OFFSET(14173, glObjectUnpurgeableAPPLE, glObjectUnpurgeableAPPLE, NULL, _gloffset_ObjectUnpurgeableAPPLE), - NAME_FUNC_OFFSET(14198, gl_dispatch_stub_801, gl_dispatch_stub_801, NULL, _gloffset_StencilFuncSeparateATI), - NAME_FUNC_OFFSET(14223, gl_dispatch_stub_802, gl_dispatch_stub_802, NULL, _gloffset_ProgramEnvParameters4fvEXT), - NAME_FUNC_OFFSET(14252, gl_dispatch_stub_803, gl_dispatch_stub_803, NULL, _gloffset_ProgramLocalParameters4fvEXT), - NAME_FUNC_OFFSET(14283, gl_dispatch_stub_804, gl_dispatch_stub_804, NULL, _gloffset_GetQueryObjecti64vEXT), - NAME_FUNC_OFFSET(14307, gl_dispatch_stub_805, gl_dispatch_stub_805, NULL, _gloffset_GetQueryObjectui64vEXT), - NAME_FUNC_OFFSET(14332, glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorageOES, NULL, _gloffset_EGLImageTargetRenderbufferStorageOES), - NAME_FUNC_OFFSET(14371, glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2DOES, NULL, _gloffset_EGLImageTargetTexture2DOES), - NAME_FUNC_OFFSET(14400, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement), - NAME_FUNC_OFFSET(14418, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture), - NAME_FUNC_OFFSET(14435, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays), - NAME_FUNC_OFFSET(14451, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident), - NAME_FUNC_OFFSET(14476, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D), - NAME_FUNC_OFFSET(14496, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D), - NAME_FUNC_OFFSET(14516, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D), - NAME_FUNC_OFFSET(14539, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D), - NAME_FUNC_OFFSET(14562, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures), - NAME_FUNC_OFFSET(14582, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures), - NAME_FUNC_OFFSET(14599, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv), - NAME_FUNC_OFFSET(14616, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture), - NAME_FUNC_OFFSET(14631, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures), - NAME_FUNC_OFFSET(14655, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D), - NAME_FUNC_OFFSET(14674, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D), - NAME_FUNC_OFFSET(14693, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor), - NAME_FUNC_OFFSET(14709, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation), - NAME_FUNC_OFFSET(14728, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements), - NAME_FUNC_OFFSET(14751, glColorTable, glColorTable, NULL, _gloffset_ColorTable), - NAME_FUNC_OFFSET(14767, glColorTable, glColorTable, NULL, _gloffset_ColorTable), - NAME_FUNC_OFFSET(14783, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv), - NAME_FUNC_OFFSET(14810, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv), - NAME_FUNC_OFFSET(14837, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable), - NAME_FUNC_OFFSET(14857, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), - NAME_FUNC_OFFSET(14876, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), - NAME_FUNC_OFFSET(14895, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), - NAME_FUNC_OFFSET(14925, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), - NAME_FUNC_OFFSET(14955, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), - NAME_FUNC_OFFSET(14985, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), - NAME_FUNC_OFFSET(15015, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable), - NAME_FUNC_OFFSET(15034, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable), - NAME_FUNC_OFFSET(15057, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D), - NAME_FUNC_OFFSET(15082, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D), - NAME_FUNC_OFFSET(15107, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf), - NAME_FUNC_OFFSET(15134, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv), - NAME_FUNC_OFFSET(15162, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri), - NAME_FUNC_OFFSET(15189, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv), - NAME_FUNC_OFFSET(15217, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D), - NAME_FUNC_OFFSET(15246, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D), - NAME_FUNC_OFFSET(15275, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter), - NAME_FUNC_OFFSET(15301, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv), - NAME_FUNC_OFFSET(15332, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv), - NAME_FUNC_OFFSET(15363, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter), - NAME_FUNC_OFFSET(15387, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D), - NAME_FUNC_OFFSET(15410, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram), - NAME_FUNC_OFFSET(15428, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv), - NAME_FUNC_OFFSET(15457, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv), - NAME_FUNC_OFFSET(15486, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax), - NAME_FUNC_OFFSET(15501, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv), - NAME_FUNC_OFFSET(15527, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv), - NAME_FUNC_OFFSET(15553, glHistogram, glHistogram, NULL, _gloffset_Histogram), - NAME_FUNC_OFFSET(15568, glMinmax, glMinmax, NULL, _gloffset_Minmax), - NAME_FUNC_OFFSET(15580, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram), - NAME_FUNC_OFFSET(15600, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax), - NAME_FUNC_OFFSET(15617, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D), - NAME_FUNC_OFFSET(15633, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D), - NAME_FUNC_OFFSET(15652, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D), - NAME_FUNC_OFFSET(15675, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB), - NAME_FUNC_OFFSET(15691, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB), - NAME_FUNC_OFFSET(15713, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB), - NAME_FUNC_OFFSET(15731, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB), - NAME_FUNC_OFFSET(15750, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB), - NAME_FUNC_OFFSET(15768, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB), - NAME_FUNC_OFFSET(15787, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB), - NAME_FUNC_OFFSET(15805, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB), - NAME_FUNC_OFFSET(15824, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB), - NAME_FUNC_OFFSET(15842, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB), - NAME_FUNC_OFFSET(15861, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB), - NAME_FUNC_OFFSET(15879, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB), - NAME_FUNC_OFFSET(15898, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB), - NAME_FUNC_OFFSET(15916, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB), - NAME_FUNC_OFFSET(15935, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB), - NAME_FUNC_OFFSET(15953, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB), - NAME_FUNC_OFFSET(15972, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB), - NAME_FUNC_OFFSET(15990, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB), - NAME_FUNC_OFFSET(16009, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB), - NAME_FUNC_OFFSET(16027, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB), - NAME_FUNC_OFFSET(16046, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB), - NAME_FUNC_OFFSET(16064, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB), - NAME_FUNC_OFFSET(16083, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB), - NAME_FUNC_OFFSET(16101, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB), - NAME_FUNC_OFFSET(16120, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB), - NAME_FUNC_OFFSET(16138, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB), - NAME_FUNC_OFFSET(16157, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB), - NAME_FUNC_OFFSET(16175, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB), - NAME_FUNC_OFFSET(16194, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB), - NAME_FUNC_OFFSET(16212, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB), - NAME_FUNC_OFFSET(16231, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB), - NAME_FUNC_OFFSET(16249, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB), - NAME_FUNC_OFFSET(16268, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB), - NAME_FUNC_OFFSET(16286, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB), - NAME_FUNC_OFFSET(16305, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate), - NAME_FUNC_OFFSET(16328, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), - NAME_FUNC_OFFSET(16351, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), - NAME_FUNC_OFFSET(16374, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), - NAME_FUNC_OFFSET(16397, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), - NAME_FUNC_OFFSET(16420, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), - NAME_FUNC_OFFSET(16437, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), - NAME_FUNC_OFFSET(16460, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), - NAME_FUNC_OFFSET(16483, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), - NAME_FUNC_OFFSET(16506, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), - NAME_FUNC_OFFSET(16532, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), - NAME_FUNC_OFFSET(16558, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), - NAME_FUNC_OFFSET(16584, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), - NAME_FUNC_OFFSET(16608, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), - NAME_FUNC_OFFSET(16635, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), - NAME_FUNC_OFFSET(16661, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), - NAME_FUNC_OFFSET(16681, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), - NAME_FUNC_OFFSET(16701, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), - NAME_FUNC_OFFSET(16721, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), - NAME_FUNC_OFFSET(16744, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), - NAME_FUNC_OFFSET(16768, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), - NAME_FUNC_OFFSET(16791, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), - NAME_FUNC_OFFSET(16815, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), - NAME_FUNC_OFFSET(16832, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), - NAME_FUNC_OFFSET(16850, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), - NAME_FUNC_OFFSET(16867, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), - NAME_FUNC_OFFSET(16885, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), - NAME_FUNC_OFFSET(16902, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), - NAME_FUNC_OFFSET(16920, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), - NAME_FUNC_OFFSET(16937, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), - NAME_FUNC_OFFSET(16955, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), - NAME_FUNC_OFFSET(16972, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), - NAME_FUNC_OFFSET(16990, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), - NAME_FUNC_OFFSET(17007, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), - NAME_FUNC_OFFSET(17025, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), - NAME_FUNC_OFFSET(17042, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), - NAME_FUNC_OFFSET(17060, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), - NAME_FUNC_OFFSET(17077, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), - NAME_FUNC_OFFSET(17095, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), - NAME_FUNC_OFFSET(17112, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), - NAME_FUNC_OFFSET(17130, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), - NAME_FUNC_OFFSET(17149, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), - NAME_FUNC_OFFSET(17168, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), - NAME_FUNC_OFFSET(17187, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), - NAME_FUNC_OFFSET(17206, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), - NAME_FUNC_OFFSET(17226, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), - NAME_FUNC_OFFSET(17246, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), - NAME_FUNC_OFFSET(17266, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), - NAME_FUNC_OFFSET(17284, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), - NAME_FUNC_OFFSET(17301, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), - NAME_FUNC_OFFSET(17319, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), - NAME_FUNC_OFFSET(17336, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), - NAME_FUNC_OFFSET(17354, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), - NAME_FUNC_OFFSET(17372, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), - NAME_FUNC_OFFSET(17389, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), - NAME_FUNC_OFFSET(17407, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), - NAME_FUNC_OFFSET(17426, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), - NAME_FUNC_OFFSET(17445, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), - NAME_FUNC_OFFSET(17464, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), - NAME_FUNC_OFFSET(17486, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), - NAME_FUNC_OFFSET(17499, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), - NAME_FUNC_OFFSET(17512, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), - NAME_FUNC_OFFSET(17528, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), - NAME_FUNC_OFFSET(17544, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), - NAME_FUNC_OFFSET(17557, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), - NAME_FUNC_OFFSET(17580, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), - NAME_FUNC_OFFSET(17600, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), - NAME_FUNC_OFFSET(17619, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), - NAME_FUNC_OFFSET(17630, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), - NAME_FUNC_OFFSET(17642, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), - NAME_FUNC_OFFSET(17656, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), - NAME_FUNC_OFFSET(17669, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), - NAME_FUNC_OFFSET(17685, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), - NAME_FUNC_OFFSET(17696, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), - NAME_FUNC_OFFSET(17709, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), - NAME_FUNC_OFFSET(17728, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), - NAME_FUNC_OFFSET(17748, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), - NAME_FUNC_OFFSET(17761, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), - NAME_FUNC_OFFSET(17771, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), - NAME_FUNC_OFFSET(17787, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), - NAME_FUNC_OFFSET(17806, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), - NAME_FUNC_OFFSET(17824, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), - NAME_FUNC_OFFSET(17845, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), - NAME_FUNC_OFFSET(17860, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), - NAME_FUNC_OFFSET(17875, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), - NAME_FUNC_OFFSET(17889, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), - NAME_FUNC_OFFSET(17904, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), - NAME_FUNC_OFFSET(17916, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), - NAME_FUNC_OFFSET(17929, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), - NAME_FUNC_OFFSET(17941, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), - NAME_FUNC_OFFSET(17954, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), - NAME_FUNC_OFFSET(17966, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), - NAME_FUNC_OFFSET(17979, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), - NAME_FUNC_OFFSET(17991, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), - NAME_FUNC_OFFSET(18004, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), - NAME_FUNC_OFFSET(18016, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), - NAME_FUNC_OFFSET(18029, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), - NAME_FUNC_OFFSET(18041, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), - NAME_FUNC_OFFSET(18054, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), - NAME_FUNC_OFFSET(18066, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), - NAME_FUNC_OFFSET(18079, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), - NAME_FUNC_OFFSET(18091, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), - NAME_FUNC_OFFSET(18104, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), - NAME_FUNC_OFFSET(18123, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), - NAME_FUNC_OFFSET(18142, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), - NAME_FUNC_OFFSET(18161, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), - NAME_FUNC_OFFSET(18174, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), - NAME_FUNC_OFFSET(18192, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), - NAME_FUNC_OFFSET(18213, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), - NAME_FUNC_OFFSET(18231, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), - NAME_FUNC_OFFSET(18251, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), - NAME_FUNC_OFFSET(18265, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), - NAME_FUNC_OFFSET(18282, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), - NAME_FUNC_OFFSET(18318, gl_dispatch_stub_584, gl_dispatch_stub_584, NULL, _gloffset_SampleMaskSGIS), - NAME_FUNC_OFFSET(18334, gl_dispatch_stub_585, gl_dispatch_stub_585, NULL, _gloffset_SamplePatternSGIS), - NAME_FUNC_OFFSET(18353, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18371, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18392, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18414, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18433, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18455, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18478, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), - NAME_FUNC_OFFSET(18497, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), - NAME_FUNC_OFFSET(18517, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), - NAME_FUNC_OFFSET(18536, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), - NAME_FUNC_OFFSET(18556, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), - NAME_FUNC_OFFSET(18575, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), - NAME_FUNC_OFFSET(18595, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), - NAME_FUNC_OFFSET(18614, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), - NAME_FUNC_OFFSET(18634, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), - NAME_FUNC_OFFSET(18653, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), - NAME_FUNC_OFFSET(18673, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), - NAME_FUNC_OFFSET(18693, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), - NAME_FUNC_OFFSET(18714, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), - NAME_FUNC_OFFSET(18734, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), - NAME_FUNC_OFFSET(18755, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), - NAME_FUNC_OFFSET(18775, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), - NAME_FUNC_OFFSET(18796, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), - NAME_FUNC_OFFSET(18820, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), - NAME_FUNC_OFFSET(18838, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), - NAME_FUNC_OFFSET(18858, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), - NAME_FUNC_OFFSET(18876, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), - NAME_FUNC_OFFSET(18888, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), - NAME_FUNC_OFFSET(18901, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), - NAME_FUNC_OFFSET(18913, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), - NAME_FUNC_OFFSET(18926, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), - NAME_FUNC_OFFSET(18946, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), - NAME_FUNC_OFFSET(18970, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), - NAME_FUNC_OFFSET(18984, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), - NAME_FUNC_OFFSET(19001, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), - NAME_FUNC_OFFSET(19016, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), - NAME_FUNC_OFFSET(19034, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), - NAME_FUNC_OFFSET(19048, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), - NAME_FUNC_OFFSET(19065, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), - NAME_FUNC_OFFSET(19080, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), - NAME_FUNC_OFFSET(19098, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), - NAME_FUNC_OFFSET(19112, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), - NAME_FUNC_OFFSET(19129, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), - NAME_FUNC_OFFSET(19144, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), - NAME_FUNC_OFFSET(19162, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), - NAME_FUNC_OFFSET(19176, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), - NAME_FUNC_OFFSET(19193, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), - NAME_FUNC_OFFSET(19208, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), - NAME_FUNC_OFFSET(19226, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), - NAME_FUNC_OFFSET(19240, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), - NAME_FUNC_OFFSET(19257, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), - NAME_FUNC_OFFSET(19272, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), - NAME_FUNC_OFFSET(19290, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), - NAME_FUNC_OFFSET(19304, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), - NAME_FUNC_OFFSET(19321, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), - NAME_FUNC_OFFSET(19336, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), - NAME_FUNC_OFFSET(19354, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), - NAME_FUNC_OFFSET(19368, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), - NAME_FUNC_OFFSET(19385, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), - NAME_FUNC_OFFSET(19400, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), - NAME_FUNC_OFFSET(19418, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), - NAME_FUNC_OFFSET(19432, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), - NAME_FUNC_OFFSET(19449, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), - NAME_FUNC_OFFSET(19464, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), - NAME_FUNC_OFFSET(19482, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), - NAME_FUNC_OFFSET(19499, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), - NAME_FUNC_OFFSET(19519, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), - NAME_FUNC_OFFSET(19536, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), - NAME_FUNC_OFFSET(19562, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), - NAME_FUNC_OFFSET(19591, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), - NAME_FUNC_OFFSET(19606, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), - NAME_FUNC_OFFSET(19624, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), - NAME_FUNC_OFFSET(19643, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_DeleteVertexArraysAPPLE), - NAME_FUNC_OFFSET(19664, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_IsVertexArrayAPPLE), - NAME_FUNC_OFFSET(19680, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), - NAME_FUNC_OFFSET(19704, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), - NAME_FUNC_OFFSET(19731, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), - NAME_FUNC_OFFSET(19749, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), - NAME_FUNC_OFFSET(19768, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), - NAME_FUNC_OFFSET(19793, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), - NAME_FUNC_OFFSET(19814, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), - NAME_FUNC_OFFSET(19836, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), - NAME_FUNC_OFFSET(19862, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), - NAME_FUNC_OFFSET(19885, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), - NAME_FUNC_OFFSET(19908, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), - NAME_FUNC_OFFSET(19931, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), - NAME_FUNC_OFFSET(19949, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), - NAME_FUNC_OFFSET(19968, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), - NAME_FUNC_OFFSET(19985, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), - NAME_FUNC_OFFSET(20023, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), - NAME_FUNC_OFFSET(20052, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), - NAME_FUNC_OFFSET(20068, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), - NAME_FUNC_OFFSET(20085, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), - NAME_FUNC_OFFSET(20107, gl_dispatch_stub_783, gl_dispatch_stub_783, NULL, _gloffset_BlitFramebufferEXT), - NAME_FUNC_OFFSET(20125, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), - NAME_FUNC_OFFSET(20151, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), + NAME_FUNC_OFFSET(14050, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), + NAME_FUNC_OFFSET(14078, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), + NAME_FUNC_OFFSET(14098, glBindBufferOffsetEXT, glBindBufferOffsetEXT, NULL, _gloffset_BindBufferOffsetEXT), + NAME_FUNC_OFFSET(14120, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), + NAME_FUNC_OFFSET(14141, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), + NAME_FUNC_OFFSET(14167, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), + NAME_FUNC_OFFSET(14200, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), + NAME_FUNC_OFFSET(14231, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), + NAME_FUNC_OFFSET(14252, gl_dispatch_stub_803, gl_dispatch_stub_803, NULL, _gloffset_GetTexParameterPointervAPPLE), + NAME_FUNC_OFFSET(14283, gl_dispatch_stub_804, gl_dispatch_stub_804, NULL, _gloffset_TextureRangeAPPLE), + NAME_FUNC_OFFSET(14303, glGetObjectParameterivAPPLE, glGetObjectParameterivAPPLE, NULL, _gloffset_GetObjectParameterivAPPLE), + NAME_FUNC_OFFSET(14331, glObjectPurgeableAPPLE, glObjectPurgeableAPPLE, NULL, _gloffset_ObjectPurgeableAPPLE), + NAME_FUNC_OFFSET(14354, glObjectUnpurgeableAPPLE, glObjectUnpurgeableAPPLE, NULL, _gloffset_ObjectUnpurgeableAPPLE), + NAME_FUNC_OFFSET(14379, gl_dispatch_stub_808, gl_dispatch_stub_808, NULL, _gloffset_StencilFuncSeparateATI), + NAME_FUNC_OFFSET(14404, gl_dispatch_stub_809, gl_dispatch_stub_809, NULL, _gloffset_ProgramEnvParameters4fvEXT), + NAME_FUNC_OFFSET(14433, gl_dispatch_stub_810, gl_dispatch_stub_810, NULL, _gloffset_ProgramLocalParameters4fvEXT), + NAME_FUNC_OFFSET(14464, gl_dispatch_stub_811, gl_dispatch_stub_811, NULL, _gloffset_GetQueryObjecti64vEXT), + NAME_FUNC_OFFSET(14488, gl_dispatch_stub_812, gl_dispatch_stub_812, NULL, _gloffset_GetQueryObjectui64vEXT), + NAME_FUNC_OFFSET(14513, glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorageOES, NULL, _gloffset_EGLImageTargetRenderbufferStorageOES), + NAME_FUNC_OFFSET(14552, glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2DOES, NULL, _gloffset_EGLImageTargetTexture2DOES), + NAME_FUNC_OFFSET(14581, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement), + NAME_FUNC_OFFSET(14599, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture), + NAME_FUNC_OFFSET(14616, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays), + NAME_FUNC_OFFSET(14632, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident), + NAME_FUNC_OFFSET(14657, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D), + NAME_FUNC_OFFSET(14677, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D), + NAME_FUNC_OFFSET(14697, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D), + NAME_FUNC_OFFSET(14720, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D), + NAME_FUNC_OFFSET(14743, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures), + NAME_FUNC_OFFSET(14763, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures), + NAME_FUNC_OFFSET(14780, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv), + NAME_FUNC_OFFSET(14797, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture), + NAME_FUNC_OFFSET(14812, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures), + NAME_FUNC_OFFSET(14836, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D), + NAME_FUNC_OFFSET(14855, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D), + NAME_FUNC_OFFSET(14874, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor), + NAME_FUNC_OFFSET(14890, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation), + NAME_FUNC_OFFSET(14909, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements), + NAME_FUNC_OFFSET(14932, glColorTable, glColorTable, NULL, _gloffset_ColorTable), + NAME_FUNC_OFFSET(14948, glColorTable, glColorTable, NULL, _gloffset_ColorTable), + NAME_FUNC_OFFSET(14964, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv), + NAME_FUNC_OFFSET(14991, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv), + NAME_FUNC_OFFSET(15018, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable), + NAME_FUNC_OFFSET(15038, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), + NAME_FUNC_OFFSET(15057, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), + NAME_FUNC_OFFSET(15076, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), + NAME_FUNC_OFFSET(15106, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), + NAME_FUNC_OFFSET(15136, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), + NAME_FUNC_OFFSET(15166, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), + NAME_FUNC_OFFSET(15196, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable), + NAME_FUNC_OFFSET(15215, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable), + NAME_FUNC_OFFSET(15238, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D), + NAME_FUNC_OFFSET(15263, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D), + NAME_FUNC_OFFSET(15288, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf), + NAME_FUNC_OFFSET(15315, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv), + NAME_FUNC_OFFSET(15343, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri), + NAME_FUNC_OFFSET(15370, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv), + NAME_FUNC_OFFSET(15398, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D), + NAME_FUNC_OFFSET(15427, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D), + NAME_FUNC_OFFSET(15456, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter), + NAME_FUNC_OFFSET(15482, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv), + NAME_FUNC_OFFSET(15513, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv), + NAME_FUNC_OFFSET(15544, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter), + NAME_FUNC_OFFSET(15568, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D), + NAME_FUNC_OFFSET(15591, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram), + NAME_FUNC_OFFSET(15609, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv), + NAME_FUNC_OFFSET(15638, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv), + NAME_FUNC_OFFSET(15667, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax), + NAME_FUNC_OFFSET(15682, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv), + NAME_FUNC_OFFSET(15708, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv), + NAME_FUNC_OFFSET(15734, glHistogram, glHistogram, NULL, _gloffset_Histogram), + NAME_FUNC_OFFSET(15749, glMinmax, glMinmax, NULL, _gloffset_Minmax), + NAME_FUNC_OFFSET(15761, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram), + NAME_FUNC_OFFSET(15781, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax), + NAME_FUNC_OFFSET(15798, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D), + NAME_FUNC_OFFSET(15814, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D), + NAME_FUNC_OFFSET(15833, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D), + NAME_FUNC_OFFSET(15856, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB), + NAME_FUNC_OFFSET(15872, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB), + NAME_FUNC_OFFSET(15894, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB), + NAME_FUNC_OFFSET(15912, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB), + NAME_FUNC_OFFSET(15931, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB), + NAME_FUNC_OFFSET(15949, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB), + NAME_FUNC_OFFSET(15968, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB), + NAME_FUNC_OFFSET(15986, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB), + NAME_FUNC_OFFSET(16005, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB), + NAME_FUNC_OFFSET(16023, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB), + NAME_FUNC_OFFSET(16042, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB), + NAME_FUNC_OFFSET(16060, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB), + NAME_FUNC_OFFSET(16079, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB), + NAME_FUNC_OFFSET(16097, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB), + NAME_FUNC_OFFSET(16116, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB), + NAME_FUNC_OFFSET(16134, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB), + NAME_FUNC_OFFSET(16153, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB), + NAME_FUNC_OFFSET(16171, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB), + NAME_FUNC_OFFSET(16190, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB), + NAME_FUNC_OFFSET(16208, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB), + NAME_FUNC_OFFSET(16227, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB), + NAME_FUNC_OFFSET(16245, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB), + NAME_FUNC_OFFSET(16264, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB), + NAME_FUNC_OFFSET(16282, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB), + NAME_FUNC_OFFSET(16301, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB), + NAME_FUNC_OFFSET(16319, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB), + NAME_FUNC_OFFSET(16338, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB), + NAME_FUNC_OFFSET(16356, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB), + NAME_FUNC_OFFSET(16375, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB), + NAME_FUNC_OFFSET(16393, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB), + NAME_FUNC_OFFSET(16412, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB), + NAME_FUNC_OFFSET(16430, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB), + NAME_FUNC_OFFSET(16449, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB), + NAME_FUNC_OFFSET(16467, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB), + NAME_FUNC_OFFSET(16486, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate), + NAME_FUNC_OFFSET(16509, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), + NAME_FUNC_OFFSET(16532, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), + NAME_FUNC_OFFSET(16555, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), + NAME_FUNC_OFFSET(16578, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), + NAME_FUNC_OFFSET(16601, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), + NAME_FUNC_OFFSET(16618, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), + NAME_FUNC_OFFSET(16641, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), + NAME_FUNC_OFFSET(16664, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), + NAME_FUNC_OFFSET(16687, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), + NAME_FUNC_OFFSET(16713, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), + NAME_FUNC_OFFSET(16739, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), + NAME_FUNC_OFFSET(16765, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), + NAME_FUNC_OFFSET(16789, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), + NAME_FUNC_OFFSET(16816, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), + NAME_FUNC_OFFSET(16842, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), + NAME_FUNC_OFFSET(16862, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), + NAME_FUNC_OFFSET(16882, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), + NAME_FUNC_OFFSET(16902, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), + NAME_FUNC_OFFSET(16925, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), + NAME_FUNC_OFFSET(16949, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), + NAME_FUNC_OFFSET(16972, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), + NAME_FUNC_OFFSET(16996, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), + NAME_FUNC_OFFSET(17013, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), + NAME_FUNC_OFFSET(17031, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), + NAME_FUNC_OFFSET(17048, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), + NAME_FUNC_OFFSET(17066, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), + NAME_FUNC_OFFSET(17083, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), + NAME_FUNC_OFFSET(17101, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), + NAME_FUNC_OFFSET(17118, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), + NAME_FUNC_OFFSET(17136, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), + NAME_FUNC_OFFSET(17153, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), + NAME_FUNC_OFFSET(17171, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), + NAME_FUNC_OFFSET(17188, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), + NAME_FUNC_OFFSET(17206, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), + NAME_FUNC_OFFSET(17223, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), + NAME_FUNC_OFFSET(17241, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), + NAME_FUNC_OFFSET(17258, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), + NAME_FUNC_OFFSET(17276, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), + NAME_FUNC_OFFSET(17293, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), + NAME_FUNC_OFFSET(17311, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), + NAME_FUNC_OFFSET(17330, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), + NAME_FUNC_OFFSET(17349, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), + NAME_FUNC_OFFSET(17368, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), + NAME_FUNC_OFFSET(17387, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), + NAME_FUNC_OFFSET(17407, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), + NAME_FUNC_OFFSET(17427, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), + NAME_FUNC_OFFSET(17447, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), + NAME_FUNC_OFFSET(17465, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), + NAME_FUNC_OFFSET(17482, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), + NAME_FUNC_OFFSET(17500, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), + NAME_FUNC_OFFSET(17517, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), + NAME_FUNC_OFFSET(17535, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), + NAME_FUNC_OFFSET(17553, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), + NAME_FUNC_OFFSET(17570, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), + NAME_FUNC_OFFSET(17588, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), + NAME_FUNC_OFFSET(17607, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), + NAME_FUNC_OFFSET(17626, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), + NAME_FUNC_OFFSET(17645, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), + NAME_FUNC_OFFSET(17667, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), + NAME_FUNC_OFFSET(17680, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), + NAME_FUNC_OFFSET(17693, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), + NAME_FUNC_OFFSET(17709, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), + NAME_FUNC_OFFSET(17725, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), + NAME_FUNC_OFFSET(17738, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), + NAME_FUNC_OFFSET(17761, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), + NAME_FUNC_OFFSET(17781, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), + NAME_FUNC_OFFSET(17800, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), + NAME_FUNC_OFFSET(17811, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), + NAME_FUNC_OFFSET(17823, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), + NAME_FUNC_OFFSET(17837, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), + NAME_FUNC_OFFSET(17850, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), + NAME_FUNC_OFFSET(17866, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), + NAME_FUNC_OFFSET(17877, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), + NAME_FUNC_OFFSET(17890, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), + NAME_FUNC_OFFSET(17909, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), + NAME_FUNC_OFFSET(17929, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), + NAME_FUNC_OFFSET(17942, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), + NAME_FUNC_OFFSET(17952, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), + NAME_FUNC_OFFSET(17968, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), + NAME_FUNC_OFFSET(17987, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), + NAME_FUNC_OFFSET(18005, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), + NAME_FUNC_OFFSET(18026, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), + NAME_FUNC_OFFSET(18041, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), + NAME_FUNC_OFFSET(18056, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), + NAME_FUNC_OFFSET(18070, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), + NAME_FUNC_OFFSET(18085, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), + NAME_FUNC_OFFSET(18097, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), + NAME_FUNC_OFFSET(18110, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), + NAME_FUNC_OFFSET(18122, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), + NAME_FUNC_OFFSET(18135, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), + NAME_FUNC_OFFSET(18147, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), + NAME_FUNC_OFFSET(18160, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), + NAME_FUNC_OFFSET(18172, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), + NAME_FUNC_OFFSET(18185, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), + NAME_FUNC_OFFSET(18197, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), + NAME_FUNC_OFFSET(18210, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), + NAME_FUNC_OFFSET(18222, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), + NAME_FUNC_OFFSET(18235, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), + NAME_FUNC_OFFSET(18247, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), + NAME_FUNC_OFFSET(18260, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), + NAME_FUNC_OFFSET(18272, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), + NAME_FUNC_OFFSET(18285, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), + NAME_FUNC_OFFSET(18304, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), + NAME_FUNC_OFFSET(18323, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), + NAME_FUNC_OFFSET(18342, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), + NAME_FUNC_OFFSET(18355, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), + NAME_FUNC_OFFSET(18373, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), + NAME_FUNC_OFFSET(18394, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), + NAME_FUNC_OFFSET(18412, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), + NAME_FUNC_OFFSET(18432, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), + NAME_FUNC_OFFSET(18446, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), + NAME_FUNC_OFFSET(18463, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), + NAME_FUNC_OFFSET(18499, gl_dispatch_stub_584, gl_dispatch_stub_584, NULL, _gloffset_SampleMaskSGIS), + NAME_FUNC_OFFSET(18515, gl_dispatch_stub_585, gl_dispatch_stub_585, NULL, _gloffset_SamplePatternSGIS), + NAME_FUNC_OFFSET(18534, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18552, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18573, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18595, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18614, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18636, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18659, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), + NAME_FUNC_OFFSET(18678, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), + NAME_FUNC_OFFSET(18698, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), + NAME_FUNC_OFFSET(18717, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), + NAME_FUNC_OFFSET(18737, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), + NAME_FUNC_OFFSET(18756, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), + NAME_FUNC_OFFSET(18776, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), + NAME_FUNC_OFFSET(18795, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), + NAME_FUNC_OFFSET(18815, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), + NAME_FUNC_OFFSET(18834, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), + NAME_FUNC_OFFSET(18854, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), + NAME_FUNC_OFFSET(18874, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), + NAME_FUNC_OFFSET(18895, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), + NAME_FUNC_OFFSET(18915, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), + NAME_FUNC_OFFSET(18936, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), + NAME_FUNC_OFFSET(18956, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), + NAME_FUNC_OFFSET(18977, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), + NAME_FUNC_OFFSET(19001, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), + NAME_FUNC_OFFSET(19019, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), + NAME_FUNC_OFFSET(19039, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), + NAME_FUNC_OFFSET(19057, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), + NAME_FUNC_OFFSET(19069, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), + NAME_FUNC_OFFSET(19082, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), + NAME_FUNC_OFFSET(19094, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), + NAME_FUNC_OFFSET(19107, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), + NAME_FUNC_OFFSET(19127, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), + NAME_FUNC_OFFSET(19151, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), + NAME_FUNC_OFFSET(19165, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), + NAME_FUNC_OFFSET(19182, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), + NAME_FUNC_OFFSET(19197, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), + NAME_FUNC_OFFSET(19215, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), + NAME_FUNC_OFFSET(19229, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), + NAME_FUNC_OFFSET(19246, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), + NAME_FUNC_OFFSET(19261, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), + NAME_FUNC_OFFSET(19279, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), + NAME_FUNC_OFFSET(19293, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), + NAME_FUNC_OFFSET(19310, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), + NAME_FUNC_OFFSET(19325, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), + NAME_FUNC_OFFSET(19343, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), + NAME_FUNC_OFFSET(19357, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), + NAME_FUNC_OFFSET(19374, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), + NAME_FUNC_OFFSET(19389, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), + NAME_FUNC_OFFSET(19407, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), + NAME_FUNC_OFFSET(19421, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), + NAME_FUNC_OFFSET(19438, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), + NAME_FUNC_OFFSET(19453, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), + NAME_FUNC_OFFSET(19471, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), + NAME_FUNC_OFFSET(19485, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), + NAME_FUNC_OFFSET(19502, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), + NAME_FUNC_OFFSET(19517, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), + NAME_FUNC_OFFSET(19535, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), + NAME_FUNC_OFFSET(19549, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), + NAME_FUNC_OFFSET(19566, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), + NAME_FUNC_OFFSET(19581, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), + NAME_FUNC_OFFSET(19599, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), + NAME_FUNC_OFFSET(19613, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), + NAME_FUNC_OFFSET(19630, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), + NAME_FUNC_OFFSET(19645, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), + NAME_FUNC_OFFSET(19663, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), + NAME_FUNC_OFFSET(19680, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), + NAME_FUNC_OFFSET(19700, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), + NAME_FUNC_OFFSET(19717, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), + NAME_FUNC_OFFSET(19743, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), + NAME_FUNC_OFFSET(19772, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), + NAME_FUNC_OFFSET(19787, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), + NAME_FUNC_OFFSET(19805, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), + NAME_FUNC_OFFSET(19824, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_DeleteVertexArraysAPPLE), + NAME_FUNC_OFFSET(19845, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_IsVertexArrayAPPLE), + NAME_FUNC_OFFSET(19861, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), + NAME_FUNC_OFFSET(19885, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), + NAME_FUNC_OFFSET(19912, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), + NAME_FUNC_OFFSET(19930, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), + NAME_FUNC_OFFSET(19949, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), + NAME_FUNC_OFFSET(19974, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), + NAME_FUNC_OFFSET(19995, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), + NAME_FUNC_OFFSET(20017, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), + NAME_FUNC_OFFSET(20043, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), + NAME_FUNC_OFFSET(20066, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), + NAME_FUNC_OFFSET(20089, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), + NAME_FUNC_OFFSET(20112, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), + NAME_FUNC_OFFSET(20130, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), + NAME_FUNC_OFFSET(20149, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), + NAME_FUNC_OFFSET(20166, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), + NAME_FUNC_OFFSET(20204, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), + NAME_FUNC_OFFSET(20233, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), + NAME_FUNC_OFFSET(20249, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), + NAME_FUNC_OFFSET(20266, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), + NAME_FUNC_OFFSET(20288, gl_dispatch_stub_783, gl_dispatch_stub_783, NULL, _gloffset_BlitFramebufferEXT), + NAME_FUNC_OFFSET(20306, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), + NAME_FUNC_OFFSET(20332, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), + NAME_FUNC_OFFSET(20357, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), + NAME_FUNC_OFFSET(20374, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), + NAME_FUNC_OFFSET(20392, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), + NAME_FUNC_OFFSET(20415, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), + NAME_FUNC_OFFSET(20445, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), + NAME_FUNC_OFFSET(20473, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0) }; diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c index 06d51d4e5c..45f6a64356 100644 --- a/src/mesa/main/enums.c +++ b/src/mesa/main/enums.c @@ -694,6 +694,7 @@ LONGSTRING static const char enum_string_table[] = "GL_INTENSITY8\0" "GL_INTENSITY8_EXT\0" "GL_INTENSITY_EXT\0" + "GL_INTERLEAVED_ATTRIBS_EXT\0" "GL_INTERPOLATE\0" "GL_INTERPOLATE_ARB\0" "GL_INTERPOLATE_EXT\0" @@ -976,6 +977,9 @@ LONGSTRING static const char enum_string_table[] = "GL_MAX_TEXTURE_UNITS_ARB\0" "GL_MAX_TRACK_MATRICES_NV\0" "GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV\0" + "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT\0" + "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT\0" + "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT\0" "GL_MAX_VARYING_FLOATS\0" "GL_MAX_VARYING_FLOATS_ARB\0" "GL_MAX_VERTEX_ATTRIBS\0" @@ -1268,6 +1272,7 @@ LONGSTRING static const char enum_string_table[] = "GL_PRIMARY_COLOR\0" "GL_PRIMARY_COLOR_ARB\0" "GL_PRIMARY_COLOR_EXT\0" + "GL_PRIMITIVES_GENERATED_EXT\0" "GL_PROGRAM_ADDRESS_REGISTERS_ARB\0" "GL_PROGRAM_ALU_INSTRUCTIONS_ARB\0" "GL_PROGRAM_ATTRIBS_ARB\0" @@ -1341,6 +1346,7 @@ LONGSTRING static const char enum_string_table[] = "GL_QUERY_WAIT_NV\0" "GL_R\0" "GL_R3_G3_B2\0" + "GL_RASTERIZER_DISCARD_EXT\0" "GL_RASTER_POSITION_UNCLIPPED_IBM\0" "GL_READ_BUFFER\0" "GL_READ_FRAMEBUFFER\0" @@ -1471,6 +1477,7 @@ LONGSTRING static const char enum_string_table[] = "GL_SELECTION_BUFFER_POINTER\0" "GL_SELECTION_BUFFER_SIZE\0" "GL_SEPARABLE_2D\0" + "GL_SEPARATE_ATTRIBS_EXT\0" "GL_SEPARATE_SPECULAR_COLOR\0" "GL_SEPARATE_SPECULAR_COLOR_EXT\0" "GL_SET\0" @@ -1800,6 +1807,14 @@ LONGSTRING static const char enum_string_table[] = "GL_TRACK_MATRIX_NV\0" "GL_TRACK_MATRIX_TRANSFORM_NV\0" "GL_TRANSFORM_BIT\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_EXT\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT\0" + "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT\0" + "GL_TRANSFORM_FEEDBACK_VARYINGS_EXT\0" + "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT\0" "GL_TRANSPOSE_COLOR_MATRIX\0" "GL_TRANSPOSE_COLOR_MATRIX_ARB\0" "GL_TRANSPOSE_CURRENT_MATRIX_ARB\0" @@ -1929,7 +1944,7 @@ LONGSTRING static const char enum_string_table[] = "GL_ZOOM_Y\0" ; -static const enum_elt all_enums[1891] = +static const enum_elt all_enums[1906] = { { 0, 0x00000600 }, /* GL_2D */ { 6, 0x00001407 }, /* GL_2_BYTES */ @@ -2589,1318 +2604,1333 @@ static const enum_elt all_enums[1891] = { 13839, 0x0000804B }, /* GL_INTENSITY8 */ { 13853, 0x0000804B }, /* GL_INTENSITY8_EXT */ { 13871, 0x00008049 }, /* GL_INTENSITY_EXT */ - { 13888, 0x00008575 }, /* GL_INTERPOLATE */ - { 13903, 0x00008575 }, /* GL_INTERPOLATE_ARB */ - { 13922, 0x00008575 }, /* GL_INTERPOLATE_EXT */ - { 13941, 0x00008B53 }, /* GL_INT_VEC2 */ - { 13953, 0x00008B53 }, /* GL_INT_VEC2_ARB */ - { 13969, 0x00008B54 }, /* GL_INT_VEC3 */ - { 13981, 0x00008B54 }, /* GL_INT_VEC3_ARB */ - { 13997, 0x00008B55 }, /* GL_INT_VEC4 */ - { 14009, 0x00008B55 }, /* GL_INT_VEC4_ARB */ - { 14025, 0x00000500 }, /* GL_INVALID_ENUM */ - { 14041, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ - { 14074, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */ - { 14111, 0x00000502 }, /* GL_INVALID_OPERATION */ - { 14132, 0x00000501 }, /* GL_INVALID_VALUE */ - { 14149, 0x0000862B }, /* GL_INVERSE_NV */ - { 14163, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ - { 14187, 0x0000150A }, /* GL_INVERT */ - { 14197, 0x00001E00 }, /* GL_KEEP */ - { 14205, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ - { 14231, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */ - { 14261, 0x00000406 }, /* GL_LEFT */ - { 14269, 0x00000203 }, /* GL_LEQUAL */ - { 14279, 0x00000201 }, /* GL_LESS */ - { 14287, 0x00004000 }, /* GL_LIGHT0 */ - { 14297, 0x00004001 }, /* GL_LIGHT1 */ - { 14307, 0x00004002 }, /* GL_LIGHT2 */ - { 14317, 0x00004003 }, /* GL_LIGHT3 */ - { 14327, 0x00004004 }, /* GL_LIGHT4 */ - { 14337, 0x00004005 }, /* GL_LIGHT5 */ - { 14347, 0x00004006 }, /* GL_LIGHT6 */ - { 14357, 0x00004007 }, /* GL_LIGHT7 */ - { 14367, 0x00000B50 }, /* GL_LIGHTING */ - { 14379, 0x00000040 }, /* GL_LIGHTING_BIT */ - { 14395, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ - { 14418, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ - { 14447, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */ - { 14480, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ - { 14508, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ - { 14532, 0x00001B01 }, /* GL_LINE */ - { 14540, 0x00002601 }, /* GL_LINEAR */ - { 14550, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ - { 14572, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ - { 14602, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ - { 14633, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ - { 14657, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ - { 14682, 0x00000001 }, /* GL_LINES */ - { 14691, 0x00000004 }, /* GL_LINE_BIT */ - { 14703, 0x00000002 }, /* GL_LINE_LOOP */ - { 14716, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ - { 14736, 0x00000B20 }, /* GL_LINE_SMOOTH */ - { 14751, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ - { 14771, 0x00000B24 }, /* GL_LINE_STIPPLE */ - { 14787, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ - { 14811, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ - { 14834, 0x00000003 }, /* GL_LINE_STRIP */ - { 14848, 0x00000702 }, /* GL_LINE_TOKEN */ - { 14862, 0x00000B21 }, /* GL_LINE_WIDTH */ - { 14876, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */ - { 14902, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */ - { 14922, 0x00008B82 }, /* GL_LINK_STATUS */ - { 14937, 0x00000B32 }, /* GL_LIST_BASE */ - { 14950, 0x00020000 }, /* GL_LIST_BIT */ - { 14962, 0x00000B33 }, /* GL_LIST_INDEX */ - { 14976, 0x00000B30 }, /* GL_LIST_MODE */ - { 14989, 0x00000101 }, /* GL_LOAD */ - { 14997, 0x00000BF1 }, /* GL_LOGIC_OP */ - { 15009, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ - { 15026, 0x00008CA1 }, /* GL_LOWER_LEFT */ - { 15040, 0x00001909 }, /* GL_LUMINANCE */ - { 15053, 0x00008041 }, /* GL_LUMINANCE12 */ - { 15068, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ - { 15091, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */ - { 15118, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ - { 15140, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */ - { 15166, 0x00008041 }, /* GL_LUMINANCE12_EXT */ - { 15185, 0x00008042 }, /* GL_LUMINANCE16 */ - { 15200, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ - { 15223, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */ - { 15250, 0x00008042 }, /* GL_LUMINANCE16_EXT */ - { 15269, 0x0000803F }, /* GL_LUMINANCE4 */ - { 15283, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ - { 15304, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */ - { 15329, 0x0000803F }, /* GL_LUMINANCE4_EXT */ - { 15347, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ - { 15368, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */ - { 15393, 0x00008040 }, /* GL_LUMINANCE8 */ - { 15407, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ - { 15428, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */ - { 15453, 0x00008040 }, /* GL_LUMINANCE8_EXT */ - { 15471, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ - { 15490, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ - { 15506, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ - { 15526, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ - { 15548, 0x00000D91 }, /* GL_MAP1_INDEX */ - { 15562, 0x00000D92 }, /* GL_MAP1_NORMAL */ - { 15577, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ - { 15601, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ - { 15625, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ - { 15649, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ - { 15673, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ - { 15690, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ - { 15707, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ - { 15735, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ - { 15764, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ - { 15793, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ - { 15822, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ - { 15851, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ - { 15880, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ - { 15909, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ - { 15937, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ - { 15965, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ - { 15993, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ - { 16021, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ - { 16049, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ - { 16077, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ - { 16105, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ - { 16133, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ - { 16161, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ - { 16177, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ - { 16197, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ - { 16219, 0x00000DB1 }, /* GL_MAP2_INDEX */ - { 16233, 0x00000DB2 }, /* GL_MAP2_NORMAL */ - { 16248, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ - { 16272, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ - { 16296, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ - { 16320, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ - { 16344, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ - { 16361, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ - { 16378, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ - { 16406, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ - { 16435, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ - { 16464, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ - { 16493, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ - { 16522, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ - { 16551, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ - { 16580, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ - { 16608, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ - { 16636, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ - { 16664, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ - { 16692, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ - { 16720, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ - { 16748, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */ - { 16776, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ - { 16804, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ - { 16832, 0x00000D10 }, /* GL_MAP_COLOR */ - { 16845, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */ - { 16871, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */ - { 16900, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */ - { 16928, 0x00000001 }, /* GL_MAP_READ_BIT */ - { 16944, 0x00000D11 }, /* GL_MAP_STENCIL */ - { 16959, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */ - { 16985, 0x00000002 }, /* GL_MAP_WRITE_BIT */ - { 17002, 0x000088C0 }, /* GL_MATRIX0_ARB */ - { 17017, 0x00008630 }, /* GL_MATRIX0_NV */ - { 17031, 0x000088CA }, /* GL_MATRIX10_ARB */ - { 17047, 0x000088CB }, /* GL_MATRIX11_ARB */ - { 17063, 0x000088CC }, /* GL_MATRIX12_ARB */ - { 17079, 0x000088CD }, /* GL_MATRIX13_ARB */ - { 17095, 0x000088CE }, /* GL_MATRIX14_ARB */ - { 17111, 0x000088CF }, /* GL_MATRIX15_ARB */ - { 17127, 0x000088D0 }, /* GL_MATRIX16_ARB */ - { 17143, 0x000088D1 }, /* GL_MATRIX17_ARB */ - { 17159, 0x000088D2 }, /* GL_MATRIX18_ARB */ - { 17175, 0x000088D3 }, /* GL_MATRIX19_ARB */ - { 17191, 0x000088C1 }, /* GL_MATRIX1_ARB */ - { 17206, 0x00008631 }, /* GL_MATRIX1_NV */ - { 17220, 0x000088D4 }, /* GL_MATRIX20_ARB */ - { 17236, 0x000088D5 }, /* GL_MATRIX21_ARB */ - { 17252, 0x000088D6 }, /* GL_MATRIX22_ARB */ - { 17268, 0x000088D7 }, /* GL_MATRIX23_ARB */ - { 17284, 0x000088D8 }, /* GL_MATRIX24_ARB */ - { 17300, 0x000088D9 }, /* GL_MATRIX25_ARB */ - { 17316, 0x000088DA }, /* GL_MATRIX26_ARB */ - { 17332, 0x000088DB }, /* GL_MATRIX27_ARB */ - { 17348, 0x000088DC }, /* GL_MATRIX28_ARB */ - { 17364, 0x000088DD }, /* GL_MATRIX29_ARB */ - { 17380, 0x000088C2 }, /* GL_MATRIX2_ARB */ - { 17395, 0x00008632 }, /* GL_MATRIX2_NV */ - { 17409, 0x000088DE }, /* GL_MATRIX30_ARB */ - { 17425, 0x000088DF }, /* GL_MATRIX31_ARB */ - { 17441, 0x000088C3 }, /* GL_MATRIX3_ARB */ - { 17456, 0x00008633 }, /* GL_MATRIX3_NV */ - { 17470, 0x000088C4 }, /* GL_MATRIX4_ARB */ - { 17485, 0x00008634 }, /* GL_MATRIX4_NV */ - { 17499, 0x000088C5 }, /* GL_MATRIX5_ARB */ - { 17514, 0x00008635 }, /* GL_MATRIX5_NV */ - { 17528, 0x000088C6 }, /* GL_MATRIX6_ARB */ - { 17543, 0x00008636 }, /* GL_MATRIX6_NV */ - { 17557, 0x000088C7 }, /* GL_MATRIX7_ARB */ - { 17572, 0x00008637 }, /* GL_MATRIX7_NV */ - { 17586, 0x000088C8 }, /* GL_MATRIX8_ARB */ - { 17601, 0x000088C9 }, /* GL_MATRIX9_ARB */ - { 17616, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ - { 17642, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ - { 17676, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ - { 17707, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ - { 17740, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ - { 17771, 0x00000BA0 }, /* GL_MATRIX_MODE */ - { 17786, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ - { 17808, 0x00008008 }, /* GL_MAX */ - { 17815, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ - { 17838, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ - { 17870, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ - { 17896, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ - { 17929, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ - { 17955, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 17989, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */ - { 18008, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ - { 18033, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */ - { 18062, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ - { 18094, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */ - { 18130, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ - { 18166, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */ - { 18206, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ - { 18232, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */ - { 18262, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ - { 18287, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */ - { 18316, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ - { 18345, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */ - { 18378, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ - { 18398, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */ - { 18422, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */ - { 18446, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ - { 18470, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ - { 18495, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ - { 18513, 0x00008008 }, /* GL_MAX_EXT */ - { 18524, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ - { 18559, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */ - { 18598, 0x00000D31 }, /* GL_MAX_LIGHTS */ - { 18612, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ - { 18632, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ - { 18670, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ - { 18699, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ - { 18723, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ - { 18751, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ - { 18774, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 18811, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 18847, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ - { 18874, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ - { 18903, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ - { 18937, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ - { 18973, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ - { 19000, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ - { 19032, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ - { 19068, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ - { 19097, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ - { 19126, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ - { 19154, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ - { 19192, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 19236, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 19279, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 19313, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 19352, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 19389, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 19427, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 19470, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 19513, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ - { 19543, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - { 19574, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 19610, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 19646, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ - { 19676, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ - { 19710, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */ - { 19743, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ - { 19768, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */ - { 19797, 0x00008D57 }, /* GL_MAX_SAMPLES */ - { 19812, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */ - { 19831, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ - { 19858, 0x00008504 }, /* GL_MAX_SHININESS_NV */ - { 19878, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ - { 19902, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ - { 19924, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */ - { 19950, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ - { 19977, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */ - { 20008, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ - { 20032, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ - { 20066, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ - { 20086, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ - { 20113, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ - { 20134, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */ - { 20159, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */ - { 20184, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */ - { 20219, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */ - { 20241, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */ - { 20267, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ - { 20289, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */ - { 20315, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ - { 20349, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ - { 20387, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ - { 20420, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */ - { 20457, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ - { 20481, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ - { 20502, 0x00008007 }, /* GL_MIN */ - { 20509, 0x0000802E }, /* GL_MINMAX */ - { 20519, 0x0000802E }, /* GL_MINMAX_EXT */ - { 20533, 0x0000802F }, /* GL_MINMAX_FORMAT */ - { 20550, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */ - { 20571, 0x00008030 }, /* GL_MINMAX_SINK */ - { 20586, 0x00008030 }, /* GL_MINMAX_SINK_EXT */ - { 20605, 0x00008007 }, /* GL_MIN_EXT */ - { 20616, 0x00008370 }, /* GL_MIRRORED_REPEAT */ - { 20635, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */ - { 20658, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */ - { 20681, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */ - { 20701, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ - { 20721, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ - { 20751, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */ - { 20779, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ - { 20807, 0x00001700 }, /* GL_MODELVIEW */ - { 20820, 0x00001700 }, /* GL_MODELVIEW0_ARB */ - { 20838, 0x0000872A }, /* GL_MODELVIEW10_ARB */ - { 20857, 0x0000872B }, /* GL_MODELVIEW11_ARB */ - { 20876, 0x0000872C }, /* GL_MODELVIEW12_ARB */ - { 20895, 0x0000872D }, /* GL_MODELVIEW13_ARB */ - { 20914, 0x0000872E }, /* GL_MODELVIEW14_ARB */ - { 20933, 0x0000872F }, /* GL_MODELVIEW15_ARB */ - { 20952, 0x00008730 }, /* GL_MODELVIEW16_ARB */ - { 20971, 0x00008731 }, /* GL_MODELVIEW17_ARB */ - { 20990, 0x00008732 }, /* GL_MODELVIEW18_ARB */ - { 21009, 0x00008733 }, /* GL_MODELVIEW19_ARB */ - { 21028, 0x0000850A }, /* GL_MODELVIEW1_ARB */ - { 21046, 0x00008734 }, /* GL_MODELVIEW20_ARB */ - { 21065, 0x00008735 }, /* GL_MODELVIEW21_ARB */ - { 21084, 0x00008736 }, /* GL_MODELVIEW22_ARB */ - { 21103, 0x00008737 }, /* GL_MODELVIEW23_ARB */ - { 21122, 0x00008738 }, /* GL_MODELVIEW24_ARB */ - { 21141, 0x00008739 }, /* GL_MODELVIEW25_ARB */ - { 21160, 0x0000873A }, /* GL_MODELVIEW26_ARB */ - { 21179, 0x0000873B }, /* GL_MODELVIEW27_ARB */ - { 21198, 0x0000873C }, /* GL_MODELVIEW28_ARB */ - { 21217, 0x0000873D }, /* GL_MODELVIEW29_ARB */ - { 21236, 0x00008722 }, /* GL_MODELVIEW2_ARB */ - { 21254, 0x0000873E }, /* GL_MODELVIEW30_ARB */ - { 21273, 0x0000873F }, /* GL_MODELVIEW31_ARB */ - { 21292, 0x00008723 }, /* GL_MODELVIEW3_ARB */ - { 21310, 0x00008724 }, /* GL_MODELVIEW4_ARB */ - { 21328, 0x00008725 }, /* GL_MODELVIEW5_ARB */ - { 21346, 0x00008726 }, /* GL_MODELVIEW6_ARB */ - { 21364, 0x00008727 }, /* GL_MODELVIEW7_ARB */ - { 21382, 0x00008728 }, /* GL_MODELVIEW8_ARB */ - { 21400, 0x00008729 }, /* GL_MODELVIEW9_ARB */ - { 21418, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ - { 21438, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ - { 21465, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ - { 21490, 0x00002100 }, /* GL_MODULATE */ - { 21502, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ - { 21522, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ - { 21549, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ - { 21574, 0x00000103 }, /* GL_MULT */ - { 21582, 0x0000809D }, /* GL_MULTISAMPLE */ - { 21597, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ - { 21617, 0x0000809D }, /* GL_MULTISAMPLE_ARB */ - { 21636, 0x20000000 }, /* GL_MULTISAMPLE_BIT */ - { 21655, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */ - { 21679, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */ - { 21702, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ - { 21732, 0x00002A25 }, /* GL_N3F_V3F */ - { 21743, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ - { 21763, 0x0000150E }, /* GL_NAND */ - { 21771, 0x00002600 }, /* GL_NEAREST */ - { 21782, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ - { 21813, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ - { 21845, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ - { 21870, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ - { 21896, 0x00000200 }, /* GL_NEVER */ - { 21905, 0x00001102 }, /* GL_NICEST */ - { 21915, 0x00000000 }, /* GL_NONE */ - { 21923, 0x00001505 }, /* GL_NOOP */ - { 21931, 0x00001508 }, /* GL_NOR */ - { 21938, 0x00000BA1 }, /* GL_NORMALIZE */ - { 21951, 0x00008075 }, /* GL_NORMAL_ARRAY */ - { 21967, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ - { 21998, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */ - { 22033, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ - { 22057, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ - { 22080, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ - { 22101, 0x00008511 }, /* GL_NORMAL_MAP */ - { 22115, 0x00008511 }, /* GL_NORMAL_MAP_ARB */ - { 22133, 0x00008511 }, /* GL_NORMAL_MAP_NV */ - { 22150, 0x00000205 }, /* GL_NOTEQUAL */ - { 22162, 0x00000000 }, /* GL_NO_ERROR */ - { 22174, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ - { 22208, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */ - { 22246, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */ - { 22278, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */ - { 22320, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */ - { 22350, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */ - { 22390, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */ - { 22421, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */ - { 22450, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */ - { 22478, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */ - { 22508, 0x00002401 }, /* GL_OBJECT_LINEAR */ - { 22525, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */ - { 22551, 0x00002501 }, /* GL_OBJECT_PLANE */ - { 22567, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */ - { 22602, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */ - { 22624, 0x00009112 }, /* GL_OBJECT_TYPE */ - { 22639, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ - { 22658, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */ - { 22688, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ - { 22709, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ - { 22737, 0x00000001 }, /* GL_ONE */ - { 22744, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ - { 22772, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */ - { 22804, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ - { 22832, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */ - { 22864, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ - { 22887, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ - { 22910, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ - { 22933, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ - { 22956, 0x00008598 }, /* GL_OPERAND0_ALPHA */ - { 22974, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */ - { 22996, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */ - { 23018, 0x00008590 }, /* GL_OPERAND0_RGB */ - { 23034, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */ - { 23054, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */ - { 23074, 0x00008599 }, /* GL_OPERAND1_ALPHA */ - { 23092, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */ - { 23114, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */ - { 23136, 0x00008591 }, /* GL_OPERAND1_RGB */ - { 23152, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */ - { 23172, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */ - { 23192, 0x0000859A }, /* GL_OPERAND2_ALPHA */ - { 23210, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */ - { 23232, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */ - { 23254, 0x00008592 }, /* GL_OPERAND2_RGB */ - { 23270, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */ - { 23290, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */ - { 23310, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ - { 23331, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ - { 23350, 0x00001507 }, /* GL_OR */ - { 23356, 0x00000A01 }, /* GL_ORDER */ - { 23365, 0x0000150D }, /* GL_OR_INVERTED */ - { 23380, 0x0000150B }, /* GL_OR_REVERSE */ - { 23394, 0x00000505 }, /* GL_OUT_OF_MEMORY */ - { 23411, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ - { 23429, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ - { 23450, 0x00008758 }, /* GL_PACK_INVERT_MESA */ - { 23470, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ - { 23488, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ - { 23507, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ - { 23527, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ - { 23547, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ - { 23565, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ - { 23584, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ - { 23609, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ - { 23633, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ - { 23654, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ - { 23676, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ - { 23698, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ - { 23723, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ - { 23747, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ - { 23768, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ - { 23790, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ - { 23812, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ - { 23834, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ - { 23865, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ - { 23885, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - { 23910, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ - { 23930, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ - { 23955, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ - { 23975, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ - { 24000, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ - { 24020, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ - { 24045, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ - { 24065, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ - { 24090, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ - { 24110, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ - { 24135, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ - { 24155, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ - { 24180, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ - { 24200, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ - { 24225, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ - { 24245, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ - { 24270, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ - { 24290, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ - { 24315, 0x00000020 }, /* GL_PIXEL_MODE_BIT */ - { 24333, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ - { 24354, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ - { 24383, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */ - { 24416, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */ - { 24441, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ - { 24464, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ - { 24495, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */ - { 24530, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */ - { 24557, 0x00001B00 }, /* GL_POINT */ - { 24566, 0x00000000 }, /* GL_POINTS */ - { 24576, 0x00000002 }, /* GL_POINT_BIT */ - { 24589, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ - { 24619, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */ - { 24653, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */ - { 24687, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */ - { 24722, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ - { 24751, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */ - { 24784, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */ - { 24817, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */ - { 24851, 0x00000B11 }, /* GL_POINT_SIZE */ - { 24865, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */ - { 24891, 0x00008127 }, /* GL_POINT_SIZE_MAX */ - { 24909, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */ - { 24931, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */ - { 24953, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */ - { 24976, 0x00008126 }, /* GL_POINT_SIZE_MIN */ - { 24994, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */ - { 25016, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */ - { 25038, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */ - { 25061, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */ - { 25081, 0x00000B10 }, /* GL_POINT_SMOOTH */ - { 25097, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ - { 25118, 0x00008861 }, /* GL_POINT_SPRITE */ - { 25134, 0x00008861 }, /* GL_POINT_SPRITE_ARB */ - { 25154, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ - { 25183, 0x00008861 }, /* GL_POINT_SPRITE_NV */ - { 25202, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ - { 25228, 0x00000701 }, /* GL_POINT_TOKEN */ - { 25243, 0x00000009 }, /* GL_POLYGON */ - { 25254, 0x00000008 }, /* GL_POLYGON_BIT */ - { 25269, 0x00000B40 }, /* GL_POLYGON_MODE */ - { 25285, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */ - { 25308, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ - { 25333, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ - { 25356, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ - { 25379, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ - { 25403, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ - { 25427, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ - { 25445, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ - { 25468, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ - { 25487, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */ - { 25510, 0x00000703 }, /* GL_POLYGON_TOKEN */ - { 25527, 0x00001203 }, /* GL_POSITION */ - { 25539, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - { 25571, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */ - { 25607, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ - { 25640, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */ - { 25677, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ - { 25708, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */ - { 25743, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ - { 25775, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */ - { 25811, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ - { 25844, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ - { 25876, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */ - { 25912, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ - { 25945, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */ - { 25982, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ - { 26012, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */ - { 26046, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ - { 26077, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */ - { 26112, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ - { 26143, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */ - { 26178, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ - { 26210, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */ - { 26246, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ - { 26276, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */ - { 26310, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ - { 26341, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */ - { 26376, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ - { 26408, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ - { 26439, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */ - { 26474, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ - { 26506, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */ - { 26542, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ - { 26571, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */ - { 26604, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ - { 26634, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */ - { 26668, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ - { 26707, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ - { 26740, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ - { 26780, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ - { 26814, 0x00008578 }, /* GL_PREVIOUS */ - { 26826, 0x00008578 }, /* GL_PREVIOUS_ARB */ - { 26842, 0x00008578 }, /* GL_PREVIOUS_EXT */ - { 26858, 0x00008577 }, /* GL_PRIMARY_COLOR */ - { 26875, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */ - { 26896, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */ - { 26917, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 26950, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 26982, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ - { 27005, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ - { 27028, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ - { 27058, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */ - { 27087, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ - { 27115, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ - { 27137, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ - { 27165, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ - { 27193, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ - { 27215, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */ - { 27236, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 27276, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 27315, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 27345, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 27380, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 27413, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 27447, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 27486, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 27525, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ - { 27547, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ - { 27573, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ - { 27597, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ - { 27620, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ - { 27642, 0x00008628 }, /* GL_PROGRAM_STRING_NV */ - { 27663, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ - { 27684, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ - { 27711, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 27743, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 27775, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - { 27810, 0x00001701 }, /* GL_PROJECTION */ - { 27824, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ - { 27845, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ - { 27871, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ - { 27891, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */ - { 27915, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ - { 27936, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ - { 27955, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */ - { 27978, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ - { 28017, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ - { 28055, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ - { 28075, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ - { 28105, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */ - { 28129, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ - { 28149, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ - { 28179, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */ - { 28203, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ - { 28223, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ - { 28256, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ - { 28282, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */ - { 28312, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ - { 28343, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */ - { 28373, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ - { 28392, 0x00002003 }, /* GL_Q */ - { 28397, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ - { 28422, 0x00000007 }, /* GL_QUADS */ - { 28431, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ - { 28475, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */ - { 28523, 0x00008614 }, /* GL_QUAD_MESH_SUN */ - { 28540, 0x00000008 }, /* GL_QUAD_STRIP */ - { 28554, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ - { 28584, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */ - { 28611, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ - { 28633, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */ - { 28659, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */ - { 28679, 0x00008866 }, /* GL_QUERY_RESULT */ - { 28695, 0x00008866 }, /* GL_QUERY_RESULT_ARB */ - { 28715, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ - { 28741, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */ - { 28771, 0x00008E13 }, /* GL_QUERY_WAIT_NV */ - { 28788, 0x00002002 }, /* GL_R */ - { 28793, 0x00002A10 }, /* GL_R3_G3_B2 */ - { 28805, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ - { 28838, 0x00000C02 }, /* GL_READ_BUFFER */ - { 28853, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ - { 28873, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ - { 28901, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */ - { 28933, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */ - { 28957, 0x000088B8 }, /* GL_READ_ONLY */ - { 28970, 0x000088B8 }, /* GL_READ_ONLY_ARB */ - { 28987, 0x000088BA }, /* GL_READ_WRITE */ - { 29001, 0x000088BA }, /* GL_READ_WRITE_ARB */ - { 29019, 0x00001903 }, /* GL_RED */ - { 29026, 0x00008016 }, /* GL_REDUCE */ - { 29036, 0x00008016 }, /* GL_REDUCE_EXT */ - { 29050, 0x00000D15 }, /* GL_RED_BIAS */ - { 29062, 0x00000D52 }, /* GL_RED_BITS */ - { 29074, 0x00000D14 }, /* GL_RED_SCALE */ - { 29087, 0x00008512 }, /* GL_REFLECTION_MAP */ - { 29105, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */ - { 29127, 0x00008512 }, /* GL_REFLECTION_MAP_NV */ - { 29148, 0x00008A19 }, /* GL_RELEASED_APPLE */ - { 29166, 0x00001C00 }, /* GL_RENDER */ - { 29176, 0x00008D41 }, /* GL_RENDERBUFFER */ - { 29192, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ - { 29219, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ - { 29243, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */ - { 29271, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ - { 29297, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ - { 29324, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */ - { 29344, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ - { 29371, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ - { 29394, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */ - { 29421, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ - { 29453, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */ - { 29489, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ - { 29514, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ - { 29538, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */ - { 29566, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ - { 29595, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ - { 29617, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */ - { 29643, 0x00001F01 }, /* GL_RENDERER */ - { 29655, 0x00000C40 }, /* GL_RENDER_MODE */ - { 29670, 0x00002901 }, /* GL_REPEAT */ - { 29680, 0x00001E01 }, /* GL_REPLACE */ - { 29691, 0x00008062 }, /* GL_REPLACE_EXT */ - { 29706, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */ - { 29729, 0x0000803A }, /* GL_RESCALE_NORMAL */ - { 29747, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */ - { 29769, 0x00008A1B }, /* GL_RETAINED_APPLE */ - { 29787, 0x00000102 }, /* GL_RETURN */ - { 29797, 0x00001907 }, /* GL_RGB */ - { 29804, 0x00008052 }, /* GL_RGB10 */ - { 29813, 0x00008059 }, /* GL_RGB10_A2 */ - { 29825, 0x00008059 }, /* GL_RGB10_A2_EXT */ - { 29841, 0x00008052 }, /* GL_RGB10_EXT */ - { 29854, 0x00008053 }, /* GL_RGB12 */ - { 29863, 0x00008053 }, /* GL_RGB12_EXT */ - { 29876, 0x00008054 }, /* GL_RGB16 */ - { 29885, 0x00008054 }, /* GL_RGB16_EXT */ - { 29898, 0x0000804E }, /* GL_RGB2_EXT */ - { 29910, 0x0000804F }, /* GL_RGB4 */ - { 29918, 0x0000804F }, /* GL_RGB4_EXT */ - { 29930, 0x000083A1 }, /* GL_RGB4_S3TC */ - { 29943, 0x00008050 }, /* GL_RGB5 */ - { 29951, 0x00008057 }, /* GL_RGB5_A1 */ - { 29962, 0x00008057 }, /* GL_RGB5_A1_EXT */ - { 29977, 0x00008050 }, /* GL_RGB5_EXT */ - { 29989, 0x00008051 }, /* GL_RGB8 */ - { 29997, 0x00008051 }, /* GL_RGB8_EXT */ - { 30009, 0x00001908 }, /* GL_RGBA */ - { 30017, 0x0000805A }, /* GL_RGBA12 */ - { 30027, 0x0000805A }, /* GL_RGBA12_EXT */ - { 30041, 0x0000805B }, /* GL_RGBA16 */ - { 30051, 0x0000805B }, /* GL_RGBA16_EXT */ - { 30065, 0x00008055 }, /* GL_RGBA2 */ - { 30074, 0x00008055 }, /* GL_RGBA2_EXT */ - { 30087, 0x00008056 }, /* GL_RGBA4 */ - { 30096, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ - { 30115, 0x00008056 }, /* GL_RGBA4_EXT */ - { 30128, 0x000083A3 }, /* GL_RGBA4_S3TC */ - { 30142, 0x00008058 }, /* GL_RGBA8 */ - { 30151, 0x00008058 }, /* GL_RGBA8_EXT */ - { 30164, 0x00008F97 }, /* GL_RGBA8_SNORM */ - { 30179, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ - { 30197, 0x00000C31 }, /* GL_RGBA_MODE */ - { 30210, 0x000083A2 }, /* GL_RGBA_S3TC */ - { 30223, 0x00008F93 }, /* GL_RGBA_SNORM */ - { 30237, 0x000083A0 }, /* GL_RGB_S3TC */ - { 30249, 0x00008573 }, /* GL_RGB_SCALE */ - { 30262, 0x00008573 }, /* GL_RGB_SCALE_ARB */ - { 30279, 0x00008573 }, /* GL_RGB_SCALE_EXT */ - { 30296, 0x00000407 }, /* GL_RIGHT */ - { 30305, 0x00002000 }, /* GL_S */ - { 30310, 0x00008B5D }, /* GL_SAMPLER_1D */ - { 30324, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ - { 30345, 0x00008B5E }, /* GL_SAMPLER_2D */ - { 30359, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ - { 30380, 0x00008B5F }, /* GL_SAMPLER_3D */ - { 30394, 0x00008B60 }, /* GL_SAMPLER_CUBE */ - { 30410, 0x000080A9 }, /* GL_SAMPLES */ - { 30421, 0x000086B4 }, /* GL_SAMPLES_3DFX */ - { 30437, 0x000080A9 }, /* GL_SAMPLES_ARB */ - { 30452, 0x00008914 }, /* GL_SAMPLES_PASSED */ - { 30470, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */ - { 30492, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ - { 30520, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */ - { 30552, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ - { 30575, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */ - { 30602, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ - { 30620, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ - { 30643, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */ - { 30665, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ - { 30684, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */ - { 30707, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ - { 30733, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */ - { 30763, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ - { 30788, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */ - { 30817, 0x00080000 }, /* GL_SCISSOR_BIT */ - { 30832, 0x00000C10 }, /* GL_SCISSOR_BOX */ - { 30847, 0x00000C11 }, /* GL_SCISSOR_TEST */ - { 30863, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ - { 30888, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ - { 30928, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */ - { 30972, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ - { 31005, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ - { 31035, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ - { 31067, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ - { 31097, 0x00001C02 }, /* GL_SELECT */ - { 31107, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ - { 31135, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ - { 31160, 0x00008012 }, /* GL_SEPARABLE_2D */ - { 31176, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ - { 31203, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */ - { 31234, 0x0000150F }, /* GL_SET */ - { 31241, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ - { 31262, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ - { 31286, 0x00008B4F }, /* GL_SHADER_TYPE */ - { 31301, 0x00000B54 }, /* GL_SHADE_MODEL */ - { 31316, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ - { 31344, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */ - { 31367, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ - { 31397, 0x00001601 }, /* GL_SHININESS */ - { 31410, 0x00001402 }, /* GL_SHORT */ - { 31419, 0x00009119 }, /* GL_SIGNALED */ - { 31431, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ - { 31452, 0x000081F9 }, /* GL_SINGLE_COLOR */ - { 31468, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */ - { 31488, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ - { 31507, 0x00008C46 }, /* GL_SLUMINANCE */ - { 31521, 0x00008C47 }, /* GL_SLUMINANCE8 */ - { 31536, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ - { 31558, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ - { 31578, 0x00001D01 }, /* GL_SMOOTH */ - { 31588, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ - { 31621, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */ - { 31648, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */ - { 31681, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */ - { 31708, 0x00008588 }, /* GL_SOURCE0_ALPHA */ - { 31725, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */ - { 31746, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */ - { 31767, 0x00008580 }, /* GL_SOURCE0_RGB */ - { 31782, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */ - { 31801, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */ - { 31820, 0x00008589 }, /* GL_SOURCE1_ALPHA */ - { 31837, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */ - { 31858, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */ - { 31879, 0x00008581 }, /* GL_SOURCE1_RGB */ - { 31894, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */ - { 31913, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */ - { 31932, 0x0000858A }, /* GL_SOURCE2_ALPHA */ - { 31949, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */ - { 31970, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */ - { 31991, 0x00008582 }, /* GL_SOURCE2_RGB */ - { 32006, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */ - { 32025, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */ - { 32044, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ - { 32064, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ - { 32082, 0x00001202 }, /* GL_SPECULAR */ - { 32094, 0x00002402 }, /* GL_SPHERE_MAP */ - { 32108, 0x00001206 }, /* GL_SPOT_CUTOFF */ - { 32123, 0x00001204 }, /* GL_SPOT_DIRECTION */ - { 32141, 0x00001205 }, /* GL_SPOT_EXPONENT */ - { 32158, 0x00008588 }, /* GL_SRC0_ALPHA */ - { 32172, 0x00008580 }, /* GL_SRC0_RGB */ - { 32184, 0x00008589 }, /* GL_SRC1_ALPHA */ - { 32198, 0x00008581 }, /* GL_SRC1_RGB */ - { 32210, 0x0000858A }, /* GL_SRC2_ALPHA */ - { 32224, 0x00008582 }, /* GL_SRC2_RGB */ - { 32236, 0x00000302 }, /* GL_SRC_ALPHA */ - { 32249, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ - { 32271, 0x00000300 }, /* GL_SRC_COLOR */ - { 32284, 0x00008C40 }, /* GL_SRGB */ - { 32292, 0x00008C41 }, /* GL_SRGB8 */ - { 32301, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ - { 32317, 0x00008C42 }, /* GL_SRGB_ALPHA */ - { 32331, 0x00000503 }, /* GL_STACK_OVERFLOW */ - { 32349, 0x00000504 }, /* GL_STACK_UNDERFLOW */ - { 32368, 0x000088E6 }, /* GL_STATIC_COPY */ - { 32383, 0x000088E6 }, /* GL_STATIC_COPY_ARB */ - { 32402, 0x000088E4 }, /* GL_STATIC_DRAW */ - { 32417, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */ - { 32436, 0x000088E5 }, /* GL_STATIC_READ */ - { 32451, 0x000088E5 }, /* GL_STATIC_READ_ARB */ - { 32470, 0x00001802 }, /* GL_STENCIL */ - { 32481, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ - { 32503, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */ - { 32529, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ - { 32550, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */ - { 32575, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ - { 32596, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */ - { 32621, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ - { 32653, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */ - { 32689, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ - { 32721, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */ - { 32757, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ - { 32777, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ - { 32804, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ - { 32830, 0x00000D57 }, /* GL_STENCIL_BITS */ - { 32846, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */ - { 32868, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ - { 32891, 0x00000B94 }, /* GL_STENCIL_FAIL */ - { 32907, 0x00000B92 }, /* GL_STENCIL_FUNC */ - { 32923, 0x00001901 }, /* GL_STENCIL_INDEX */ - { 32940, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ - { 32958, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ - { 32977, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */ - { 33000, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */ - { 33022, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ - { 33040, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */ - { 33062, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ - { 33080, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */ - { 33102, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */ - { 33123, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ - { 33150, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ - { 33177, 0x00000B97 }, /* GL_STENCIL_REF */ - { 33192, 0x00000B90 }, /* GL_STENCIL_TEST */ - { 33208, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ - { 33237, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ - { 33259, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ - { 33280, 0x00000C33 }, /* GL_STEREO */ - { 33290, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ - { 33314, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ - { 33339, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ - { 33363, 0x000088E2 }, /* GL_STREAM_COPY */ - { 33378, 0x000088E2 }, /* GL_STREAM_COPY_ARB */ - { 33397, 0x000088E0 }, /* GL_STREAM_DRAW */ - { 33412, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */ - { 33431, 0x000088E1 }, /* GL_STREAM_READ */ - { 33446, 0x000088E1 }, /* GL_STREAM_READ_ARB */ - { 33465, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ - { 33482, 0x000084E7 }, /* GL_SUBTRACT */ - { 33494, 0x000084E7 }, /* GL_SUBTRACT_ARB */ - { 33510, 0x00009113 }, /* GL_SYNC_CONDITION */ - { 33528, 0x00009116 }, /* GL_SYNC_FENCE */ - { 33542, 0x00009115 }, /* GL_SYNC_FLAGS */ - { 33556, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */ - { 33583, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - { 33613, 0x00009114 }, /* GL_SYNC_STATUS */ - { 33628, 0x00002001 }, /* GL_T */ - { 33633, 0x00002A2A }, /* GL_T2F_C3F_V3F */ - { 33648, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ - { 33667, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ - { 33683, 0x00002A2B }, /* GL_T2F_N3F_V3F */ - { 33698, 0x00002A27 }, /* GL_T2F_V3F */ - { 33709, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ - { 33728, 0x00002A28 }, /* GL_T4F_V4F */ - { 33739, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */ - { 33762, 0x00001702 }, /* GL_TEXTURE */ - { 33773, 0x000084C0 }, /* GL_TEXTURE0 */ - { 33785, 0x000084C0 }, /* GL_TEXTURE0_ARB */ - { 33801, 0x000084C1 }, /* GL_TEXTURE1 */ - { 33813, 0x000084CA }, /* GL_TEXTURE10 */ - { 33826, 0x000084CA }, /* GL_TEXTURE10_ARB */ - { 33843, 0x000084CB }, /* GL_TEXTURE11 */ - { 33856, 0x000084CB }, /* GL_TEXTURE11_ARB */ - { 33873, 0x000084CC }, /* GL_TEXTURE12 */ - { 33886, 0x000084CC }, /* GL_TEXTURE12_ARB */ - { 33903, 0x000084CD }, /* GL_TEXTURE13 */ - { 33916, 0x000084CD }, /* GL_TEXTURE13_ARB */ - { 33933, 0x000084CE }, /* GL_TEXTURE14 */ - { 33946, 0x000084CE }, /* GL_TEXTURE14_ARB */ - { 33963, 0x000084CF }, /* GL_TEXTURE15 */ - { 33976, 0x000084CF }, /* GL_TEXTURE15_ARB */ - { 33993, 0x000084D0 }, /* GL_TEXTURE16 */ - { 34006, 0x000084D0 }, /* GL_TEXTURE16_ARB */ - { 34023, 0x000084D1 }, /* GL_TEXTURE17 */ - { 34036, 0x000084D1 }, /* GL_TEXTURE17_ARB */ - { 34053, 0x000084D2 }, /* GL_TEXTURE18 */ - { 34066, 0x000084D2 }, /* GL_TEXTURE18_ARB */ - { 34083, 0x000084D3 }, /* GL_TEXTURE19 */ - { 34096, 0x000084D3 }, /* GL_TEXTURE19_ARB */ - { 34113, 0x000084C1 }, /* GL_TEXTURE1_ARB */ - { 34129, 0x000084C2 }, /* GL_TEXTURE2 */ - { 34141, 0x000084D4 }, /* GL_TEXTURE20 */ - { 34154, 0x000084D4 }, /* GL_TEXTURE20_ARB */ - { 34171, 0x000084D5 }, /* GL_TEXTURE21 */ - { 34184, 0x000084D5 }, /* GL_TEXTURE21_ARB */ - { 34201, 0x000084D6 }, /* GL_TEXTURE22 */ - { 34214, 0x000084D6 }, /* GL_TEXTURE22_ARB */ - { 34231, 0x000084D7 }, /* GL_TEXTURE23 */ - { 34244, 0x000084D7 }, /* GL_TEXTURE23_ARB */ - { 34261, 0x000084D8 }, /* GL_TEXTURE24 */ - { 34274, 0x000084D8 }, /* GL_TEXTURE24_ARB */ - { 34291, 0x000084D9 }, /* GL_TEXTURE25 */ - { 34304, 0x000084D9 }, /* GL_TEXTURE25_ARB */ - { 34321, 0x000084DA }, /* GL_TEXTURE26 */ - { 34334, 0x000084DA }, /* GL_TEXTURE26_ARB */ - { 34351, 0x000084DB }, /* GL_TEXTURE27 */ - { 34364, 0x000084DB }, /* GL_TEXTURE27_ARB */ - { 34381, 0x000084DC }, /* GL_TEXTURE28 */ - { 34394, 0x000084DC }, /* GL_TEXTURE28_ARB */ - { 34411, 0x000084DD }, /* GL_TEXTURE29 */ - { 34424, 0x000084DD }, /* GL_TEXTURE29_ARB */ - { 34441, 0x000084C2 }, /* GL_TEXTURE2_ARB */ - { 34457, 0x000084C3 }, /* GL_TEXTURE3 */ - { 34469, 0x000084DE }, /* GL_TEXTURE30 */ - { 34482, 0x000084DE }, /* GL_TEXTURE30_ARB */ - { 34499, 0x000084DF }, /* GL_TEXTURE31 */ - { 34512, 0x000084DF }, /* GL_TEXTURE31_ARB */ - { 34529, 0x000084C3 }, /* GL_TEXTURE3_ARB */ - { 34545, 0x000084C4 }, /* GL_TEXTURE4 */ - { 34557, 0x000084C4 }, /* GL_TEXTURE4_ARB */ - { 34573, 0x000084C5 }, /* GL_TEXTURE5 */ - { 34585, 0x000084C5 }, /* GL_TEXTURE5_ARB */ - { 34601, 0x000084C6 }, /* GL_TEXTURE6 */ - { 34613, 0x000084C6 }, /* GL_TEXTURE6_ARB */ - { 34629, 0x000084C7 }, /* GL_TEXTURE7 */ - { 34641, 0x000084C7 }, /* GL_TEXTURE7_ARB */ - { 34657, 0x000084C8 }, /* GL_TEXTURE8 */ - { 34669, 0x000084C8 }, /* GL_TEXTURE8_ARB */ - { 34685, 0x000084C9 }, /* GL_TEXTURE9 */ - { 34697, 0x000084C9 }, /* GL_TEXTURE9_ARB */ - { 34713, 0x00000DE0 }, /* GL_TEXTURE_1D */ - { 34727, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */ - { 34751, 0x00000DE1 }, /* GL_TEXTURE_2D */ - { 34765, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */ - { 34789, 0x0000806F }, /* GL_TEXTURE_3D */ - { 34803, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ - { 34825, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */ - { 34851, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ - { 34873, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ - { 34895, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ - { 34927, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ - { 34949, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ - { 34981, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ - { 35003, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ - { 35031, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */ - { 35063, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ - { 35096, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */ - { 35128, 0x00040000 }, /* GL_TEXTURE_BIT */ - { 35143, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ - { 35164, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */ - { 35189, 0x00001005 }, /* GL_TEXTURE_BORDER */ - { 35207, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ - { 35231, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ - { 35262, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ - { 35292, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ - { 35322, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ - { 35357, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ - { 35388, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 35426, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ - { 35453, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ - { 35485, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ - { 35519, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ - { 35543, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */ - { 35571, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ - { 35595, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */ - { 35623, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ - { 35656, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ - { 35680, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */ - { 35702, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ - { 35724, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */ - { 35750, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */ - { 35784, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ - { 35817, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */ - { 35854, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ - { 35882, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */ - { 35914, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ - { 35937, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ - { 35975, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */ - { 36017, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ - { 36048, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ - { 36076, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ - { 36106, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ - { 36134, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ - { 36154, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */ - { 36178, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ - { 36209, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */ - { 36244, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ - { 36275, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */ - { 36310, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ - { 36341, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */ - { 36376, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ - { 36407, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */ - { 36442, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ - { 36473, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */ - { 36508, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ - { 36539, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */ - { 36574, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ - { 36603, 0x00008071 }, /* GL_TEXTURE_DEPTH */ - { 36620, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ - { 36642, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */ - { 36668, 0x00002300 }, /* GL_TEXTURE_ENV */ - { 36683, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ - { 36704, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ - { 36724, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ - { 36750, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ - { 36770, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ - { 36787, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ - { 36804, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ - { 36821, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ - { 36838, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ - { 36863, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ - { 36885, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */ - { 36911, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ - { 36929, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ - { 36955, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ - { 36981, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */ - { 37011, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */ - { 37038, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ - { 37063, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ - { 37083, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */ - { 37107, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ - { 37134, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ - { 37161, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ - { 37188, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ - { 37214, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */ - { 37244, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ - { 37266, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ - { 37284, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ - { 37314, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ - { 37342, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ - { 37370, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ - { 37398, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ - { 37419, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ - { 37438, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ - { 37460, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ - { 37479, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ - { 37499, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ - { 37529, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - { 37560, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */ - { 37585, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */ - { 37609, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ - { 37629, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */ - { 37653, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ - { 37673, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ - { 37696, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ - { 37720, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */ - { 37748, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ - { 37778, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ - { 37803, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ - { 37837, 0x00001000 }, /* GL_TEXTURE_WIDTH */ - { 37854, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ - { 37872, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ - { 37890, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ - { 37908, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ - { 37927, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ - { 37947, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ - { 37966, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - { 37995, 0x00001000 }, /* GL_TRANSFORM_BIT */ - { 38012, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ - { 38038, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ - { 38068, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - { 38100, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - { 38130, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ - { 38164, 0x0000862C }, /* GL_TRANSPOSE_NV */ - { 38180, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - { 38211, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ - { 38246, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - { 38274, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ - { 38306, 0x00000004 }, /* GL_TRIANGLES */ - { 38319, 0x00000006 }, /* GL_TRIANGLE_FAN */ - { 38335, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ - { 38356, 0x00000005 }, /* GL_TRIANGLE_STRIP */ - { 38374, 0x00000001 }, /* GL_TRUE */ - { 38382, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ - { 38401, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ - { 38421, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ - { 38444, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ - { 38464, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ - { 38485, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ - { 38507, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ - { 38529, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ - { 38549, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ - { 38570, 0x00009118 }, /* GL_UNSIGNALED */ - { 38584, 0x00001401 }, /* GL_UNSIGNED_BYTE */ - { 38601, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - { 38628, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ - { 38651, 0x00001405 }, /* GL_UNSIGNED_INT */ - { 38667, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ - { 38694, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ - { 38715, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ - { 38740, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ - { 38764, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - { 38795, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ - { 38819, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - { 38847, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ - { 38870, 0x00001403 }, /* GL_UNSIGNED_SHORT */ - { 38888, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - { 38918, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - { 38944, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - { 38974, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - { 39000, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ - { 39024, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - { 39052, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - { 39080, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ - { 39107, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - { 39139, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ - { 39170, 0x00008CA2 }, /* GL_UPPER_LEFT */ - { 39184, 0x00002A20 }, /* GL_V2F */ - { 39191, 0x00002A21 }, /* GL_V3F */ - { 39198, 0x00008B83 }, /* GL_VALIDATE_STATUS */ - { 39217, 0x00001F00 }, /* GL_VENDOR */ - { 39227, 0x00001F02 }, /* GL_VERSION */ - { 39238, 0x00008074 }, /* GL_VERTEX_ARRAY */ - { 39254, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ - { 39278, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ - { 39308, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - { 39339, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ - { 39374, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ - { 39398, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ - { 39419, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ - { 39442, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ - { 39463, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - { 39490, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - { 39518, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - { 39546, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - { 39574, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - { 39602, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - { 39630, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - { 39658, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - { 39685, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - { 39712, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - { 39739, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - { 39766, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - { 39793, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - { 39820, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - { 39847, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - { 39874, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - { 39901, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - { 39939, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ - { 39981, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - { 40012, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ - { 40047, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ - { 40081, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ - { 40119, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - { 40150, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ - { 40185, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - { 40213, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ - { 40245, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - { 40275, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ - { 40309, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ - { 40337, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ - { 40369, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ - { 40389, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ - { 40411, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ - { 40440, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ - { 40461, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - { 40490, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ - { 40523, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ - { 40555, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - { 40582, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ - { 40613, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ - { 40643, 0x00008B31 }, /* GL_VERTEX_SHADER */ - { 40660, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ - { 40681, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ - { 40708, 0x00000BA2 }, /* GL_VIEWPORT */ - { 40720, 0x00000800 }, /* GL_VIEWPORT_BIT */ - { 40736, 0x00008A1A }, /* GL_VOLATILE_APPLE */ - { 40754, 0x0000911D }, /* GL_WAIT_FAILED */ - { 40769, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ - { 40789, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - { 40820, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ - { 40855, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - { 40883, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - { 40908, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - { 40935, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - { 40960, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ - { 40984, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ - { 41003, 0x000088B9 }, /* GL_WRITE_ONLY */ - { 41017, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ - { 41035, 0x00001506 }, /* GL_XOR */ - { 41042, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ - { 41061, 0x00008757 }, /* GL_YCBCR_MESA */ - { 41075, 0x00000000 }, /* GL_ZERO */ - { 41083, 0x00000D16 }, /* GL_ZOOM_X */ - { 41093, 0x00000D17 }, /* GL_ZOOM_Y */ + { 13888, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */ + { 13915, 0x00008575 }, /* GL_INTERPOLATE */ + { 13930, 0x00008575 }, /* GL_INTERPOLATE_ARB */ + { 13949, 0x00008575 }, /* GL_INTERPOLATE_EXT */ + { 13968, 0x00008B53 }, /* GL_INT_VEC2 */ + { 13980, 0x00008B53 }, /* GL_INT_VEC2_ARB */ + { 13996, 0x00008B54 }, /* GL_INT_VEC3 */ + { 14008, 0x00008B54 }, /* GL_INT_VEC3_ARB */ + { 14024, 0x00008B55 }, /* GL_INT_VEC4 */ + { 14036, 0x00008B55 }, /* GL_INT_VEC4_ARB */ + { 14052, 0x00000500 }, /* GL_INVALID_ENUM */ + { 14068, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ + { 14101, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */ + { 14138, 0x00000502 }, /* GL_INVALID_OPERATION */ + { 14159, 0x00000501 }, /* GL_INVALID_VALUE */ + { 14176, 0x0000862B }, /* GL_INVERSE_NV */ + { 14190, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ + { 14214, 0x0000150A }, /* GL_INVERT */ + { 14224, 0x00001E00 }, /* GL_KEEP */ + { 14232, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ + { 14258, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */ + { 14288, 0x00000406 }, /* GL_LEFT */ + { 14296, 0x00000203 }, /* GL_LEQUAL */ + { 14306, 0x00000201 }, /* GL_LESS */ + { 14314, 0x00004000 }, /* GL_LIGHT0 */ + { 14324, 0x00004001 }, /* GL_LIGHT1 */ + { 14334, 0x00004002 }, /* GL_LIGHT2 */ + { 14344, 0x00004003 }, /* GL_LIGHT3 */ + { 14354, 0x00004004 }, /* GL_LIGHT4 */ + { 14364, 0x00004005 }, /* GL_LIGHT5 */ + { 14374, 0x00004006 }, /* GL_LIGHT6 */ + { 14384, 0x00004007 }, /* GL_LIGHT7 */ + { 14394, 0x00000B50 }, /* GL_LIGHTING */ + { 14406, 0x00000040 }, /* GL_LIGHTING_BIT */ + { 14422, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ + { 14445, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ + { 14474, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */ + { 14507, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ + { 14535, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ + { 14559, 0x00001B01 }, /* GL_LINE */ + { 14567, 0x00002601 }, /* GL_LINEAR */ + { 14577, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ + { 14599, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ + { 14629, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ + { 14660, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ + { 14684, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ + { 14709, 0x00000001 }, /* GL_LINES */ + { 14718, 0x00000004 }, /* GL_LINE_BIT */ + { 14730, 0x00000002 }, /* GL_LINE_LOOP */ + { 14743, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ + { 14763, 0x00000B20 }, /* GL_LINE_SMOOTH */ + { 14778, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ + { 14798, 0x00000B24 }, /* GL_LINE_STIPPLE */ + { 14814, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ + { 14838, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ + { 14861, 0x00000003 }, /* GL_LINE_STRIP */ + { 14875, 0x00000702 }, /* GL_LINE_TOKEN */ + { 14889, 0x00000B21 }, /* GL_LINE_WIDTH */ + { 14903, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */ + { 14929, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */ + { 14949, 0x00008B82 }, /* GL_LINK_STATUS */ + { 14964, 0x00000B32 }, /* GL_LIST_BASE */ + { 14977, 0x00020000 }, /* GL_LIST_BIT */ + { 14989, 0x00000B33 }, /* GL_LIST_INDEX */ + { 15003, 0x00000B30 }, /* GL_LIST_MODE */ + { 15016, 0x00000101 }, /* GL_LOAD */ + { 15024, 0x00000BF1 }, /* GL_LOGIC_OP */ + { 15036, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ + { 15053, 0x00008CA1 }, /* GL_LOWER_LEFT */ + { 15067, 0x00001909 }, /* GL_LUMINANCE */ + { 15080, 0x00008041 }, /* GL_LUMINANCE12 */ + { 15095, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ + { 15118, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */ + { 15145, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ + { 15167, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */ + { 15193, 0x00008041 }, /* GL_LUMINANCE12_EXT */ + { 15212, 0x00008042 }, /* GL_LUMINANCE16 */ + { 15227, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ + { 15250, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */ + { 15277, 0x00008042 }, /* GL_LUMINANCE16_EXT */ + { 15296, 0x0000803F }, /* GL_LUMINANCE4 */ + { 15310, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ + { 15331, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */ + { 15356, 0x0000803F }, /* GL_LUMINANCE4_EXT */ + { 15374, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ + { 15395, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */ + { 15420, 0x00008040 }, /* GL_LUMINANCE8 */ + { 15434, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ + { 15455, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */ + { 15480, 0x00008040 }, /* GL_LUMINANCE8_EXT */ + { 15498, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ + { 15517, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ + { 15533, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ + { 15553, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ + { 15575, 0x00000D91 }, /* GL_MAP1_INDEX */ + { 15589, 0x00000D92 }, /* GL_MAP1_NORMAL */ + { 15604, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ + { 15628, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ + { 15652, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ + { 15676, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ + { 15700, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ + { 15717, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ + { 15734, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ + { 15762, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ + { 15791, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ + { 15820, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ + { 15849, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ + { 15878, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ + { 15907, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ + { 15936, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ + { 15964, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ + { 15992, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ + { 16020, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ + { 16048, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ + { 16076, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ + { 16104, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ + { 16132, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ + { 16160, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ + { 16188, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ + { 16204, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ + { 16224, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ + { 16246, 0x00000DB1 }, /* GL_MAP2_INDEX */ + { 16260, 0x00000DB2 }, /* GL_MAP2_NORMAL */ + { 16275, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ + { 16299, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ + { 16323, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ + { 16347, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ + { 16371, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ + { 16388, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ + { 16405, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ + { 16433, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ + { 16462, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ + { 16491, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ + { 16520, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ + { 16549, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ + { 16578, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ + { 16607, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ + { 16635, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ + { 16663, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ + { 16691, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ + { 16719, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ + { 16747, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ + { 16775, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */ + { 16803, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ + { 16831, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ + { 16859, 0x00000D10 }, /* GL_MAP_COLOR */ + { 16872, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */ + { 16898, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */ + { 16927, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */ + { 16955, 0x00000001 }, /* GL_MAP_READ_BIT */ + { 16971, 0x00000D11 }, /* GL_MAP_STENCIL */ + { 16986, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */ + { 17012, 0x00000002 }, /* GL_MAP_WRITE_BIT */ + { 17029, 0x000088C0 }, /* GL_MATRIX0_ARB */ + { 17044, 0x00008630 }, /* GL_MATRIX0_NV */ + { 17058, 0x000088CA }, /* GL_MATRIX10_ARB */ + { 17074, 0x000088CB }, /* GL_MATRIX11_ARB */ + { 17090, 0x000088CC }, /* GL_MATRIX12_ARB */ + { 17106, 0x000088CD }, /* GL_MATRIX13_ARB */ + { 17122, 0x000088CE }, /* GL_MATRIX14_ARB */ + { 17138, 0x000088CF }, /* GL_MATRIX15_ARB */ + { 17154, 0x000088D0 }, /* GL_MATRIX16_ARB */ + { 17170, 0x000088D1 }, /* GL_MATRIX17_ARB */ + { 17186, 0x000088D2 }, /* GL_MATRIX18_ARB */ + { 17202, 0x000088D3 }, /* GL_MATRIX19_ARB */ + { 17218, 0x000088C1 }, /* GL_MATRIX1_ARB */ + { 17233, 0x00008631 }, /* GL_MATRIX1_NV */ + { 17247, 0x000088D4 }, /* GL_MATRIX20_ARB */ + { 17263, 0x000088D5 }, /* GL_MATRIX21_ARB */ + { 17279, 0x000088D6 }, /* GL_MATRIX22_ARB */ + { 17295, 0x000088D7 }, /* GL_MATRIX23_ARB */ + { 17311, 0x000088D8 }, /* GL_MATRIX24_ARB */ + { 17327, 0x000088D9 }, /* GL_MATRIX25_ARB */ + { 17343, 0x000088DA }, /* GL_MATRIX26_ARB */ + { 17359, 0x000088DB }, /* GL_MATRIX27_ARB */ + { 17375, 0x000088DC }, /* GL_MATRIX28_ARB */ + { 17391, 0x000088DD }, /* GL_MATRIX29_ARB */ + { 17407, 0x000088C2 }, /* GL_MATRIX2_ARB */ + { 17422, 0x00008632 }, /* GL_MATRIX2_NV */ + { 17436, 0x000088DE }, /* GL_MATRIX30_ARB */ + { 17452, 0x000088DF }, /* GL_MATRIX31_ARB */ + { 17468, 0x000088C3 }, /* GL_MATRIX3_ARB */ + { 17483, 0x00008633 }, /* GL_MATRIX3_NV */ + { 17497, 0x000088C4 }, /* GL_MATRIX4_ARB */ + { 17512, 0x00008634 }, /* GL_MATRIX4_NV */ + { 17526, 0x000088C5 }, /* GL_MATRIX5_ARB */ + { 17541, 0x00008635 }, /* GL_MATRIX5_NV */ + { 17555, 0x000088C6 }, /* GL_MATRIX6_ARB */ + { 17570, 0x00008636 }, /* GL_MATRIX6_NV */ + { 17584, 0x000088C7 }, /* GL_MATRIX7_ARB */ + { 17599, 0x00008637 }, /* GL_MATRIX7_NV */ + { 17613, 0x000088C8 }, /* GL_MATRIX8_ARB */ + { 17628, 0x000088C9 }, /* GL_MATRIX9_ARB */ + { 17643, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ + { 17669, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ + { 17703, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ + { 17734, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ + { 17767, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ + { 17798, 0x00000BA0 }, /* GL_MATRIX_MODE */ + { 17813, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ + { 17835, 0x00008008 }, /* GL_MAX */ + { 17842, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ + { 17865, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ + { 17897, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ + { 17923, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ + { 17956, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ + { 17982, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 18016, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */ + { 18035, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ + { 18060, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */ + { 18089, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ + { 18121, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */ + { 18157, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ + { 18193, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */ + { 18233, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ + { 18259, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */ + { 18289, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ + { 18314, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */ + { 18343, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ + { 18372, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */ + { 18405, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ + { 18425, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */ + { 18449, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */ + { 18473, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ + { 18497, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ + { 18522, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ + { 18540, 0x00008008 }, /* GL_MAX_EXT */ + { 18551, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ + { 18586, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */ + { 18625, 0x00000D31 }, /* GL_MAX_LIGHTS */ + { 18639, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ + { 18659, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ + { 18697, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ + { 18726, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ + { 18750, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ + { 18778, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ + { 18801, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 18838, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 18874, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ + { 18901, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ + { 18930, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ + { 18964, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ + { 19000, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ + { 19027, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ + { 19059, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ + { 19095, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ + { 19124, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ + { 19153, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ + { 19181, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ + { 19219, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 19263, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 19306, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 19340, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 19379, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 19416, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 19454, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 19497, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 19540, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ + { 19570, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ + { 19601, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 19637, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 19673, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ + { 19703, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ + { 19737, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */ + { 19770, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ + { 19795, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */ + { 19824, 0x00008D57 }, /* GL_MAX_SAMPLES */ + { 19839, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */ + { 19858, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ + { 19885, 0x00008504 }, /* GL_MAX_SHININESS_NV */ + { 19905, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ + { 19929, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ + { 19951, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */ + { 19977, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ + { 20004, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */ + { 20035, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ + { 20059, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ + { 20093, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ + { 20113, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ + { 20140, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ + { 20161, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */ + { 20186, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */ + { 20211, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */ + { 20246, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ + { 20299, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ + { 20346, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ + { 20396, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */ + { 20418, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */ + { 20444, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ + { 20466, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */ + { 20492, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ + { 20526, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ + { 20564, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ + { 20597, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */ + { 20634, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ + { 20658, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ + { 20679, 0x00008007 }, /* GL_MIN */ + { 20686, 0x0000802E }, /* GL_MINMAX */ + { 20696, 0x0000802E }, /* GL_MINMAX_EXT */ + { 20710, 0x0000802F }, /* GL_MINMAX_FORMAT */ + { 20727, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */ + { 20748, 0x00008030 }, /* GL_MINMAX_SINK */ + { 20763, 0x00008030 }, /* GL_MINMAX_SINK_EXT */ + { 20782, 0x00008007 }, /* GL_MIN_EXT */ + { 20793, 0x00008370 }, /* GL_MIRRORED_REPEAT */ + { 20812, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */ + { 20835, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */ + { 20858, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */ + { 20878, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ + { 20898, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ + { 20928, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */ + { 20956, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ + { 20984, 0x00001700 }, /* GL_MODELVIEW */ + { 20997, 0x00001700 }, /* GL_MODELVIEW0_ARB */ + { 21015, 0x0000872A }, /* GL_MODELVIEW10_ARB */ + { 21034, 0x0000872B }, /* GL_MODELVIEW11_ARB */ + { 21053, 0x0000872C }, /* GL_MODELVIEW12_ARB */ + { 21072, 0x0000872D }, /* GL_MODELVIEW13_ARB */ + { 21091, 0x0000872E }, /* GL_MODELVIEW14_ARB */ + { 21110, 0x0000872F }, /* GL_MODELVIEW15_ARB */ + { 21129, 0x00008730 }, /* GL_MODELVIEW16_ARB */ + { 21148, 0x00008731 }, /* GL_MODELVIEW17_ARB */ + { 21167, 0x00008732 }, /* GL_MODELVIEW18_ARB */ + { 21186, 0x00008733 }, /* GL_MODELVIEW19_ARB */ + { 21205, 0x0000850A }, /* GL_MODELVIEW1_ARB */ + { 21223, 0x00008734 }, /* GL_MODELVIEW20_ARB */ + { 21242, 0x00008735 }, /* GL_MODELVIEW21_ARB */ + { 21261, 0x00008736 }, /* GL_MODELVIEW22_ARB */ + { 21280, 0x00008737 }, /* GL_MODELVIEW23_ARB */ + { 21299, 0x00008738 }, /* GL_MODELVIEW24_ARB */ + { 21318, 0x00008739 }, /* GL_MODELVIEW25_ARB */ + { 21337, 0x0000873A }, /* GL_MODELVIEW26_ARB */ + { 21356, 0x0000873B }, /* GL_MODELVIEW27_ARB */ + { 21375, 0x0000873C }, /* GL_MODELVIEW28_ARB */ + { 21394, 0x0000873D }, /* GL_MODELVIEW29_ARB */ + { 21413, 0x00008722 }, /* GL_MODELVIEW2_ARB */ + { 21431, 0x0000873E }, /* GL_MODELVIEW30_ARB */ + { 21450, 0x0000873F }, /* GL_MODELVIEW31_ARB */ + { 21469, 0x00008723 }, /* GL_MODELVIEW3_ARB */ + { 21487, 0x00008724 }, /* GL_MODELVIEW4_ARB */ + { 21505, 0x00008725 }, /* GL_MODELVIEW5_ARB */ + { 21523, 0x00008726 }, /* GL_MODELVIEW6_ARB */ + { 21541, 0x00008727 }, /* GL_MODELVIEW7_ARB */ + { 21559, 0x00008728 }, /* GL_MODELVIEW8_ARB */ + { 21577, 0x00008729 }, /* GL_MODELVIEW9_ARB */ + { 21595, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ + { 21615, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ + { 21642, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ + { 21667, 0x00002100 }, /* GL_MODULATE */ + { 21679, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ + { 21699, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ + { 21726, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ + { 21751, 0x00000103 }, /* GL_MULT */ + { 21759, 0x0000809D }, /* GL_MULTISAMPLE */ + { 21774, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ + { 21794, 0x0000809D }, /* GL_MULTISAMPLE_ARB */ + { 21813, 0x20000000 }, /* GL_MULTISAMPLE_BIT */ + { 21832, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */ + { 21856, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */ + { 21879, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ + { 21909, 0x00002A25 }, /* GL_N3F_V3F */ + { 21920, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ + { 21940, 0x0000150E }, /* GL_NAND */ + { 21948, 0x00002600 }, /* GL_NEAREST */ + { 21959, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ + { 21990, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ + { 22022, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ + { 22047, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ + { 22073, 0x00000200 }, /* GL_NEVER */ + { 22082, 0x00001102 }, /* GL_NICEST */ + { 22092, 0x00000000 }, /* GL_NONE */ + { 22100, 0x00001505 }, /* GL_NOOP */ + { 22108, 0x00001508 }, /* GL_NOR */ + { 22115, 0x00000BA1 }, /* GL_NORMALIZE */ + { 22128, 0x00008075 }, /* GL_NORMAL_ARRAY */ + { 22144, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ + { 22175, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */ + { 22210, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ + { 22234, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ + { 22257, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ + { 22278, 0x00008511 }, /* GL_NORMAL_MAP */ + { 22292, 0x00008511 }, /* GL_NORMAL_MAP_ARB */ + { 22310, 0x00008511 }, /* GL_NORMAL_MAP_NV */ + { 22327, 0x00000205 }, /* GL_NOTEQUAL */ + { 22339, 0x00000000 }, /* GL_NO_ERROR */ + { 22351, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ + { 22385, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */ + { 22423, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */ + { 22455, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */ + { 22497, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */ + { 22527, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */ + { 22567, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */ + { 22598, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */ + { 22627, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */ + { 22655, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */ + { 22685, 0x00002401 }, /* GL_OBJECT_LINEAR */ + { 22702, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */ + { 22728, 0x00002501 }, /* GL_OBJECT_PLANE */ + { 22744, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */ + { 22779, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */ + { 22801, 0x00009112 }, /* GL_OBJECT_TYPE */ + { 22816, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ + { 22835, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */ + { 22865, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ + { 22886, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ + { 22914, 0x00000001 }, /* GL_ONE */ + { 22921, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ + { 22949, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */ + { 22981, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ + { 23009, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */ + { 23041, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ + { 23064, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ + { 23087, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ + { 23110, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ + { 23133, 0x00008598 }, /* GL_OPERAND0_ALPHA */ + { 23151, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */ + { 23173, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */ + { 23195, 0x00008590 }, /* GL_OPERAND0_RGB */ + { 23211, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */ + { 23231, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */ + { 23251, 0x00008599 }, /* GL_OPERAND1_ALPHA */ + { 23269, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */ + { 23291, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */ + { 23313, 0x00008591 }, /* GL_OPERAND1_RGB */ + { 23329, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */ + { 23349, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */ + { 23369, 0x0000859A }, /* GL_OPERAND2_ALPHA */ + { 23387, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */ + { 23409, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */ + { 23431, 0x00008592 }, /* GL_OPERAND2_RGB */ + { 23447, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */ + { 23467, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */ + { 23487, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ + { 23508, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ + { 23527, 0x00001507 }, /* GL_OR */ + { 23533, 0x00000A01 }, /* GL_ORDER */ + { 23542, 0x0000150D }, /* GL_OR_INVERTED */ + { 23557, 0x0000150B }, /* GL_OR_REVERSE */ + { 23571, 0x00000505 }, /* GL_OUT_OF_MEMORY */ + { 23588, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ + { 23606, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ + { 23627, 0x00008758 }, /* GL_PACK_INVERT_MESA */ + { 23647, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ + { 23665, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ + { 23684, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ + { 23704, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ + { 23724, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ + { 23742, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ + { 23761, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ + { 23786, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ + { 23810, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ + { 23831, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ + { 23853, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ + { 23875, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ + { 23900, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ + { 23924, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ + { 23945, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ + { 23967, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ + { 23989, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ + { 24011, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ + { 24042, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ + { 24062, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ + { 24087, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ + { 24107, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ + { 24132, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ + { 24152, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ + { 24177, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ + { 24197, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ + { 24222, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ + { 24242, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ + { 24267, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ + { 24287, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ + { 24312, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ + { 24332, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ + { 24357, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ + { 24377, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ + { 24402, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ + { 24422, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ + { 24447, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ + { 24467, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ + { 24492, 0x00000020 }, /* GL_PIXEL_MODE_BIT */ + { 24510, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ + { 24531, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ + { 24560, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */ + { 24593, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */ + { 24618, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ + { 24641, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ + { 24672, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */ + { 24707, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */ + { 24734, 0x00001B00 }, /* GL_POINT */ + { 24743, 0x00000000 }, /* GL_POINTS */ + { 24753, 0x00000002 }, /* GL_POINT_BIT */ + { 24766, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ + { 24796, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */ + { 24830, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */ + { 24864, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */ + { 24899, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ + { 24928, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */ + { 24961, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */ + { 24994, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */ + { 25028, 0x00000B11 }, /* GL_POINT_SIZE */ + { 25042, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */ + { 25068, 0x00008127 }, /* GL_POINT_SIZE_MAX */ + { 25086, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */ + { 25108, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */ + { 25130, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */ + { 25153, 0x00008126 }, /* GL_POINT_SIZE_MIN */ + { 25171, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */ + { 25193, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */ + { 25215, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */ + { 25238, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */ + { 25258, 0x00000B10 }, /* GL_POINT_SMOOTH */ + { 25274, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ + { 25295, 0x00008861 }, /* GL_POINT_SPRITE */ + { 25311, 0x00008861 }, /* GL_POINT_SPRITE_ARB */ + { 25331, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ + { 25360, 0x00008861 }, /* GL_POINT_SPRITE_NV */ + { 25379, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ + { 25405, 0x00000701 }, /* GL_POINT_TOKEN */ + { 25420, 0x00000009 }, /* GL_POLYGON */ + { 25431, 0x00000008 }, /* GL_POLYGON_BIT */ + { 25446, 0x00000B40 }, /* GL_POLYGON_MODE */ + { 25462, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */ + { 25485, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ + { 25510, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ + { 25533, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ + { 25556, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ + { 25580, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ + { 25604, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ + { 25622, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ + { 25645, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ + { 25664, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */ + { 25687, 0x00000703 }, /* GL_POLYGON_TOKEN */ + { 25704, 0x00001203 }, /* GL_POSITION */ + { 25716, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + { 25748, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */ + { 25784, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ + { 25817, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */ + { 25854, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ + { 25885, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */ + { 25920, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ + { 25952, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */ + { 25988, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ + { 26021, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ + { 26053, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */ + { 26089, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ + { 26122, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */ + { 26159, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ + { 26189, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */ + { 26223, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ + { 26254, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */ + { 26289, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ + { 26320, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */ + { 26355, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ + { 26387, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */ + { 26423, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ + { 26453, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */ + { 26487, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ + { 26518, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */ + { 26553, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ + { 26585, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ + { 26616, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */ + { 26651, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ + { 26683, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */ + { 26719, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ + { 26748, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */ + { 26781, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ + { 26811, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */ + { 26845, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ + { 26884, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ + { 26917, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ + { 26957, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ + { 26991, 0x00008578 }, /* GL_PREVIOUS */ + { 27003, 0x00008578 }, /* GL_PREVIOUS_ARB */ + { 27019, 0x00008578 }, /* GL_PREVIOUS_EXT */ + { 27035, 0x00008577 }, /* GL_PRIMARY_COLOR */ + { 27052, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */ + { 27073, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */ + { 27094, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */ + { 27122, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 27155, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 27187, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ + { 27210, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ + { 27233, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ + { 27263, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */ + { 27292, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ + { 27320, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ + { 27342, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ + { 27370, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ + { 27398, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ + { 27420, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */ + { 27441, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 27481, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 27520, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 27550, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 27585, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 27618, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 27652, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 27691, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 27730, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ + { 27752, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ + { 27778, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ + { 27802, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ + { 27825, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ + { 27847, 0x00008628 }, /* GL_PROGRAM_STRING_NV */ + { 27868, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ + { 27889, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ + { 27916, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 27948, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 27980, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ + { 28015, 0x00001701 }, /* GL_PROJECTION */ + { 28029, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ + { 28050, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ + { 28076, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ + { 28096, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */ + { 28120, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ + { 28141, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ + { 28160, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */ + { 28183, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + { 28222, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ + { 28260, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ + { 28280, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ + { 28310, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */ + { 28334, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ + { 28354, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ + { 28384, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */ + { 28408, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ + { 28428, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ + { 28461, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ + { 28487, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */ + { 28517, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ + { 28548, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */ + { 28578, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ + { 28597, 0x00002003 }, /* GL_Q */ + { 28602, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ + { 28627, 0x00000007 }, /* GL_QUADS */ + { 28636, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ + { 28680, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */ + { 28728, 0x00008614 }, /* GL_QUAD_MESH_SUN */ + { 28745, 0x00000008 }, /* GL_QUAD_STRIP */ + { 28759, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ + { 28789, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */ + { 28816, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ + { 28838, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */ + { 28864, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */ + { 28884, 0x00008866 }, /* GL_QUERY_RESULT */ + { 28900, 0x00008866 }, /* GL_QUERY_RESULT_ARB */ + { 28920, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ + { 28946, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */ + { 28976, 0x00008E13 }, /* GL_QUERY_WAIT_NV */ + { 28993, 0x00002002 }, /* GL_R */ + { 28998, 0x00002A10 }, /* GL_R3_G3_B2 */ + { 29010, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */ + { 29036, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ + { 29069, 0x00000C02 }, /* GL_READ_BUFFER */ + { 29084, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ + { 29104, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ + { 29132, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */ + { 29164, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */ + { 29188, 0x000088B8 }, /* GL_READ_ONLY */ + { 29201, 0x000088B8 }, /* GL_READ_ONLY_ARB */ + { 29218, 0x000088BA }, /* GL_READ_WRITE */ + { 29232, 0x000088BA }, /* GL_READ_WRITE_ARB */ + { 29250, 0x00001903 }, /* GL_RED */ + { 29257, 0x00008016 }, /* GL_REDUCE */ + { 29267, 0x00008016 }, /* GL_REDUCE_EXT */ + { 29281, 0x00000D15 }, /* GL_RED_BIAS */ + { 29293, 0x00000D52 }, /* GL_RED_BITS */ + { 29305, 0x00000D14 }, /* GL_RED_SCALE */ + { 29318, 0x00008512 }, /* GL_REFLECTION_MAP */ + { 29336, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */ + { 29358, 0x00008512 }, /* GL_REFLECTION_MAP_NV */ + { 29379, 0x00008A19 }, /* GL_RELEASED_APPLE */ + { 29397, 0x00001C00 }, /* GL_RENDER */ + { 29407, 0x00008D41 }, /* GL_RENDERBUFFER */ + { 29423, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ + { 29450, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ + { 29474, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */ + { 29502, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ + { 29528, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ + { 29555, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */ + { 29575, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ + { 29602, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ + { 29625, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */ + { 29652, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ + { 29684, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */ + { 29720, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ + { 29745, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ + { 29769, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */ + { 29797, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ + { 29826, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ + { 29848, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */ + { 29874, 0x00001F01 }, /* GL_RENDERER */ + { 29886, 0x00000C40 }, /* GL_RENDER_MODE */ + { 29901, 0x00002901 }, /* GL_REPEAT */ + { 29911, 0x00001E01 }, /* GL_REPLACE */ + { 29922, 0x00008062 }, /* GL_REPLACE_EXT */ + { 29937, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */ + { 29960, 0x0000803A }, /* GL_RESCALE_NORMAL */ + { 29978, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */ + { 30000, 0x00008A1B }, /* GL_RETAINED_APPLE */ + { 30018, 0x00000102 }, /* GL_RETURN */ + { 30028, 0x00001907 }, /* GL_RGB */ + { 30035, 0x00008052 }, /* GL_RGB10 */ + { 30044, 0x00008059 }, /* GL_RGB10_A2 */ + { 30056, 0x00008059 }, /* GL_RGB10_A2_EXT */ + { 30072, 0x00008052 }, /* GL_RGB10_EXT */ + { 30085, 0x00008053 }, /* GL_RGB12 */ + { 30094, 0x00008053 }, /* GL_RGB12_EXT */ + { 30107, 0x00008054 }, /* GL_RGB16 */ + { 30116, 0x00008054 }, /* GL_RGB16_EXT */ + { 30129, 0x0000804E }, /* GL_RGB2_EXT */ + { 30141, 0x0000804F }, /* GL_RGB4 */ + { 30149, 0x0000804F }, /* GL_RGB4_EXT */ + { 30161, 0x000083A1 }, /* GL_RGB4_S3TC */ + { 30174, 0x00008050 }, /* GL_RGB5 */ + { 30182, 0x00008057 }, /* GL_RGB5_A1 */ + { 30193, 0x00008057 }, /* GL_RGB5_A1_EXT */ + { 30208, 0x00008050 }, /* GL_RGB5_EXT */ + { 30220, 0x00008051 }, /* GL_RGB8 */ + { 30228, 0x00008051 }, /* GL_RGB8_EXT */ + { 30240, 0x00001908 }, /* GL_RGBA */ + { 30248, 0x0000805A }, /* GL_RGBA12 */ + { 30258, 0x0000805A }, /* GL_RGBA12_EXT */ + { 30272, 0x0000805B }, /* GL_RGBA16 */ + { 30282, 0x0000805B }, /* GL_RGBA16_EXT */ + { 30296, 0x00008055 }, /* GL_RGBA2 */ + { 30305, 0x00008055 }, /* GL_RGBA2_EXT */ + { 30318, 0x00008056 }, /* GL_RGBA4 */ + { 30327, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ + { 30346, 0x00008056 }, /* GL_RGBA4_EXT */ + { 30359, 0x000083A3 }, /* GL_RGBA4_S3TC */ + { 30373, 0x00008058 }, /* GL_RGBA8 */ + { 30382, 0x00008058 }, /* GL_RGBA8_EXT */ + { 30395, 0x00008F97 }, /* GL_RGBA8_SNORM */ + { 30410, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ + { 30428, 0x00000C31 }, /* GL_RGBA_MODE */ + { 30441, 0x000083A2 }, /* GL_RGBA_S3TC */ + { 30454, 0x00008F93 }, /* GL_RGBA_SNORM */ + { 30468, 0x000083A0 }, /* GL_RGB_S3TC */ + { 30480, 0x00008573 }, /* GL_RGB_SCALE */ + { 30493, 0x00008573 }, /* GL_RGB_SCALE_ARB */ + { 30510, 0x00008573 }, /* GL_RGB_SCALE_EXT */ + { 30527, 0x00000407 }, /* GL_RIGHT */ + { 30536, 0x00002000 }, /* GL_S */ + { 30541, 0x00008B5D }, /* GL_SAMPLER_1D */ + { 30555, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ + { 30576, 0x00008B5E }, /* GL_SAMPLER_2D */ + { 30590, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ + { 30611, 0x00008B5F }, /* GL_SAMPLER_3D */ + { 30625, 0x00008B60 }, /* GL_SAMPLER_CUBE */ + { 30641, 0x000080A9 }, /* GL_SAMPLES */ + { 30652, 0x000086B4 }, /* GL_SAMPLES_3DFX */ + { 30668, 0x000080A9 }, /* GL_SAMPLES_ARB */ + { 30683, 0x00008914 }, /* GL_SAMPLES_PASSED */ + { 30701, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */ + { 30723, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ + { 30751, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */ + { 30783, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ + { 30806, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */ + { 30833, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ + { 30851, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ + { 30874, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */ + { 30896, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ + { 30915, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */ + { 30938, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ + { 30964, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */ + { 30994, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ + { 31019, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */ + { 31048, 0x00080000 }, /* GL_SCISSOR_BIT */ + { 31063, 0x00000C10 }, /* GL_SCISSOR_BOX */ + { 31078, 0x00000C11 }, /* GL_SCISSOR_TEST */ + { 31094, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ + { 31119, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ + { 31159, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */ + { 31203, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ + { 31236, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ + { 31266, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ + { 31298, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ + { 31328, 0x00001C02 }, /* GL_SELECT */ + { 31338, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ + { 31366, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ + { 31391, 0x00008012 }, /* GL_SEPARABLE_2D */ + { 31407, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */ + { 31431, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ + { 31458, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */ + { 31489, 0x0000150F }, /* GL_SET */ + { 31496, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ + { 31517, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ + { 31541, 0x00008B4F }, /* GL_SHADER_TYPE */ + { 31556, 0x00000B54 }, /* GL_SHADE_MODEL */ + { 31571, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ + { 31599, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */ + { 31622, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ + { 31652, 0x00001601 }, /* GL_SHININESS */ + { 31665, 0x00001402 }, /* GL_SHORT */ + { 31674, 0x00009119 }, /* GL_SIGNALED */ + { 31686, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ + { 31707, 0x000081F9 }, /* GL_SINGLE_COLOR */ + { 31723, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */ + { 31743, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ + { 31762, 0x00008C46 }, /* GL_SLUMINANCE */ + { 31776, 0x00008C47 }, /* GL_SLUMINANCE8 */ + { 31791, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ + { 31813, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ + { 31833, 0x00001D01 }, /* GL_SMOOTH */ + { 31843, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ + { 31876, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */ + { 31903, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */ + { 31936, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */ + { 31963, 0x00008588 }, /* GL_SOURCE0_ALPHA */ + { 31980, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */ + { 32001, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */ + { 32022, 0x00008580 }, /* GL_SOURCE0_RGB */ + { 32037, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */ + { 32056, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */ + { 32075, 0x00008589 }, /* GL_SOURCE1_ALPHA */ + { 32092, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */ + { 32113, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */ + { 32134, 0x00008581 }, /* GL_SOURCE1_RGB */ + { 32149, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */ + { 32168, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */ + { 32187, 0x0000858A }, /* GL_SOURCE2_ALPHA */ + { 32204, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */ + { 32225, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */ + { 32246, 0x00008582 }, /* GL_SOURCE2_RGB */ + { 32261, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */ + { 32280, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */ + { 32299, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ + { 32319, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ + { 32337, 0x00001202 }, /* GL_SPECULAR */ + { 32349, 0x00002402 }, /* GL_SPHERE_MAP */ + { 32363, 0x00001206 }, /* GL_SPOT_CUTOFF */ + { 32378, 0x00001204 }, /* GL_SPOT_DIRECTION */ + { 32396, 0x00001205 }, /* GL_SPOT_EXPONENT */ + { 32413, 0x00008588 }, /* GL_SRC0_ALPHA */ + { 32427, 0x00008580 }, /* GL_SRC0_RGB */ + { 32439, 0x00008589 }, /* GL_SRC1_ALPHA */ + { 32453, 0x00008581 }, /* GL_SRC1_RGB */ + { 32465, 0x0000858A }, /* GL_SRC2_ALPHA */ + { 32479, 0x00008582 }, /* GL_SRC2_RGB */ + { 32491, 0x00000302 }, /* GL_SRC_ALPHA */ + { 32504, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ + { 32526, 0x00000300 }, /* GL_SRC_COLOR */ + { 32539, 0x00008C40 }, /* GL_SRGB */ + { 32547, 0x00008C41 }, /* GL_SRGB8 */ + { 32556, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ + { 32572, 0x00008C42 }, /* GL_SRGB_ALPHA */ + { 32586, 0x00000503 }, /* GL_STACK_OVERFLOW */ + { 32604, 0x00000504 }, /* GL_STACK_UNDERFLOW */ + { 32623, 0x000088E6 }, /* GL_STATIC_COPY */ + { 32638, 0x000088E6 }, /* GL_STATIC_COPY_ARB */ + { 32657, 0x000088E4 }, /* GL_STATIC_DRAW */ + { 32672, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */ + { 32691, 0x000088E5 }, /* GL_STATIC_READ */ + { 32706, 0x000088E5 }, /* GL_STATIC_READ_ARB */ + { 32725, 0x00001802 }, /* GL_STENCIL */ + { 32736, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ + { 32758, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */ + { 32784, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ + { 32805, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */ + { 32830, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ + { 32851, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */ + { 32876, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ + { 32908, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */ + { 32944, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ + { 32976, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */ + { 33012, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ + { 33032, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ + { 33059, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ + { 33085, 0x00000D57 }, /* GL_STENCIL_BITS */ + { 33101, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */ + { 33123, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ + { 33146, 0x00000B94 }, /* GL_STENCIL_FAIL */ + { 33162, 0x00000B92 }, /* GL_STENCIL_FUNC */ + { 33178, 0x00001901 }, /* GL_STENCIL_INDEX */ + { 33195, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ + { 33213, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ + { 33232, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */ + { 33255, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */ + { 33277, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ + { 33295, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */ + { 33317, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ + { 33335, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */ + { 33357, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */ + { 33378, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ + { 33405, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ + { 33432, 0x00000B97 }, /* GL_STENCIL_REF */ + { 33447, 0x00000B90 }, /* GL_STENCIL_TEST */ + { 33463, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ + { 33492, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ + { 33514, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ + { 33535, 0x00000C33 }, /* GL_STEREO */ + { 33545, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ + { 33569, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ + { 33594, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ + { 33618, 0x000088E2 }, /* GL_STREAM_COPY */ + { 33633, 0x000088E2 }, /* GL_STREAM_COPY_ARB */ + { 33652, 0x000088E0 }, /* GL_STREAM_DRAW */ + { 33667, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */ + { 33686, 0x000088E1 }, /* GL_STREAM_READ */ + { 33701, 0x000088E1 }, /* GL_STREAM_READ_ARB */ + { 33720, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ + { 33737, 0x000084E7 }, /* GL_SUBTRACT */ + { 33749, 0x000084E7 }, /* GL_SUBTRACT_ARB */ + { 33765, 0x00009113 }, /* GL_SYNC_CONDITION */ + { 33783, 0x00009116 }, /* GL_SYNC_FENCE */ + { 33797, 0x00009115 }, /* GL_SYNC_FLAGS */ + { 33811, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */ + { 33838, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ + { 33868, 0x00009114 }, /* GL_SYNC_STATUS */ + { 33883, 0x00002001 }, /* GL_T */ + { 33888, 0x00002A2A }, /* GL_T2F_C3F_V3F */ + { 33903, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ + { 33922, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ + { 33938, 0x00002A2B }, /* GL_T2F_N3F_V3F */ + { 33953, 0x00002A27 }, /* GL_T2F_V3F */ + { 33964, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ + { 33983, 0x00002A28 }, /* GL_T4F_V4F */ + { 33994, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */ + { 34017, 0x00001702 }, /* GL_TEXTURE */ + { 34028, 0x000084C0 }, /* GL_TEXTURE0 */ + { 34040, 0x000084C0 }, /* GL_TEXTURE0_ARB */ + { 34056, 0x000084C1 }, /* GL_TEXTURE1 */ + { 34068, 0x000084CA }, /* GL_TEXTURE10 */ + { 34081, 0x000084CA }, /* GL_TEXTURE10_ARB */ + { 34098, 0x000084CB }, /* GL_TEXTURE11 */ + { 34111, 0x000084CB }, /* GL_TEXTURE11_ARB */ + { 34128, 0x000084CC }, /* GL_TEXTURE12 */ + { 34141, 0x000084CC }, /* GL_TEXTURE12_ARB */ + { 34158, 0x000084CD }, /* GL_TEXTURE13 */ + { 34171, 0x000084CD }, /* GL_TEXTURE13_ARB */ + { 34188, 0x000084CE }, /* GL_TEXTURE14 */ + { 34201, 0x000084CE }, /* GL_TEXTURE14_ARB */ + { 34218, 0x000084CF }, /* GL_TEXTURE15 */ + { 34231, 0x000084CF }, /* GL_TEXTURE15_ARB */ + { 34248, 0x000084D0 }, /* GL_TEXTURE16 */ + { 34261, 0x000084D0 }, /* GL_TEXTURE16_ARB */ + { 34278, 0x000084D1 }, /* GL_TEXTURE17 */ + { 34291, 0x000084D1 }, /* GL_TEXTURE17_ARB */ + { 34308, 0x000084D2 }, /* GL_TEXTURE18 */ + { 34321, 0x000084D2 }, /* GL_TEXTURE18_ARB */ + { 34338, 0x000084D3 }, /* GL_TEXTURE19 */ + { 34351, 0x000084D3 }, /* GL_TEXTURE19_ARB */ + { 34368, 0x000084C1 }, /* GL_TEXTURE1_ARB */ + { 34384, 0x000084C2 }, /* GL_TEXTURE2 */ + { 34396, 0x000084D4 }, /* GL_TEXTURE20 */ + { 34409, 0x000084D4 }, /* GL_TEXTURE20_ARB */ + { 34426, 0x000084D5 }, /* GL_TEXTURE21 */ + { 34439, 0x000084D5 }, /* GL_TEXTURE21_ARB */ + { 34456, 0x000084D6 }, /* GL_TEXTURE22 */ + { 34469, 0x000084D6 }, /* GL_TEXTURE22_ARB */ + { 34486, 0x000084D7 }, /* GL_TEXTURE23 */ + { 34499, 0x000084D7 }, /* GL_TEXTURE23_ARB */ + { 34516, 0x000084D8 }, /* GL_TEXTURE24 */ + { 34529, 0x000084D8 }, /* GL_TEXTURE24_ARB */ + { 34546, 0x000084D9 }, /* GL_TEXTURE25 */ + { 34559, 0x000084D9 }, /* GL_TEXTURE25_ARB */ + { 34576, 0x000084DA }, /* GL_TEXTURE26 */ + { 34589, 0x000084DA }, /* GL_TEXTURE26_ARB */ + { 34606, 0x000084DB }, /* GL_TEXTURE27 */ + { 34619, 0x000084DB }, /* GL_TEXTURE27_ARB */ + { 34636, 0x000084DC }, /* GL_TEXTURE28 */ + { 34649, 0x000084DC }, /* GL_TEXTURE28_ARB */ + { 34666, 0x000084DD }, /* GL_TEXTURE29 */ + { 34679, 0x000084DD }, /* GL_TEXTURE29_ARB */ + { 34696, 0x000084C2 }, /* GL_TEXTURE2_ARB */ + { 34712, 0x000084C3 }, /* GL_TEXTURE3 */ + { 34724, 0x000084DE }, /* GL_TEXTURE30 */ + { 34737, 0x000084DE }, /* GL_TEXTURE30_ARB */ + { 34754, 0x000084DF }, /* GL_TEXTURE31 */ + { 34767, 0x000084DF }, /* GL_TEXTURE31_ARB */ + { 34784, 0x000084C3 }, /* GL_TEXTURE3_ARB */ + { 34800, 0x000084C4 }, /* GL_TEXTURE4 */ + { 34812, 0x000084C4 }, /* GL_TEXTURE4_ARB */ + { 34828, 0x000084C5 }, /* GL_TEXTURE5 */ + { 34840, 0x000084C5 }, /* GL_TEXTURE5_ARB */ + { 34856, 0x000084C6 }, /* GL_TEXTURE6 */ + { 34868, 0x000084C6 }, /* GL_TEXTURE6_ARB */ + { 34884, 0x000084C7 }, /* GL_TEXTURE7 */ + { 34896, 0x000084C7 }, /* GL_TEXTURE7_ARB */ + { 34912, 0x000084C8 }, /* GL_TEXTURE8 */ + { 34924, 0x000084C8 }, /* GL_TEXTURE8_ARB */ + { 34940, 0x000084C9 }, /* GL_TEXTURE9 */ + { 34952, 0x000084C9 }, /* GL_TEXTURE9_ARB */ + { 34968, 0x00000DE0 }, /* GL_TEXTURE_1D */ + { 34982, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */ + { 35006, 0x00000DE1 }, /* GL_TEXTURE_2D */ + { 35020, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */ + { 35044, 0x0000806F }, /* GL_TEXTURE_3D */ + { 35058, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ + { 35080, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */ + { 35106, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ + { 35128, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ + { 35150, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ + { 35182, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ + { 35204, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ + { 35236, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ + { 35258, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ + { 35286, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */ + { 35318, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ + { 35351, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */ + { 35383, 0x00040000 }, /* GL_TEXTURE_BIT */ + { 35398, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ + { 35419, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */ + { 35444, 0x00001005 }, /* GL_TEXTURE_BORDER */ + { 35462, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ + { 35486, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ + { 35517, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ + { 35547, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ + { 35577, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ + { 35612, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ + { 35643, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 35681, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ + { 35708, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ + { 35740, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ + { 35774, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ + { 35798, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */ + { 35826, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ + { 35850, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */ + { 35878, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ + { 35911, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ + { 35935, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */ + { 35957, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ + { 35979, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */ + { 36005, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */ + { 36039, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ + { 36072, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */ + { 36109, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ + { 36137, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */ + { 36169, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ + { 36192, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ + { 36230, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */ + { 36272, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ + { 36303, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ + { 36331, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ + { 36361, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ + { 36389, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ + { 36409, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */ + { 36433, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ + { 36464, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */ + { 36499, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ + { 36530, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */ + { 36565, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ + { 36596, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */ + { 36631, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ + { 36662, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */ + { 36697, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ + { 36728, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */ + { 36763, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ + { 36794, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */ + { 36829, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ + { 36858, 0x00008071 }, /* GL_TEXTURE_DEPTH */ + { 36875, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ + { 36897, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */ + { 36923, 0x00002300 }, /* GL_TEXTURE_ENV */ + { 36938, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ + { 36959, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ + { 36979, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ + { 37005, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ + { 37025, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ + { 37042, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ + { 37059, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ + { 37076, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ + { 37093, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ + { 37118, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ + { 37140, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */ + { 37166, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ + { 37184, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ + { 37210, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ + { 37236, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */ + { 37266, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */ + { 37293, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ + { 37318, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ + { 37338, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */ + { 37362, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ + { 37389, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ + { 37416, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ + { 37443, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ + { 37469, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */ + { 37499, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ + { 37521, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ + { 37539, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ + { 37569, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ + { 37597, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ + { 37625, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ + { 37653, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ + { 37674, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ + { 37693, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ + { 37715, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ + { 37734, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ + { 37754, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ + { 37784, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ + { 37815, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */ + { 37840, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */ + { 37864, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ + { 37884, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */ + { 37908, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ + { 37928, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ + { 37951, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ + { 37975, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */ + { 38003, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ + { 38033, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ + { 38058, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ + { 38092, 0x00001000 }, /* GL_TEXTURE_WIDTH */ + { 38109, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ + { 38127, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ + { 38145, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ + { 38163, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ + { 38182, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ + { 38202, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ + { 38221, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + { 38250, 0x00001000 }, /* GL_TRANSFORM_BIT */ + { 38267, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ + { 38308, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ + { 38341, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ + { 38379, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ + { 38417, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ + { 38456, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ + { 38501, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ + { 38536, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ + { 38581, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ + { 38607, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ + { 38637, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + { 38669, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + { 38699, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ + { 38733, 0x0000862C }, /* GL_TRANSPOSE_NV */ + { 38749, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + { 38780, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ + { 38815, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + { 38843, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ + { 38875, 0x00000004 }, /* GL_TRIANGLES */ + { 38888, 0x00000006 }, /* GL_TRIANGLE_FAN */ + { 38904, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ + { 38925, 0x00000005 }, /* GL_TRIANGLE_STRIP */ + { 38943, 0x00000001 }, /* GL_TRUE */ + { 38951, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ + { 38970, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ + { 38990, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ + { 39013, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ + { 39033, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ + { 39054, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ + { 39076, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ + { 39098, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ + { 39118, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ + { 39139, 0x00009118 }, /* GL_UNSIGNALED */ + { 39153, 0x00001401 }, /* GL_UNSIGNED_BYTE */ + { 39170, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + { 39197, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ + { 39220, 0x00001405 }, /* GL_UNSIGNED_INT */ + { 39236, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ + { 39263, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ + { 39284, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ + { 39309, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ + { 39333, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + { 39364, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ + { 39388, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + { 39416, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ + { 39439, 0x00001403 }, /* GL_UNSIGNED_SHORT */ + { 39457, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + { 39487, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + { 39513, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + { 39543, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + { 39569, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ + { 39593, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + { 39621, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + { 39649, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ + { 39676, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + { 39708, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ + { 39739, 0x00008CA2 }, /* GL_UPPER_LEFT */ + { 39753, 0x00002A20 }, /* GL_V2F */ + { 39760, 0x00002A21 }, /* GL_V3F */ + { 39767, 0x00008B83 }, /* GL_VALIDATE_STATUS */ + { 39786, 0x00001F00 }, /* GL_VENDOR */ + { 39796, 0x00001F02 }, /* GL_VERSION */ + { 39807, 0x00008074 }, /* GL_VERTEX_ARRAY */ + { 39823, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ + { 39847, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ + { 39877, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + { 39908, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ + { 39943, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ + { 39967, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ + { 39988, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ + { 40011, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ + { 40032, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + { 40059, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + { 40087, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + { 40115, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + { 40143, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + { 40171, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + { 40199, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + { 40227, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + { 40254, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + { 40281, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + { 40308, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + { 40335, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + { 40362, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + { 40389, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + { 40416, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + { 40443, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + { 40470, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + { 40508, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ + { 40550, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + { 40581, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ + { 40616, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + { 40650, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ + { 40688, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + { 40719, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ + { 40754, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + { 40782, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ + { 40814, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + { 40844, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ + { 40878, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + { 40906, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ + { 40938, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ + { 40958, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ + { 40980, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ + { 41009, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ + { 41030, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + { 41059, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ + { 41092, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ + { 41124, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + { 41151, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ + { 41182, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ + { 41212, 0x00008B31 }, /* GL_VERTEX_SHADER */ + { 41229, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ + { 41250, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ + { 41277, 0x00000BA2 }, /* GL_VIEWPORT */ + { 41289, 0x00000800 }, /* GL_VIEWPORT_BIT */ + { 41305, 0x00008A1A }, /* GL_VOLATILE_APPLE */ + { 41323, 0x0000911D }, /* GL_WAIT_FAILED */ + { 41338, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ + { 41358, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + { 41389, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ + { 41424, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + { 41452, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + { 41477, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + { 41504, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + { 41529, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ + { 41553, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ + { 41572, 0x000088B9 }, /* GL_WRITE_ONLY */ + { 41586, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ + { 41604, 0x00001506 }, /* GL_XOR */ + { 41611, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ + { 41630, 0x00008757 }, /* GL_YCBCR_MESA */ + { 41644, 0x00000000 }, /* GL_ZERO */ + { 41652, 0x00000D16 }, /* GL_ZOOM_X */ + { 41662, 0x00000D17 }, /* GL_ZOOM_Y */ }; -static const unsigned reduced_enums[1357] = +static const unsigned reduced_enums[1372] = { 480, /* GL_FALSE */ - 703, /* GL_LINES */ - 705, /* GL_LINE_LOOP */ - 712, /* GL_LINE_STRIP */ - 1774, /* GL_TRIANGLES */ - 1777, /* GL_TRIANGLE_STRIP */ - 1775, /* GL_TRIANGLE_FAN */ - 1288, /* GL_QUADS */ - 1292, /* GL_QUAD_STRIP */ - 1173, /* GL_POLYGON */ - 1185, /* GL_POLYGON_STIPPLE_BIT */ - 1134, /* GL_PIXEL_MODE_BIT */ - 690, /* GL_LIGHTING_BIT */ + 704, /* GL_LINES */ + 706, /* GL_LINE_LOOP */ + 713, /* GL_LINE_STRIP */ + 1789, /* GL_TRIANGLES */ + 1792, /* GL_TRIANGLE_STRIP */ + 1790, /* GL_TRIANGLE_FAN */ + 1293, /* GL_QUADS */ + 1297, /* GL_QUAD_STRIP */ + 1177, /* GL_POLYGON */ + 1189, /* GL_POLYGON_STIPPLE_BIT */ + 1138, /* GL_PIXEL_MODE_BIT */ + 691, /* GL_LIGHTING_BIT */ 510, /* GL_FOG_BIT */ 8, /* GL_ACCUM */ - 722, /* GL_LOAD */ - 1353, /* GL_RETURN */ - 1006, /* GL_MULT */ + 723, /* GL_LOAD */ + 1359, /* GL_RETURN */ + 1010, /* GL_MULT */ 23, /* GL_ADD */ - 1022, /* GL_NEVER */ - 680, /* GL_LESS */ + 1026, /* GL_NEVER */ + 681, /* GL_LESS */ 470, /* GL_EQUAL */ - 679, /* GL_LEQUAL */ + 680, /* GL_LEQUAL */ 600, /* GL_GREATER */ - 1037, /* GL_NOTEQUAL */ + 1041, /* GL_NOTEQUAL */ 599, /* GL_GEQUAL */ 47, /* GL_ALWAYS */ - 1494, /* GL_SRC_COLOR */ - 1067, /* GL_ONE_MINUS_SRC_COLOR */ - 1492, /* GL_SRC_ALPHA */ - 1066, /* GL_ONE_MINUS_SRC_ALPHA */ + 1501, /* GL_SRC_COLOR */ + 1071, /* GL_ONE_MINUS_SRC_COLOR */ + 1499, /* GL_SRC_ALPHA */ + 1070, /* GL_ONE_MINUS_SRC_ALPHA */ 449, /* GL_DST_ALPHA */ - 1064, /* GL_ONE_MINUS_DST_ALPHA */ + 1068, /* GL_ONE_MINUS_DST_ALPHA */ 450, /* GL_DST_COLOR */ - 1065, /* GL_ONE_MINUS_DST_COLOR */ - 1493, /* GL_SRC_ALPHA_SATURATE */ + 1069, /* GL_ONE_MINUS_DST_COLOR */ + 1500, /* GL_SRC_ALPHA_SATURATE */ 587, /* GL_FRONT_LEFT */ 588, /* GL_FRONT_RIGHT */ 69, /* GL_BACK_LEFT */ 70, /* GL_BACK_RIGHT */ 584, /* GL_FRONT */ 68, /* GL_BACK */ - 678, /* GL_LEFT */ - 1395, /* GL_RIGHT */ + 679, /* GL_LEFT */ + 1401, /* GL_RIGHT */ 585, /* GL_FRONT_AND_BACK */ 63, /* GL_AUX0 */ 64, /* GL_AUX1 */ 65, /* GL_AUX2 */ 66, /* GL_AUX3 */ - 667, /* GL_INVALID_ENUM */ - 671, /* GL_INVALID_VALUE */ - 670, /* GL_INVALID_OPERATION */ - 1499, /* GL_STACK_OVERFLOW */ - 1500, /* GL_STACK_UNDERFLOW */ - 1092, /* GL_OUT_OF_MEMORY */ - 668, /* GL_INVALID_FRAMEBUFFER_OPERATION */ + 668, /* GL_INVALID_ENUM */ + 672, /* GL_INVALID_VALUE */ + 671, /* GL_INVALID_OPERATION */ + 1506, /* GL_STACK_OVERFLOW */ + 1507, /* GL_STACK_UNDERFLOW */ + 1096, /* GL_OUT_OF_MEMORY */ + 669, /* GL_INVALID_FRAMEBUFFER_OPERATION */ 0, /* GL_2D */ 2, /* GL_3D */ 3, /* GL_3D_COLOR */ 4, /* GL_3D_COLOR_TEXTURE */ 6, /* GL_4D_COLOR_TEXTURE */ - 1112, /* GL_PASS_THROUGH_TOKEN */ - 1172, /* GL_POINT_TOKEN */ - 713, /* GL_LINE_TOKEN */ - 1186, /* GL_POLYGON_TOKEN */ + 1116, /* GL_PASS_THROUGH_TOKEN */ + 1176, /* GL_POINT_TOKEN */ + 714, /* GL_LINE_TOKEN */ + 1190, /* GL_POLYGON_TOKEN */ 74, /* GL_BITMAP_TOKEN */ 448, /* GL_DRAW_PIXEL_TOKEN */ 302, /* GL_COPY_PIXEL_TOKEN */ - 706, /* GL_LINE_RESET_TOKEN */ + 707, /* GL_LINE_RESET_TOKEN */ 473, /* GL_EXP */ 474, /* GL_EXP2 */ 338, /* GL_CW */ 126, /* GL_CCW */ 147, /* GL_COEFF */ - 1089, /* GL_ORDER */ + 1093, /* GL_ORDER */ 385, /* GL_DOMAIN */ 312, /* GL_CURRENT_COLOR */ 315, /* GL_CURRENT_INDEX */ @@ -3912,33 +3942,33 @@ static const unsigned reduced_enums[1357] = 329, /* GL_CURRENT_RASTER_POSITION */ 330, /* GL_CURRENT_RASTER_POSITION_VALID */ 327, /* GL_CURRENT_RASTER_DISTANCE */ - 1165, /* GL_POINT_SMOOTH */ - 1154, /* GL_POINT_SIZE */ - 1164, /* GL_POINT_SIZE_RANGE */ - 1155, /* GL_POINT_SIZE_GRANULARITY */ - 707, /* GL_LINE_SMOOTH */ - 714, /* GL_LINE_WIDTH */ - 716, /* GL_LINE_WIDTH_RANGE */ - 715, /* GL_LINE_WIDTH_GRANULARITY */ - 709, /* GL_LINE_STIPPLE */ - 710, /* GL_LINE_STIPPLE_PATTERN */ - 711, /* GL_LINE_STIPPLE_REPEAT */ - 721, /* GL_LIST_MODE */ - 887, /* GL_MAX_LIST_NESTING */ - 718, /* GL_LIST_BASE */ - 720, /* GL_LIST_INDEX */ - 1175, /* GL_POLYGON_MODE */ - 1182, /* GL_POLYGON_SMOOTH */ - 1184, /* GL_POLYGON_STIPPLE */ + 1169, /* GL_POINT_SMOOTH */ + 1158, /* GL_POINT_SIZE */ + 1168, /* GL_POINT_SIZE_RANGE */ + 1159, /* GL_POINT_SIZE_GRANULARITY */ + 708, /* GL_LINE_SMOOTH */ + 715, /* GL_LINE_WIDTH */ + 717, /* GL_LINE_WIDTH_RANGE */ + 716, /* GL_LINE_WIDTH_GRANULARITY */ + 710, /* GL_LINE_STIPPLE */ + 711, /* GL_LINE_STIPPLE_PATTERN */ + 712, /* GL_LINE_STIPPLE_REPEAT */ + 722, /* GL_LIST_MODE */ + 888, /* GL_MAX_LIST_NESTING */ + 719, /* GL_LIST_BASE */ + 721, /* GL_LIST_INDEX */ + 1179, /* GL_POLYGON_MODE */ + 1186, /* GL_POLYGON_SMOOTH */ + 1188, /* GL_POLYGON_STIPPLE */ 459, /* GL_EDGE_FLAG */ 305, /* GL_CULL_FACE */ 306, /* GL_CULL_FACE_MODE */ 586, /* GL_FRONT_FACE */ - 689, /* GL_LIGHTING */ - 694, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ - 695, /* GL_LIGHT_MODEL_TWO_SIDE */ - 691, /* GL_LIGHT_MODEL_AMBIENT */ - 1441, /* GL_SHADE_MODEL */ + 690, /* GL_LIGHTING */ + 695, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ + 696, /* GL_LIGHT_MODEL_TWO_SIDE */ + 692, /* GL_LIGHT_MODEL_AMBIENT */ + 1448, /* GL_SHADE_MODEL */ 194, /* GL_COLOR_MATERIAL_FACE */ 195, /* GL_COLOR_MATERIAL_PARAMETER */ 193, /* GL_COLOR_MATERIAL */ @@ -3955,24 +3985,24 @@ static const unsigned reduced_enums[1357] = 359, /* GL_DEPTH_CLEAR_VALUE */ 370, /* GL_DEPTH_FUNC */ 12, /* GL_ACCUM_CLEAR_VALUE */ - 1539, /* GL_STENCIL_TEST */ - 1523, /* GL_STENCIL_CLEAR_VALUE */ - 1525, /* GL_STENCIL_FUNC */ - 1541, /* GL_STENCIL_VALUE_MASK */ - 1524, /* GL_STENCIL_FAIL */ - 1536, /* GL_STENCIL_PASS_DEPTH_FAIL */ - 1537, /* GL_STENCIL_PASS_DEPTH_PASS */ - 1538, /* GL_STENCIL_REF */ - 1542, /* GL_STENCIL_WRITEMASK */ - 855, /* GL_MATRIX_MODE */ - 1027, /* GL_NORMALIZE */ - 1870, /* GL_VIEWPORT */ - 1001, /* GL_MODELVIEW_STACK_DEPTH */ - 1265, /* GL_PROJECTION_STACK_DEPTH */ - 1749, /* GL_TEXTURE_STACK_DEPTH */ - 999, /* GL_MODELVIEW_MATRIX */ - 1264, /* GL_PROJECTION_MATRIX */ - 1732, /* GL_TEXTURE_MATRIX */ + 1546, /* GL_STENCIL_TEST */ + 1530, /* GL_STENCIL_CLEAR_VALUE */ + 1532, /* GL_STENCIL_FUNC */ + 1548, /* GL_STENCIL_VALUE_MASK */ + 1531, /* GL_STENCIL_FAIL */ + 1543, /* GL_STENCIL_PASS_DEPTH_FAIL */ + 1544, /* GL_STENCIL_PASS_DEPTH_PASS */ + 1545, /* GL_STENCIL_REF */ + 1549, /* GL_STENCIL_WRITEMASK */ + 856, /* GL_MATRIX_MODE */ + 1031, /* GL_NORMALIZE */ + 1885, /* GL_VIEWPORT */ + 1005, /* GL_MODELVIEW_STACK_DEPTH */ + 1270, /* GL_PROJECTION_STACK_DEPTH */ + 1756, /* GL_TEXTURE_STACK_DEPTH */ + 1003, /* GL_MODELVIEW_MATRIX */ + 1269, /* GL_PROJECTION_MATRIX */ + 1739, /* GL_TEXTURE_MATRIX */ 61, /* GL_ATTRIB_STACK_DEPTH */ 137, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ 43, /* GL_ALPHA_TEST */ @@ -3982,72 +4012,72 @@ static const unsigned reduced_enums[1357] = 78, /* GL_BLEND_DST */ 87, /* GL_BLEND_SRC */ 75, /* GL_BLEND */ - 724, /* GL_LOGIC_OP_MODE */ + 725, /* GL_LOGIC_OP_MODE */ 641, /* GL_INDEX_LOGIC_OP */ 192, /* GL_COLOR_LOGIC_OP */ 67, /* GL_AUX_BUFFERS */ 395, /* GL_DRAW_BUFFER */ - 1306, /* GL_READ_BUFFER */ - 1422, /* GL_SCISSOR_BOX */ - 1423, /* GL_SCISSOR_TEST */ + 1312, /* GL_READ_BUFFER */ + 1428, /* GL_SCISSOR_BOX */ + 1429, /* GL_SCISSOR_TEST */ 640, /* GL_INDEX_CLEAR_VALUE */ 645, /* GL_INDEX_WRITEMASK */ 189, /* GL_COLOR_CLEAR_VALUE */ 231, /* GL_COLOR_WRITEMASK */ 642, /* GL_INDEX_MODE */ - 1388, /* GL_RGBA_MODE */ + 1394, /* GL_RGBA_MODE */ 394, /* GL_DOUBLEBUFFER */ - 1543, /* GL_STEREO */ - 1345, /* GL_RENDER_MODE */ - 1113, /* GL_PERSPECTIVE_CORRECTION_HINT */ - 1166, /* GL_POINT_SMOOTH_HINT */ - 708, /* GL_LINE_SMOOTH_HINT */ - 1183, /* GL_POLYGON_SMOOTH_HINT */ + 1550, /* GL_STEREO */ + 1351, /* GL_RENDER_MODE */ + 1117, /* GL_PERSPECTIVE_CORRECTION_HINT */ + 1170, /* GL_POINT_SMOOTH_HINT */ + 709, /* GL_LINE_SMOOTH_HINT */ + 1187, /* GL_POLYGON_SMOOTH_HINT */ 530, /* GL_FOG_HINT */ - 1713, /* GL_TEXTURE_GEN_S */ - 1714, /* GL_TEXTURE_GEN_T */ - 1712, /* GL_TEXTURE_GEN_R */ - 1711, /* GL_TEXTURE_GEN_Q */ - 1126, /* GL_PIXEL_MAP_I_TO_I */ - 1132, /* GL_PIXEL_MAP_S_TO_S */ - 1128, /* GL_PIXEL_MAP_I_TO_R */ - 1124, /* GL_PIXEL_MAP_I_TO_G */ - 1122, /* GL_PIXEL_MAP_I_TO_B */ - 1120, /* GL_PIXEL_MAP_I_TO_A */ - 1130, /* GL_PIXEL_MAP_R_TO_R */ - 1118, /* GL_PIXEL_MAP_G_TO_G */ - 1116, /* GL_PIXEL_MAP_B_TO_B */ - 1114, /* GL_PIXEL_MAP_A_TO_A */ - 1127, /* GL_PIXEL_MAP_I_TO_I_SIZE */ - 1133, /* GL_PIXEL_MAP_S_TO_S_SIZE */ - 1129, /* GL_PIXEL_MAP_I_TO_R_SIZE */ - 1125, /* GL_PIXEL_MAP_I_TO_G_SIZE */ - 1123, /* GL_PIXEL_MAP_I_TO_B_SIZE */ - 1121, /* GL_PIXEL_MAP_I_TO_A_SIZE */ - 1131, /* GL_PIXEL_MAP_R_TO_R_SIZE */ - 1119, /* GL_PIXEL_MAP_G_TO_G_SIZE */ - 1117, /* GL_PIXEL_MAP_B_TO_B_SIZE */ - 1115, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - 1787, /* GL_UNPACK_SWAP_BYTES */ - 1782, /* GL_UNPACK_LSB_FIRST */ - 1783, /* GL_UNPACK_ROW_LENGTH */ - 1786, /* GL_UNPACK_SKIP_ROWS */ - 1785, /* GL_UNPACK_SKIP_PIXELS */ - 1780, /* GL_UNPACK_ALIGNMENT */ - 1101, /* GL_PACK_SWAP_BYTES */ - 1096, /* GL_PACK_LSB_FIRST */ - 1097, /* GL_PACK_ROW_LENGTH */ - 1100, /* GL_PACK_SKIP_ROWS */ - 1099, /* GL_PACK_SKIP_PIXELS */ - 1093, /* GL_PACK_ALIGNMENT */ - 802, /* GL_MAP_COLOR */ - 807, /* GL_MAP_STENCIL */ + 1720, /* GL_TEXTURE_GEN_S */ + 1721, /* GL_TEXTURE_GEN_T */ + 1719, /* GL_TEXTURE_GEN_R */ + 1718, /* GL_TEXTURE_GEN_Q */ + 1130, /* GL_PIXEL_MAP_I_TO_I */ + 1136, /* GL_PIXEL_MAP_S_TO_S */ + 1132, /* GL_PIXEL_MAP_I_TO_R */ + 1128, /* GL_PIXEL_MAP_I_TO_G */ + 1126, /* GL_PIXEL_MAP_I_TO_B */ + 1124, /* GL_PIXEL_MAP_I_TO_A */ + 1134, /* GL_PIXEL_MAP_R_TO_R */ + 1122, /* GL_PIXEL_MAP_G_TO_G */ + 1120, /* GL_PIXEL_MAP_B_TO_B */ + 1118, /* GL_PIXEL_MAP_A_TO_A */ + 1131, /* GL_PIXEL_MAP_I_TO_I_SIZE */ + 1137, /* GL_PIXEL_MAP_S_TO_S_SIZE */ + 1133, /* GL_PIXEL_MAP_I_TO_R_SIZE */ + 1129, /* GL_PIXEL_MAP_I_TO_G_SIZE */ + 1127, /* GL_PIXEL_MAP_I_TO_B_SIZE */ + 1125, /* GL_PIXEL_MAP_I_TO_A_SIZE */ + 1135, /* GL_PIXEL_MAP_R_TO_R_SIZE */ + 1123, /* GL_PIXEL_MAP_G_TO_G_SIZE */ + 1121, /* GL_PIXEL_MAP_B_TO_B_SIZE */ + 1119, /* GL_PIXEL_MAP_A_TO_A_SIZE */ + 1802, /* GL_UNPACK_SWAP_BYTES */ + 1797, /* GL_UNPACK_LSB_FIRST */ + 1798, /* GL_UNPACK_ROW_LENGTH */ + 1801, /* GL_UNPACK_SKIP_ROWS */ + 1800, /* GL_UNPACK_SKIP_PIXELS */ + 1795, /* GL_UNPACK_ALIGNMENT */ + 1105, /* GL_PACK_SWAP_BYTES */ + 1100, /* GL_PACK_LSB_FIRST */ + 1101, /* GL_PACK_ROW_LENGTH */ + 1104, /* GL_PACK_SKIP_ROWS */ + 1103, /* GL_PACK_SKIP_PIXELS */ + 1097, /* GL_PACK_ALIGNMENT */ + 803, /* GL_MAP_COLOR */ + 808, /* GL_MAP_STENCIL */ 644, /* GL_INDEX_SHIFT */ 643, /* GL_INDEX_OFFSET */ - 1320, /* GL_RED_SCALE */ - 1318, /* GL_RED_BIAS */ - 1889, /* GL_ZOOM_X */ - 1890, /* GL_ZOOM_Y */ + 1326, /* GL_RED_SCALE */ + 1324, /* GL_RED_BIAS */ + 1904, /* GL_ZOOM_X */ + 1905, /* GL_ZOOM_Y */ 604, /* GL_GREEN_SCALE */ 602, /* GL_GREEN_BIAS */ 93, /* GL_BLUE_SCALE */ @@ -4056,87 +4086,87 @@ static const unsigned reduced_enums[1357] = 40, /* GL_ALPHA_BIAS */ 372, /* GL_DEPTH_SCALE */ 352, /* GL_DEPTH_BIAS */ - 882, /* GL_MAX_EVAL_ORDER */ - 886, /* GL_MAX_LIGHTS */ - 864, /* GL_MAX_CLIP_PLANES */ - 934, /* GL_MAX_TEXTURE_SIZE */ - 892, /* GL_MAX_PIXEL_MAP_TABLE */ - 860, /* GL_MAX_ATTRIB_STACK_DEPTH */ - 889, /* GL_MAX_MODELVIEW_STACK_DEPTH */ - 890, /* GL_MAX_NAME_STACK_DEPTH */ - 918, /* GL_MAX_PROJECTION_STACK_DEPTH */ - 935, /* GL_MAX_TEXTURE_STACK_DEPTH */ - 949, /* GL_MAX_VIEWPORT_DIMS */ - 861, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ - 1553, /* GL_SUBPIXEL_BITS */ + 883, /* GL_MAX_EVAL_ORDER */ + 887, /* GL_MAX_LIGHTS */ + 865, /* GL_MAX_CLIP_PLANES */ + 935, /* GL_MAX_TEXTURE_SIZE */ + 893, /* GL_MAX_PIXEL_MAP_TABLE */ + 861, /* GL_MAX_ATTRIB_STACK_DEPTH */ + 890, /* GL_MAX_MODELVIEW_STACK_DEPTH */ + 891, /* GL_MAX_NAME_STACK_DEPTH */ + 919, /* GL_MAX_PROJECTION_STACK_DEPTH */ + 936, /* GL_MAX_TEXTURE_STACK_DEPTH */ + 953, /* GL_MAX_VIEWPORT_DIMS */ + 862, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ + 1560, /* GL_SUBPIXEL_BITS */ 639, /* GL_INDEX_BITS */ - 1319, /* GL_RED_BITS */ + 1325, /* GL_RED_BITS */ 603, /* GL_GREEN_BITS */ 92, /* GL_BLUE_BITS */ 41, /* GL_ALPHA_BITS */ 353, /* GL_DEPTH_BITS */ - 1521, /* GL_STENCIL_BITS */ + 1528, /* GL_STENCIL_BITS */ 14, /* GL_ACCUM_RED_BITS */ 13, /* GL_ACCUM_GREEN_BITS */ 10, /* GL_ACCUM_BLUE_BITS */ 9, /* GL_ACCUM_ALPHA_BITS */ - 1015, /* GL_NAME_STACK_DEPTH */ + 1019, /* GL_NAME_STACK_DEPTH */ 62, /* GL_AUTO_NORMAL */ - 748, /* GL_MAP1_COLOR_4 */ - 751, /* GL_MAP1_INDEX */ - 752, /* GL_MAP1_NORMAL */ - 753, /* GL_MAP1_TEXTURE_COORD_1 */ - 754, /* GL_MAP1_TEXTURE_COORD_2 */ - 755, /* GL_MAP1_TEXTURE_COORD_3 */ - 756, /* GL_MAP1_TEXTURE_COORD_4 */ - 757, /* GL_MAP1_VERTEX_3 */ - 758, /* GL_MAP1_VERTEX_4 */ - 775, /* GL_MAP2_COLOR_4 */ - 778, /* GL_MAP2_INDEX */ - 779, /* GL_MAP2_NORMAL */ - 780, /* GL_MAP2_TEXTURE_COORD_1 */ - 781, /* GL_MAP2_TEXTURE_COORD_2 */ - 782, /* GL_MAP2_TEXTURE_COORD_3 */ - 783, /* GL_MAP2_TEXTURE_COORD_4 */ - 784, /* GL_MAP2_VERTEX_3 */ - 785, /* GL_MAP2_VERTEX_4 */ - 749, /* GL_MAP1_GRID_DOMAIN */ - 750, /* GL_MAP1_GRID_SEGMENTS */ - 776, /* GL_MAP2_GRID_DOMAIN */ - 777, /* GL_MAP2_GRID_SEGMENTS */ - 1636, /* GL_TEXTURE_1D */ - 1638, /* GL_TEXTURE_2D */ + 749, /* GL_MAP1_COLOR_4 */ + 752, /* GL_MAP1_INDEX */ + 753, /* GL_MAP1_NORMAL */ + 754, /* GL_MAP1_TEXTURE_COORD_1 */ + 755, /* GL_MAP1_TEXTURE_COORD_2 */ + 756, /* GL_MAP1_TEXTURE_COORD_3 */ + 757, /* GL_MAP1_TEXTURE_COORD_4 */ + 758, /* GL_MAP1_VERTEX_3 */ + 759, /* GL_MAP1_VERTEX_4 */ + 776, /* GL_MAP2_COLOR_4 */ + 779, /* GL_MAP2_INDEX */ + 780, /* GL_MAP2_NORMAL */ + 781, /* GL_MAP2_TEXTURE_COORD_1 */ + 782, /* GL_MAP2_TEXTURE_COORD_2 */ + 783, /* GL_MAP2_TEXTURE_COORD_3 */ + 784, /* GL_MAP2_TEXTURE_COORD_4 */ + 785, /* GL_MAP2_VERTEX_3 */ + 786, /* GL_MAP2_VERTEX_4 */ + 750, /* GL_MAP1_GRID_DOMAIN */ + 751, /* GL_MAP1_GRID_SEGMENTS */ + 777, /* GL_MAP2_GRID_DOMAIN */ + 778, /* GL_MAP2_GRID_SEGMENTS */ + 1643, /* GL_TEXTURE_1D */ + 1645, /* GL_TEXTURE_2D */ 483, /* GL_FEEDBACK_BUFFER_POINTER */ 484, /* GL_FEEDBACK_BUFFER_SIZE */ 485, /* GL_FEEDBACK_BUFFER_TYPE */ - 1432, /* GL_SELECTION_BUFFER_POINTER */ - 1433, /* GL_SELECTION_BUFFER_SIZE */ - 1755, /* GL_TEXTURE_WIDTH */ - 1718, /* GL_TEXTURE_HEIGHT */ - 1673, /* GL_TEXTURE_COMPONENTS */ - 1657, /* GL_TEXTURE_BORDER_COLOR */ - 1656, /* GL_TEXTURE_BORDER */ + 1438, /* GL_SELECTION_BUFFER_POINTER */ + 1439, /* GL_SELECTION_BUFFER_SIZE */ + 1762, /* GL_TEXTURE_WIDTH */ + 1725, /* GL_TEXTURE_HEIGHT */ + 1680, /* GL_TEXTURE_COMPONENTS */ + 1664, /* GL_TEXTURE_BORDER_COLOR */ + 1663, /* GL_TEXTURE_BORDER */ 386, /* GL_DONT_CARE */ 481, /* GL_FASTEST */ - 1023, /* GL_NICEST */ + 1027, /* GL_NICEST */ 48, /* GL_AMBIENT */ 383, /* GL_DIFFUSE */ - 1481, /* GL_SPECULAR */ - 1187, /* GL_POSITION */ - 1484, /* GL_SPOT_DIRECTION */ - 1485, /* GL_SPOT_EXPONENT */ - 1483, /* GL_SPOT_CUTOFF */ + 1488, /* GL_SPECULAR */ + 1191, /* GL_POSITION */ + 1491, /* GL_SPOT_DIRECTION */ + 1492, /* GL_SPOT_EXPONENT */ + 1490, /* GL_SPOT_CUTOFF */ 276, /* GL_CONSTANT_ATTENUATION */ - 698, /* GL_LINEAR_ATTENUATION */ - 1287, /* GL_QUADRATIC_ATTENUATION */ + 699, /* GL_LINEAR_ATTENUATION */ + 1292, /* GL_QUADRATIC_ATTENUATION */ 245, /* GL_COMPILE */ 246, /* GL_COMPILE_AND_EXECUTE */ 121, /* GL_BYTE */ - 1789, /* GL_UNSIGNED_BYTE */ - 1446, /* GL_SHORT */ - 1801, /* GL_UNSIGNED_SHORT */ + 1804, /* GL_UNSIGNED_BYTE */ + 1453, /* GL_SHORT */ + 1816, /* GL_UNSIGNED_SHORT */ 647, /* GL_INT */ - 1792, /* GL_UNSIGNED_INT */ + 1807, /* GL_UNSIGNED_INT */ 490, /* GL_FLOAT */ 1, /* GL_2_BYTES */ 5, /* GL_3_BYTES */ @@ -4148,148 +4178,148 @@ static const unsigned reduced_enums[1357] = 52, /* GL_AND_REVERSE */ 300, /* GL_COPY */ 51, /* GL_AND_INVERTED */ - 1025, /* GL_NOOP */ - 1885, /* GL_XOR */ - 1088, /* GL_OR */ - 1026, /* GL_NOR */ + 1029, /* GL_NOOP */ + 1900, /* GL_XOR */ + 1092, /* GL_OR */ + 1030, /* GL_NOR */ 471, /* GL_EQUIV */ - 674, /* GL_INVERT */ - 1091, /* GL_OR_REVERSE */ + 675, /* GL_INVERT */ + 1095, /* GL_OR_REVERSE */ 301, /* GL_COPY_INVERTED */ - 1090, /* GL_OR_INVERTED */ - 1016, /* GL_NAND */ - 1437, /* GL_SET */ + 1094, /* GL_OR_INVERTED */ + 1020, /* GL_NAND */ + 1444, /* GL_SET */ 468, /* GL_EMISSION */ - 1445, /* GL_SHININESS */ + 1452, /* GL_SHININESS */ 49, /* GL_AMBIENT_AND_DIFFUSE */ 191, /* GL_COLOR_INDEXES */ - 966, /* GL_MODELVIEW */ - 1263, /* GL_PROJECTION */ - 1571, /* GL_TEXTURE */ + 970, /* GL_MODELVIEW */ + 1268, /* GL_PROJECTION */ + 1578, /* GL_TEXTURE */ 148, /* GL_COLOR */ 347, /* GL_DEPTH */ - 1507, /* GL_STENCIL */ + 1514, /* GL_STENCIL */ 190, /* GL_COLOR_INDEX */ - 1526, /* GL_STENCIL_INDEX */ + 1533, /* GL_STENCIL_INDEX */ 360, /* GL_DEPTH_COMPONENT */ - 1315, /* GL_RED */ + 1321, /* GL_RED */ 601, /* GL_GREEN */ 90, /* GL_BLUE */ 31, /* GL_ALPHA */ - 1354, /* GL_RGB */ - 1373, /* GL_RGBA */ - 726, /* GL_LUMINANCE */ - 747, /* GL_LUMINANCE_ALPHA */ + 1360, /* GL_RGB */ + 1379, /* GL_RGBA */ + 727, /* GL_LUMINANCE */ + 748, /* GL_LUMINANCE_ALPHA */ 73, /* GL_BITMAP */ - 1143, /* GL_POINT */ - 696, /* GL_LINE */ + 1147, /* GL_POINT */ + 697, /* GL_LINE */ 486, /* GL_FILL */ - 1325, /* GL_RENDER */ + 1331, /* GL_RENDER */ 482, /* GL_FEEDBACK */ - 1431, /* GL_SELECT */ + 1437, /* GL_SELECT */ 489, /* GL_FLAT */ - 1456, /* GL_SMOOTH */ - 675, /* GL_KEEP */ - 1347, /* GL_REPLACE */ + 1463, /* GL_SMOOTH */ + 676, /* GL_KEEP */ + 1353, /* GL_REPLACE */ 629, /* GL_INCR */ 343, /* GL_DECR */ - 1816, /* GL_VENDOR */ - 1344, /* GL_RENDERER */ - 1817, /* GL_VERSION */ + 1831, /* GL_VENDOR */ + 1350, /* GL_RENDERER */ + 1832, /* GL_VERSION */ 475, /* GL_EXTENSIONS */ - 1396, /* GL_S */ - 1562, /* GL_T */ - 1303, /* GL_R */ - 1286, /* GL_Q */ - 1002, /* GL_MODULATE */ + 1402, /* GL_S */ + 1569, /* GL_T */ + 1308, /* GL_R */ + 1291, /* GL_Q */ + 1006, /* GL_MODULATE */ 342, /* GL_DECAL */ - 1708, /* GL_TEXTURE_ENV_MODE */ - 1707, /* GL_TEXTURE_ENV_COLOR */ - 1706, /* GL_TEXTURE_ENV */ + 1715, /* GL_TEXTURE_ENV_MODE */ + 1714, /* GL_TEXTURE_ENV_COLOR */ + 1713, /* GL_TEXTURE_ENV */ 476, /* GL_EYE_LINEAR */ - 1049, /* GL_OBJECT_LINEAR */ - 1482, /* GL_SPHERE_MAP */ - 1710, /* GL_TEXTURE_GEN_MODE */ - 1051, /* GL_OBJECT_PLANE */ + 1053, /* GL_OBJECT_LINEAR */ + 1489, /* GL_SPHERE_MAP */ + 1717, /* GL_TEXTURE_GEN_MODE */ + 1055, /* GL_OBJECT_PLANE */ 477, /* GL_EYE_PLANE */ - 1017, /* GL_NEAREST */ - 697, /* GL_LINEAR */ - 1021, /* GL_NEAREST_MIPMAP_NEAREST */ - 702, /* GL_LINEAR_MIPMAP_NEAREST */ - 1020, /* GL_NEAREST_MIPMAP_LINEAR */ - 701, /* GL_LINEAR_MIPMAP_LINEAR */ - 1731, /* GL_TEXTURE_MAG_FILTER */ - 1739, /* GL_TEXTURE_MIN_FILTER */ - 1757, /* GL_TEXTURE_WRAP_S */ - 1758, /* GL_TEXTURE_WRAP_T */ + 1021, /* GL_NEAREST */ + 698, /* GL_LINEAR */ + 1025, /* GL_NEAREST_MIPMAP_NEAREST */ + 703, /* GL_LINEAR_MIPMAP_NEAREST */ + 1024, /* GL_NEAREST_MIPMAP_LINEAR */ + 702, /* GL_LINEAR_MIPMAP_LINEAR */ + 1738, /* GL_TEXTURE_MAG_FILTER */ + 1746, /* GL_TEXTURE_MIN_FILTER */ + 1764, /* GL_TEXTURE_WRAP_S */ + 1765, /* GL_TEXTURE_WRAP_T */ 127, /* GL_CLAMP */ - 1346, /* GL_REPEAT */ - 1181, /* GL_POLYGON_OFFSET_UNITS */ - 1180, /* GL_POLYGON_OFFSET_POINT */ - 1179, /* GL_POLYGON_OFFSET_LINE */ - 1304, /* GL_R3_G3_B2 */ - 1813, /* GL_V2F */ - 1814, /* GL_V3F */ + 1352, /* GL_REPEAT */ + 1185, /* GL_POLYGON_OFFSET_UNITS */ + 1184, /* GL_POLYGON_OFFSET_POINT */ + 1183, /* GL_POLYGON_OFFSET_LINE */ + 1309, /* GL_R3_G3_B2 */ + 1828, /* GL_V2F */ + 1829, /* GL_V3F */ 124, /* GL_C4UB_V2F */ 125, /* GL_C4UB_V3F */ 122, /* GL_C3F_V3F */ - 1014, /* GL_N3F_V3F */ + 1018, /* GL_N3F_V3F */ 123, /* GL_C4F_N3F_V3F */ - 1567, /* GL_T2F_V3F */ - 1569, /* GL_T4F_V4F */ - 1565, /* GL_T2F_C4UB_V3F */ - 1563, /* GL_T2F_C3F_V3F */ - 1566, /* GL_T2F_N3F_V3F */ - 1564, /* GL_T2F_C4F_N3F_V3F */ - 1568, /* GL_T4F_C4F_N3F_V4F */ + 1574, /* GL_T2F_V3F */ + 1576, /* GL_T4F_V4F */ + 1572, /* GL_T2F_C4UB_V3F */ + 1570, /* GL_T2F_C3F_V3F */ + 1573, /* GL_T2F_N3F_V3F */ + 1571, /* GL_T2F_C4F_N3F_V3F */ + 1575, /* GL_T4F_C4F_N3F_V4F */ 140, /* GL_CLIP_PLANE0 */ 141, /* GL_CLIP_PLANE1 */ 142, /* GL_CLIP_PLANE2 */ 143, /* GL_CLIP_PLANE3 */ 144, /* GL_CLIP_PLANE4 */ 145, /* GL_CLIP_PLANE5 */ - 681, /* GL_LIGHT0 */ - 682, /* GL_LIGHT1 */ - 683, /* GL_LIGHT2 */ - 684, /* GL_LIGHT3 */ - 685, /* GL_LIGHT4 */ - 686, /* GL_LIGHT5 */ - 687, /* GL_LIGHT6 */ - 688, /* GL_LIGHT7 */ + 682, /* GL_LIGHT0 */ + 683, /* GL_LIGHT1 */ + 684, /* GL_LIGHT2 */ + 685, /* GL_LIGHT3 */ + 686, /* GL_LIGHT4 */ + 687, /* GL_LIGHT5 */ + 688, /* GL_LIGHT6 */ + 689, /* GL_LIGHT7 */ 606, /* GL_HINT_BIT */ 278, /* GL_CONSTANT_COLOR */ - 1062, /* GL_ONE_MINUS_CONSTANT_COLOR */ + 1066, /* GL_ONE_MINUS_CONSTANT_COLOR */ 273, /* GL_CONSTANT_ALPHA */ - 1060, /* GL_ONE_MINUS_CONSTANT_ALPHA */ + 1064, /* GL_ONE_MINUS_CONSTANT_ALPHA */ 76, /* GL_BLEND_COLOR */ 589, /* GL_FUNC_ADD */ - 950, /* GL_MIN */ - 857, /* GL_MAX */ + 954, /* GL_MIN */ + 858, /* GL_MAX */ 81, /* GL_BLEND_EQUATION */ 593, /* GL_FUNC_SUBTRACT */ 591, /* GL_FUNC_REVERSE_SUBTRACT */ 281, /* GL_CONVOLUTION_1D */ 282, /* GL_CONVOLUTION_2D */ - 1434, /* GL_SEPARABLE_2D */ + 1440, /* GL_SEPARABLE_2D */ 285, /* GL_CONVOLUTION_BORDER_MODE */ 289, /* GL_CONVOLUTION_FILTER_SCALE */ 287, /* GL_CONVOLUTION_FILTER_BIAS */ - 1316, /* GL_REDUCE */ + 1322, /* GL_REDUCE */ 291, /* GL_CONVOLUTION_FORMAT */ 295, /* GL_CONVOLUTION_WIDTH */ 293, /* GL_CONVOLUTION_HEIGHT */ - 873, /* GL_MAX_CONVOLUTION_WIDTH */ - 871, /* GL_MAX_CONVOLUTION_HEIGHT */ - 1220, /* GL_POST_CONVOLUTION_RED_SCALE */ - 1216, /* GL_POST_CONVOLUTION_GREEN_SCALE */ - 1211, /* GL_POST_CONVOLUTION_BLUE_SCALE */ - 1207, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ - 1218, /* GL_POST_CONVOLUTION_RED_BIAS */ - 1214, /* GL_POST_CONVOLUTION_GREEN_BIAS */ - 1209, /* GL_POST_CONVOLUTION_BLUE_BIAS */ - 1205, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ + 874, /* GL_MAX_CONVOLUTION_WIDTH */ + 872, /* GL_MAX_CONVOLUTION_HEIGHT */ + 1224, /* GL_POST_CONVOLUTION_RED_SCALE */ + 1220, /* GL_POST_CONVOLUTION_GREEN_SCALE */ + 1215, /* GL_POST_CONVOLUTION_BLUE_SCALE */ + 1211, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ + 1222, /* GL_POST_CONVOLUTION_RED_BIAS */ + 1218, /* GL_POST_CONVOLUTION_GREEN_BIAS */ + 1213, /* GL_POST_CONVOLUTION_BLUE_BIAS */ + 1209, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ 607, /* GL_HISTOGRAM */ - 1269, /* GL_PROXY_HISTOGRAM */ + 1274, /* GL_PROXY_HISTOGRAM */ 623, /* GL_HISTOGRAM_WIDTH */ 613, /* GL_HISTOGRAM_FORMAT */ 619, /* GL_HISTOGRAM_RED_SIZE */ @@ -4298,134 +4328,134 @@ static const unsigned reduced_enums[1357] = 608, /* GL_HISTOGRAM_ALPHA_SIZE */ 617, /* GL_HISTOGRAM_LUMINANCE_SIZE */ 621, /* GL_HISTOGRAM_SINK */ - 951, /* GL_MINMAX */ - 953, /* GL_MINMAX_FORMAT */ - 955, /* GL_MINMAX_SINK */ - 1570, /* GL_TABLE_TOO_LARGE_EXT */ - 1791, /* GL_UNSIGNED_BYTE_3_3_2 */ - 1803, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - 1805, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - 1798, /* GL_UNSIGNED_INT_8_8_8_8 */ - 1793, /* GL_UNSIGNED_INT_10_10_10_2 */ - 1178, /* GL_POLYGON_OFFSET_FILL */ - 1177, /* GL_POLYGON_OFFSET_FACTOR */ - 1176, /* GL_POLYGON_OFFSET_BIAS */ - 1350, /* GL_RESCALE_NORMAL */ + 955, /* GL_MINMAX */ + 957, /* GL_MINMAX_FORMAT */ + 959, /* GL_MINMAX_SINK */ + 1577, /* GL_TABLE_TOO_LARGE_EXT */ + 1806, /* GL_UNSIGNED_BYTE_3_3_2 */ + 1818, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + 1820, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + 1813, /* GL_UNSIGNED_INT_8_8_8_8 */ + 1808, /* GL_UNSIGNED_INT_10_10_10_2 */ + 1182, /* GL_POLYGON_OFFSET_FILL */ + 1181, /* GL_POLYGON_OFFSET_FACTOR */ + 1180, /* GL_POLYGON_OFFSET_BIAS */ + 1356, /* GL_RESCALE_NORMAL */ 36, /* GL_ALPHA4 */ 38, /* GL_ALPHA8 */ 32, /* GL_ALPHA12 */ 34, /* GL_ALPHA16 */ - 737, /* GL_LUMINANCE4 */ - 743, /* GL_LUMINANCE8 */ - 727, /* GL_LUMINANCE12 */ - 733, /* GL_LUMINANCE16 */ - 738, /* GL_LUMINANCE4_ALPHA4 */ - 741, /* GL_LUMINANCE6_ALPHA2 */ - 744, /* GL_LUMINANCE8_ALPHA8 */ - 730, /* GL_LUMINANCE12_ALPHA4 */ - 728, /* GL_LUMINANCE12_ALPHA12 */ - 734, /* GL_LUMINANCE16_ALPHA16 */ + 738, /* GL_LUMINANCE4 */ + 744, /* GL_LUMINANCE8 */ + 728, /* GL_LUMINANCE12 */ + 734, /* GL_LUMINANCE16 */ + 739, /* GL_LUMINANCE4_ALPHA4 */ + 742, /* GL_LUMINANCE6_ALPHA2 */ + 745, /* GL_LUMINANCE8_ALPHA8 */ + 731, /* GL_LUMINANCE12_ALPHA4 */ + 729, /* GL_LUMINANCE12_ALPHA12 */ + 735, /* GL_LUMINANCE16_ALPHA16 */ 648, /* GL_INTENSITY */ 653, /* GL_INTENSITY4 */ 655, /* GL_INTENSITY8 */ 649, /* GL_INTENSITY12 */ 651, /* GL_INTENSITY16 */ - 1363, /* GL_RGB2_EXT */ - 1364, /* GL_RGB4 */ - 1367, /* GL_RGB5 */ - 1371, /* GL_RGB8 */ - 1355, /* GL_RGB10 */ - 1359, /* GL_RGB12 */ - 1361, /* GL_RGB16 */ - 1378, /* GL_RGBA2 */ - 1380, /* GL_RGBA4 */ - 1368, /* GL_RGB5_A1 */ - 1384, /* GL_RGBA8 */ - 1356, /* GL_RGB10_A2 */ - 1374, /* GL_RGBA12 */ - 1376, /* GL_RGBA16 */ - 1746, /* GL_TEXTURE_RED_SIZE */ - 1716, /* GL_TEXTURE_GREEN_SIZE */ - 1654, /* GL_TEXTURE_BLUE_SIZE */ - 1641, /* GL_TEXTURE_ALPHA_SIZE */ - 1729, /* GL_TEXTURE_LUMINANCE_SIZE */ - 1720, /* GL_TEXTURE_INTENSITY_SIZE */ - 1348, /* GL_REPLACE_EXT */ - 1273, /* GL_PROXY_TEXTURE_1D */ - 1276, /* GL_PROXY_TEXTURE_2D */ - 1753, /* GL_TEXTURE_TOO_LARGE_EXT */ - 1741, /* GL_TEXTURE_PRIORITY */ - 1748, /* GL_TEXTURE_RESIDENT */ - 1644, /* GL_TEXTURE_BINDING_1D */ - 1646, /* GL_TEXTURE_BINDING_2D */ - 1648, /* GL_TEXTURE_BINDING_3D */ - 1098, /* GL_PACK_SKIP_IMAGES */ - 1094, /* GL_PACK_IMAGE_HEIGHT */ - 1784, /* GL_UNPACK_SKIP_IMAGES */ - 1781, /* GL_UNPACK_IMAGE_HEIGHT */ - 1640, /* GL_TEXTURE_3D */ - 1279, /* GL_PROXY_TEXTURE_3D */ - 1703, /* GL_TEXTURE_DEPTH */ - 1756, /* GL_TEXTURE_WRAP_R */ - 858, /* GL_MAX_3D_TEXTURE_SIZE */ - 1818, /* GL_VERTEX_ARRAY */ - 1028, /* GL_NORMAL_ARRAY */ + 1369, /* GL_RGB2_EXT */ + 1370, /* GL_RGB4 */ + 1373, /* GL_RGB5 */ + 1377, /* GL_RGB8 */ + 1361, /* GL_RGB10 */ + 1365, /* GL_RGB12 */ + 1367, /* GL_RGB16 */ + 1384, /* GL_RGBA2 */ + 1386, /* GL_RGBA4 */ + 1374, /* GL_RGB5_A1 */ + 1390, /* GL_RGBA8 */ + 1362, /* GL_RGB10_A2 */ + 1380, /* GL_RGBA12 */ + 1382, /* GL_RGBA16 */ + 1753, /* GL_TEXTURE_RED_SIZE */ + 1723, /* GL_TEXTURE_GREEN_SIZE */ + 1661, /* GL_TEXTURE_BLUE_SIZE */ + 1648, /* GL_TEXTURE_ALPHA_SIZE */ + 1736, /* GL_TEXTURE_LUMINANCE_SIZE */ + 1727, /* GL_TEXTURE_INTENSITY_SIZE */ + 1354, /* GL_REPLACE_EXT */ + 1278, /* GL_PROXY_TEXTURE_1D */ + 1281, /* GL_PROXY_TEXTURE_2D */ + 1760, /* GL_TEXTURE_TOO_LARGE_EXT */ + 1748, /* GL_TEXTURE_PRIORITY */ + 1755, /* GL_TEXTURE_RESIDENT */ + 1651, /* GL_TEXTURE_BINDING_1D */ + 1653, /* GL_TEXTURE_BINDING_2D */ + 1655, /* GL_TEXTURE_BINDING_3D */ + 1102, /* GL_PACK_SKIP_IMAGES */ + 1098, /* GL_PACK_IMAGE_HEIGHT */ + 1799, /* GL_UNPACK_SKIP_IMAGES */ + 1796, /* GL_UNPACK_IMAGE_HEIGHT */ + 1647, /* GL_TEXTURE_3D */ + 1284, /* GL_PROXY_TEXTURE_3D */ + 1710, /* GL_TEXTURE_DEPTH */ + 1763, /* GL_TEXTURE_WRAP_R */ + 859, /* GL_MAX_3D_TEXTURE_SIZE */ + 1833, /* GL_VERTEX_ARRAY */ + 1032, /* GL_NORMAL_ARRAY */ 149, /* GL_COLOR_ARRAY */ 633, /* GL_INDEX_ARRAY */ - 1681, /* GL_TEXTURE_COORD_ARRAY */ + 1688, /* GL_TEXTURE_COORD_ARRAY */ 460, /* GL_EDGE_FLAG_ARRAY */ - 1824, /* GL_VERTEX_ARRAY_SIZE */ - 1826, /* GL_VERTEX_ARRAY_TYPE */ - 1825, /* GL_VERTEX_ARRAY_STRIDE */ - 1033, /* GL_NORMAL_ARRAY_TYPE */ - 1032, /* GL_NORMAL_ARRAY_STRIDE */ + 1839, /* GL_VERTEX_ARRAY_SIZE */ + 1841, /* GL_VERTEX_ARRAY_TYPE */ + 1840, /* GL_VERTEX_ARRAY_STRIDE */ + 1037, /* GL_NORMAL_ARRAY_TYPE */ + 1036, /* GL_NORMAL_ARRAY_STRIDE */ 153, /* GL_COLOR_ARRAY_SIZE */ 155, /* GL_COLOR_ARRAY_TYPE */ 154, /* GL_COLOR_ARRAY_STRIDE */ 638, /* GL_INDEX_ARRAY_TYPE */ 637, /* GL_INDEX_ARRAY_STRIDE */ - 1685, /* GL_TEXTURE_COORD_ARRAY_SIZE */ - 1687, /* GL_TEXTURE_COORD_ARRAY_TYPE */ - 1686, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ + 1692, /* GL_TEXTURE_COORD_ARRAY_SIZE */ + 1694, /* GL_TEXTURE_COORD_ARRAY_TYPE */ + 1693, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ 464, /* GL_EDGE_FLAG_ARRAY_STRIDE */ - 1823, /* GL_VERTEX_ARRAY_POINTER */ - 1031, /* GL_NORMAL_ARRAY_POINTER */ + 1838, /* GL_VERTEX_ARRAY_POINTER */ + 1035, /* GL_NORMAL_ARRAY_POINTER */ 152, /* GL_COLOR_ARRAY_POINTER */ 636, /* GL_INDEX_ARRAY_POINTER */ - 1684, /* GL_TEXTURE_COORD_ARRAY_POINTER */ + 1691, /* GL_TEXTURE_COORD_ARRAY_POINTER */ 463, /* GL_EDGE_FLAG_ARRAY_POINTER */ - 1007, /* GL_MULTISAMPLE */ - 1408, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ - 1410, /* GL_SAMPLE_ALPHA_TO_ONE */ - 1415, /* GL_SAMPLE_COVERAGE */ - 1412, /* GL_SAMPLE_BUFFERS */ - 1403, /* GL_SAMPLES */ - 1419, /* GL_SAMPLE_COVERAGE_VALUE */ - 1417, /* GL_SAMPLE_COVERAGE_INVERT */ + 1011, /* GL_MULTISAMPLE */ + 1414, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ + 1416, /* GL_SAMPLE_ALPHA_TO_ONE */ + 1421, /* GL_SAMPLE_COVERAGE */ + 1418, /* GL_SAMPLE_BUFFERS */ + 1409, /* GL_SAMPLES */ + 1425, /* GL_SAMPLE_COVERAGE_VALUE */ + 1423, /* GL_SAMPLE_COVERAGE_INVERT */ 196, /* GL_COLOR_MATRIX */ 198, /* GL_COLOR_MATRIX_STACK_DEPTH */ - 867, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ - 1203, /* GL_POST_COLOR_MATRIX_RED_SCALE */ - 1199, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ - 1194, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ - 1190, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ - 1201, /* GL_POST_COLOR_MATRIX_RED_BIAS */ - 1197, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ - 1192, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ - 1188, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - 1664, /* GL_TEXTURE_COLOR_TABLE_SGI */ - 1280, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ - 1666, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ + 868, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ + 1207, /* GL_POST_COLOR_MATRIX_RED_SCALE */ + 1203, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ + 1198, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ + 1194, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ + 1205, /* GL_POST_COLOR_MATRIX_RED_BIAS */ + 1201, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ + 1196, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ + 1192, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + 1671, /* GL_TEXTURE_COLOR_TABLE_SGI */ + 1285, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ + 1673, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ 80, /* GL_BLEND_DST_RGB */ 89, /* GL_BLEND_SRC_RGB */ 79, /* GL_BLEND_DST_ALPHA */ 88, /* GL_BLEND_SRC_ALPHA */ 202, /* GL_COLOR_TABLE */ - 1213, /* GL_POST_CONVOLUTION_COLOR_TABLE */ - 1196, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ - 1268, /* GL_PROXY_COLOR_TABLE */ - 1272, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ - 1271, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + 1217, /* GL_POST_CONVOLUTION_COLOR_TABLE */ + 1200, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ + 1273, /* GL_PROXY_COLOR_TABLE */ + 1277, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ + 1276, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ 226, /* GL_COLOR_TABLE_SCALE */ 206, /* GL_COLOR_TABLE_BIAS */ 211, /* GL_COLOR_TABLE_FORMAT */ @@ -4438,62 +4468,62 @@ static const unsigned reduced_enums[1357] = 217, /* GL_COLOR_TABLE_INTENSITY_SIZE */ 71, /* GL_BGR */ 72, /* GL_BGRA */ - 881, /* GL_MAX_ELEMENTS_VERTICES */ - 880, /* GL_MAX_ELEMENTS_INDICES */ - 1719, /* GL_TEXTURE_INDEX_SIZE_EXT */ + 882, /* GL_MAX_ELEMENTS_VERTICES */ + 881, /* GL_MAX_ELEMENTS_INDICES */ + 1726, /* GL_TEXTURE_INDEX_SIZE_EXT */ 146, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ - 1160, /* GL_POINT_SIZE_MIN */ - 1156, /* GL_POINT_SIZE_MAX */ - 1150, /* GL_POINT_FADE_THRESHOLD_SIZE */ - 1146, /* GL_POINT_DISTANCE_ATTENUATION */ + 1164, /* GL_POINT_SIZE_MIN */ + 1160, /* GL_POINT_SIZE_MAX */ + 1154, /* GL_POINT_FADE_THRESHOLD_SIZE */ + 1150, /* GL_POINT_DISTANCE_ATTENUATION */ 128, /* GL_CLAMP_TO_BORDER */ 131, /* GL_CLAMP_TO_EDGE */ - 1740, /* GL_TEXTURE_MIN_LOD */ - 1738, /* GL_TEXTURE_MAX_LOD */ - 1643, /* GL_TEXTURE_BASE_LEVEL */ - 1737, /* GL_TEXTURE_MAX_LEVEL */ + 1747, /* GL_TEXTURE_MIN_LOD */ + 1745, /* GL_TEXTURE_MAX_LOD */ + 1650, /* GL_TEXTURE_BASE_LEVEL */ + 1744, /* GL_TEXTURE_MAX_LEVEL */ 626, /* GL_IGNORE_BORDER_HP */ 277, /* GL_CONSTANT_BORDER_HP */ - 1349, /* GL_REPLICATE_BORDER_HP */ + 1355, /* GL_REPLICATE_BORDER_HP */ 283, /* GL_CONVOLUTION_BORDER_COLOR */ - 1057, /* GL_OCCLUSION_TEST_HP */ - 1058, /* GL_OCCLUSION_TEST_RESULT_HP */ - 699, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ - 1658, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ - 1660, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ - 1662, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ - 1663, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - 1661, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ - 1659, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ - 862, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ - 863, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - 1223, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ - 1225, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ - 1222, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ - 1224, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ - 1727, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ - 1728, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ - 1726, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ + 1061, /* GL_OCCLUSION_TEST_HP */ + 1062, /* GL_OCCLUSION_TEST_RESULT_HP */ + 700, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ + 1665, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ + 1667, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ + 1669, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ + 1670, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + 1668, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ + 1666, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ + 863, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ + 864, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + 1227, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ + 1229, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ + 1226, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ + 1228, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ + 1734, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ + 1735, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ + 1733, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ 595, /* GL_GENERATE_MIPMAP */ 596, /* GL_GENERATE_MIPMAP_HINT */ 533, /* GL_FOG_OFFSET_SGIX */ 534, /* GL_FOG_OFFSET_VALUE_SGIX */ - 1672, /* GL_TEXTURE_COMPARE_SGIX */ - 1671, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ - 1723, /* GL_TEXTURE_LEQUAL_R_SGIX */ - 1715, /* GL_TEXTURE_GEQUAL_R_SGIX */ + 1679, /* GL_TEXTURE_COMPARE_SGIX */ + 1678, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ + 1730, /* GL_TEXTURE_LEQUAL_R_SGIX */ + 1722, /* GL_TEXTURE_GEQUAL_R_SGIX */ 361, /* GL_DEPTH_COMPONENT16 */ 364, /* GL_DEPTH_COMPONENT24 */ 367, /* GL_DEPTH_COMPONENT32 */ 307, /* GL_CULL_VERTEX_EXT */ 309, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ 308, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ - 1882, /* GL_WRAP_BORDER_SUN */ - 1665, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ - 692, /* GL_LIGHT_MODEL_COLOR_CONTROL */ - 1449, /* GL_SINGLE_COLOR */ - 1435, /* GL_SEPARATE_SPECULAR_COLOR */ - 1444, /* GL_SHARED_TEXTURE_PALETTE_EXT */ + 1897, /* GL_WRAP_BORDER_SUN */ + 1672, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ + 693, /* GL_LIGHT_MODEL_COLOR_CONTROL */ + 1456, /* GL_SINGLE_COLOR */ + 1442, /* GL_SEPARATE_SPECULAR_COLOR */ + 1451, /* GL_SHARED_TEXTURE_PALETTE_EXT */ 544, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ 545, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ 552, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ @@ -4506,30 +4536,30 @@ static const unsigned reduced_enums[1357] = 581, /* GL_FRAMEBUFFER_UNDEFINED */ 374, /* GL_DEPTH_STENCIL_ATTACHMENT */ 632, /* GL_INDEX */ - 1790, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - 1806, /* GL_UNSIGNED_SHORT_5_6_5 */ - 1807, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - 1804, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - 1802, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - 1799, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - 1797, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - 1735, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ - 1736, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ - 1734, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ - 958, /* GL_MIRRORED_REPEAT */ - 1391, /* GL_RGB_S3TC */ - 1366, /* GL_RGB4_S3TC */ - 1389, /* GL_RGBA_S3TC */ - 1383, /* GL_RGBA4_S3TC */ - 1387, /* GL_RGBA_DXT5_S3TC */ - 1381, /* GL_RGBA4_DXT5_S3TC */ + 1805, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + 1821, /* GL_UNSIGNED_SHORT_5_6_5 */ + 1822, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + 1819, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + 1817, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + 1814, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + 1812, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + 1742, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ + 1743, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ + 1741, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ + 962, /* GL_MIRRORED_REPEAT */ + 1397, /* GL_RGB_S3TC */ + 1372, /* GL_RGB4_S3TC */ + 1395, /* GL_RGBA_S3TC */ + 1389, /* GL_RGBA4_S3TC */ + 1393, /* GL_RGBA_DXT5_S3TC */ + 1387, /* GL_RGBA4_DXT5_S3TC */ 265, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ 260, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ 261, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ 262, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ - 1019, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ - 1018, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ - 700, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ + 1023, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ + 1022, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ + 701, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ 520, /* GL_FOG_COORDINATE_SOURCE */ 512, /* GL_FOG_COORD */ 536, /* GL_FRAGMENT_DEPTH */ @@ -4540,279 +4570,279 @@ static const unsigned reduced_enums[1357] = 514, /* GL_FOG_COORDINATE_ARRAY */ 200, /* GL_COLOR_SUM */ 333, /* GL_CURRENT_SECONDARY_COLOR */ - 1428, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ - 1430, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ - 1429, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ - 1427, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ - 1424, /* GL_SECONDARY_COLOR_ARRAY */ + 1434, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ + 1436, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ + 1435, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ + 1433, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ + 1430, /* GL_SECONDARY_COLOR_ARRAY */ 331, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ 28, /* GL_ALIASED_POINT_SIZE_RANGE */ 27, /* GL_ALIASED_LINE_WIDTH_RANGE */ - 1572, /* GL_TEXTURE0 */ - 1574, /* GL_TEXTURE1 */ - 1596, /* GL_TEXTURE2 */ - 1618, /* GL_TEXTURE3 */ - 1624, /* GL_TEXTURE4 */ - 1626, /* GL_TEXTURE5 */ - 1628, /* GL_TEXTURE6 */ - 1630, /* GL_TEXTURE7 */ - 1632, /* GL_TEXTURE8 */ - 1634, /* GL_TEXTURE9 */ - 1575, /* GL_TEXTURE10 */ - 1577, /* GL_TEXTURE11 */ - 1579, /* GL_TEXTURE12 */ - 1581, /* GL_TEXTURE13 */ - 1583, /* GL_TEXTURE14 */ - 1585, /* GL_TEXTURE15 */ - 1587, /* GL_TEXTURE16 */ - 1589, /* GL_TEXTURE17 */ - 1591, /* GL_TEXTURE18 */ - 1593, /* GL_TEXTURE19 */ - 1597, /* GL_TEXTURE20 */ - 1599, /* GL_TEXTURE21 */ - 1601, /* GL_TEXTURE22 */ - 1603, /* GL_TEXTURE23 */ - 1605, /* GL_TEXTURE24 */ - 1607, /* GL_TEXTURE25 */ - 1609, /* GL_TEXTURE26 */ - 1611, /* GL_TEXTURE27 */ - 1613, /* GL_TEXTURE28 */ - 1615, /* GL_TEXTURE29 */ - 1619, /* GL_TEXTURE30 */ - 1621, /* GL_TEXTURE31 */ + 1579, /* GL_TEXTURE0 */ + 1581, /* GL_TEXTURE1 */ + 1603, /* GL_TEXTURE2 */ + 1625, /* GL_TEXTURE3 */ + 1631, /* GL_TEXTURE4 */ + 1633, /* GL_TEXTURE5 */ + 1635, /* GL_TEXTURE6 */ + 1637, /* GL_TEXTURE7 */ + 1639, /* GL_TEXTURE8 */ + 1641, /* GL_TEXTURE9 */ + 1582, /* GL_TEXTURE10 */ + 1584, /* GL_TEXTURE11 */ + 1586, /* GL_TEXTURE12 */ + 1588, /* GL_TEXTURE13 */ + 1590, /* GL_TEXTURE14 */ + 1592, /* GL_TEXTURE15 */ + 1594, /* GL_TEXTURE16 */ + 1596, /* GL_TEXTURE17 */ + 1598, /* GL_TEXTURE18 */ + 1600, /* GL_TEXTURE19 */ + 1604, /* GL_TEXTURE20 */ + 1606, /* GL_TEXTURE21 */ + 1608, /* GL_TEXTURE22 */ + 1610, /* GL_TEXTURE23 */ + 1612, /* GL_TEXTURE24 */ + 1614, /* GL_TEXTURE25 */ + 1616, /* GL_TEXTURE26 */ + 1618, /* GL_TEXTURE27 */ + 1620, /* GL_TEXTURE28 */ + 1622, /* GL_TEXTURE29 */ + 1626, /* GL_TEXTURE30 */ + 1628, /* GL_TEXTURE31 */ 18, /* GL_ACTIVE_TEXTURE */ 134, /* GL_CLIENT_ACTIVE_TEXTURE */ - 936, /* GL_MAX_TEXTURE_UNITS */ - 1767, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - 1770, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - 1772, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - 1764, /* GL_TRANSPOSE_COLOR_MATRIX */ - 1554, /* GL_SUBTRACT */ - 921, /* GL_MAX_RENDERBUFFER_SIZE */ + 937, /* GL_MAX_TEXTURE_UNITS */ + 1782, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + 1785, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + 1787, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + 1779, /* GL_TRANSPOSE_COLOR_MATRIX */ + 1561, /* GL_SUBTRACT */ + 922, /* GL_MAX_RENDERBUFFER_SIZE */ 248, /* GL_COMPRESSED_ALPHA */ 252, /* GL_COMPRESSED_LUMINANCE */ 253, /* GL_COMPRESSED_LUMINANCE_ALPHA */ 250, /* GL_COMPRESSED_INTENSITY */ 256, /* GL_COMPRESSED_RGB */ 257, /* GL_COMPRESSED_RGBA */ - 1679, /* GL_TEXTURE_COMPRESSION_HINT */ - 1744, /* GL_TEXTURE_RECTANGLE_ARB */ - 1651, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ - 1283, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ - 919, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ + 1686, /* GL_TEXTURE_COMPRESSION_HINT */ + 1751, /* GL_TEXTURE_RECTANGLE_ARB */ + 1658, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */ + 1288, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ + 920, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ 373, /* GL_DEPTH_STENCIL */ - 1794, /* GL_UNSIGNED_INT_24_8 */ - 932, /* GL_MAX_TEXTURE_LOD_BIAS */ - 1733, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ - 933, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ - 1709, /* GL_TEXTURE_FILTER_CONTROL */ - 1724, /* GL_TEXTURE_LOD_BIAS */ + 1809, /* GL_UNSIGNED_INT_24_8 */ + 933, /* GL_MAX_TEXTURE_LOD_BIAS */ + 1740, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ + 934, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ + 1716, /* GL_TEXTURE_FILTER_CONTROL */ + 1731, /* GL_TEXTURE_LOD_BIAS */ 233, /* GL_COMBINE4 */ - 926, /* GL_MAX_SHININESS_NV */ - 927, /* GL_MAX_SPOT_EXPONENT_NV */ + 927, /* GL_MAX_SHININESS_NV */ + 928, /* GL_MAX_SPOT_EXPONENT_NV */ 630, /* GL_INCR_WRAP */ 344, /* GL_DECR_WRAP */ - 978, /* GL_MODELVIEW1_ARB */ - 1034, /* GL_NORMAL_MAP */ - 1321, /* GL_REFLECTION_MAP */ - 1688, /* GL_TEXTURE_CUBE_MAP */ - 1649, /* GL_TEXTURE_BINDING_CUBE_MAP */ - 1696, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ - 1690, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ - 1698, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ - 1692, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ - 1700, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ - 1694, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ - 1281, /* GL_PROXY_TEXTURE_CUBE_MAP */ - 875, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ - 1013, /* GL_MULTISAMPLE_FILTER_HINT_NV */ + 982, /* GL_MODELVIEW1_ARB */ + 1038, /* GL_NORMAL_MAP */ + 1327, /* GL_REFLECTION_MAP */ + 1695, /* GL_TEXTURE_CUBE_MAP */ + 1656, /* GL_TEXTURE_BINDING_CUBE_MAP */ + 1703, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ + 1697, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ + 1705, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ + 1699, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ + 1707, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ + 1701, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ + 1286, /* GL_PROXY_TEXTURE_CUBE_MAP */ + 876, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ + 1017, /* GL_MULTISAMPLE_FILTER_HINT_NV */ 528, /* GL_FOG_DISTANCE_MODE_NV */ 479, /* GL_EYE_RADIAL_NV */ 478, /* GL_EYE_PLANE_ABSOLUTE_NV */ 232, /* GL_COMBINE */ 239, /* GL_COMBINE_RGB */ 234, /* GL_COMBINE_ALPHA */ - 1392, /* GL_RGB_SCALE */ + 1398, /* GL_RGB_SCALE */ 24, /* GL_ADD_SIGNED */ - 658, /* GL_INTERPOLATE */ + 659, /* GL_INTERPOLATE */ 272, /* GL_CONSTANT */ - 1229, /* GL_PRIMARY_COLOR */ - 1226, /* GL_PREVIOUS */ - 1464, /* GL_SOURCE0_RGB */ - 1470, /* GL_SOURCE1_RGB */ - 1476, /* GL_SOURCE2_RGB */ - 1480, /* GL_SOURCE3_RGB_NV */ - 1461, /* GL_SOURCE0_ALPHA */ - 1467, /* GL_SOURCE1_ALPHA */ - 1473, /* GL_SOURCE2_ALPHA */ - 1479, /* GL_SOURCE3_ALPHA_NV */ - 1071, /* GL_OPERAND0_RGB */ - 1077, /* GL_OPERAND1_RGB */ - 1083, /* GL_OPERAND2_RGB */ - 1087, /* GL_OPERAND3_RGB_NV */ - 1068, /* GL_OPERAND0_ALPHA */ - 1074, /* GL_OPERAND1_ALPHA */ - 1080, /* GL_OPERAND2_ALPHA */ - 1086, /* GL_OPERAND3_ALPHA_NV */ + 1233, /* GL_PRIMARY_COLOR */ + 1230, /* GL_PREVIOUS */ + 1471, /* GL_SOURCE0_RGB */ + 1477, /* GL_SOURCE1_RGB */ + 1483, /* GL_SOURCE2_RGB */ + 1487, /* GL_SOURCE3_RGB_NV */ + 1468, /* GL_SOURCE0_ALPHA */ + 1474, /* GL_SOURCE1_ALPHA */ + 1480, /* GL_SOURCE2_ALPHA */ + 1486, /* GL_SOURCE3_ALPHA_NV */ + 1075, /* GL_OPERAND0_RGB */ + 1081, /* GL_OPERAND1_RGB */ + 1087, /* GL_OPERAND2_RGB */ + 1091, /* GL_OPERAND3_RGB_NV */ + 1072, /* GL_OPERAND0_ALPHA */ + 1078, /* GL_OPERAND1_ALPHA */ + 1084, /* GL_OPERAND2_ALPHA */ + 1090, /* GL_OPERAND3_ALPHA_NV */ 109, /* GL_BUFFER_OBJECT_APPLE */ - 1819, /* GL_VERTEX_ARRAY_BINDING */ - 1742, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ - 1743, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - 1886, /* GL_YCBCR_422_APPLE */ - 1808, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - 1810, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - 1752, /* GL_TEXTURE_STORAGE_HINT_APPLE */ - 1545, /* GL_STORAGE_PRIVATE_APPLE */ - 1544, /* GL_STORAGE_CACHED_APPLE */ - 1546, /* GL_STORAGE_SHARED_APPLE */ - 1451, /* GL_SLICE_ACCUM_SUN */ - 1291, /* GL_QUAD_MESH_SUN */ - 1776, /* GL_TRIANGLE_MESH_SUN */ - 1858, /* GL_VERTEX_PROGRAM_ARB */ - 1869, /* GL_VERTEX_STATE_PROGRAM_NV */ - 1845, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - 1851, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - 1853, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - 1855, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + 1834, /* GL_VERTEX_ARRAY_BINDING */ + 1749, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ + 1750, /* GL_TEXTURE_RANGE_POINTER_APPLE */ + 1901, /* GL_YCBCR_422_APPLE */ + 1823, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + 1825, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + 1759, /* GL_TEXTURE_STORAGE_HINT_APPLE */ + 1552, /* GL_STORAGE_PRIVATE_APPLE */ + 1551, /* GL_STORAGE_CACHED_APPLE */ + 1553, /* GL_STORAGE_SHARED_APPLE */ + 1458, /* GL_SLICE_ACCUM_SUN */ + 1296, /* GL_QUAD_MESH_SUN */ + 1791, /* GL_TRIANGLE_MESH_SUN */ + 1873, /* GL_VERTEX_PROGRAM_ARB */ + 1884, /* GL_VERTEX_STATE_PROGRAM_NV */ + 1860, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + 1866, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + 1868, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + 1870, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ 335, /* GL_CURRENT_VERTEX_ATTRIB */ - 1242, /* GL_PROGRAM_LENGTH_ARB */ - 1256, /* GL_PROGRAM_STRING_ARB */ - 1000, /* GL_MODELVIEW_PROJECTION_NV */ + 1247, /* GL_PROGRAM_LENGTH_ARB */ + 1261, /* GL_PROGRAM_STRING_ARB */ + 1004, /* GL_MODELVIEW_PROJECTION_NV */ 625, /* GL_IDENTITY_NV */ - 672, /* GL_INVERSE_NV */ - 1769, /* GL_TRANSPOSE_NV */ - 673, /* GL_INVERSE_TRANSPOSE_NV */ - 905, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ - 904, /* GL_MAX_PROGRAM_MATRICES_ARB */ - 811, /* GL_MATRIX0_NV */ - 823, /* GL_MATRIX1_NV */ - 835, /* GL_MATRIX2_NV */ - 839, /* GL_MATRIX3_NV */ - 841, /* GL_MATRIX4_NV */ - 843, /* GL_MATRIX5_NV */ - 845, /* GL_MATRIX6_NV */ - 847, /* GL_MATRIX7_NV */ + 673, /* GL_INVERSE_NV */ + 1784, /* GL_TRANSPOSE_NV */ + 674, /* GL_INVERSE_TRANSPOSE_NV */ + 906, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ + 905, /* GL_MAX_PROGRAM_MATRICES_ARB */ + 812, /* GL_MATRIX0_NV */ + 824, /* GL_MATRIX1_NV */ + 836, /* GL_MATRIX2_NV */ + 840, /* GL_MATRIX3_NV */ + 842, /* GL_MATRIX4_NV */ + 844, /* GL_MATRIX5_NV */ + 846, /* GL_MATRIX6_NV */ + 848, /* GL_MATRIX7_NV */ 319, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ 316, /* GL_CURRENT_MATRIX_ARB */ - 1861, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - 1864, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - 1254, /* GL_PROGRAM_PARAMETER_NV */ - 1849, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - 1258, /* GL_PROGRAM_TARGET_NV */ - 1255, /* GL_PROGRAM_RESIDENT_NV */ - 1761, /* GL_TRACK_MATRIX_NV */ - 1762, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - 1859, /* GL_VERTEX_PROGRAM_BINDING_NV */ - 1236, /* GL_PROGRAM_ERROR_POSITION_ARB */ + 1876, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + 1879, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + 1259, /* GL_PROGRAM_PARAMETER_NV */ + 1864, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + 1263, /* GL_PROGRAM_TARGET_NV */ + 1260, /* GL_PROGRAM_RESIDENT_NV */ + 1768, /* GL_TRACK_MATRIX_NV */ + 1769, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + 1874, /* GL_VERTEX_PROGRAM_BINDING_NV */ + 1241, /* GL_PROGRAM_ERROR_POSITION_ARB */ 357, /* GL_DEPTH_CLAMP */ - 1827, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - 1834, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - 1835, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - 1836, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - 1837, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - 1838, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - 1839, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - 1840, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - 1841, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - 1842, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - 1828, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - 1829, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - 1830, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - 1831, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - 1832, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - 1833, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - 759, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ - 766, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ - 767, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ - 768, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ - 769, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ - 770, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ - 771, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ - 772, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ - 773, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ - 774, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ - 760, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ - 761, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ - 762, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ - 763, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ - 764, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ - 765, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ - 786, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ - 793, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ - 794, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ - 795, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ - 796, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ - 797, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ - 798, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ - 1235, /* GL_PROGRAM_BINDING_ARB */ - 800, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ - 801, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ - 787, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ - 788, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ - 789, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ - 790, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ - 791, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ - 792, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ - 1677, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ - 1674, /* GL_TEXTURE_COMPRESSED */ - 1039, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ + 1842, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + 1849, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + 1850, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + 1851, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + 1852, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + 1853, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + 1854, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + 1855, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + 1856, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + 1857, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + 1843, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + 1844, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + 1845, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + 1846, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + 1847, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + 1848, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + 760, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ + 767, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ + 768, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ + 769, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ + 770, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ + 771, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ + 772, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ + 773, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ + 774, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ + 775, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ + 761, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ + 762, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ + 763, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ + 764, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ + 765, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ + 766, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ + 787, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ + 794, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ + 795, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ + 796, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ + 797, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ + 798, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ + 799, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ + 1240, /* GL_PROGRAM_BINDING_ARB */ + 801, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ + 802, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ + 788, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ + 789, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ + 790, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ + 791, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ + 792, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ + 793, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ + 1684, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ + 1681, /* GL_TEXTURE_COMPRESSED */ + 1043, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ 270, /* GL_COMPRESSED_TEXTURE_FORMATS */ - 948, /* GL_MAX_VERTEX_UNITS_ARB */ + 952, /* GL_MAX_VERTEX_UNITS_ARB */ 22, /* GL_ACTIVE_VERTEX_UNITS_ARB */ - 1881, /* GL_WEIGHT_SUM_UNITY_ARB */ - 1857, /* GL_VERTEX_BLEND_ARB */ + 1896, /* GL_WEIGHT_SUM_UNITY_ARB */ + 1872, /* GL_VERTEX_BLEND_ARB */ 337, /* GL_CURRENT_WEIGHT_ARB */ - 1880, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - 1879, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - 1878, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - 1877, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - 1874, /* GL_WEIGHT_ARRAY_ARB */ + 1895, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + 1894, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + 1893, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + 1892, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + 1889, /* GL_WEIGHT_ARRAY_ARB */ 387, /* GL_DOT3_RGB */ 388, /* GL_DOT3_RGBA */ 264, /* GL_COMPRESSED_RGB_FXT1_3DFX */ 259, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ - 1008, /* GL_MULTISAMPLE_3DFX */ - 1413, /* GL_SAMPLE_BUFFERS_3DFX */ - 1404, /* GL_SAMPLES_3DFX */ - 989, /* GL_MODELVIEW2_ARB */ - 992, /* GL_MODELVIEW3_ARB */ - 993, /* GL_MODELVIEW4_ARB */ - 994, /* GL_MODELVIEW5_ARB */ - 995, /* GL_MODELVIEW6_ARB */ - 996, /* GL_MODELVIEW7_ARB */ - 997, /* GL_MODELVIEW8_ARB */ - 998, /* GL_MODELVIEW9_ARB */ - 968, /* GL_MODELVIEW10_ARB */ - 969, /* GL_MODELVIEW11_ARB */ - 970, /* GL_MODELVIEW12_ARB */ - 971, /* GL_MODELVIEW13_ARB */ - 972, /* GL_MODELVIEW14_ARB */ - 973, /* GL_MODELVIEW15_ARB */ - 974, /* GL_MODELVIEW16_ARB */ - 975, /* GL_MODELVIEW17_ARB */ - 976, /* GL_MODELVIEW18_ARB */ - 977, /* GL_MODELVIEW19_ARB */ - 979, /* GL_MODELVIEW20_ARB */ - 980, /* GL_MODELVIEW21_ARB */ - 981, /* GL_MODELVIEW22_ARB */ - 982, /* GL_MODELVIEW23_ARB */ - 983, /* GL_MODELVIEW24_ARB */ - 984, /* GL_MODELVIEW25_ARB */ - 985, /* GL_MODELVIEW26_ARB */ - 986, /* GL_MODELVIEW27_ARB */ - 987, /* GL_MODELVIEW28_ARB */ - 988, /* GL_MODELVIEW29_ARB */ - 990, /* GL_MODELVIEW30_ARB */ - 991, /* GL_MODELVIEW31_ARB */ + 1012, /* GL_MULTISAMPLE_3DFX */ + 1419, /* GL_SAMPLE_BUFFERS_3DFX */ + 1410, /* GL_SAMPLES_3DFX */ + 993, /* GL_MODELVIEW2_ARB */ + 996, /* GL_MODELVIEW3_ARB */ + 997, /* GL_MODELVIEW4_ARB */ + 998, /* GL_MODELVIEW5_ARB */ + 999, /* GL_MODELVIEW6_ARB */ + 1000, /* GL_MODELVIEW7_ARB */ + 1001, /* GL_MODELVIEW8_ARB */ + 1002, /* GL_MODELVIEW9_ARB */ + 972, /* GL_MODELVIEW10_ARB */ + 973, /* GL_MODELVIEW11_ARB */ + 974, /* GL_MODELVIEW12_ARB */ + 975, /* GL_MODELVIEW13_ARB */ + 976, /* GL_MODELVIEW14_ARB */ + 977, /* GL_MODELVIEW15_ARB */ + 978, /* GL_MODELVIEW16_ARB */ + 979, /* GL_MODELVIEW17_ARB */ + 980, /* GL_MODELVIEW18_ARB */ + 981, /* GL_MODELVIEW19_ARB */ + 983, /* GL_MODELVIEW20_ARB */ + 984, /* GL_MODELVIEW21_ARB */ + 985, /* GL_MODELVIEW22_ARB */ + 986, /* GL_MODELVIEW23_ARB */ + 987, /* GL_MODELVIEW24_ARB */ + 988, /* GL_MODELVIEW25_ARB */ + 989, /* GL_MODELVIEW26_ARB */ + 990, /* GL_MODELVIEW27_ARB */ + 991, /* GL_MODELVIEW28_ARB */ + 992, /* GL_MODELVIEW29_ARB */ + 994, /* GL_MODELVIEW30_ARB */ + 995, /* GL_MODELVIEW31_ARB */ 392, /* GL_DOT3_RGB_EXT */ 390, /* GL_DOT3_RGBA_EXT */ - 962, /* GL_MIRROR_CLAMP_EXT */ - 965, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ - 1003, /* GL_MODULATE_ADD_ATI */ - 1004, /* GL_MODULATE_SIGNED_ADD_ATI */ - 1005, /* GL_MODULATE_SUBTRACT_ATI */ - 1887, /* GL_YCBCR_MESA */ - 1095, /* GL_PACK_INVERT_MESA */ + 966, /* GL_MIRROR_CLAMP_EXT */ + 969, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ + 1007, /* GL_MODULATE_ADD_ATI */ + 1008, /* GL_MODULATE_SIGNED_ADD_ATI */ + 1009, /* GL_MODULATE_SUBTRACT_ATI */ + 1902, /* GL_YCBCR_MESA */ + 1099, /* GL_PACK_INVERT_MESA */ 340, /* GL_DEBUG_OBJECT_MESA */ 341, /* GL_DEBUG_PRINT_MESA */ 339, /* GL_DEBUG_ASSERT_MESA */ @@ -4826,24 +4856,24 @@ static const unsigned reduced_enums[1357] = 451, /* GL_DU8DV8_ATI */ 115, /* GL_BUMP_ENVMAP_ATI */ 119, /* GL_BUMP_TARGET_ATI */ - 1512, /* GL_STENCIL_BACK_FUNC */ - 1510, /* GL_STENCIL_BACK_FAIL */ - 1514, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ - 1516, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ + 1519, /* GL_STENCIL_BACK_FUNC */ + 1517, /* GL_STENCIL_BACK_FAIL */ + 1521, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ + 1523, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ 537, /* GL_FRAGMENT_PROGRAM_ARB */ - 1233, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ - 1261, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ - 1260, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ - 1245, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - 1251, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - 1250, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - 894, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ - 917, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ - 916, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ - 907, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - 913, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - 912, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - 877, /* GL_MAX_DRAW_BUFFERS */ + 1238, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ + 1266, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ + 1265, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ + 1250, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + 1256, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + 1255, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + 895, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ + 918, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ + 917, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ + 908, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + 914, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + 913, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + 878, /* GL_MAX_DRAW_BUFFERS */ 396, /* GL_DRAW_BUFFER0 */ 399, /* GL_DRAW_BUFFER1 */ 420, /* GL_DRAW_BUFFER2 */ @@ -4861,166 +4891,166 @@ static const unsigned reduced_enums[1357] = 412, /* GL_DRAW_BUFFER14 */ 415, /* GL_DRAW_BUFFER15 */ 82, /* GL_BLEND_EQUATION_ALPHA */ - 856, /* GL_MATRIX_PALETTE_ARB */ - 888, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ - 891, /* GL_MAX_PALETTE_MATRICES_ARB */ + 857, /* GL_MATRIX_PALETTE_ARB */ + 889, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ + 892, /* GL_MAX_PALETTE_MATRICES_ARB */ 322, /* GL_CURRENT_PALETTE_MATRIX_ARB */ - 850, /* GL_MATRIX_INDEX_ARRAY_ARB */ + 851, /* GL_MATRIX_INDEX_ARRAY_ARB */ 317, /* GL_CURRENT_MATRIX_INDEX_ARB */ - 852, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ - 854, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ - 853, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ - 851, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ - 1704, /* GL_TEXTURE_DEPTH_SIZE */ + 853, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ + 855, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ + 854, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ + 852, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ + 1711, /* GL_TEXTURE_DEPTH_SIZE */ 380, /* GL_DEPTH_TEXTURE_MODE */ - 1669, /* GL_TEXTURE_COMPARE_MODE */ - 1667, /* GL_TEXTURE_COMPARE_FUNC */ + 1676, /* GL_TEXTURE_COMPARE_MODE */ + 1674, /* GL_TEXTURE_COMPARE_FUNC */ 243, /* GL_COMPARE_R_TO_TEXTURE */ - 1167, /* GL_POINT_SPRITE */ + 1171, /* GL_POINT_SPRITE */ 297, /* GL_COORD_REPLACE */ - 1171, /* GL_POINT_SPRITE_R_MODE_NV */ - 1295, /* GL_QUERY_COUNTER_BITS */ + 1175, /* GL_POINT_SPRITE_R_MODE_NV */ + 1300, /* GL_QUERY_COUNTER_BITS */ 324, /* GL_CURRENT_QUERY */ - 1298, /* GL_QUERY_RESULT */ - 1300, /* GL_QUERY_RESULT_AVAILABLE */ - 942, /* GL_MAX_VERTEX_ATTRIBS */ - 1847, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + 1303, /* GL_QUERY_RESULT */ + 1305, /* GL_QUERY_RESULT_AVAILABLE */ + 946, /* GL_MAX_VERTEX_ATTRIBS */ + 1862, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ 378, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ 377, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ - 928, /* GL_MAX_TEXTURE_COORDS */ - 930, /* GL_MAX_TEXTURE_IMAGE_UNITS */ - 1238, /* GL_PROGRAM_ERROR_STRING_ARB */ - 1240, /* GL_PROGRAM_FORMAT_ASCII_ARB */ - 1239, /* GL_PROGRAM_FORMAT_ARB */ - 1754, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ + 929, /* GL_MAX_TEXTURE_COORDS */ + 931, /* GL_MAX_TEXTURE_IMAGE_UNITS */ + 1243, /* GL_PROGRAM_ERROR_STRING_ARB */ + 1245, /* GL_PROGRAM_FORMAT_ASCII_ARB */ + 1244, /* GL_PROGRAM_FORMAT_ARB */ + 1761, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ 355, /* GL_DEPTH_BOUNDS_TEST_EXT */ 354, /* GL_DEPTH_BOUNDS_EXT */ 53, /* GL_ARRAY_BUFFER */ 465, /* GL_ELEMENT_ARRAY_BUFFER */ 54, /* GL_ARRAY_BUFFER_BINDING */ 466, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ - 1821, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - 1029, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ + 1836, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + 1033, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ 150, /* GL_COLOR_ARRAY_BUFFER_BINDING */ 634, /* GL_INDEX_ARRAY_BUFFER_BINDING */ - 1682, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ + 1689, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ 461, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ - 1425, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ + 1431, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ 515, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ - 1875, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - 1843, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - 1241, /* GL_PROGRAM_INSTRUCTIONS_ARB */ - 900, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ - 1247, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - 909, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - 1259, /* GL_PROGRAM_TEMPORARIES_ARB */ - 915, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - 1249, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ - 911, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ - 1253, /* GL_PROGRAM_PARAMETERS_ARB */ - 914, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ - 1248, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ - 910, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ - 1234, /* GL_PROGRAM_ATTRIBS_ARB */ - 895, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ - 1246, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ - 908, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ - 1232, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ - 893, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ - 1244, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - 906, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - 901, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ - 897, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ - 1262, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - 1766, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - 1311, /* GL_READ_ONLY */ - 1883, /* GL_WRITE_ONLY */ - 1313, /* GL_READ_WRITE */ + 1890, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + 1858, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + 1246, /* GL_PROGRAM_INSTRUCTIONS_ARB */ + 901, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ + 1252, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + 910, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + 1264, /* GL_PROGRAM_TEMPORARIES_ARB */ + 916, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ + 1254, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ + 912, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ + 1258, /* GL_PROGRAM_PARAMETERS_ARB */ + 915, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ + 1253, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ + 911, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ + 1239, /* GL_PROGRAM_ATTRIBS_ARB */ + 896, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ + 1251, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ + 909, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ + 1237, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ + 894, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ + 1249, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + 907, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + 902, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ + 898, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ + 1267, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ + 1781, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + 1317, /* GL_READ_ONLY */ + 1898, /* GL_WRITE_ONLY */ + 1319, /* GL_READ_WRITE */ 102, /* GL_BUFFER_ACCESS */ 105, /* GL_BUFFER_MAPPED */ 107, /* GL_BUFFER_MAP_POINTER */ - 1760, /* GL_TIME_ELAPSED_EXT */ - 810, /* GL_MATRIX0_ARB */ - 822, /* GL_MATRIX1_ARB */ - 834, /* GL_MATRIX2_ARB */ - 838, /* GL_MATRIX3_ARB */ - 840, /* GL_MATRIX4_ARB */ - 842, /* GL_MATRIX5_ARB */ - 844, /* GL_MATRIX6_ARB */ - 846, /* GL_MATRIX7_ARB */ - 848, /* GL_MATRIX8_ARB */ - 849, /* GL_MATRIX9_ARB */ - 812, /* GL_MATRIX10_ARB */ - 813, /* GL_MATRIX11_ARB */ - 814, /* GL_MATRIX12_ARB */ - 815, /* GL_MATRIX13_ARB */ - 816, /* GL_MATRIX14_ARB */ - 817, /* GL_MATRIX15_ARB */ - 818, /* GL_MATRIX16_ARB */ - 819, /* GL_MATRIX17_ARB */ - 820, /* GL_MATRIX18_ARB */ - 821, /* GL_MATRIX19_ARB */ - 824, /* GL_MATRIX20_ARB */ - 825, /* GL_MATRIX21_ARB */ - 826, /* GL_MATRIX22_ARB */ - 827, /* GL_MATRIX23_ARB */ - 828, /* GL_MATRIX24_ARB */ - 829, /* GL_MATRIX25_ARB */ - 830, /* GL_MATRIX26_ARB */ - 831, /* GL_MATRIX27_ARB */ - 832, /* GL_MATRIX28_ARB */ - 833, /* GL_MATRIX29_ARB */ - 836, /* GL_MATRIX30_ARB */ - 837, /* GL_MATRIX31_ARB */ - 1549, /* GL_STREAM_DRAW */ - 1551, /* GL_STREAM_READ */ - 1547, /* GL_STREAM_COPY */ - 1503, /* GL_STATIC_DRAW */ - 1505, /* GL_STATIC_READ */ - 1501, /* GL_STATIC_COPY */ + 1767, /* GL_TIME_ELAPSED_EXT */ + 811, /* GL_MATRIX0_ARB */ + 823, /* GL_MATRIX1_ARB */ + 835, /* GL_MATRIX2_ARB */ + 839, /* GL_MATRIX3_ARB */ + 841, /* GL_MATRIX4_ARB */ + 843, /* GL_MATRIX5_ARB */ + 845, /* GL_MATRIX6_ARB */ + 847, /* GL_MATRIX7_ARB */ + 849, /* GL_MATRIX8_ARB */ + 850, /* GL_MATRIX9_ARB */ + 813, /* GL_MATRIX10_ARB */ + 814, /* GL_MATRIX11_ARB */ + 815, /* GL_MATRIX12_ARB */ + 816, /* GL_MATRIX13_ARB */ + 817, /* GL_MATRIX14_ARB */ + 818, /* GL_MATRIX15_ARB */ + 819, /* GL_MATRIX16_ARB */ + 820, /* GL_MATRIX17_ARB */ + 821, /* GL_MATRIX18_ARB */ + 822, /* GL_MATRIX19_ARB */ + 825, /* GL_MATRIX20_ARB */ + 826, /* GL_MATRIX21_ARB */ + 827, /* GL_MATRIX22_ARB */ + 828, /* GL_MATRIX23_ARB */ + 829, /* GL_MATRIX24_ARB */ + 830, /* GL_MATRIX25_ARB */ + 831, /* GL_MATRIX26_ARB */ + 832, /* GL_MATRIX27_ARB */ + 833, /* GL_MATRIX28_ARB */ + 834, /* GL_MATRIX29_ARB */ + 837, /* GL_MATRIX30_ARB */ + 838, /* GL_MATRIX31_ARB */ + 1556, /* GL_STREAM_DRAW */ + 1558, /* GL_STREAM_READ */ + 1554, /* GL_STREAM_COPY */ + 1510, /* GL_STATIC_DRAW */ + 1512, /* GL_STATIC_READ */ + 1508, /* GL_STATIC_COPY */ 455, /* GL_DYNAMIC_DRAW */ 457, /* GL_DYNAMIC_READ */ 453, /* GL_DYNAMIC_COPY */ - 1135, /* GL_PIXEL_PACK_BUFFER */ - 1139, /* GL_PIXEL_UNPACK_BUFFER */ - 1136, /* GL_PIXEL_PACK_BUFFER_BINDING */ - 1140, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ + 1139, /* GL_PIXEL_PACK_BUFFER */ + 1143, /* GL_PIXEL_UNPACK_BUFFER */ + 1140, /* GL_PIXEL_PACK_BUFFER_BINDING */ + 1144, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ 348, /* GL_DEPTH24_STENCIL8 */ - 1750, /* GL_TEXTURE_STENCIL_SIZE */ - 1702, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ - 896, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ - 899, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ - 903, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ - 902, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ - 859, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ - 1540, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ + 1757, /* GL_TEXTURE_STENCIL_SIZE */ + 1709, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ + 897, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ + 900, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ + 904, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ + 903, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ + 860, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */ + 1547, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ 17, /* GL_ACTIVE_STENCIL_FACE_EXT */ - 963, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ - 1406, /* GL_SAMPLES_PASSED */ + 967, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ + 1412, /* GL_SAMPLES_PASSED */ 110, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ 104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ - 1324, /* GL_RELEASED_APPLE */ - 1872, /* GL_VOLATILE_APPLE */ - 1352, /* GL_RETAINED_APPLE */ - 1779, /* GL_UNDEFINED_APPLE */ - 1285, /* GL_PURGEABLE_APPLE */ + 1330, /* GL_RELEASED_APPLE */ + 1887, /* GL_VOLATILE_APPLE */ + 1358, /* GL_RETAINED_APPLE */ + 1794, /* GL_UNDEFINED_APPLE */ + 1290, /* GL_PURGEABLE_APPLE */ 538, /* GL_FRAGMENT_SHADER */ - 1867, /* GL_VERTEX_SHADER */ - 1252, /* GL_PROGRAM_OBJECT_ARB */ - 1438, /* GL_SHADER_OBJECT_ARB */ - 884, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ - 946, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ - 940, /* GL_MAX_VARYING_FLOATS */ - 944, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ - 869, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ - 1055, /* GL_OBJECT_TYPE_ARB */ - 1440, /* GL_SHADER_TYPE */ + 1882, /* GL_VERTEX_SHADER */ + 1257, /* GL_PROGRAM_OBJECT_ARB */ + 1445, /* GL_SHADER_OBJECT_ARB */ + 885, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ + 950, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ + 944, /* GL_MAX_VARYING_FLOATS */ + 948, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ + 870, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ + 1059, /* GL_OBJECT_TYPE_ARB */ + 1447, /* GL_SHADER_TYPE */ 503, /* GL_FLOAT_VEC2 */ 505, /* GL_FLOAT_VEC3 */ 507, /* GL_FLOAT_VEC4 */ - 661, /* GL_INT_VEC2 */ - 663, /* GL_INT_VEC3 */ - 665, /* GL_INT_VEC4 */ + 662, /* GL_INT_VEC2 */ + 664, /* GL_INT_VEC3 */ + 666, /* GL_INT_VEC4 */ 94, /* GL_BOOL */ 96, /* GL_BOOL_VEC2 */ 98, /* GL_BOOL_VEC3 */ @@ -5028,12 +5058,12 @@ static const unsigned reduced_enums[1357] = 491, /* GL_FLOAT_MAT2 */ 495, /* GL_FLOAT_MAT3 */ 499, /* GL_FLOAT_MAT4 */ - 1397, /* GL_SAMPLER_1D */ - 1399, /* GL_SAMPLER_2D */ - 1401, /* GL_SAMPLER_3D */ - 1402, /* GL_SAMPLER_CUBE */ - 1398, /* GL_SAMPLER_1D_SHADOW */ - 1400, /* GL_SAMPLER_2D_SHADOW */ + 1403, /* GL_SAMPLER_1D */ + 1405, /* GL_SAMPLER_2D */ + 1407, /* GL_SAMPLER_3D */ + 1408, /* GL_SAMPLER_CUBE */ + 1404, /* GL_SAMPLER_1D_SHADOW */ + 1406, /* GL_SAMPLER_2D_SHADOW */ 493, /* GL_FLOAT_MAT2x3 */ 494, /* GL_FLOAT_MAT2x4 */ 497, /* GL_FLOAT_MAT3x2 */ @@ -5042,61 +5072,76 @@ static const unsigned reduced_enums[1357] = 502, /* GL_FLOAT_MAT4x3 */ 346, /* GL_DELETE_STATUS */ 247, /* GL_COMPILE_STATUS */ - 717, /* GL_LINK_STATUS */ - 1815, /* GL_VALIDATE_STATUS */ + 718, /* GL_LINK_STATUS */ + 1830, /* GL_VALIDATE_STATUS */ 646, /* GL_INFO_LOG_LENGTH */ 56, /* GL_ATTACHED_SHADERS */ 20, /* GL_ACTIVE_UNIFORMS */ 21, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ - 1439, /* GL_SHADER_SOURCE_LENGTH */ + 1446, /* GL_SHADER_SOURCE_LENGTH */ 15, /* GL_ACTIVE_ATTRIBUTES */ 16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */ 540, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ - 1442, /* GL_SHADING_LANGUAGE_VERSION */ + 1449, /* GL_SHADING_LANGUAGE_VERSION */ 323, /* GL_CURRENT_PROGRAM */ - 1104, /* GL_PALETTE4_RGB8_OES */ - 1106, /* GL_PALETTE4_RGBA8_OES */ - 1102, /* GL_PALETTE4_R5_G6_B5_OES */ - 1105, /* GL_PALETTE4_RGBA4_OES */ - 1103, /* GL_PALETTE4_RGB5_A1_OES */ - 1109, /* GL_PALETTE8_RGB8_OES */ - 1111, /* GL_PALETTE8_RGBA8_OES */ - 1107, /* GL_PALETTE8_R5_G6_B5_OES */ - 1110, /* GL_PALETTE8_RGBA4_OES */ - 1108, /* GL_PALETTE8_RGB5_A1_OES */ + 1108, /* GL_PALETTE4_RGB8_OES */ + 1110, /* GL_PALETTE4_RGBA8_OES */ + 1106, /* GL_PALETTE4_R5_G6_B5_OES */ + 1109, /* GL_PALETTE4_RGBA4_OES */ + 1107, /* GL_PALETTE4_RGB5_A1_OES */ + 1113, /* GL_PALETTE8_RGB8_OES */ + 1115, /* GL_PALETTE8_RGBA8_OES */ + 1111, /* GL_PALETTE8_R5_G6_B5_OES */ + 1114, /* GL_PALETTE8_RGBA4_OES */ + 1112, /* GL_PALETTE8_RGB5_A1_OES */ 628, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ 627, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ - 1800, /* GL_UNSIGNED_NORMALIZED */ - 1637, /* GL_TEXTURE_1D_ARRAY_EXT */ - 1274, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ - 1639, /* GL_TEXTURE_2D_ARRAY_EXT */ - 1277, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ - 1645, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ - 1647, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ - 1495, /* GL_SRGB */ - 1496, /* GL_SRGB8 */ - 1498, /* GL_SRGB_ALPHA */ - 1497, /* GL_SRGB8_ALPHA8 */ - 1455, /* GL_SLUMINANCE_ALPHA */ - 1454, /* GL_SLUMINANCE8_ALPHA8 */ - 1452, /* GL_SLUMINANCE */ - 1453, /* GL_SLUMINANCE8 */ + 1815, /* GL_UNSIGNED_NORMALIZED */ + 1644, /* GL_TEXTURE_1D_ARRAY_EXT */ + 1279, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ + 1646, /* GL_TEXTURE_2D_ARRAY_EXT */ + 1282, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */ + 1652, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */ + 1654, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */ + 1502, /* GL_SRGB */ + 1503, /* GL_SRGB8 */ + 1505, /* GL_SRGB_ALPHA */ + 1504, /* GL_SRGB8_ALPHA8 */ + 1462, /* GL_SLUMINANCE_ALPHA */ + 1461, /* GL_SLUMINANCE8_ALPHA8 */ + 1459, /* GL_SLUMINANCE */ + 1460, /* GL_SLUMINANCE8 */ 268, /* GL_COMPRESSED_SRGB */ 269, /* GL_COMPRESSED_SRGB_ALPHA */ 266, /* GL_COMPRESSED_SLUMINANCE */ 267, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ - 1169, /* GL_POINT_SPRITE_COORD_ORIGIN */ - 725, /* GL_LOWER_LEFT */ - 1812, /* GL_UPPER_LEFT */ - 1518, /* GL_STENCIL_BACK_REF */ - 1519, /* GL_STENCIL_BACK_VALUE_MASK */ - 1520, /* GL_STENCIL_BACK_WRITEMASK */ + 1778, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */ + 1773, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */ + 943, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */ + 1777, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */ + 1775, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */ + 1774, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */ + 1236, /* GL_PRIMITIVES_GENERATED_EXT */ + 1776, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */ + 1310, /* GL_RASTERIZER_DISCARD_EXT */ + 941, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */ + 942, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */ + 658, /* GL_INTERLEAVED_ATTRIBS_EXT */ + 1441, /* GL_SEPARATE_ATTRIBS_EXT */ + 1772, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */ + 1771, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */ + 1173, /* GL_POINT_SPRITE_COORD_ORIGIN */ + 726, /* GL_LOWER_LEFT */ + 1827, /* GL_UPPER_LEFT */ + 1525, /* GL_STENCIL_BACK_REF */ + 1526, /* GL_STENCIL_BACK_VALUE_MASK */ + 1527, /* GL_STENCIL_BACK_WRITEMASK */ 445, /* GL_DRAW_FRAMEBUFFER_BINDING */ - 1328, /* GL_RENDERBUFFER_BINDING */ - 1307, /* GL_READ_FRAMEBUFFER */ + 1334, /* GL_RENDERBUFFER_BINDING */ + 1313, /* GL_READ_FRAMEBUFFER */ 444, /* GL_DRAW_FRAMEBUFFER */ - 1308, /* GL_READ_FRAMEBUFFER_BINDING */ - 1339, /* GL_RENDERBUFFER_SAMPLES */ + 1314, /* GL_READ_FRAMEBUFFER_BINDING */ + 1345, /* GL_RENDERBUFFER_SAMPLES */ 550, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ 548, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ 559, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ @@ -5112,7 +5157,7 @@ static const unsigned reduced_enums[1357] = 578, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ 582, /* GL_FRAMEBUFFER_UNSUPPORTED */ 580, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ - 865, /* GL_MAX_COLOR_ATTACHMENTS */ + 866, /* GL_MAX_COLOR_ATTACHMENTS */ 156, /* GL_COLOR_ATTACHMENT0 */ 158, /* GL_COLOR_ATTACHMENT1 */ 172, /* GL_COLOR_ATTACHMENT2 */ @@ -5130,58 +5175,58 @@ static const unsigned reduced_enums[1357] = 167, /* GL_COLOR_ATTACHMENT14 */ 169, /* GL_COLOR_ATTACHMENT15 */ 350, /* GL_DEPTH_ATTACHMENT */ - 1508, /* GL_STENCIL_ATTACHMENT */ + 1515, /* GL_STENCIL_ATTACHMENT */ 541, /* GL_FRAMEBUFFER */ - 1326, /* GL_RENDERBUFFER */ - 1342, /* GL_RENDERBUFFER_WIDTH */ - 1334, /* GL_RENDERBUFFER_HEIGHT */ - 1336, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ - 1535, /* GL_STENCIL_INDEX_EXT */ - 1527, /* GL_STENCIL_INDEX1 */ - 1531, /* GL_STENCIL_INDEX4 */ - 1533, /* GL_STENCIL_INDEX8 */ - 1528, /* GL_STENCIL_INDEX16 */ - 1338, /* GL_RENDERBUFFER_RED_SIZE */ - 1333, /* GL_RENDERBUFFER_GREEN_SIZE */ - 1330, /* GL_RENDERBUFFER_BLUE_SIZE */ - 1327, /* GL_RENDERBUFFER_ALPHA_SIZE */ - 1331, /* GL_RENDERBUFFER_DEPTH_SIZE */ - 1341, /* GL_RENDERBUFFER_STENCIL_SIZE */ + 1332, /* GL_RENDERBUFFER */ + 1348, /* GL_RENDERBUFFER_WIDTH */ + 1340, /* GL_RENDERBUFFER_HEIGHT */ + 1342, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ + 1542, /* GL_STENCIL_INDEX_EXT */ + 1534, /* GL_STENCIL_INDEX1 */ + 1538, /* GL_STENCIL_INDEX4 */ + 1540, /* GL_STENCIL_INDEX8 */ + 1535, /* GL_STENCIL_INDEX16 */ + 1344, /* GL_RENDERBUFFER_RED_SIZE */ + 1339, /* GL_RENDERBUFFER_GREEN_SIZE */ + 1336, /* GL_RENDERBUFFER_BLUE_SIZE */ + 1333, /* GL_RENDERBUFFER_ALPHA_SIZE */ + 1337, /* GL_RENDERBUFFER_DEPTH_SIZE */ + 1347, /* GL_RENDERBUFFER_STENCIL_SIZE */ 576, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ - 923, /* GL_MAX_SAMPLES */ - 1302, /* GL_QUERY_WAIT_NV */ - 1297, /* GL_QUERY_NO_WAIT_NV */ - 1294, /* GL_QUERY_BY_REGION_WAIT_NV */ - 1293, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ - 1289, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ + 924, /* GL_MAX_SAMPLES */ + 1307, /* GL_QUERY_WAIT_NV */ + 1302, /* GL_QUERY_NO_WAIT_NV */ + 1299, /* GL_QUERY_BY_REGION_WAIT_NV */ + 1298, /* GL_QUERY_BY_REGION_NO_WAIT_NV */ + 1294, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ 487, /* GL_FIRST_VERTEX_CONVENTION */ - 676, /* GL_LAST_VERTEX_CONVENTION */ - 1266, /* GL_PROVOKING_VERTEX */ + 677, /* GL_LAST_VERTEX_CONVENTION */ + 1271, /* GL_PROVOKING_VERTEX */ 303, /* GL_COPY_READ_BUFFER */ 304, /* GL_COPY_WRITE_BUFFER */ - 1390, /* GL_RGBA_SNORM */ - 1386, /* GL_RGBA8_SNORM */ - 1448, /* GL_SIGNED_NORMALIZED */ - 925, /* GL_MAX_SERVER_WAIT_TIMEOUT */ - 1054, /* GL_OBJECT_TYPE */ - 1556, /* GL_SYNC_CONDITION */ - 1561, /* GL_SYNC_STATUS */ - 1558, /* GL_SYNC_FLAGS */ - 1557, /* GL_SYNC_FENCE */ - 1560, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - 1788, /* GL_UNSIGNALED */ - 1447, /* GL_SIGNALED */ + 1396, /* GL_RGBA_SNORM */ + 1392, /* GL_RGBA8_SNORM */ + 1455, /* GL_SIGNED_NORMALIZED */ + 926, /* GL_MAX_SERVER_WAIT_TIMEOUT */ + 1058, /* GL_OBJECT_TYPE */ + 1563, /* GL_SYNC_CONDITION */ + 1568, /* GL_SYNC_STATUS */ + 1565, /* GL_SYNC_FLAGS */ + 1564, /* GL_SYNC_FENCE */ + 1567, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ + 1803, /* GL_UNSIGNALED */ + 1454, /* GL_SIGNALED */ 46, /* GL_ALREADY_SIGNALED */ - 1759, /* GL_TIMEOUT_EXPIRED */ + 1766, /* GL_TIMEOUT_EXPIRED */ 271, /* GL_CONDITION_SATISFIED */ - 1873, /* GL_WAIT_FAILED */ + 1888, /* GL_WAIT_FAILED */ 472, /* GL_EVAL_BIT */ - 1305, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ - 719, /* GL_LIST_BIT */ - 1653, /* GL_TEXTURE_BIT */ - 1421, /* GL_SCISSOR_BIT */ + 1311, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ + 720, /* GL_LIST_BIT */ + 1660, /* GL_TEXTURE_BIT */ + 1427, /* GL_SCISSOR_BIT */ 29, /* GL_ALL_ATTRIB_BITS */ - 1010, /* GL_MULTISAMPLE_BIT */ + 1014, /* GL_MULTISAMPLE_BIT */ 30, /* GL_ALL_CLIENT_ATTRIB_BITS */ }; diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h index ee898efa5f..c13341be98 100644 --- a/src/mesa/main/remap_helper.h +++ b/src/mesa/main/remap_helper.h @@ -1242,3137 +1242,3171 @@ static const char _mesa_function_pool[] = "iip\0" "glGetTexGendv\0" "\0" - /* _mesa_function_pool[8307]: ColorMaskIndexedEXT (will be remapped) */ - "iiiii\0" - "glColorMaskIndexedEXT\0" + /* _mesa_function_pool[8307]: GetVertexAttribfvNV (will be remapped) */ + "iip\0" + "glGetVertexAttribfvNV\0" "\0" - /* _mesa_function_pool[8336]: LoadProgramNV (will be remapped) */ + /* _mesa_function_pool[8334]: BeginTransformFeedbackEXT (will be remapped) */ + "i\0" + "glBeginTransformFeedbackEXT\0" + "glBeginTransformFeedback\0" + "\0" + /* _mesa_function_pool[8390]: LoadProgramNV (will be remapped) */ "iiip\0" "glLoadProgramNV\0" "\0" - /* _mesa_function_pool[8358]: WaitSync (will be remapped) */ + /* _mesa_function_pool[8412]: WaitSync (will be remapped) */ "iii\0" "glWaitSync\0" "\0" - /* _mesa_function_pool[8374]: EndList (offset 1) */ + /* _mesa_function_pool[8428]: EndList (offset 1) */ "\0" "glEndList\0" "\0" - /* _mesa_function_pool[8386]: VertexAttrib4fvNV (will be remapped) */ + /* _mesa_function_pool[8440]: VertexAttrib4fvNV (will be remapped) */ "ip\0" "glVertexAttrib4fvNV\0" "\0" - /* _mesa_function_pool[8410]: GetAttachedObjectsARB (will be remapped) */ + /* _mesa_function_pool[8464]: GetAttachedObjectsARB (will be remapped) */ "iipp\0" "glGetAttachedObjectsARB\0" "\0" - /* _mesa_function_pool[8440]: Uniform3fvARB (will be remapped) */ + /* _mesa_function_pool[8494]: Uniform3fvARB (will be remapped) */ "iip\0" "glUniform3fv\0" "glUniform3fvARB\0" "\0" - /* _mesa_function_pool[8474]: EvalCoord1fv (offset 231) */ + /* _mesa_function_pool[8528]: EvalCoord1fv (offset 231) */ "p\0" "glEvalCoord1fv\0" "\0" - /* _mesa_function_pool[8492]: DrawRangeElements (offset 338) */ + /* _mesa_function_pool[8546]: DrawRangeElements (offset 338) */ "iiiiip\0" "glDrawRangeElements\0" "glDrawRangeElementsEXT\0" "\0" - /* _mesa_function_pool[8543]: EvalMesh2 (offset 238) */ + /* _mesa_function_pool[8597]: EvalMesh2 (offset 238) */ "iiiii\0" "glEvalMesh2\0" "\0" - /* _mesa_function_pool[8562]: Vertex4fv (offset 145) */ + /* _mesa_function_pool[8616]: Vertex4fv (offset 145) */ "p\0" "glVertex4fv\0" "\0" - /* _mesa_function_pool[8577]: SpriteParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[8631]: SpriteParameterfvSGIX (dynamic) */ "ip\0" "glSpriteParameterfvSGIX\0" "\0" - /* _mesa_function_pool[8605]: CheckFramebufferStatusEXT (will be remapped) */ + /* _mesa_function_pool[8659]: CheckFramebufferStatusEXT (will be remapped) */ "i\0" "glCheckFramebufferStatus\0" "glCheckFramebufferStatusEXT\0" "\0" - /* _mesa_function_pool[8661]: GlobalAlphaFactoruiSUN (dynamic) */ + /* _mesa_function_pool[8715]: GlobalAlphaFactoruiSUN (dynamic) */ "i\0" "glGlobalAlphaFactoruiSUN\0" "\0" - /* _mesa_function_pool[8689]: GetHandleARB (will be remapped) */ + /* _mesa_function_pool[8743]: GetHandleARB (will be remapped) */ "i\0" "glGetHandleARB\0" "\0" - /* _mesa_function_pool[8707]: GetVertexAttribivARB (will be remapped) */ + /* _mesa_function_pool[8761]: GetVertexAttribivARB (will be remapped) */ "iip\0" "glGetVertexAttribiv\0" "glGetVertexAttribivARB\0" "\0" - /* _mesa_function_pool[8755]: GetCombinerInputParameterfvNV (will be remapped) */ + /* _mesa_function_pool[8809]: GetCombinerInputParameterfvNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterfvNV\0" "\0" - /* _mesa_function_pool[8794]: CreateProgram (will be remapped) */ + /* _mesa_function_pool[8848]: CreateProgram (will be remapped) */ "\0" "glCreateProgram\0" "\0" - /* _mesa_function_pool[8812]: LoadTransposeMatrixdARB (will be remapped) */ + /* _mesa_function_pool[8866]: LoadTransposeMatrixdARB (will be remapped) */ "p\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixdARB\0" "\0" - /* _mesa_function_pool[8864]: GetMinmax (offset 364) */ + /* _mesa_function_pool[8918]: GetMinmax (offset 364) */ "iiiip\0" "glGetMinmax\0" "glGetMinmaxEXT\0" "\0" - /* _mesa_function_pool[8898]: StencilFuncSeparate (will be remapped) */ + /* _mesa_function_pool[8952]: StencilFuncSeparate (will be remapped) */ "iiii\0" "glStencilFuncSeparate\0" "\0" - /* _mesa_function_pool[8926]: SecondaryColor3sEXT (will be remapped) */ + /* _mesa_function_pool[8980]: SecondaryColor3sEXT (will be remapped) */ "iii\0" "glSecondaryColor3s\0" "glSecondaryColor3sEXT\0" "\0" - /* _mesa_function_pool[8972]: Color3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[9026]: Color3fVertex3fvSUN (dynamic) */ "pp\0" "glColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[8998]: Normal3fv (offset 57) */ + /* _mesa_function_pool[9052]: Normal3fv (offset 57) */ "p\0" "glNormal3fv\0" "\0" - /* _mesa_function_pool[9013]: GlobalAlphaFactorbSUN (dynamic) */ + /* _mesa_function_pool[9067]: GlobalAlphaFactorbSUN (dynamic) */ "i\0" "glGlobalAlphaFactorbSUN\0" "\0" - /* _mesa_function_pool[9040]: Color3us (offset 23) */ + /* _mesa_function_pool[9094]: Color3us (offset 23) */ "iii\0" "glColor3us\0" "\0" - /* _mesa_function_pool[9056]: ImageTransformParameterfvHP (dynamic) */ + /* _mesa_function_pool[9110]: ImageTransformParameterfvHP (dynamic) */ "iip\0" "glImageTransformParameterfvHP\0" "\0" - /* _mesa_function_pool[9091]: VertexAttrib4ivARB (will be remapped) */ + /* _mesa_function_pool[9145]: VertexAttrib4ivARB (will be remapped) */ "ip\0" "glVertexAttrib4iv\0" "glVertexAttrib4ivARB\0" "\0" - /* _mesa_function_pool[9134]: End (offset 43) */ + /* _mesa_function_pool[9188]: End (offset 43) */ "\0" "glEnd\0" "\0" - /* _mesa_function_pool[9142]: VertexAttrib3fNV (will be remapped) */ + /* _mesa_function_pool[9196]: VertexAttrib3fNV (will be remapped) */ "ifff\0" "glVertexAttrib3fNV\0" "\0" - /* _mesa_function_pool[9167]: VertexAttribs2dvNV (will be remapped) */ + /* _mesa_function_pool[9221]: VertexAttribs2dvNV (will be remapped) */ "iip\0" "glVertexAttribs2dvNV\0" "\0" - /* _mesa_function_pool[9193]: GetQueryObjectui64vEXT (will be remapped) */ + /* _mesa_function_pool[9247]: GetQueryObjectui64vEXT (will be remapped) */ "iip\0" "glGetQueryObjectui64vEXT\0" "\0" - /* _mesa_function_pool[9223]: MultiTexCoord3fvARB (offset 395) */ + /* _mesa_function_pool[9277]: MultiTexCoord3fvARB (offset 395) */ "ip\0" "glMultiTexCoord3fv\0" "glMultiTexCoord3fvARB\0" "\0" - /* _mesa_function_pool[9268]: SecondaryColor3dEXT (will be remapped) */ + /* _mesa_function_pool[9322]: SecondaryColor3dEXT (will be remapped) */ "ddd\0" "glSecondaryColor3d\0" "glSecondaryColor3dEXT\0" "\0" - /* _mesa_function_pool[9314]: Color3ub (offset 19) */ + /* _mesa_function_pool[9368]: Color3ub (offset 19) */ "iii\0" "glColor3ub\0" "\0" - /* _mesa_function_pool[9330]: GetProgramParameterfvNV (will be remapped) */ + /* _mesa_function_pool[9384]: GetProgramParameterfvNV (will be remapped) */ "iiip\0" "glGetProgramParameterfvNV\0" "\0" - /* _mesa_function_pool[9362]: TangentPointerEXT (dynamic) */ + /* _mesa_function_pool[9416]: TangentPointerEXT (dynamic) */ "iip\0" "glTangentPointerEXT\0" "\0" - /* _mesa_function_pool[9387]: Color4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[9441]: Color4fNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[9422]: GetInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[9476]: GetInstrumentsSGIX (dynamic) */ "\0" "glGetInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[9445]: Color3ui (offset 21) */ + /* _mesa_function_pool[9499]: Color3ui (offset 21) */ "iii\0" "glColor3ui\0" "\0" - /* _mesa_function_pool[9461]: EvalMapsNV (dynamic) */ + /* _mesa_function_pool[9515]: EvalMapsNV (dynamic) */ "ii\0" "glEvalMapsNV\0" "\0" - /* _mesa_function_pool[9478]: TexSubImage2D (offset 333) */ + /* _mesa_function_pool[9532]: TexSubImage2D (offset 333) */ "iiiiiiiip\0" "glTexSubImage2D\0" "glTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[9524]: FragmentLightivSGIX (dynamic) */ + /* _mesa_function_pool[9578]: FragmentLightivSGIX (dynamic) */ "iip\0" "glFragmentLightivSGIX\0" "\0" - /* _mesa_function_pool[9551]: GetTexParameterPointervAPPLE (will be remapped) */ + /* _mesa_function_pool[9605]: GetTexParameterPointervAPPLE (will be remapped) */ "iip\0" "glGetTexParameterPointervAPPLE\0" "\0" - /* _mesa_function_pool[9587]: TexGenfv (offset 191) */ + /* _mesa_function_pool[9641]: TexGenfv (offset 191) */ "iip\0" "glTexGenfv\0" "\0" - /* _mesa_function_pool[9603]: PixelTransformParameterfvEXT (dynamic) */ - "iip\0" - "glPixelTransformParameterfvEXT\0" + /* _mesa_function_pool[9657]: GetTransformFeedbackVaryingEXT (will be remapped) */ + "iiipppp\0" + "glGetTransformFeedbackVaryingEXT\0" + "glGetTransformFeedbackVarying\0" "\0" - /* _mesa_function_pool[9639]: VertexAttrib4bvARB (will be remapped) */ + /* _mesa_function_pool[9729]: VertexAttrib4bvARB (will be remapped) */ "ip\0" "glVertexAttrib4bv\0" "glVertexAttrib4bvARB\0" "\0" - /* _mesa_function_pool[9682]: AlphaFragmentOp2ATI (will be remapped) */ + /* _mesa_function_pool[9772]: AlphaFragmentOp2ATI (will be remapped) */ "iiiiiiiii\0" "glAlphaFragmentOp2ATI\0" "\0" - /* _mesa_function_pool[9715]: GetIntegerIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[9805]: GetIntegerIndexedvEXT (will be remapped) */ "iip\0" "glGetIntegerIndexedvEXT\0" "\0" - /* _mesa_function_pool[9744]: MultiTexCoord4sARB (offset 406) */ + /* _mesa_function_pool[9834]: MultiTexCoord4sARB (offset 406) */ "iiiii\0" "glMultiTexCoord4s\0" "glMultiTexCoord4sARB\0" "\0" - /* _mesa_function_pool[9790]: GetFragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[9880]: GetFragmentMaterialivSGIX (dynamic) */ "iip\0" "glGetFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[9823]: WindowPos4dMESA (will be remapped) */ + /* _mesa_function_pool[9913]: WindowPos4dMESA (will be remapped) */ "dddd\0" "glWindowPos4dMESA\0" "\0" - /* _mesa_function_pool[9847]: WeightPointerARB (dynamic) */ + /* _mesa_function_pool[9937]: WeightPointerARB (dynamic) */ "iiip\0" "glWeightPointerARB\0" "\0" - /* _mesa_function_pool[9872]: WindowPos2dMESA (will be remapped) */ + /* _mesa_function_pool[9962]: WindowPos2dMESA (will be remapped) */ "dd\0" "glWindowPos2d\0" "glWindowPos2dARB\0" "glWindowPos2dMESA\0" "\0" - /* _mesa_function_pool[9925]: FramebufferTexture3DEXT (will be remapped) */ + /* _mesa_function_pool[10015]: FramebufferTexture3DEXT (will be remapped) */ "iiiiii\0" "glFramebufferTexture3D\0" "glFramebufferTexture3DEXT\0" "\0" - /* _mesa_function_pool[9982]: BlendEquation (offset 337) */ + /* _mesa_function_pool[10072]: BlendEquation (offset 337) */ "i\0" "glBlendEquation\0" "glBlendEquationEXT\0" "\0" - /* _mesa_function_pool[10020]: VertexAttrib3dNV (will be remapped) */ + /* _mesa_function_pool[10110]: VertexAttrib3dNV (will be remapped) */ "iddd\0" "glVertexAttrib3dNV\0" "\0" - /* _mesa_function_pool[10045]: VertexAttrib3dARB (will be remapped) */ + /* _mesa_function_pool[10135]: VertexAttrib3dARB (will be remapped) */ "iddd\0" "glVertexAttrib3d\0" "glVertexAttrib3dARB\0" "\0" - /* _mesa_function_pool[10088]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[10178]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "ppppp\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[10152]: VertexAttrib4fARB (will be remapped) */ + /* _mesa_function_pool[10242]: VertexAttrib4fARB (will be remapped) */ "iffff\0" "glVertexAttrib4f\0" "glVertexAttrib4fARB\0" "\0" - /* _mesa_function_pool[10196]: GetError (offset 261) */ + /* _mesa_function_pool[10286]: GetError (offset 261) */ "\0" "glGetError\0" "\0" - /* _mesa_function_pool[10209]: IndexFuncEXT (dynamic) */ + /* _mesa_function_pool[10299]: IndexFuncEXT (dynamic) */ "if\0" "glIndexFuncEXT\0" "\0" - /* _mesa_function_pool[10228]: TexCoord3dv (offset 111) */ + /* _mesa_function_pool[10318]: TexCoord3dv (offset 111) */ "p\0" "glTexCoord3dv\0" "\0" - /* _mesa_function_pool[10245]: Indexdv (offset 45) */ + /* _mesa_function_pool[10335]: Indexdv (offset 45) */ "p\0" "glIndexdv\0" "\0" - /* _mesa_function_pool[10258]: FramebufferTexture2DEXT (will be remapped) */ + /* _mesa_function_pool[10348]: FramebufferTexture2DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture2D\0" "glFramebufferTexture2DEXT\0" "\0" - /* _mesa_function_pool[10314]: Normal3s (offset 60) */ + /* _mesa_function_pool[10404]: Normal3s (offset 60) */ "iii\0" "glNormal3s\0" "\0" - /* _mesa_function_pool[10330]: GetObjectParameterivAPPLE (will be remapped) */ + /* _mesa_function_pool[10420]: GetObjectParameterivAPPLE (will be remapped) */ "iiip\0" "glGetObjectParameterivAPPLE\0" "\0" - /* _mesa_function_pool[10364]: PushName (offset 201) */ + /* _mesa_function_pool[10454]: PushName (offset 201) */ "i\0" "glPushName\0" "\0" - /* _mesa_function_pool[10378]: MultiTexCoord2dvARB (offset 385) */ + /* _mesa_function_pool[10468]: MultiTexCoord2dvARB (offset 385) */ "ip\0" "glMultiTexCoord2dv\0" "glMultiTexCoord2dvARB\0" "\0" - /* _mesa_function_pool[10423]: CullParameterfvEXT (will be remapped) */ + /* _mesa_function_pool[10513]: CullParameterfvEXT (will be remapped) */ "ip\0" "glCullParameterfvEXT\0" "\0" - /* _mesa_function_pool[10448]: Normal3i (offset 58) */ + /* _mesa_function_pool[10538]: Normal3i (offset 58) */ "iii\0" "glNormal3i\0" "\0" - /* _mesa_function_pool[10464]: ProgramNamedParameter4fvNV (will be remapped) */ + /* _mesa_function_pool[10554]: ProgramNamedParameter4fvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4fvNV\0" "\0" - /* _mesa_function_pool[10499]: SecondaryColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[10589]: SecondaryColorPointerEXT (will be remapped) */ "iiip\0" "glSecondaryColorPointer\0" "glSecondaryColorPointerEXT\0" "\0" - /* _mesa_function_pool[10556]: VertexAttrib4fvARB (will be remapped) */ + /* _mesa_function_pool[10646]: VertexAttrib4fvARB (will be remapped) */ "ip\0" "glVertexAttrib4fv\0" "glVertexAttrib4fvARB\0" "\0" - /* _mesa_function_pool[10599]: ColorPointerListIBM (dynamic) */ + /* _mesa_function_pool[10689]: ColorPointerListIBM (dynamic) */ "iiipi\0" "glColorPointerListIBM\0" "\0" - /* _mesa_function_pool[10628]: GetActiveUniformARB (will be remapped) */ + /* _mesa_function_pool[10718]: GetActiveUniformARB (will be remapped) */ "iiipppp\0" "glGetActiveUniform\0" "glGetActiveUniformARB\0" "\0" - /* _mesa_function_pool[10678]: ImageTransformParameteriHP (dynamic) */ + /* _mesa_function_pool[10768]: ImageTransformParameteriHP (dynamic) */ "iii\0" "glImageTransformParameteriHP\0" "\0" - /* _mesa_function_pool[10712]: Normal3b (offset 52) */ + /* _mesa_function_pool[10802]: Normal3b (offset 52) */ "iii\0" "glNormal3b\0" "\0" - /* _mesa_function_pool[10728]: Normal3d (offset 54) */ + /* _mesa_function_pool[10818]: Normal3d (offset 54) */ "ddd\0" "glNormal3d\0" "\0" - /* _mesa_function_pool[10744]: Normal3f (offset 56) */ + /* _mesa_function_pool[10834]: Normal3f (offset 56) */ "fff\0" "glNormal3f\0" "\0" - /* _mesa_function_pool[10760]: MultiTexCoord1svARB (offset 383) */ + /* _mesa_function_pool[10850]: MultiTexCoord1svARB (offset 383) */ "ip\0" "glMultiTexCoord1sv\0" "glMultiTexCoord1svARB\0" "\0" - /* _mesa_function_pool[10805]: Indexi (offset 48) */ + /* _mesa_function_pool[10895]: Indexi (offset 48) */ "i\0" "glIndexi\0" "\0" - /* _mesa_function_pool[10817]: EGLImageTargetTexture2DOES (will be remapped) */ + /* _mesa_function_pool[10907]: EGLImageTargetTexture2DOES (will be remapped) */ "ip\0" "glEGLImageTargetTexture2DOES\0" "\0" - /* _mesa_function_pool[10850]: EndQueryARB (will be remapped) */ + /* _mesa_function_pool[10940]: EndQueryARB (will be remapped) */ "i\0" "glEndQuery\0" "glEndQueryARB\0" "\0" - /* _mesa_function_pool[10878]: DeleteFencesNV (will be remapped) */ + /* _mesa_function_pool[10968]: DeleteFencesNV (will be remapped) */ "ip\0" "glDeleteFencesNV\0" "\0" - /* _mesa_function_pool[10899]: DepthMask (offset 211) */ + /* _mesa_function_pool[10989]: DeformationMap3dSGIX (dynamic) */ + "iddiiddiiddiip\0" + "glDeformationMap3dSGIX\0" + "\0" + /* _mesa_function_pool[11028]: BindBufferRangeEXT (will be remapped) */ + "iiiii\0" + "glBindBufferRangeEXT\0" + "glBindBufferRange\0" + "\0" + /* _mesa_function_pool[11074]: DepthMask (offset 211) */ "i\0" "glDepthMask\0" "\0" - /* _mesa_function_pool[10914]: IsShader (will be remapped) */ + /* _mesa_function_pool[11089]: IsShader (will be remapped) */ "i\0" "glIsShader\0" "\0" - /* _mesa_function_pool[10928]: Indexf (offset 46) */ + /* _mesa_function_pool[11103]: Indexf (offset 46) */ "f\0" "glIndexf\0" "\0" - /* _mesa_function_pool[10940]: GetImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[11115]: GetImageTransformParameterivHP (dynamic) */ "iip\0" "glGetImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[10978]: Indexd (offset 44) */ + /* _mesa_function_pool[11153]: Indexd (offset 44) */ "d\0" "glIndexd\0" "\0" - /* _mesa_function_pool[10990]: GetMaterialiv (offset 270) */ + /* _mesa_function_pool[11165]: GetMaterialiv (offset 270) */ "iip\0" "glGetMaterialiv\0" "\0" - /* _mesa_function_pool[11011]: StencilOp (offset 244) */ + /* _mesa_function_pool[11186]: StencilOp (offset 244) */ "iii\0" "glStencilOp\0" "\0" - /* _mesa_function_pool[11028]: WindowPos4ivMESA (will be remapped) */ + /* _mesa_function_pool[11203]: WindowPos4ivMESA (will be remapped) */ "p\0" "glWindowPos4ivMESA\0" "\0" - /* _mesa_function_pool[11050]: MultiTexCoord3svARB (offset 399) */ + /* _mesa_function_pool[11225]: MultiTexCoord3svARB (offset 399) */ "ip\0" "glMultiTexCoord3sv\0" "glMultiTexCoord3svARB\0" "\0" - /* _mesa_function_pool[11095]: TexEnvfv (offset 185) */ + /* _mesa_function_pool[11270]: TexEnvfv (offset 185) */ "iip\0" "glTexEnvfv\0" "\0" - /* _mesa_function_pool[11111]: MultiTexCoord4iARB (offset 404) */ + /* _mesa_function_pool[11286]: MultiTexCoord4iARB (offset 404) */ "iiiii\0" "glMultiTexCoord4i\0" "glMultiTexCoord4iARB\0" "\0" - /* _mesa_function_pool[11157]: Indexs (offset 50) */ + /* _mesa_function_pool[11332]: Indexs (offset 50) */ "i\0" "glIndexs\0" "\0" - /* _mesa_function_pool[11169]: Binormal3ivEXT (dynamic) */ + /* _mesa_function_pool[11344]: Binormal3ivEXT (dynamic) */ "p\0" "glBinormal3ivEXT\0" "\0" - /* _mesa_function_pool[11189]: ResizeBuffersMESA (will be remapped) */ + /* _mesa_function_pool[11364]: ResizeBuffersMESA (will be remapped) */ "\0" "glResizeBuffersMESA\0" "\0" - /* _mesa_function_pool[11211]: GetUniformivARB (will be remapped) */ + /* _mesa_function_pool[11386]: GetUniformivARB (will be remapped) */ "iip\0" "glGetUniformiv\0" "glGetUniformivARB\0" "\0" - /* _mesa_function_pool[11249]: PixelTexGenParameteriSGIS (will be remapped) */ + /* _mesa_function_pool[11424]: PixelTexGenParameteriSGIS (will be remapped) */ "ii\0" "glPixelTexGenParameteriSGIS\0" "\0" - /* _mesa_function_pool[11281]: VertexPointervINTEL (dynamic) */ + /* _mesa_function_pool[11456]: VertexPointervINTEL (dynamic) */ "iip\0" "glVertexPointervINTEL\0" "\0" - /* _mesa_function_pool[11308]: Vertex2i (offset 130) */ + /* _mesa_function_pool[11483]: Vertex2i (offset 130) */ "ii\0" "glVertex2i\0" "\0" - /* _mesa_function_pool[11323]: LoadMatrixf (offset 291) */ + /* _mesa_function_pool[11498]: LoadMatrixf (offset 291) */ "p\0" "glLoadMatrixf\0" "\0" - /* _mesa_function_pool[11340]: Vertex2f (offset 128) */ + /* _mesa_function_pool[11515]: Vertex2f (offset 128) */ "ff\0" "glVertex2f\0" "\0" - /* _mesa_function_pool[11355]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[11530]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[11408]: Color4bv (offset 26) */ + /* _mesa_function_pool[11583]: Color4bv (offset 26) */ "p\0" "glColor4bv\0" "\0" - /* _mesa_function_pool[11422]: VertexPointer (offset 321) */ + /* _mesa_function_pool[11597]: VertexPointer (offset 321) */ "iiip\0" "glVertexPointer\0" "\0" - /* _mesa_function_pool[11444]: SecondaryColor3uiEXT (will be remapped) */ + /* _mesa_function_pool[11619]: SecondaryColor3uiEXT (will be remapped) */ "iii\0" "glSecondaryColor3ui\0" "glSecondaryColor3uiEXT\0" "\0" - /* _mesa_function_pool[11492]: StartInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[11667]: StartInstrumentsSGIX (dynamic) */ "\0" "glStartInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[11517]: SecondaryColor3usvEXT (will be remapped) */ + /* _mesa_function_pool[11692]: SecondaryColor3usvEXT (will be remapped) */ "p\0" "glSecondaryColor3usv\0" "glSecondaryColor3usvEXT\0" "\0" - /* _mesa_function_pool[11565]: VertexAttrib2fvNV (will be remapped) */ + /* _mesa_function_pool[11740]: VertexAttrib2fvNV (will be remapped) */ "ip\0" "glVertexAttrib2fvNV\0" "\0" - /* _mesa_function_pool[11589]: ProgramLocalParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[11764]: ProgramLocalParameter4dvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4dvARB\0" "\0" - /* _mesa_function_pool[11624]: DeleteLists (offset 4) */ + /* _mesa_function_pool[11799]: DeleteLists (offset 4) */ "ii\0" "glDeleteLists\0" "\0" - /* _mesa_function_pool[11642]: LogicOp (offset 242) */ + /* _mesa_function_pool[11817]: LogicOp (offset 242) */ "i\0" "glLogicOp\0" "\0" - /* _mesa_function_pool[11655]: MatrixIndexuivARB (dynamic) */ + /* _mesa_function_pool[11830]: MatrixIndexuivARB (dynamic) */ "ip\0" "glMatrixIndexuivARB\0" "\0" - /* _mesa_function_pool[11679]: Vertex2s (offset 132) */ + /* _mesa_function_pool[11854]: Vertex2s (offset 132) */ "ii\0" "glVertex2s\0" "\0" - /* _mesa_function_pool[11694]: RenderbufferStorageMultisample (will be remapped) */ + /* _mesa_function_pool[11869]: RenderbufferStorageMultisample (will be remapped) */ "iiiii\0" "glRenderbufferStorageMultisample\0" "glRenderbufferStorageMultisampleEXT\0" "\0" - /* _mesa_function_pool[11770]: TexCoord4fv (offset 121) */ + /* _mesa_function_pool[11945]: TexCoord4fv (offset 121) */ "p\0" "glTexCoord4fv\0" "\0" - /* _mesa_function_pool[11787]: Tangent3sEXT (dynamic) */ + /* _mesa_function_pool[11962]: Tangent3sEXT (dynamic) */ "iii\0" "glTangent3sEXT\0" "\0" - /* _mesa_function_pool[11807]: GlobalAlphaFactorfSUN (dynamic) */ + /* _mesa_function_pool[11982]: GlobalAlphaFactorfSUN (dynamic) */ "f\0" "glGlobalAlphaFactorfSUN\0" "\0" - /* _mesa_function_pool[11834]: MultiTexCoord3iARB (offset 396) */ + /* _mesa_function_pool[12009]: MultiTexCoord3iARB (offset 396) */ "iiii\0" "glMultiTexCoord3i\0" "glMultiTexCoord3iARB\0" "\0" - /* _mesa_function_pool[11879]: IsProgram (will be remapped) */ + /* _mesa_function_pool[12054]: IsProgram (will be remapped) */ "i\0" "glIsProgram\0" "\0" - /* _mesa_function_pool[11894]: TexCoordPointerListIBM (dynamic) */ + /* _mesa_function_pool[12069]: TexCoordPointerListIBM (dynamic) */ "iiipi\0" "glTexCoordPointerListIBM\0" "\0" - /* _mesa_function_pool[11926]: GlobalAlphaFactorusSUN (dynamic) */ + /* _mesa_function_pool[12101]: GlobalAlphaFactorusSUN (dynamic) */ "i\0" "glGlobalAlphaFactorusSUN\0" "\0" - /* _mesa_function_pool[11954]: VertexAttrib2dvNV (will be remapped) */ + /* _mesa_function_pool[12129]: VertexAttrib2dvNV (will be remapped) */ "ip\0" "glVertexAttrib2dvNV\0" "\0" - /* _mesa_function_pool[11978]: FramebufferRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[12153]: FramebufferRenderbufferEXT (will be remapped) */ "iiii\0" "glFramebufferRenderbuffer\0" "glFramebufferRenderbufferEXT\0" "\0" - /* _mesa_function_pool[12039]: VertexAttrib1dvNV (will be remapped) */ + /* _mesa_function_pool[12214]: VertexAttrib1dvNV (will be remapped) */ "ip\0" "glVertexAttrib1dvNV\0" "\0" - /* _mesa_function_pool[12063]: GenTextures (offset 328) */ + /* _mesa_function_pool[12238]: GenTextures (offset 328) */ "ip\0" "glGenTextures\0" "glGenTexturesEXT\0" "\0" - /* _mesa_function_pool[12098]: SetFenceNV (will be remapped) */ + /* _mesa_function_pool[12273]: SetFenceNV (will be remapped) */ "ii\0" "glSetFenceNV\0" "\0" - /* _mesa_function_pool[12115]: FramebufferTexture1DEXT (will be remapped) */ + /* _mesa_function_pool[12290]: FramebufferTexture1DEXT (will be remapped) */ "iiiii\0" "glFramebufferTexture1D\0" "glFramebufferTexture1DEXT\0" "\0" - /* _mesa_function_pool[12171]: GetCombinerOutputParameterivNV (will be remapped) */ + /* _mesa_function_pool[12346]: GetCombinerOutputParameterivNV (will be remapped) */ "iiip\0" "glGetCombinerOutputParameterivNV\0" "\0" - /* _mesa_function_pool[12210]: MultiModeDrawArraysIBM (will be remapped) */ - "pppii\0" - "glMultiModeDrawArraysIBM\0" - "\0" - /* _mesa_function_pool[12242]: PixelTexGenParameterivSGIS (will be remapped) */ + /* _mesa_function_pool[12385]: PixelTexGenParameterivSGIS (will be remapped) */ "ip\0" "glPixelTexGenParameterivSGIS\0" "\0" - /* _mesa_function_pool[12275]: TextureNormalEXT (dynamic) */ + /* _mesa_function_pool[12418]: TextureNormalEXT (dynamic) */ "i\0" "glTextureNormalEXT\0" "\0" - /* _mesa_function_pool[12297]: IndexPointerListIBM (dynamic) */ + /* _mesa_function_pool[12440]: IndexPointerListIBM (dynamic) */ "iipi\0" "glIndexPointerListIBM\0" "\0" - /* _mesa_function_pool[12325]: WeightfvARB (dynamic) */ + /* _mesa_function_pool[12468]: WeightfvARB (dynamic) */ "ip\0" "glWeightfvARB\0" "\0" - /* _mesa_function_pool[12343]: RasterPos2sv (offset 69) */ + /* _mesa_function_pool[12486]: RasterPos2sv (offset 69) */ "p\0" "glRasterPos2sv\0" "\0" - /* _mesa_function_pool[12361]: Color4ubv (offset 36) */ + /* _mesa_function_pool[12504]: Color4ubv (offset 36) */ "p\0" "glColor4ubv\0" "\0" - /* _mesa_function_pool[12376]: DrawBuffer (offset 202) */ + /* _mesa_function_pool[12519]: DrawBuffer (offset 202) */ "i\0" "glDrawBuffer\0" "\0" - /* _mesa_function_pool[12392]: TexCoord2fv (offset 105) */ + /* _mesa_function_pool[12535]: TexCoord2fv (offset 105) */ "p\0" "glTexCoord2fv\0" "\0" - /* _mesa_function_pool[12409]: WindowPos4fMESA (will be remapped) */ + /* _mesa_function_pool[12552]: WindowPos4fMESA (will be remapped) */ "ffff\0" "glWindowPos4fMESA\0" "\0" - /* _mesa_function_pool[12433]: TexCoord1sv (offset 101) */ + /* _mesa_function_pool[12576]: TexCoord1sv (offset 101) */ "p\0" "glTexCoord1sv\0" "\0" - /* _mesa_function_pool[12450]: WindowPos3dvMESA (will be remapped) */ + /* _mesa_function_pool[12593]: WindowPos3dvMESA (will be remapped) */ "p\0" "glWindowPos3dv\0" "glWindowPos3dvARB\0" "glWindowPos3dvMESA\0" "\0" - /* _mesa_function_pool[12505]: DepthFunc (offset 245) */ + /* _mesa_function_pool[12648]: DepthFunc (offset 245) */ "i\0" "glDepthFunc\0" "\0" - /* _mesa_function_pool[12520]: PixelMapusv (offset 253) */ + /* _mesa_function_pool[12663]: PixelMapusv (offset 253) */ "iip\0" "glPixelMapusv\0" "\0" - /* _mesa_function_pool[12539]: GetQueryObjecti64vEXT (will be remapped) */ + /* _mesa_function_pool[12682]: GetQueryObjecti64vEXT (will be remapped) */ "iip\0" "glGetQueryObjecti64vEXT\0" "\0" - /* _mesa_function_pool[12568]: MultiTexCoord1dARB (offset 376) */ + /* _mesa_function_pool[12711]: MultiTexCoord1dARB (offset 376) */ "id\0" "glMultiTexCoord1d\0" "glMultiTexCoord1dARB\0" "\0" - /* _mesa_function_pool[12611]: PointParameterivNV (will be remapped) */ + /* _mesa_function_pool[12754]: PointParameterivNV (will be remapped) */ "ip\0" "glPointParameteriv\0" "glPointParameterivNV\0" "\0" - /* _mesa_function_pool[12655]: BlendFunc (offset 241) */ + /* _mesa_function_pool[12798]: BlendFunc (offset 241) */ "ii\0" "glBlendFunc\0" "\0" - /* _mesa_function_pool[12671]: Uniform2fvARB (will be remapped) */ + /* _mesa_function_pool[12814]: EndTransformFeedbackEXT (will be remapped) */ + "\0" + "glEndTransformFeedbackEXT\0" + "glEndTransformFeedback\0" + "\0" + /* _mesa_function_pool[12865]: Uniform2fvARB (will be remapped) */ "iip\0" "glUniform2fv\0" "glUniform2fvARB\0" "\0" - /* _mesa_function_pool[12705]: BufferParameteriAPPLE (will be remapped) */ + /* _mesa_function_pool[12899]: BufferParameteriAPPLE (will be remapped) */ "iii\0" "glBufferParameteriAPPLE\0" "\0" - /* _mesa_function_pool[12734]: MultiTexCoord3dvARB (offset 393) */ + /* _mesa_function_pool[12928]: MultiTexCoord3dvARB (offset 393) */ "ip\0" "glMultiTexCoord3dv\0" "glMultiTexCoord3dvARB\0" "\0" - /* _mesa_function_pool[12779]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[12973]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[12835]: DeleteObjectARB (will be remapped) */ + /* _mesa_function_pool[13029]: DeleteObjectARB (will be remapped) */ "i\0" "glDeleteObjectARB\0" "\0" - /* _mesa_function_pool[12856]: MatrixIndexPointerARB (dynamic) */ + /* _mesa_function_pool[13050]: MatrixIndexPointerARB (dynamic) */ "iiip\0" "glMatrixIndexPointerARB\0" "\0" - /* _mesa_function_pool[12886]: ProgramNamedParameter4dvNV (will be remapped) */ + /* _mesa_function_pool[13080]: ProgramNamedParameter4dvNV (will be remapped) */ "iipp\0" "glProgramNamedParameter4dvNV\0" "\0" - /* _mesa_function_pool[12921]: Tangent3fvEXT (dynamic) */ + /* _mesa_function_pool[13115]: Tangent3fvEXT (dynamic) */ "p\0" "glTangent3fvEXT\0" "\0" - /* _mesa_function_pool[12940]: Flush (offset 217) */ + /* _mesa_function_pool[13134]: Flush (offset 217) */ "\0" "glFlush\0" "\0" - /* _mesa_function_pool[12950]: Color4uiv (offset 38) */ + /* _mesa_function_pool[13144]: Color4uiv (offset 38) */ "p\0" "glColor4uiv\0" "\0" - /* _mesa_function_pool[12965]: GenVertexArrays (will be remapped) */ + /* _mesa_function_pool[13159]: GenVertexArrays (will be remapped) */ "ip\0" "glGenVertexArrays\0" "\0" - /* _mesa_function_pool[12987]: RasterPos3sv (offset 77) */ + /* _mesa_function_pool[13181]: RasterPos3sv (offset 77) */ "p\0" "glRasterPos3sv\0" "\0" - /* _mesa_function_pool[13005]: BindFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[13199]: BindFramebufferEXT (will be remapped) */ "ii\0" "glBindFramebuffer\0" "glBindFramebufferEXT\0" "\0" - /* _mesa_function_pool[13048]: ReferencePlaneSGIX (dynamic) */ + /* _mesa_function_pool[13242]: ReferencePlaneSGIX (dynamic) */ "p\0" "glReferencePlaneSGIX\0" "\0" - /* _mesa_function_pool[13072]: PushAttrib (offset 219) */ + /* _mesa_function_pool[13266]: PushAttrib (offset 219) */ "i\0" "glPushAttrib\0" "\0" - /* _mesa_function_pool[13088]: RasterPos2i (offset 66) */ + /* _mesa_function_pool[13282]: RasterPos2i (offset 66) */ "ii\0" "glRasterPos2i\0" "\0" - /* _mesa_function_pool[13106]: ValidateProgramARB (will be remapped) */ + /* _mesa_function_pool[13300]: ValidateProgramARB (will be remapped) */ "i\0" "glValidateProgram\0" "glValidateProgramARB\0" "\0" - /* _mesa_function_pool[13148]: TexParameteriv (offset 181) */ + /* _mesa_function_pool[13342]: TexParameteriv (offset 181) */ "iip\0" "glTexParameteriv\0" "\0" - /* _mesa_function_pool[13170]: UnlockArraysEXT (will be remapped) */ + /* _mesa_function_pool[13364]: UnlockArraysEXT (will be remapped) */ "\0" "glUnlockArraysEXT\0" "\0" - /* _mesa_function_pool[13190]: TexCoord2fColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[13384]: TexCoord2fColor3fVertex3fSUN (dynamic) */ "ffffffff\0" "glTexCoord2fColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[13231]: WindowPos3fvMESA (will be remapped) */ + /* _mesa_function_pool[13425]: WindowPos3fvMESA (will be remapped) */ "p\0" "glWindowPos3fv\0" "glWindowPos3fvARB\0" "glWindowPos3fvMESA\0" "\0" - /* _mesa_function_pool[13286]: RasterPos2f (offset 64) */ + /* _mesa_function_pool[13480]: RasterPos2f (offset 64) */ "ff\0" "glRasterPos2f\0" "\0" - /* _mesa_function_pool[13304]: VertexAttrib1svNV (will be remapped) */ + /* _mesa_function_pool[13498]: VertexAttrib1svNV (will be remapped) */ "ip\0" "glVertexAttrib1svNV\0" "\0" - /* _mesa_function_pool[13328]: RasterPos2d (offset 62) */ + /* _mesa_function_pool[13522]: RasterPos2d (offset 62) */ "dd\0" "glRasterPos2d\0" "\0" - /* _mesa_function_pool[13346]: RasterPos3fv (offset 73) */ + /* _mesa_function_pool[13540]: RasterPos3fv (offset 73) */ "p\0" "glRasterPos3fv\0" "\0" - /* _mesa_function_pool[13364]: CopyTexSubImage3D (offset 373) */ + /* _mesa_function_pool[13558]: CopyTexSubImage3D (offset 373) */ "iiiiiiiii\0" "glCopyTexSubImage3D\0" "glCopyTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[13418]: VertexAttrib2dARB (will be remapped) */ + /* _mesa_function_pool[13612]: VertexAttrib2dARB (will be remapped) */ "idd\0" "glVertexAttrib2d\0" "glVertexAttrib2dARB\0" "\0" - /* _mesa_function_pool[13460]: Color4ub (offset 35) */ + /* _mesa_function_pool[13654]: Color4ub (offset 35) */ "iiii\0" "glColor4ub\0" "\0" - /* _mesa_function_pool[13477]: GetInteger64v (will be remapped) */ + /* _mesa_function_pool[13671]: GetInteger64v (will be remapped) */ "ip\0" "glGetInteger64v\0" "\0" - /* _mesa_function_pool[13497]: TextureColorMaskSGIS (dynamic) */ + /* _mesa_function_pool[13691]: TextureColorMaskSGIS (dynamic) */ "iiii\0" "glTextureColorMaskSGIS\0" "\0" - /* _mesa_function_pool[13526]: RasterPos2s (offset 68) */ + /* _mesa_function_pool[13720]: RasterPos2s (offset 68) */ "ii\0" "glRasterPos2s\0" "\0" - /* _mesa_function_pool[13544]: GetColorTable (offset 343) */ + /* _mesa_function_pool[13738]: GetColorTable (offset 343) */ "iiip\0" "glGetColorTable\0" "glGetColorTableSGI\0" "glGetColorTableEXT\0" "\0" - /* _mesa_function_pool[13604]: SelectBuffer (offset 195) */ + /* _mesa_function_pool[13798]: SelectBuffer (offset 195) */ "ip\0" "glSelectBuffer\0" "\0" - /* _mesa_function_pool[13623]: Indexiv (offset 49) */ + /* _mesa_function_pool[13817]: Indexiv (offset 49) */ "p\0" "glIndexiv\0" "\0" - /* _mesa_function_pool[13636]: TexCoord3i (offset 114) */ + /* _mesa_function_pool[13830]: TexCoord3i (offset 114) */ "iii\0" "glTexCoord3i\0" "\0" - /* _mesa_function_pool[13654]: CopyColorTable (offset 342) */ + /* _mesa_function_pool[13848]: CopyColorTable (offset 342) */ "iiiii\0" "glCopyColorTable\0" "glCopyColorTableSGI\0" "\0" - /* _mesa_function_pool[13698]: GetHistogramParameterfv (offset 362) */ + /* _mesa_function_pool[13892]: GetHistogramParameterfv (offset 362) */ "iip\0" "glGetHistogramParameterfv\0" "glGetHistogramParameterfvEXT\0" "\0" - /* _mesa_function_pool[13758]: Frustum (offset 289) */ + /* _mesa_function_pool[13952]: Frustum (offset 289) */ "dddddd\0" "glFrustum\0" "\0" - /* _mesa_function_pool[13776]: GetString (offset 275) */ + /* _mesa_function_pool[13970]: GetString (offset 275) */ "i\0" "glGetString\0" "\0" - /* _mesa_function_pool[13791]: ColorPointervINTEL (dynamic) */ + /* _mesa_function_pool[13985]: ColorPointervINTEL (dynamic) */ "iip\0" "glColorPointervINTEL\0" "\0" - /* _mesa_function_pool[13817]: TexEnvf (offset 184) */ + /* _mesa_function_pool[14011]: TexEnvf (offset 184) */ "iif\0" "glTexEnvf\0" "\0" - /* _mesa_function_pool[13832]: TexCoord3d (offset 110) */ + /* _mesa_function_pool[14026]: TexCoord3d (offset 110) */ "ddd\0" "glTexCoord3d\0" "\0" - /* _mesa_function_pool[13850]: AlphaFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[14044]: AlphaFragmentOp1ATI (will be remapped) */ "iiiiii\0" "glAlphaFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[13880]: TexCoord3f (offset 112) */ + /* _mesa_function_pool[14074]: TexCoord3f (offset 112) */ "fff\0" "glTexCoord3f\0" "\0" - /* _mesa_function_pool[13898]: MultiTexCoord3ivARB (offset 397) */ + /* _mesa_function_pool[14092]: MultiTexCoord3ivARB (offset 397) */ "ip\0" "glMultiTexCoord3iv\0" "glMultiTexCoord3ivARB\0" "\0" - /* _mesa_function_pool[13943]: MultiTexCoord2sARB (offset 390) */ + /* _mesa_function_pool[14137]: MultiTexCoord2sARB (offset 390) */ "iii\0" "glMultiTexCoord2s\0" "glMultiTexCoord2sARB\0" "\0" - /* _mesa_function_pool[13987]: VertexAttrib1dvARB (will be remapped) */ + /* _mesa_function_pool[14181]: VertexAttrib1dvARB (will be remapped) */ "ip\0" "glVertexAttrib1dv\0" "glVertexAttrib1dvARB\0" "\0" - /* _mesa_function_pool[14030]: DeleteTextures (offset 327) */ + /* _mesa_function_pool[14224]: DeleteTextures (offset 327) */ "ip\0" "glDeleteTextures\0" "glDeleteTexturesEXT\0" "\0" - /* _mesa_function_pool[14071]: TexCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[14265]: TexCoordPointerEXT (will be remapped) */ "iiiip\0" "glTexCoordPointerEXT\0" "\0" - /* _mesa_function_pool[14099]: TexSubImage4DSGIS (dynamic) */ + /* _mesa_function_pool[14293]: TexSubImage4DSGIS (dynamic) */ "iiiiiiiiiiiip\0" "glTexSubImage4DSGIS\0" "\0" - /* _mesa_function_pool[14134]: TexCoord3s (offset 116) */ + /* _mesa_function_pool[14328]: TexCoord3s (offset 116) */ "iii\0" "glTexCoord3s\0" "\0" - /* _mesa_function_pool[14152]: GetTexLevelParameteriv (offset 285) */ + /* _mesa_function_pool[14346]: GetTexLevelParameteriv (offset 285) */ "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[14183]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[14377]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[14217]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[14411]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[14242]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[14436]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[14298]: ClearAccum (offset 204) */ + /* _mesa_function_pool[14492]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[14317]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[14511]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[14333]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[14527]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[14381]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[14575]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[14427]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[14621]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[14444]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[14638]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[14471]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[14665]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[14498]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[14692]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[14535]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[14729]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[14555]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[14749]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[14576]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[14770]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[14603]: Rectd (offset 86) */ + /* _mesa_function_pool[14797]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[14617]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[14811]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[14643]: SampleMaskSGIS (will be remapped) */ + /* _mesa_function_pool[14837]: SampleMaskSGIS (will be remapped) */ "fi\0" "glSampleMaskSGIS\0" "glSampleMaskEXT\0" "\0" - /* _mesa_function_pool[14680]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[14874]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[14727]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[14921]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[14746]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[14940]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[14791]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[14985]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[14816]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15010]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[14846]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[15040]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[14893]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[15087]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[14941]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[15135]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[14999]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[15193]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[15033]: Lightfv (offset 160) */ + /* _mesa_function_pool[15227]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[15048]: ClearDepth (offset 208) */ + /* _mesa_function_pool[15242]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[15064]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[15258]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[15084]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[15278]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[15106]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[15300]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[15149]: Color4fv (offset 30) */ + /* _mesa_function_pool[15343]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[15163]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[15357]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[15208]: ProgramLocalParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[15402]: ProgramLocalParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramLocalParameters4fvEXT\0" "\0" - /* _mesa_function_pool[15245]: ColorPointer (offset 308) */ + /* _mesa_function_pool[15439]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[15266]: Rects (offset 92) */ + /* _mesa_function_pool[15460]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[15280]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[15474]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[15314]: Lightiv (offset 162) */ + /* _mesa_function_pool[15508]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[15329]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[15523]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[15373]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[15567]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[15421]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[15615]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[15446]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[15640]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[15470]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[15664]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[15515]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[15709]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[15558]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[15752]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[15584]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[15778]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[15610]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[15804]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[15628]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[15822]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[15671]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[15865]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[15725]: Rectdv (offset 87) */ + /* _mesa_function_pool[15919]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[15738]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[15932]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[15764]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15958]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[15823]: InstrumentsBufferSGIX (dynamic) */ + /* _mesa_function_pool[16017]: InstrumentsBufferSGIX (dynamic) */ "ip\0" "glInstrumentsBufferSGIX\0" "\0" - /* _mesa_function_pool[15851]: VertexAttrib4NivARB (will be remapped) */ + /* _mesa_function_pool[16045]: VertexAttrib4NivARB (will be remapped) */ "ip\0" "glVertexAttrib4Niv\0" "glVertexAttrib4NivARB\0" "\0" - /* _mesa_function_pool[15896]: GetAttachedShaders (will be remapped) */ + /* _mesa_function_pool[16090]: GetAttachedShaders (will be remapped) */ "iipp\0" "glGetAttachedShaders\0" "\0" - /* _mesa_function_pool[15923]: GenVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[16117]: GenVertexArraysAPPLE (will be remapped) */ "ip\0" "glGenVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[15950]: Materialiv (offset 172) */ + /* _mesa_function_pool[16144]: Materialiv (offset 172) */ "iip\0" "glMaterialiv\0" "\0" - /* _mesa_function_pool[15968]: PushClientAttrib (offset 335) */ + /* _mesa_function_pool[16162]: PushClientAttrib (offset 335) */ "i\0" "glPushClientAttrib\0" "\0" - /* _mesa_function_pool[15990]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[16184]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[16025]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[16219]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[16071]: WindowPos2iMESA (will be remapped) */ + /* _mesa_function_pool[16265]: WindowPos2iMESA (will be remapped) */ "ii\0" "glWindowPos2i\0" "glWindowPos2iARB\0" "glWindowPos2iMESA\0" "\0" - /* _mesa_function_pool[16124]: SecondaryColor3fvEXT (will be remapped) */ + /* _mesa_function_pool[16318]: SecondaryColor3fvEXT (will be remapped) */ "p\0" "glSecondaryColor3fv\0" "glSecondaryColor3fvEXT\0" "\0" - /* _mesa_function_pool[16170]: PolygonMode (offset 174) */ + /* _mesa_function_pool[16364]: PolygonMode (offset 174) */ "ii\0" "glPolygonMode\0" "\0" - /* _mesa_function_pool[16188]: CompressedTexSubImage1DARB (will be remapped) */ + /* _mesa_function_pool[16382]: CompressedTexSubImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexSubImage1D\0" "glCompressedTexSubImage1DARB\0" "\0" - /* _mesa_function_pool[16252]: GetVertexAttribivNV (will be remapped) */ + /* _mesa_function_pool[16446]: GetVertexAttribivNV (will be remapped) */ "iip\0" "glGetVertexAttribivNV\0" "\0" - /* _mesa_function_pool[16279]: GetProgramStringARB (will be remapped) */ + /* _mesa_function_pool[16473]: GetProgramStringARB (will be remapped) */ "iip\0" "glGetProgramStringARB\0" "\0" - /* _mesa_function_pool[16306]: TexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[16500]: TexBumpParameterfvATI (will be remapped) */ "ip\0" "glTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[16334]: CompileShaderARB (will be remapped) */ + /* _mesa_function_pool[16528]: CompileShaderARB (will be remapped) */ "i\0" "glCompileShader\0" "glCompileShaderARB\0" "\0" - /* _mesa_function_pool[16372]: DeleteShader (will be remapped) */ + /* _mesa_function_pool[16566]: DeleteShader (will be remapped) */ "i\0" "glDeleteShader\0" "\0" - /* _mesa_function_pool[16390]: DisableClientState (offset 309) */ + /* _mesa_function_pool[16584]: DisableClientState (offset 309) */ "i\0" "glDisableClientState\0" "\0" - /* _mesa_function_pool[16414]: TexGeni (offset 192) */ + /* _mesa_function_pool[16608]: TexGeni (offset 192) */ "iii\0" "glTexGeni\0" "\0" - /* _mesa_function_pool[16429]: TexGenf (offset 190) */ + /* _mesa_function_pool[16623]: TexGenf (offset 190) */ "iif\0" "glTexGenf\0" "\0" - /* _mesa_function_pool[16444]: Uniform3fARB (will be remapped) */ + /* _mesa_function_pool[16638]: Uniform3fARB (will be remapped) */ "ifff\0" "glUniform3f\0" "glUniform3fARB\0" "\0" - /* _mesa_function_pool[16477]: TexGend (offset 188) */ + /* _mesa_function_pool[16671]: TexGend (offset 188) */ "iid\0" "glTexGend\0" "\0" - /* _mesa_function_pool[16492]: ListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[16686]: ListParameterfvSGIX (dynamic) */ "iip\0" "glListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[16519]: GetPolygonStipple (offset 274) */ + /* _mesa_function_pool[16713]: GetPolygonStipple (offset 274) */ "p\0" "glGetPolygonStipple\0" "\0" - /* _mesa_function_pool[16542]: Tangent3dvEXT (dynamic) */ + /* _mesa_function_pool[16736]: Tangent3dvEXT (dynamic) */ "p\0" "glTangent3dvEXT\0" "\0" - /* _mesa_function_pool[16561]: GetVertexAttribfvNV (will be remapped) */ - "iip\0" - "glGetVertexAttribfvNV\0" + /* _mesa_function_pool[16755]: BindBufferOffsetEXT (will be remapped) */ + "iiii\0" + "glBindBufferOffsetEXT\0" "\0" - /* _mesa_function_pool[16588]: WindowPos3sMESA (will be remapped) */ + /* _mesa_function_pool[16783]: WindowPos3sMESA (will be remapped) */ "iii\0" "glWindowPos3s\0" "glWindowPos3sARB\0" "glWindowPos3sMESA\0" "\0" - /* _mesa_function_pool[16642]: VertexAttrib2svNV (will be remapped) */ + /* _mesa_function_pool[16837]: VertexAttrib2svNV (will be remapped) */ "ip\0" "glVertexAttrib2svNV\0" "\0" - /* _mesa_function_pool[16666]: VertexAttribs1fvNV (will be remapped) */ - "iip\0" - "glVertexAttribs1fvNV\0" + /* _mesa_function_pool[16861]: DisableIndexedEXT (will be remapped) */ + "ii\0" + "glDisableIndexedEXT\0" "\0" - /* _mesa_function_pool[16692]: TexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[16885]: BindBufferBaseEXT (will be remapped) */ + "iii\0" + "glBindBufferBaseEXT\0" + "glBindBufferBase\0" + "\0" + /* _mesa_function_pool[16927]: TexCoord2fVertex3fvSUN (dynamic) */ "pp\0" "glTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[16721]: WindowPos4sMESA (will be remapped) */ + /* _mesa_function_pool[16956]: WindowPos4sMESA (will be remapped) */ "iiii\0" "glWindowPos4sMESA\0" "\0" - /* _mesa_function_pool[16745]: VertexAttrib4NuivARB (will be remapped) */ + /* _mesa_function_pool[16980]: VertexAttrib4NuivARB (will be remapped) */ "ip\0" "glVertexAttrib4Nuiv\0" "glVertexAttrib4NuivARB\0" "\0" - /* _mesa_function_pool[16792]: ClientActiveTextureARB (offset 375) */ + /* _mesa_function_pool[17027]: ClientActiveTextureARB (offset 375) */ "i\0" "glClientActiveTexture\0" "glClientActiveTextureARB\0" "\0" - /* _mesa_function_pool[16842]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[17077]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[16863]: ReplacementCodeusvSUN (dynamic) */ + /* _mesa_function_pool[17098]: ReplacementCodeusvSUN (dynamic) */ "p\0" "glReplacementCodeusvSUN\0" "\0" - /* _mesa_function_pool[16890]: Uniform4fARB (will be remapped) */ + /* _mesa_function_pool[17125]: Uniform4fARB (will be remapped) */ "iffff\0" "glUniform4f\0" "glUniform4fARB\0" "\0" - /* _mesa_function_pool[16924]: Color4sv (offset 34) */ + /* _mesa_function_pool[17159]: Color4sv (offset 34) */ "p\0" "glColor4sv\0" "\0" - /* _mesa_function_pool[16938]: FlushMappedBufferRange (will be remapped) */ + /* _mesa_function_pool[17173]: FlushMappedBufferRange (will be remapped) */ "iii\0" "glFlushMappedBufferRange\0" "\0" - /* _mesa_function_pool[16968]: IsProgramNV (will be remapped) */ + /* _mesa_function_pool[17203]: IsProgramNV (will be remapped) */ "i\0" "glIsProgramARB\0" "glIsProgramNV\0" "\0" - /* _mesa_function_pool[17000]: FlushMappedBufferRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[17235]: FlushMappedBufferRangeAPPLE (will be remapped) */ "iii\0" "glFlushMappedBufferRangeAPPLE\0" "\0" - /* _mesa_function_pool[17035]: PixelZoom (offset 246) */ + /* _mesa_function_pool[17270]: PixelZoom (offset 246) */ "ff\0" "glPixelZoom\0" "\0" - /* _mesa_function_pool[17051]: ReplacementCodePointerSUN (dynamic) */ + /* _mesa_function_pool[17286]: ReplacementCodePointerSUN (dynamic) */ "iip\0" "glReplacementCodePointerSUN\0" "\0" - /* _mesa_function_pool[17084]: ProgramEnvParameter4dARB (will be remapped) */ + /* _mesa_function_pool[17319]: ProgramEnvParameter4dARB (will be remapped) */ "iidddd\0" "glProgramEnvParameter4dARB\0" "glProgramParameter4dNV\0" "\0" - /* _mesa_function_pool[17142]: ColorTableParameterfv (offset 340) */ + /* _mesa_function_pool[17377]: ColorTableParameterfv (offset 340) */ "iip\0" "glColorTableParameterfv\0" "glColorTableParameterfvSGI\0" "\0" - /* _mesa_function_pool[17198]: FragmentLightModelfSGIX (dynamic) */ + /* _mesa_function_pool[17433]: FragmentLightModelfSGIX (dynamic) */ "if\0" "glFragmentLightModelfSGIX\0" "\0" - /* _mesa_function_pool[17228]: Binormal3bvEXT (dynamic) */ + /* _mesa_function_pool[17463]: Binormal3bvEXT (dynamic) */ "p\0" "glBinormal3bvEXT\0" "\0" - /* _mesa_function_pool[17248]: PixelMapuiv (offset 252) */ + /* _mesa_function_pool[17483]: PixelMapuiv (offset 252) */ "iip\0" "glPixelMapuiv\0" "\0" - /* _mesa_function_pool[17267]: Color3dv (offset 12) */ + /* _mesa_function_pool[17502]: Color3dv (offset 12) */ "p\0" "glColor3dv\0" "\0" - /* _mesa_function_pool[17281]: IsTexture (offset 330) */ + /* _mesa_function_pool[17516]: IsTexture (offset 330) */ "i\0" "glIsTexture\0" "glIsTextureEXT\0" "\0" - /* _mesa_function_pool[17311]: VertexWeightfvEXT (dynamic) */ + /* _mesa_function_pool[17546]: VertexWeightfvEXT (dynamic) */ "p\0" "glVertexWeightfvEXT\0" "\0" - /* _mesa_function_pool[17334]: VertexAttrib1dARB (will be remapped) */ + /* _mesa_function_pool[17569]: VertexAttrib1dARB (will be remapped) */ "id\0" "glVertexAttrib1d\0" "glVertexAttrib1dARB\0" "\0" - /* _mesa_function_pool[17375]: ImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[17610]: ImageTransformParameterivHP (dynamic) */ "iip\0" "glImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[17410]: TexCoord4i (offset 122) */ + /* _mesa_function_pool[17645]: TexCoord4i (offset 122) */ "iiii\0" "glTexCoord4i\0" "\0" - /* _mesa_function_pool[17429]: DeleteQueriesARB (will be remapped) */ + /* _mesa_function_pool[17664]: DeleteQueriesARB (will be remapped) */ "ip\0" "glDeleteQueries\0" "glDeleteQueriesARB\0" "\0" - /* _mesa_function_pool[17468]: Color4ubVertex2fSUN (dynamic) */ + /* _mesa_function_pool[17703]: Color4ubVertex2fSUN (dynamic) */ "iiiiff\0" "glColor4ubVertex2fSUN\0" "\0" - /* _mesa_function_pool[17498]: FragmentColorMaterialSGIX (dynamic) */ + /* _mesa_function_pool[17733]: FragmentColorMaterialSGIX (dynamic) */ "ii\0" "glFragmentColorMaterialSGIX\0" "\0" - /* _mesa_function_pool[17530]: CurrentPaletteMatrixARB (dynamic) */ + /* _mesa_function_pool[17765]: CurrentPaletteMatrixARB (dynamic) */ "i\0" "glCurrentPaletteMatrixARB\0" "\0" - /* _mesa_function_pool[17559]: GetMapdv (offset 266) */ + /* _mesa_function_pool[17794]: GetMapdv (offset 266) */ "iip\0" "glGetMapdv\0" "\0" - /* _mesa_function_pool[17575]: ObjectPurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[17810]: ObjectPurgeableAPPLE (will be remapped) */ "iii\0" "glObjectPurgeableAPPLE\0" "\0" - /* _mesa_function_pool[17603]: SamplePatternSGIS (will be remapped) */ + /* _mesa_function_pool[17838]: SamplePatternSGIS (will be remapped) */ "i\0" "glSamplePatternSGIS\0" "glSamplePatternEXT\0" "\0" - /* _mesa_function_pool[17645]: PixelStoref (offset 249) */ + /* _mesa_function_pool[17880]: PixelStoref (offset 249) */ "if\0" "glPixelStoref\0" "\0" - /* _mesa_function_pool[17663]: IsQueryARB (will be remapped) */ + /* _mesa_function_pool[17898]: IsQueryARB (will be remapped) */ "i\0" "glIsQuery\0" "glIsQueryARB\0" "\0" - /* _mesa_function_pool[17689]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[17924]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ "iiiiifff\0" "glReplacementCodeuiColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[17738]: PixelStorei (offset 250) */ + /* _mesa_function_pool[17973]: PixelStorei (offset 250) */ "ii\0" "glPixelStorei\0" "\0" - /* _mesa_function_pool[17756]: VertexAttrib4usvARB (will be remapped) */ + /* _mesa_function_pool[17991]: VertexAttrib4usvARB (will be remapped) */ "ip\0" "glVertexAttrib4usv\0" "glVertexAttrib4usvARB\0" "\0" - /* _mesa_function_pool[17801]: LinkProgramARB (will be remapped) */ + /* _mesa_function_pool[18036]: LinkProgramARB (will be remapped) */ "i\0" "glLinkProgram\0" "glLinkProgramARB\0" "\0" - /* _mesa_function_pool[17835]: VertexAttrib2fNV (will be remapped) */ + /* _mesa_function_pool[18070]: VertexAttrib2fNV (will be remapped) */ "iff\0" "glVertexAttrib2fNV\0" "\0" - /* _mesa_function_pool[17859]: ShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[18094]: ShaderSourceARB (will be remapped) */ "iipp\0" "glShaderSource\0" "glShaderSourceARB\0" "\0" - /* _mesa_function_pool[17898]: FragmentMaterialiSGIX (dynamic) */ + /* _mesa_function_pool[18133]: FragmentMaterialiSGIX (dynamic) */ "iii\0" "glFragmentMaterialiSGIX\0" "\0" - /* _mesa_function_pool[17927]: EvalCoord2dv (offset 233) */ + /* _mesa_function_pool[18162]: EvalCoord2dv (offset 233) */ "p\0" "glEvalCoord2dv\0" "\0" - /* _mesa_function_pool[17945]: VertexAttrib3svARB (will be remapped) */ + /* _mesa_function_pool[18180]: VertexAttrib3svARB (will be remapped) */ "ip\0" "glVertexAttrib3sv\0" "glVertexAttrib3svARB\0" "\0" - /* _mesa_function_pool[17988]: ColorMaterial (offset 151) */ + /* _mesa_function_pool[18223]: ColorMaterial (offset 151) */ "ii\0" "glColorMaterial\0" "\0" - /* _mesa_function_pool[18008]: CompressedTexSubImage3DARB (will be remapped) */ + /* _mesa_function_pool[18243]: CompressedTexSubImage3DARB (will be remapped) */ "iiiiiiiiiip\0" "glCompressedTexSubImage3D\0" "glCompressedTexSubImage3DARB\0" "\0" - /* _mesa_function_pool[18076]: WindowPos2ivMESA (will be remapped) */ + /* _mesa_function_pool[18311]: WindowPos2ivMESA (will be remapped) */ "p\0" "glWindowPos2iv\0" "glWindowPos2ivARB\0" "glWindowPos2ivMESA\0" "\0" - /* _mesa_function_pool[18131]: IsFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[18366]: IsFramebufferEXT (will be remapped) */ "i\0" "glIsFramebuffer\0" "glIsFramebufferEXT\0" "\0" - /* _mesa_function_pool[18169]: Uniform4ivARB (will be remapped) */ + /* _mesa_function_pool[18404]: Uniform4ivARB (will be remapped) */ "iip\0" "glUniform4iv\0" "glUniform4ivARB\0" "\0" - /* _mesa_function_pool[18203]: GetVertexAttribdvARB (will be remapped) */ + /* _mesa_function_pool[18438]: GetVertexAttribdvARB (will be remapped) */ "iip\0" "glGetVertexAttribdv\0" "glGetVertexAttribdvARB\0" "\0" - /* _mesa_function_pool[18251]: TexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[18486]: TexBumpParameterivATI (will be remapped) */ "ip\0" "glTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[18279]: GetSeparableFilter (offset 359) */ + /* _mesa_function_pool[18514]: GetSeparableFilter (offset 359) */ "iiippp\0" "glGetSeparableFilter\0" "glGetSeparableFilterEXT\0" "\0" - /* _mesa_function_pool[18332]: Binormal3dEXT (dynamic) */ + /* _mesa_function_pool[18567]: Binormal3dEXT (dynamic) */ "ddd\0" "glBinormal3dEXT\0" "\0" - /* _mesa_function_pool[18353]: SpriteParameteriSGIX (dynamic) */ + /* _mesa_function_pool[18588]: SpriteParameteriSGIX (dynamic) */ "ii\0" "glSpriteParameteriSGIX\0" "\0" - /* _mesa_function_pool[18380]: RequestResidentProgramsNV (will be remapped) */ + /* _mesa_function_pool[18615]: RequestResidentProgramsNV (will be remapped) */ "ip\0" "glRequestResidentProgramsNV\0" "\0" - /* _mesa_function_pool[18412]: TagSampleBufferSGIX (dynamic) */ + /* _mesa_function_pool[18647]: TagSampleBufferSGIX (dynamic) */ "\0" "glTagSampleBufferSGIX\0" "\0" - /* _mesa_function_pool[18436]: ReplacementCodeusSUN (dynamic) */ - "i\0" - "glReplacementCodeusSUN\0" + /* _mesa_function_pool[18671]: TransformFeedbackVaryingsEXT (will be remapped) */ + "iipi\0" + "glTransformFeedbackVaryingsEXT\0" + "glTransformFeedbackVaryings\0" "\0" - /* _mesa_function_pool[18462]: FeedbackBuffer (offset 194) */ + /* _mesa_function_pool[18736]: FeedbackBuffer (offset 194) */ "iip\0" "glFeedbackBuffer\0" "\0" - /* _mesa_function_pool[18484]: RasterPos2iv (offset 67) */ + /* _mesa_function_pool[18758]: RasterPos2iv (offset 67) */ "p\0" "glRasterPos2iv\0" "\0" - /* _mesa_function_pool[18502]: TexImage1D (offset 182) */ + /* _mesa_function_pool[18776]: TexImage1D (offset 182) */ "iiiiiiip\0" "glTexImage1D\0" "\0" - /* _mesa_function_pool[18525]: ListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[18799]: ListParameterivSGIX (dynamic) */ "iip\0" "glListParameterivSGIX\0" "\0" - /* _mesa_function_pool[18552]: MultiDrawElementsEXT (will be remapped) */ + /* _mesa_function_pool[18826]: MultiDrawElementsEXT (will be remapped) */ "ipipi\0" "glMultiDrawElements\0" "glMultiDrawElementsEXT\0" "\0" - /* _mesa_function_pool[18602]: Color3s (offset 17) */ + /* _mesa_function_pool[18876]: Color3s (offset 17) */ "iii\0" "glColor3s\0" "\0" - /* _mesa_function_pool[18617]: Uniform1ivARB (will be remapped) */ + /* _mesa_function_pool[18891]: Uniform1ivARB (will be remapped) */ "iip\0" "glUniform1iv\0" "glUniform1ivARB\0" "\0" - /* _mesa_function_pool[18651]: WindowPos2sMESA (will be remapped) */ + /* _mesa_function_pool[18925]: WindowPos2sMESA (will be remapped) */ "ii\0" "glWindowPos2s\0" "glWindowPos2sARB\0" "glWindowPos2sMESA\0" "\0" - /* _mesa_function_pool[18704]: WeightusvARB (dynamic) */ + /* _mesa_function_pool[18978]: WeightusvARB (dynamic) */ "ip\0" "glWeightusvARB\0" "\0" - /* _mesa_function_pool[18723]: TexCoordPointer (offset 320) */ + /* _mesa_function_pool[18997]: TexCoordPointer (offset 320) */ "iiip\0" "glTexCoordPointer\0" "\0" - /* _mesa_function_pool[18747]: FogCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[19021]: FogCoordPointerEXT (will be remapped) */ "iip\0" "glFogCoordPointer\0" "glFogCoordPointerEXT\0" "\0" - /* _mesa_function_pool[18791]: IndexMaterialEXT (dynamic) */ + /* _mesa_function_pool[19065]: IndexMaterialEXT (dynamic) */ "ii\0" "glIndexMaterialEXT\0" "\0" - /* _mesa_function_pool[18814]: Color3i (offset 15) */ + /* _mesa_function_pool[19088]: Color3i (offset 15) */ "iii\0" "glColor3i\0" "\0" - /* _mesa_function_pool[18829]: FrontFace (offset 157) */ + /* _mesa_function_pool[19103]: FrontFace (offset 157) */ "i\0" "glFrontFace\0" "\0" - /* _mesa_function_pool[18844]: EvalCoord2d (offset 232) */ + /* _mesa_function_pool[19118]: EvalCoord2d (offset 232) */ "dd\0" "glEvalCoord2d\0" "\0" - /* _mesa_function_pool[18862]: SecondaryColor3ubvEXT (will be remapped) */ + /* _mesa_function_pool[19136]: SecondaryColor3ubvEXT (will be remapped) */ "p\0" "glSecondaryColor3ubv\0" "glSecondaryColor3ubvEXT\0" "\0" - /* _mesa_function_pool[18910]: EvalCoord2f (offset 234) */ + /* _mesa_function_pool[19184]: EvalCoord2f (offset 234) */ "ff\0" "glEvalCoord2f\0" "\0" - /* _mesa_function_pool[18928]: VertexAttrib4dvARB (will be remapped) */ + /* _mesa_function_pool[19202]: VertexAttrib4dvARB (will be remapped) */ "ip\0" "glVertexAttrib4dv\0" "glVertexAttrib4dvARB\0" "\0" - /* _mesa_function_pool[18971]: BindAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[19245]: BindAttribLocationARB (will be remapped) */ "iip\0" "glBindAttribLocation\0" "glBindAttribLocationARB\0" "\0" - /* _mesa_function_pool[19021]: Color3b (offset 9) */ + /* _mesa_function_pool[19295]: Color3b (offset 9) */ "iii\0" "glColor3b\0" "\0" - /* _mesa_function_pool[19036]: MultiTexCoord2dARB (offset 384) */ + /* _mesa_function_pool[19310]: MultiTexCoord2dARB (offset 384) */ "idd\0" "glMultiTexCoord2d\0" "glMultiTexCoord2dARB\0" "\0" - /* _mesa_function_pool[19080]: ExecuteProgramNV (will be remapped) */ + /* _mesa_function_pool[19354]: ExecuteProgramNV (will be remapped) */ "iip\0" "glExecuteProgramNV\0" "\0" - /* _mesa_function_pool[19104]: Color3f (offset 13) */ + /* _mesa_function_pool[19378]: Color3f (offset 13) */ "fff\0" "glColor3f\0" "\0" - /* _mesa_function_pool[19119]: LightEnviSGIX (dynamic) */ + /* _mesa_function_pool[19393]: LightEnviSGIX (dynamic) */ "ii\0" "glLightEnviSGIX\0" "\0" - /* _mesa_function_pool[19139]: Color3d (offset 11) */ + /* _mesa_function_pool[19413]: Color3d (offset 11) */ "ddd\0" "glColor3d\0" "\0" - /* _mesa_function_pool[19154]: Normal3dv (offset 55) */ + /* _mesa_function_pool[19428]: Normal3dv (offset 55) */ "p\0" "glNormal3dv\0" "\0" - /* _mesa_function_pool[19169]: Lightf (offset 159) */ + /* _mesa_function_pool[19443]: Lightf (offset 159) */ "iif\0" "glLightf\0" "\0" - /* _mesa_function_pool[19183]: ReplacementCodeuiSUN (dynamic) */ + /* _mesa_function_pool[19457]: ReplacementCodeuiSUN (dynamic) */ "i\0" "glReplacementCodeuiSUN\0" "\0" - /* _mesa_function_pool[19209]: MatrixMode (offset 293) */ + /* _mesa_function_pool[19483]: MatrixMode (offset 293) */ "i\0" "glMatrixMode\0" "\0" - /* _mesa_function_pool[19225]: GetPixelMapusv (offset 273) */ + /* _mesa_function_pool[19499]: GetPixelMapusv (offset 273) */ "ip\0" "glGetPixelMapusv\0" "\0" - /* _mesa_function_pool[19246]: Lighti (offset 161) */ + /* _mesa_function_pool[19520]: Lighti (offset 161) */ "iii\0" "glLighti\0" "\0" - /* _mesa_function_pool[19260]: VertexAttribPointerNV (will be remapped) */ + /* _mesa_function_pool[19534]: VertexAttribPointerNV (will be remapped) */ "iiiip\0" "glVertexAttribPointerNV\0" "\0" - /* _mesa_function_pool[19291]: GetBooleanIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[19565]: GetBooleanIndexedvEXT (will be remapped) */ "iip\0" "glGetBooleanIndexedvEXT\0" "\0" - /* _mesa_function_pool[19320]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ + /* _mesa_function_pool[19594]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ "iiip\0" "glGetFramebufferAttachmentParameteriv\0" "glGetFramebufferAttachmentParameterivEXT\0" "\0" - /* _mesa_function_pool[19405]: PixelTransformParameterfEXT (dynamic) */ + /* _mesa_function_pool[19679]: PixelTransformParameterfEXT (dynamic) */ "iif\0" "glPixelTransformParameterfEXT\0" "\0" - /* _mesa_function_pool[19440]: MultiTexCoord4dvARB (offset 401) */ + /* _mesa_function_pool[19714]: MultiTexCoord4dvARB (offset 401) */ "ip\0" "glMultiTexCoord4dv\0" "glMultiTexCoord4dvARB\0" "\0" - /* _mesa_function_pool[19485]: PixelTransformParameteriEXT (dynamic) */ + /* _mesa_function_pool[19759]: PixelTransformParameteriEXT (dynamic) */ "iii\0" "glPixelTransformParameteriEXT\0" "\0" - /* _mesa_function_pool[19520]: GetDoublev (offset 260) */ + /* _mesa_function_pool[19794]: GetDoublev (offset 260) */ "ip\0" "glGetDoublev\0" "\0" - /* _mesa_function_pool[19537]: MultMatrixd (offset 295) */ + /* _mesa_function_pool[19811]: MultMatrixd (offset 295) */ "p\0" "glMultMatrixd\0" "\0" - /* _mesa_function_pool[19554]: MultMatrixf (offset 294) */ + /* _mesa_function_pool[19828]: MultMatrixf (offset 294) */ "p\0" "glMultMatrixf\0" "\0" - /* _mesa_function_pool[19571]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[19845]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ "ffiiiifff\0" "glTexCoord2fColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[19614]: Uniform1iARB (will be remapped) */ + /* _mesa_function_pool[19888]: Uniform1iARB (will be remapped) */ "ii\0" "glUniform1i\0" "glUniform1iARB\0" "\0" - /* _mesa_function_pool[19645]: VertexAttribPointerARB (will be remapped) */ + /* _mesa_function_pool[19919]: VertexAttribPointerARB (will be remapped) */ "iiiiip\0" "glVertexAttribPointer\0" "glVertexAttribPointerARB\0" "\0" - /* _mesa_function_pool[19700]: SharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[19974]: SharpenTexFuncSGIS (dynamic) */ "iip\0" "glSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[19726]: MultiTexCoord4fvARB (offset 403) */ + /* _mesa_function_pool[20000]: MultiTexCoord4fvARB (offset 403) */ "ip\0" "glMultiTexCoord4fv\0" "glMultiTexCoord4fvARB\0" "\0" - /* _mesa_function_pool[19771]: UniformMatrix2x3fv (will be remapped) */ + /* _mesa_function_pool[20045]: UniformMatrix2x3fv (will be remapped) */ "iiip\0" "glUniformMatrix2x3fv\0" "\0" - /* _mesa_function_pool[19798]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[20072]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[19820]: CombinerParameteriNV (will be remapped) */ + /* _mesa_function_pool[20094]: CombinerParameteriNV (will be remapped) */ "ii\0" "glCombinerParameteriNV\0" "\0" - /* _mesa_function_pool[19847]: DeleteAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[20121]: DeleteAsyncMarkersSGIX (dynamic) */ "ii\0" "glDeleteAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[19876]: IsAsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[20150]: ReplacementCodeusSUN (dynamic) */ + "i\0" + "glReplacementCodeusSUN\0" + "\0" + /* _mesa_function_pool[20176]: IsAsyncMarkerSGIX (dynamic) */ "i\0" "glIsAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[19899]: FrameZoomSGIX (dynamic) */ + /* _mesa_function_pool[20199]: FrameZoomSGIX (dynamic) */ "i\0" "glFrameZoomSGIX\0" "\0" - /* _mesa_function_pool[19918]: Normal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[20218]: Normal3fVertex3fvSUN (dynamic) */ "pp\0" "glNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[19945]: RasterPos4sv (offset 85) */ + /* _mesa_function_pool[20245]: RasterPos4sv (offset 85) */ "p\0" "glRasterPos4sv\0" "\0" - /* _mesa_function_pool[19963]: VertexAttrib4NsvARB (will be remapped) */ + /* _mesa_function_pool[20263]: VertexAttrib4NsvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nsv\0" "glVertexAttrib4NsvARB\0" "\0" - /* _mesa_function_pool[20008]: VertexAttrib3fvARB (will be remapped) */ + /* _mesa_function_pool[20308]: VertexAttrib3fvARB (will be remapped) */ "ip\0" "glVertexAttrib3fv\0" "glVertexAttrib3fvARB\0" "\0" - /* _mesa_function_pool[20051]: ClearColor (offset 206) */ + /* _mesa_function_pool[20351]: ClearColor (offset 206) */ "ffff\0" "glClearColor\0" "\0" - /* _mesa_function_pool[20070]: GetSynciv (will be remapped) */ + /* _mesa_function_pool[20370]: GetSynciv (will be remapped) */ "iiipp\0" "glGetSynciv\0" "\0" - /* _mesa_function_pool[20089]: DeleteFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[20389]: DeleteFramebuffersEXT (will be remapped) */ "ip\0" "glDeleteFramebuffers\0" "glDeleteFramebuffersEXT\0" "\0" - /* _mesa_function_pool[20138]: GlobalAlphaFactorsSUN (dynamic) */ + /* _mesa_function_pool[20438]: GlobalAlphaFactorsSUN (dynamic) */ "i\0" "glGlobalAlphaFactorsSUN\0" "\0" - /* _mesa_function_pool[20165]: IsEnabledIndexedEXT (will be remapped) */ + /* _mesa_function_pool[20465]: IsEnabledIndexedEXT (will be remapped) */ "ii\0" "glIsEnabledIndexedEXT\0" "\0" - /* _mesa_function_pool[20191]: TexEnviv (offset 187) */ + /* _mesa_function_pool[20491]: TexEnviv (offset 187) */ "iip\0" "glTexEnviv\0" "\0" - /* _mesa_function_pool[20207]: TexSubImage3D (offset 372) */ + /* _mesa_function_pool[20507]: TexSubImage3D (offset 372) */ "iiiiiiiiiip\0" "glTexSubImage3D\0" "glTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[20255]: Tangent3fEXT (dynamic) */ + /* _mesa_function_pool[20555]: Tangent3fEXT (dynamic) */ "fff\0" "glTangent3fEXT\0" "\0" - /* _mesa_function_pool[20275]: SecondaryColor3uivEXT (will be remapped) */ + /* _mesa_function_pool[20575]: SecondaryColor3uivEXT (will be remapped) */ "p\0" "glSecondaryColor3uiv\0" "glSecondaryColor3uivEXT\0" "\0" - /* _mesa_function_pool[20323]: MatrixIndexubvARB (dynamic) */ + /* _mesa_function_pool[20623]: MatrixIndexubvARB (dynamic) */ "ip\0" "glMatrixIndexubvARB\0" "\0" - /* _mesa_function_pool[20347]: Color4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[20647]: Color4fNormal3fVertex3fSUN (dynamic) */ "ffffffffff\0" "glColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[20388]: PixelTexGenParameterfSGIS (will be remapped) */ + /* _mesa_function_pool[20688]: PixelTexGenParameterfSGIS (will be remapped) */ "if\0" "glPixelTexGenParameterfSGIS\0" "\0" - /* _mesa_function_pool[20420]: CreateShader (will be remapped) */ + /* _mesa_function_pool[20720]: CreateShader (will be remapped) */ "i\0" "glCreateShader\0" "\0" - /* _mesa_function_pool[20438]: GetColorTableParameterfv (offset 344) */ + /* _mesa_function_pool[20738]: GetColorTableParameterfv (offset 344) */ "iip\0" "glGetColorTableParameterfv\0" "glGetColorTableParameterfvSGI\0" "glGetColorTableParameterfvEXT\0" "\0" - /* _mesa_function_pool[20530]: FragmentLightModelfvSGIX (dynamic) */ + /* _mesa_function_pool[20830]: FragmentLightModelfvSGIX (dynamic) */ "ip\0" "glFragmentLightModelfvSGIX\0" "\0" - /* _mesa_function_pool[20561]: Bitmap (offset 8) */ + /* _mesa_function_pool[20861]: Bitmap (offset 8) */ "iiffffp\0" "glBitmap\0" "\0" - /* _mesa_function_pool[20579]: MultiTexCoord3fARB (offset 394) */ + /* _mesa_function_pool[20879]: MultiTexCoord3fARB (offset 394) */ "ifff\0" "glMultiTexCoord3f\0" "glMultiTexCoord3fARB\0" "\0" - /* _mesa_function_pool[20624]: GetTexLevelParameterfv (offset 284) */ + /* _mesa_function_pool[20924]: GetTexLevelParameterfv (offset 284) */ "iiip\0" "glGetTexLevelParameterfv\0" "\0" - /* _mesa_function_pool[20655]: GetPixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[20955]: GetPixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[20691]: GenFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[20991]: GenFramebuffersEXT (will be remapped) */ "ip\0" "glGenFramebuffers\0" "glGenFramebuffersEXT\0" "\0" - /* _mesa_function_pool[20734]: GetProgramParameterdvNV (will be remapped) */ + /* _mesa_function_pool[21034]: GetProgramParameterdvNV (will be remapped) */ "iiip\0" "glGetProgramParameterdvNV\0" "\0" - /* _mesa_function_pool[20766]: Vertex2sv (offset 133) */ + /* _mesa_function_pool[21066]: Vertex2sv (offset 133) */ "p\0" "glVertex2sv\0" "\0" - /* _mesa_function_pool[20781]: GetIntegerv (offset 263) */ + /* _mesa_function_pool[21081]: GetIntegerv (offset 263) */ "ip\0" "glGetIntegerv\0" "\0" - /* _mesa_function_pool[20799]: IsVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[21099]: IsVertexArrayAPPLE (will be remapped) */ "i\0" "glIsVertexArray\0" "glIsVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[20839]: FragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[21139]: FragmentLightfvSGIX (dynamic) */ "iip\0" "glFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[20866]: DetachShader (will be remapped) */ + /* _mesa_function_pool[21166]: DetachShader (will be remapped) */ "ii\0" "glDetachShader\0" "\0" - /* _mesa_function_pool[20885]: VertexAttrib4NubARB (will be remapped) */ + /* _mesa_function_pool[21185]: VertexAttrib4NubARB (will be remapped) */ "iiiii\0" "glVertexAttrib4Nub\0" "glVertexAttrib4NubARB\0" "\0" - /* _mesa_function_pool[20933]: GetProgramEnvParameterfvARB (will be remapped) */ + /* _mesa_function_pool[21233]: GetProgramEnvParameterfvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterfvARB\0" "\0" - /* _mesa_function_pool[20968]: GetTrackMatrixivNV (will be remapped) */ + /* _mesa_function_pool[21268]: GetTrackMatrixivNV (will be remapped) */ "iiip\0" "glGetTrackMatrixivNV\0" "\0" - /* _mesa_function_pool[20995]: VertexAttrib3svNV (will be remapped) */ + /* _mesa_function_pool[21295]: VertexAttrib3svNV (will be remapped) */ "ip\0" "glVertexAttrib3svNV\0" "\0" - /* _mesa_function_pool[21019]: Uniform4fvARB (will be remapped) */ + /* _mesa_function_pool[21319]: Uniform4fvARB (will be remapped) */ "iip\0" "glUniform4fv\0" "glUniform4fvARB\0" "\0" - /* _mesa_function_pool[21053]: MultTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[21353]: MultTransposeMatrixfARB (will be remapped) */ "p\0" "glMultTransposeMatrixf\0" "glMultTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[21105]: GetTexEnviv (offset 277) */ + /* _mesa_function_pool[21405]: GetTexEnviv (offset 277) */ "iip\0" "glGetTexEnviv\0" "\0" - /* _mesa_function_pool[21124]: ColorFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[21424]: ColorFragmentOp1ATI (will be remapped) */ "iiiiiii\0" "glColorFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[21155]: GetUniformfvARB (will be remapped) */ + /* _mesa_function_pool[21455]: GetUniformfvARB (will be remapped) */ "iip\0" "glGetUniformfv\0" "glGetUniformfvARB\0" "\0" - /* _mesa_function_pool[21193]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ + /* _mesa_function_pool[21493]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ "ip\0" "glEGLImageTargetRenderbufferStorageOES\0" "\0" - /* _mesa_function_pool[21236]: PopClientAttrib (offset 334) */ + /* _mesa_function_pool[21536]: PopClientAttrib (offset 334) */ "\0" "glPopClientAttrib\0" "\0" - /* _mesa_function_pool[21256]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[21556]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffffff\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[21327]: DetachObjectARB (will be remapped) */ + /* _mesa_function_pool[21627]: DetachObjectARB (will be remapped) */ "ii\0" "glDetachObjectARB\0" "\0" - /* _mesa_function_pool[21349]: VertexBlendARB (dynamic) */ + /* _mesa_function_pool[21649]: VertexBlendARB (dynamic) */ "i\0" "glVertexBlendARB\0" "\0" - /* _mesa_function_pool[21369]: WindowPos3iMESA (will be remapped) */ + /* _mesa_function_pool[21669]: WindowPos3iMESA (will be remapped) */ "iii\0" "glWindowPos3i\0" "glWindowPos3iARB\0" "glWindowPos3iMESA\0" "\0" - /* _mesa_function_pool[21423]: SeparableFilter2D (offset 360) */ + /* _mesa_function_pool[21723]: SeparableFilter2D (offset 360) */ "iiiiiipp\0" "glSeparableFilter2D\0" "glSeparableFilter2DEXT\0" "\0" - /* _mesa_function_pool[21476]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[21776]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[21521]: Map1d (offset 220) */ + /* _mesa_function_pool[21821]: Map1d (offset 220) */ "iddiip\0" "glMap1d\0" "\0" - /* _mesa_function_pool[21537]: Map1f (offset 221) */ + /* _mesa_function_pool[21837]: Map1f (offset 221) */ "iffiip\0" "glMap1f\0" "\0" - /* _mesa_function_pool[21553]: CompressedTexImage2DARB (will be remapped) */ + /* _mesa_function_pool[21853]: CompressedTexImage2DARB (will be remapped) */ "iiiiiiip\0" "glCompressedTexImage2D\0" "glCompressedTexImage2DARB\0" "\0" - /* _mesa_function_pool[21612]: ArrayElement (offset 306) */ + /* _mesa_function_pool[21912]: ArrayElement (offset 306) */ "i\0" "glArrayElement\0" "glArrayElementEXT\0" "\0" - /* _mesa_function_pool[21648]: TexImage2D (offset 183) */ + /* _mesa_function_pool[21948]: TexImage2D (offset 183) */ "iiiiiiiip\0" "glTexImage2D\0" "\0" - /* _mesa_function_pool[21672]: DepthBoundsEXT (will be remapped) */ + /* _mesa_function_pool[21972]: DepthBoundsEXT (will be remapped) */ "dd\0" "glDepthBoundsEXT\0" "\0" - /* _mesa_function_pool[21693]: ProgramParameters4fvNV (will be remapped) */ + /* _mesa_function_pool[21993]: ProgramParameters4fvNV (will be remapped) */ "iiip\0" "glProgramParameters4fvNV\0" "\0" - /* _mesa_function_pool[21724]: DeformationMap3fSGIX (dynamic) */ + /* _mesa_function_pool[22024]: DeformationMap3fSGIX (dynamic) */ "iffiiffiiffiip\0" "glDeformationMap3fSGIX\0" "\0" - /* _mesa_function_pool[21763]: GetProgramivNV (will be remapped) */ + /* _mesa_function_pool[22063]: GetProgramivNV (will be remapped) */ "iip\0" "glGetProgramivNV\0" "\0" - /* _mesa_function_pool[21785]: GetMinmaxParameteriv (offset 366) */ + /* _mesa_function_pool[22085]: GetMinmaxParameteriv (offset 366) */ "iip\0" "glGetMinmaxParameteriv\0" "glGetMinmaxParameterivEXT\0" "\0" - /* _mesa_function_pool[21839]: PixelTransferf (offset 247) */ + /* _mesa_function_pool[22139]: PixelTransferf (offset 247) */ "if\0" "glPixelTransferf\0" "\0" - /* _mesa_function_pool[21860]: CopyTexImage1D (offset 323) */ + /* _mesa_function_pool[22160]: CopyTexImage1D (offset 323) */ "iiiiiii\0" "glCopyTexImage1D\0" "glCopyTexImage1DEXT\0" "\0" - /* _mesa_function_pool[21906]: PushMatrix (offset 298) */ + /* _mesa_function_pool[22206]: PushMatrix (offset 298) */ "\0" "glPushMatrix\0" "\0" - /* _mesa_function_pool[21921]: Fogiv (offset 156) */ + /* _mesa_function_pool[22221]: Fogiv (offset 156) */ "ip\0" "glFogiv\0" "\0" - /* _mesa_function_pool[21933]: TexCoord1dv (offset 95) */ + /* _mesa_function_pool[22233]: TexCoord1dv (offset 95) */ "p\0" "glTexCoord1dv\0" "\0" - /* _mesa_function_pool[21950]: AlphaFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[22250]: AlphaFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiii\0" "glAlphaFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[21986]: PixelTransferi (offset 248) */ + /* _mesa_function_pool[22286]: PixelTransferi (offset 248) */ "ii\0" "glPixelTransferi\0" "\0" - /* _mesa_function_pool[22007]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[22307]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[22034]: VertexAttrib3fvNV (will be remapped) */ + /* _mesa_function_pool[22334]: VertexAttrib3fvNV (will be remapped) */ "ip\0" "glVertexAttrib3fvNV\0" "\0" - /* _mesa_function_pool[22058]: Rotatef (offset 300) */ + /* _mesa_function_pool[22358]: Rotatef (offset 300) */ "ffff\0" "glRotatef\0" "\0" - /* _mesa_function_pool[22074]: GetFinalCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[22374]: GetFinalCombinerInputParameterivNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[22116]: Vertex3i (offset 138) */ + /* _mesa_function_pool[22416]: Vertex3i (offset 138) */ "iii\0" "glVertex3i\0" "\0" - /* _mesa_function_pool[22132]: Vertex3f (offset 136) */ + /* _mesa_function_pool[22432]: Vertex3f (offset 136) */ "fff\0" "glVertex3f\0" "\0" - /* _mesa_function_pool[22148]: Clear (offset 203) */ + /* _mesa_function_pool[22448]: Clear (offset 203) */ "i\0" "glClear\0" "\0" - /* _mesa_function_pool[22159]: Vertex3d (offset 134) */ + /* _mesa_function_pool[22459]: Vertex3d (offset 134) */ "ddd\0" "glVertex3d\0" "\0" - /* _mesa_function_pool[22175]: GetMapParameterivNV (dynamic) */ + /* _mesa_function_pool[22475]: GetMapParameterivNV (dynamic) */ "iip\0" "glGetMapParameterivNV\0" "\0" - /* _mesa_function_pool[22202]: Uniform4iARB (will be remapped) */ + /* _mesa_function_pool[22502]: Uniform4iARB (will be remapped) */ "iiiii\0" "glUniform4i\0" "glUniform4iARB\0" "\0" - /* _mesa_function_pool[22236]: ReadBuffer (offset 254) */ + /* _mesa_function_pool[22536]: ReadBuffer (offset 254) */ "i\0" "glReadBuffer\0" "\0" - /* _mesa_function_pool[22252]: ConvolutionParameteri (offset 352) */ + /* _mesa_function_pool[22552]: ConvolutionParameteri (offset 352) */ "iii\0" "glConvolutionParameteri\0" "glConvolutionParameteriEXT\0" "\0" - /* _mesa_function_pool[22308]: Ortho (offset 296) */ + /* _mesa_function_pool[22608]: Ortho (offset 296) */ "dddddd\0" "glOrtho\0" "\0" - /* _mesa_function_pool[22324]: Binormal3sEXT (dynamic) */ + /* _mesa_function_pool[22624]: Binormal3sEXT (dynamic) */ "iii\0" "glBinormal3sEXT\0" "\0" - /* _mesa_function_pool[22345]: ListBase (offset 6) */ + /* _mesa_function_pool[22645]: ListBase (offset 6) */ "i\0" "glListBase\0" "\0" - /* _mesa_function_pool[22359]: Vertex3s (offset 140) */ + /* _mesa_function_pool[22659]: Vertex3s (offset 140) */ "iii\0" "glVertex3s\0" "\0" - /* _mesa_function_pool[22375]: ConvolutionParameterf (offset 350) */ + /* _mesa_function_pool[22675]: ConvolutionParameterf (offset 350) */ "iif\0" "glConvolutionParameterf\0" "glConvolutionParameterfEXT\0" "\0" - /* _mesa_function_pool[22431]: GetColorTableParameteriv (offset 345) */ + /* _mesa_function_pool[22731]: GetColorTableParameteriv (offset 345) */ "iip\0" "glGetColorTableParameteriv\0" "glGetColorTableParameterivSGI\0" "glGetColorTableParameterivEXT\0" "\0" - /* _mesa_function_pool[22523]: ProgramEnvParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[22823]: ProgramEnvParameter4dvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4dvARB\0" "glProgramParameter4dvNV\0" "\0" - /* _mesa_function_pool[22580]: ShadeModel (offset 177) */ + /* _mesa_function_pool[22880]: ShadeModel (offset 177) */ "i\0" "glShadeModel\0" "\0" - /* _mesa_function_pool[22596]: VertexAttribs2fvNV (will be remapped) */ + /* _mesa_function_pool[22896]: VertexAttribs2fvNV (will be remapped) */ "iip\0" "glVertexAttribs2fvNV\0" "\0" - /* _mesa_function_pool[22622]: Rectiv (offset 91) */ + /* _mesa_function_pool[22922]: Rectiv (offset 91) */ "pp\0" "glRectiv\0" "\0" - /* _mesa_function_pool[22635]: UseProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[22935]: UseProgramObjectARB (will be remapped) */ "i\0" "glUseProgram\0" "glUseProgramObjectARB\0" "\0" - /* _mesa_function_pool[22673]: GetMapParameterfvNV (dynamic) */ + /* _mesa_function_pool[22973]: GetMapParameterfvNV (dynamic) */ "iip\0" "glGetMapParameterfvNV\0" "\0" - /* _mesa_function_pool[22700]: EndConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[23000]: EndConditionalRenderNV (will be remapped) */ "\0" "glEndConditionalRenderNV\0" "\0" - /* _mesa_function_pool[22727]: PassTexCoordATI (will be remapped) */ + /* _mesa_function_pool[23027]: PassTexCoordATI (will be remapped) */ "iii\0" "glPassTexCoordATI\0" "\0" - /* _mesa_function_pool[22750]: DeleteProgram (will be remapped) */ + /* _mesa_function_pool[23050]: DeleteProgram (will be remapped) */ "i\0" "glDeleteProgram\0" "\0" - /* _mesa_function_pool[22769]: Tangent3ivEXT (dynamic) */ + /* _mesa_function_pool[23069]: Tangent3ivEXT (dynamic) */ "p\0" "glTangent3ivEXT\0" "\0" - /* _mesa_function_pool[22788]: Tangent3dEXT (dynamic) */ + /* _mesa_function_pool[23088]: Tangent3dEXT (dynamic) */ "ddd\0" "glTangent3dEXT\0" "\0" - /* _mesa_function_pool[22808]: SecondaryColor3dvEXT (will be remapped) */ + /* _mesa_function_pool[23108]: SecondaryColor3dvEXT (will be remapped) */ "p\0" "glSecondaryColor3dv\0" "glSecondaryColor3dvEXT\0" "\0" - /* _mesa_function_pool[22854]: Vertex2fv (offset 129) */ + /* _mesa_function_pool[23154]: Vertex2fv (offset 129) */ "p\0" "glVertex2fv\0" "\0" - /* _mesa_function_pool[22869]: MultiDrawArraysEXT (will be remapped) */ + /* _mesa_function_pool[23169]: MultiDrawArraysEXT (will be remapped) */ "ippi\0" "glMultiDrawArrays\0" "glMultiDrawArraysEXT\0" "\0" - /* _mesa_function_pool[22914]: BindRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[23214]: BindRenderbufferEXT (will be remapped) */ "ii\0" "glBindRenderbuffer\0" "glBindRenderbufferEXT\0" "\0" - /* _mesa_function_pool[22959]: MultiTexCoord4dARB (offset 400) */ + /* _mesa_function_pool[23259]: MultiTexCoord4dARB (offset 400) */ "idddd\0" "glMultiTexCoord4d\0" "glMultiTexCoord4dARB\0" "\0" - /* _mesa_function_pool[23005]: Vertex3sv (offset 141) */ + /* _mesa_function_pool[23305]: Vertex3sv (offset 141) */ "p\0" "glVertex3sv\0" "\0" - /* _mesa_function_pool[23020]: SecondaryColor3usEXT (will be remapped) */ + /* _mesa_function_pool[23320]: SecondaryColor3usEXT (will be remapped) */ "iii\0" "glSecondaryColor3us\0" "glSecondaryColor3usEXT\0" "\0" - /* _mesa_function_pool[23068]: ProgramLocalParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[23368]: ProgramLocalParameter4fvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4fvARB\0" "\0" - /* _mesa_function_pool[23103]: DeleteProgramsNV (will be remapped) */ + /* _mesa_function_pool[23403]: DeleteProgramsNV (will be remapped) */ "ip\0" "glDeleteProgramsARB\0" "glDeleteProgramsNV\0" "\0" - /* _mesa_function_pool[23146]: EvalMesh1 (offset 236) */ + /* _mesa_function_pool[23446]: EvalMesh1 (offset 236) */ "iii\0" "glEvalMesh1\0" "\0" - /* _mesa_function_pool[23163]: MultiTexCoord1sARB (offset 382) */ + /* _mesa_function_pool[23463]: MultiTexCoord1sARB (offset 382) */ "ii\0" "glMultiTexCoord1s\0" "glMultiTexCoord1sARB\0" "\0" - /* _mesa_function_pool[23206]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[23506]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[23253]: GetVertexAttribPointervNV (will be remapped) */ + /* _mesa_function_pool[23553]: GetVertexAttribPointervNV (will be remapped) */ "iip\0" "glGetVertexAttribPointerv\0" "glGetVertexAttribPointervARB\0" "glGetVertexAttribPointervNV\0" "\0" - /* _mesa_function_pool[23341]: DisableIndexedEXT (will be remapped) */ - "ii\0" - "glDisableIndexedEXT\0" + /* _mesa_function_pool[23641]: VertexAttribs1fvNV (will be remapped) */ + "iip\0" + "glVertexAttribs1fvNV\0" "\0" - /* _mesa_function_pool[23365]: MultiTexCoord1dvARB (offset 377) */ + /* _mesa_function_pool[23667]: MultiTexCoord1dvARB (offset 377) */ "ip\0" "glMultiTexCoord1dv\0" "glMultiTexCoord1dvARB\0" "\0" - /* _mesa_function_pool[23410]: Uniform2iARB (will be remapped) */ + /* _mesa_function_pool[23712]: Uniform2iARB (will be remapped) */ "iii\0" "glUniform2i\0" "glUniform2iARB\0" "\0" - /* _mesa_function_pool[23442]: Vertex2iv (offset 131) */ + /* _mesa_function_pool[23744]: Vertex2iv (offset 131) */ "p\0" "glVertex2iv\0" "\0" - /* _mesa_function_pool[23457]: GetProgramStringNV (will be remapped) */ + /* _mesa_function_pool[23759]: GetProgramStringNV (will be remapped) */ "iip\0" "glGetProgramStringNV\0" "\0" - /* _mesa_function_pool[23483]: ColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[23785]: ColorPointerEXT (will be remapped) */ "iiiip\0" "glColorPointerEXT\0" "\0" - /* _mesa_function_pool[23508]: LineWidth (offset 168) */ + /* _mesa_function_pool[23810]: LineWidth (offset 168) */ "f\0" "glLineWidth\0" "\0" - /* _mesa_function_pool[23523]: MapBufferARB (will be remapped) */ + /* _mesa_function_pool[23825]: MapBufferARB (will be remapped) */ "ii\0" "glMapBuffer\0" "glMapBufferARB\0" "\0" - /* _mesa_function_pool[23554]: MultiDrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[23856]: MultiDrawElementsBaseVertex (will be remapped) */ "ipipip\0" "glMultiDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[23592]: Binormal3svEXT (dynamic) */ + /* _mesa_function_pool[23894]: Binormal3svEXT (dynamic) */ "p\0" "glBinormal3svEXT\0" "\0" - /* _mesa_function_pool[23612]: ApplyTextureEXT (dynamic) */ + /* _mesa_function_pool[23914]: ApplyTextureEXT (dynamic) */ "i\0" "glApplyTextureEXT\0" "\0" - /* _mesa_function_pool[23633]: TexGendv (offset 189) */ + /* _mesa_function_pool[23935]: TexGendv (offset 189) */ "iip\0" "glTexGendv\0" "\0" - /* _mesa_function_pool[23649]: EnableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[23951]: EnableIndexedEXT (will be remapped) */ "ii\0" "glEnableIndexedEXT\0" "\0" - /* _mesa_function_pool[23672]: TextureMaterialEXT (dynamic) */ + /* _mesa_function_pool[23974]: TextureMaterialEXT (dynamic) */ "ii\0" "glTextureMaterialEXT\0" "\0" - /* _mesa_function_pool[23697]: TextureLightEXT (dynamic) */ + /* _mesa_function_pool[23999]: TextureLightEXT (dynamic) */ "i\0" "glTextureLightEXT\0" "\0" - /* _mesa_function_pool[23718]: ResetMinmax (offset 370) */ + /* _mesa_function_pool[24020]: ResetMinmax (offset 370) */ "i\0" "glResetMinmax\0" "glResetMinmaxEXT\0" "\0" - /* _mesa_function_pool[23752]: SpriteParameterfSGIX (dynamic) */ + /* _mesa_function_pool[24054]: SpriteParameterfSGIX (dynamic) */ "if\0" "glSpriteParameterfSGIX\0" "\0" - /* _mesa_function_pool[23779]: EnableClientState (offset 313) */ + /* _mesa_function_pool[24081]: EnableClientState (offset 313) */ "i\0" "glEnableClientState\0" "\0" - /* _mesa_function_pool[23802]: VertexAttrib4sNV (will be remapped) */ + /* _mesa_function_pool[24104]: VertexAttrib4sNV (will be remapped) */ "iiiii\0" "glVertexAttrib4sNV\0" "\0" - /* _mesa_function_pool[23828]: GetConvolutionParameterfv (offset 357) */ + /* _mesa_function_pool[24130]: GetConvolutionParameterfv (offset 357) */ "iip\0" "glGetConvolutionParameterfv\0" "glGetConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[23892]: VertexAttribs4dvNV (will be remapped) */ + /* _mesa_function_pool[24194]: VertexAttribs4dvNV (will be remapped) */ "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[23918]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[24220]: MultiModeDrawArraysIBM (will be remapped) */ + "pppii\0" + "glMultiModeDrawArraysIBM\0" + "\0" + /* _mesa_function_pool[24252]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[23962]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[24296]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[23993]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[24327]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[24030]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[24364]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[24051]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[24385]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[24073]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[24407]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[24094]: CallList (offset 2) */ + /* _mesa_function_pool[24428]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[24108]: Materialfv (offset 170) */ + /* _mesa_function_pool[24442]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[24126]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[24460]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[24143]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[24477]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[24175]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[24509]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[24220]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[24554]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[24268]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[24602]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[24313]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[24647]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[24331]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[24665]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[24384]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[24718]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[24415]: Color3iv (offset 16) */ + /* _mesa_function_pool[24749]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[24429]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[24763]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[24463]: DrawElements (offset 311) */ + /* _mesa_function_pool[24797]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[24484]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[24818]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[24510]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[24844]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[24547]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[24881]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[24607]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[24941]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[24650]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[24984]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[24705]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[25039]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[24728]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[25062]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[24801]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[25135]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[24824]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[25158]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[24855]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[25189]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[24892]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[25226]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[24909]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[25243]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[24925]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[25259]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[24945]: PopMatrix (offset 297) */ + /* _mesa_function_pool[25279]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[24959]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[25293]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[24978]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[25312]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[24998]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[25332]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[25047]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[25381]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[25093]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[25427]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[25112]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[25446]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[25138]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[25472]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[25181]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[25515]: ColorMaskIndexedEXT (will be remapped) */ + "iiiii\0" + "glColorMaskIndexedEXT\0" + "\0" + /* _mesa_function_pool[25544]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[25226]: Map2d (offset 222) */ + /* _mesa_function_pool[25589]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[25246]: Map2f (offset 223) */ + /* _mesa_function_pool[25609]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[25266]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[25629]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[25291]: Vertex4s (offset 148) */ + /* _mesa_function_pool[25654]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[25308]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[25671]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[25337]: VertexAttrib3sNV (will be remapped) */ + /* _mesa_function_pool[25700]: VertexAttrib3sNV (will be remapped) */ "iiii\0" "glVertexAttrib3sNV\0" "\0" - /* _mesa_function_pool[25362]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[25725]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[25385]: Vertex4f (offset 144) */ + /* _mesa_function_pool[25748]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[25402]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[25765]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[25419]: Vertex4d (offset 142) */ + /* _mesa_function_pool[25782]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[25436]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[25799]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[25454]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[25817]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[25480]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[25843]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[25536]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[25899]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[25555]: Vertex4i (offset 146) */ + /* _mesa_function_pool[25918]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[25572]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[25935]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[25603]: GetHistogram (offset 361) */ + /* _mesa_function_pool[25966]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[25643]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[26006]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[25669]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[26032]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[25700]: Materialf (offset 169) */ + /* _mesa_function_pool[26063]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[25717]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[26080]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[25762]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[26125]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[25787]: Materiali (offset 171) */ + /* _mesa_function_pool[26150]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[25804]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[26167]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[25830]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[26193]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[25865]: Indexsv (offset 51) */ + /* _mesa_function_pool[26228]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[25878]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[26241]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[25923]: LightModelfv (offset 164) */ + /* _mesa_function_pool[26286]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[25942]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[26305]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[25959]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[26322]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[25992]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[26355]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[26010]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[26373]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[26047]: Translated (offset 303) */ + /* _mesa_function_pool[26410]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[26065]: Translatef (offset 304) */ + /* _mesa_function_pool[26428]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[26083]: StencilMask (offset 209) */ + /* _mesa_function_pool[26446]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[26100]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[26463]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[26120]: GetLightiv (offset 265) */ + /* _mesa_function_pool[26483]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[26138]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[26501]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[26164]: IsList (offset 287) */ + /* _mesa_function_pool[26527]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[26176]: IsSync (will be remapped) */ + /* _mesa_function_pool[26539]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[26188]: RenderMode (offset 196) */ + /* _mesa_function_pool[26551]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[26204]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[26567]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[26237]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[26600]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[26289]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[26652]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[26326]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[26689]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[26354]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[26717]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[26396]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[26759]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[26439]: LoadName (offset 198) */ + /* _mesa_function_pool[26802]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[26453]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[26816]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[26480]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[26843]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[26498]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[26861]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[26532]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[26895]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[26583]: CullFace (offset 152) */ + /* _mesa_function_pool[26946]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[26597]: BindTexture (offset 307) */ + /* _mesa_function_pool[26960]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[26632]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[26995]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[26659]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[27022]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[26705]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[27068]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[26731]: StencilFunc (offset 243) */ + /* _mesa_function_pool[27094]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[26750]: CopyPixels (offset 255) */ + /* _mesa_function_pool[27113]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[26770]: Rectsv (offset 93) */ + /* _mesa_function_pool[27133]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[26783]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[27146]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[26810]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[27173]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[26868]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[27231]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[26894]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[27257]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[26957]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[27320]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[27012]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[27375]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[27039]: NormalPointer (offset 318) */ + /* _mesa_function_pool[27402]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[27060]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[27423]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[27082]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[27445]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[27110]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[27473]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[27134]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[27497]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[27179]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[27542]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[27198]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[27561]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[27225]: ClipPlane (offset 150) */ + /* _mesa_function_pool[27588]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[27241]: Recti (offset 90) */ + /* _mesa_function_pool[27604]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[27255]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[27618]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[27294]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[27657]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[27323]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[27686]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[27362]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[27725]: PixelTransformParameterfvEXT (dynamic) */ + "iip\0" + "glPixelTransformParameterfvEXT\0" + "\0" + /* _mesa_function_pool[27761]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[27384]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[27783]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[27405]: Rectf (offset 88) */ + /* _mesa_function_pool[27804]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[27419]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[27818]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[27442]: Indexfv (offset 47) */ + /* _mesa_function_pool[27841]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[27455]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[27854]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[27501]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[27900]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[27553]: GetPointerv (offset 329) */ + /* _mesa_function_pool[27952]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[27588]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[27987]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[27608]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[28007]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[27635]: IndexMask (offset 212) */ + /* _mesa_function_pool[28034]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[27650]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[28049]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[27687]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[28086]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[27730]: GetFloatv (offset 262) */ + /* _mesa_function_pool[28129]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[27746]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[28145]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[27772]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[28171]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[27791]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[28190]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[27813]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[28212]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[27832]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[28231]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[27849]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[28248]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[27876]: PopAttrib (offset 218) */ + /* _mesa_function_pool[28275]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[27890]: Fogfv (offset 154) */ + /* _mesa_function_pool[28289]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[27902]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[28301]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[27936]: InitNames (offset 197) */ + /* _mesa_function_pool[28335]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[27950]: Normal3sv (offset 61) */ + /* _mesa_function_pool[28349]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[27965]: Minmax (offset 368) */ + /* _mesa_function_pool[28364]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[27991]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[28390]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[28010]: DeformationMap3dSGIX (dynamic) */ - "iddiiddiiddiip\0" - "glDeformationMap3dSGIX\0" - "\0" - /* _mesa_function_pool[28049]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[28409]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[28068]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[28428]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[28100]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[28460]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[28122]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[28482]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[28152]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[28512]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[28172]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[28532]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[28190]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[28550]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[28227]: Hint (offset 158) */ + /* _mesa_function_pool[28587]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[28238]: Color4dv (offset 28) */ + /* _mesa_function_pool[28598]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[28252]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[28612]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[28295]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[28655]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[28324]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[28684]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[28379]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[28739]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[28429]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[28789]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[28447]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[28807]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[28498]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[28858]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[28545]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[28905]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[28569]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[28929]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[28600]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[28960]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[28615]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[28975]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[28650]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[29010]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[28667]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[29027]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[28687]: Begin (offset 7) */ + /* _mesa_function_pool[29047]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[28698]: LightModeli (offset 165) */ + /* _mesa_function_pool[29058]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[28716]: Rectfv (offset 89) */ + /* _mesa_function_pool[29076]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[28729]: LightModelf (offset 163) */ + /* _mesa_function_pool[29089]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[28747]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[29107]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[28772]: GetLightfv (offset 264) */ + /* _mesa_function_pool[29132]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[28790]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[29150]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[28826]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[29186]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[28852]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[29212]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[28875]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[29235]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[28914]: Disable (offset 214) */ + /* _mesa_function_pool[29274]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[28927]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[29287]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[28972]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[29332]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[29038]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[29398]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[29066]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[29426]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[29093]: DrawArrays (offset 310) */ + /* _mesa_function_pool[29453]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[29127]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[29487]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[29146]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[29506]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[29188]: ColorMask (offset 210) */ + /* _mesa_function_pool[29548]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[29206]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[29566]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[29231]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[29591]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[29250]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[29610]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[29280]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[29640]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[29313]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[29673]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[29335]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[29695]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[29353]: Enable (offset 215) */ + /* _mesa_function_pool[29713]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[29365]: LineStipple (offset 167) */ + /* _mesa_function_pool[29725]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[29383]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[29743]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[29409]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[29769]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[29439]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[29799]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[29466]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[29826]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[29520]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[29880]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[29563]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[29923]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[29596]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[29956]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[29622]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[29982]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[29637]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[29997]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[29668]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[30028]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[29689]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[30049]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[29719]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[30079]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[29759]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[30119]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[29796]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[30156]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[29820]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[30180]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[29845]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[30205]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[29866]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[30226]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4386,405 +4420,412 @@ static const struct { GLint remap_index; } MESA_remap_table_functions[] = { { 1461, AttachShader_remap_index }, - { 8794, CreateProgram_remap_index }, - { 20420, CreateShader_remap_index }, - { 22750, DeleteProgram_remap_index }, - { 16372, DeleteShader_remap_index }, - { 20866, DetachShader_remap_index }, - { 15896, GetAttachedShaders_remap_index }, + { 8848, CreateProgram_remap_index }, + { 20720, CreateShader_remap_index }, + { 23050, DeleteProgram_remap_index }, + { 16566, DeleteShader_remap_index }, + { 21166, DetachShader_remap_index }, + { 16090, GetAttachedShaders_remap_index }, { 4275, GetProgramInfoLog_remap_index }, { 361, GetProgramiv_remap_index }, { 5608, GetShaderInfoLog_remap_index }, - { 27772, GetShaderiv_remap_index }, - { 11879, IsProgram_remap_index }, - { 10914, IsShader_remap_index }, - { 8898, StencilFuncSeparate_remap_index }, + { 28171, GetShaderiv_remap_index }, + { 12054, IsProgram_remap_index }, + { 11089, IsShader_remap_index }, + { 8952, StencilFuncSeparate_remap_index }, { 3487, StencilMaskSeparate_remap_index }, { 6684, StencilOpSeparate_remap_index }, - { 19771, UniformMatrix2x3fv_remap_index }, + { 20045, UniformMatrix2x3fv_remap_index }, { 2615, UniformMatrix2x4fv_remap_index }, - { 29439, UniformMatrix3x2fv_remap_index }, - { 27198, UniformMatrix3x4fv_remap_index }, - { 14444, UniformMatrix4x2fv_remap_index }, + { 29799, UniformMatrix3x2fv_remap_index }, + { 27561, UniformMatrix3x4fv_remap_index }, + { 14638, UniformMatrix4x2fv_remap_index }, { 2937, UniformMatrix4x3fv_remap_index }, - { 8812, LoadTransposeMatrixdARB_remap_index }, - { 27501, LoadTransposeMatrixfARB_remap_index }, + { 8866, LoadTransposeMatrixdARB_remap_index }, + { 27900, LoadTransposeMatrixfARB_remap_index }, { 4848, MultTransposeMatrixdARB_remap_index }, - { 21053, MultTransposeMatrixfARB_remap_index }, + { 21353, MultTransposeMatrixfARB_remap_index }, { 172, SampleCoverageARB_remap_index }, { 5032, CompressedTexImage1DARB_remap_index }, - { 21553, CompressedTexImage2DARB_remap_index }, + { 21853, CompressedTexImage2DARB_remap_index }, { 3550, CompressedTexImage3DARB_remap_index }, - { 16188, CompressedTexSubImage1DARB_remap_index }, + { 16382, CompressedTexSubImage1DARB_remap_index }, { 1880, CompressedTexSubImage2DARB_remap_index }, - { 18008, CompressedTexSubImage3DARB_remap_index }, - { 25480, GetCompressedTexImageARB_remap_index }, + { 18243, CompressedTexSubImage3DARB_remap_index }, + { 25843, GetCompressedTexImageARB_remap_index }, { 3395, DisableVertexAttribArrayARB_remap_index }, - { 26810, EnableVertexAttribArrayARB_remap_index }, - { 28615, GetProgramEnvParameterdvARB_remap_index }, - { 20933, GetProgramEnvParameterfvARB_remap_index }, - { 24510, GetProgramLocalParameterdvARB_remap_index }, + { 27173, EnableVertexAttribArrayARB_remap_index }, + { 28975, GetProgramEnvParameterdvARB_remap_index }, + { 21233, GetProgramEnvParameterfvARB_remap_index }, + { 24844, GetProgramLocalParameterdvARB_remap_index }, { 7126, GetProgramLocalParameterfvARB_remap_index }, - { 16279, GetProgramStringARB_remap_index }, - { 24705, GetProgramivARB_remap_index }, - { 18203, GetVertexAttribdvARB_remap_index }, - { 14333, GetVertexAttribfvARB_remap_index }, - { 8707, GetVertexAttribivARB_remap_index }, - { 17084, ProgramEnvParameter4dARB_remap_index }, - { 22523, ProgramEnvParameter4dvARB_remap_index }, - { 14941, ProgramEnvParameter4fARB_remap_index }, + { 16473, GetProgramStringARB_remap_index }, + { 25039, GetProgramivARB_remap_index }, + { 18438, GetVertexAttribdvARB_remap_index }, + { 14527, GetVertexAttribfvARB_remap_index }, + { 8761, GetVertexAttribivARB_remap_index }, + { 17319, ProgramEnvParameter4dARB_remap_index }, + { 22823, ProgramEnvParameter4dvARB_remap_index }, + { 15135, ProgramEnvParameter4fARB_remap_index }, { 7989, ProgramEnvParameter4fvARB_remap_index }, { 3513, ProgramLocalParameter4dARB_remap_index }, - { 11589, ProgramLocalParameter4dvARB_remap_index }, - { 26289, ProgramLocalParameter4fARB_remap_index }, - { 23068, ProgramLocalParameter4fvARB_remap_index }, - { 25266, ProgramStringARB_remap_index }, - { 17334, VertexAttrib1dARB_remap_index }, - { 13987, VertexAttrib1dvARB_remap_index }, + { 11764, ProgramLocalParameter4dvARB_remap_index }, + { 26652, ProgramLocalParameter4fARB_remap_index }, + { 23368, ProgramLocalParameter4fvARB_remap_index }, + { 25629, ProgramStringARB_remap_index }, + { 17569, VertexAttrib1dARB_remap_index }, + { 14181, VertexAttrib1dvARB_remap_index }, { 3688, VertexAttrib1fARB_remap_index }, - { 29520, VertexAttrib1fvARB_remap_index }, + { 29880, VertexAttrib1fvARB_remap_index }, { 6210, VertexAttrib1sARB_remap_index }, { 2054, VertexAttrib1svARB_remap_index }, - { 13418, VertexAttrib2dARB_remap_index }, - { 15515, VertexAttrib2dvARB_remap_index }, + { 13612, VertexAttrib2dARB_remap_index }, + { 15709, VertexAttrib2dvARB_remap_index }, { 1480, VertexAttrib2fARB_remap_index }, - { 15628, VertexAttrib2fvARB_remap_index }, - { 29146, VertexAttrib2sARB_remap_index }, - { 28252, VertexAttrib2svARB_remap_index }, - { 10045, VertexAttrib3dARB_remap_index }, + { 15822, VertexAttrib2fvARB_remap_index }, + { 29506, VertexAttrib2sARB_remap_index }, + { 28612, VertexAttrib2svARB_remap_index }, + { 10135, VertexAttrib3dARB_remap_index }, { 7692, VertexAttrib3dvARB_remap_index }, { 1567, VertexAttrib3fARB_remap_index }, - { 20008, VertexAttrib3fvARB_remap_index }, - { 25138, VertexAttrib3sARB_remap_index }, - { 17945, VertexAttrib3svARB_remap_index }, + { 20308, VertexAttrib3fvARB_remap_index }, + { 25472, VertexAttrib3sARB_remap_index }, + { 18180, VertexAttrib3svARB_remap_index }, { 4301, VertexAttrib4NbvARB_remap_index }, - { 15851, VertexAttrib4NivARB_remap_index }, - { 19963, VertexAttrib4NsvARB_remap_index }, - { 20885, VertexAttrib4NubARB_remap_index }, - { 28498, VertexAttrib4NubvARB_remap_index }, - { 16745, VertexAttrib4NuivARB_remap_index }, + { 16045, VertexAttrib4NivARB_remap_index }, + { 20263, VertexAttrib4NsvARB_remap_index }, + { 21185, VertexAttrib4NubARB_remap_index }, + { 28858, VertexAttrib4NubvARB_remap_index }, + { 16980, VertexAttrib4NuivARB_remap_index }, { 2810, VertexAttrib4NusvARB_remap_index }, - { 9639, VertexAttrib4bvARB_remap_index }, - { 23918, VertexAttrib4dARB_remap_index }, - { 18928, VertexAttrib4dvARB_remap_index }, - { 10152, VertexAttrib4fARB_remap_index }, - { 10556, VertexAttrib4fvARB_remap_index }, - { 9091, VertexAttrib4ivARB_remap_index }, - { 15329, VertexAttrib4sARB_remap_index }, - { 27687, VertexAttrib4svARB_remap_index }, - { 14746, VertexAttrib4ubvARB_remap_index }, - { 27134, VertexAttrib4uivARB_remap_index }, - { 17756, VertexAttrib4usvARB_remap_index }, - { 19645, VertexAttribPointerARB_remap_index }, - { 29280, BindBufferARB_remap_index }, + { 9729, VertexAttrib4bvARB_remap_index }, + { 24252, VertexAttrib4dARB_remap_index }, + { 19202, VertexAttrib4dvARB_remap_index }, + { 10242, VertexAttrib4fARB_remap_index }, + { 10646, VertexAttrib4fvARB_remap_index }, + { 9145, VertexAttrib4ivARB_remap_index }, + { 15523, VertexAttrib4sARB_remap_index }, + { 28086, VertexAttrib4svARB_remap_index }, + { 14940, VertexAttrib4ubvARB_remap_index }, + { 27497, VertexAttrib4uivARB_remap_index }, + { 17991, VertexAttrib4usvARB_remap_index }, + { 19919, VertexAttribPointerARB_remap_index }, + { 29640, BindBufferARB_remap_index }, { 5923, BufferDataARB_remap_index }, { 1382, BufferSubDataARB_remap_index }, - { 27323, DeleteBuffersARB_remap_index }, - { 29563, GenBuffersARB_remap_index }, - { 15671, GetBufferParameterivARB_remap_index }, - { 14893, GetBufferPointervARB_remap_index }, + { 27686, DeleteBuffersARB_remap_index }, + { 29923, GenBuffersARB_remap_index }, + { 15865, GetBufferParameterivARB_remap_index }, + { 15087, GetBufferPointervARB_remap_index }, { 1335, GetBufferSubDataARB_remap_index }, - { 27082, IsBufferARB_remap_index }, - { 23523, MapBufferARB_remap_index }, - { 27902, UnmapBufferARB_remap_index }, + { 27445, IsBufferARB_remap_index }, + { 23825, MapBufferARB_remap_index }, + { 28301, UnmapBufferARB_remap_index }, { 268, BeginQueryARB_remap_index }, - { 17429, DeleteQueriesARB_remap_index }, - { 10850, EndQueryARB_remap_index }, - { 25959, GenQueriesARB_remap_index }, + { 17664, DeleteQueriesARB_remap_index }, + { 10940, EndQueryARB_remap_index }, + { 26322, GenQueriesARB_remap_index }, { 1772, GetQueryObjectivARB_remap_index }, - { 15373, GetQueryObjectuivARB_remap_index }, + { 15567, GetQueryObjectuivARB_remap_index }, { 1624, GetQueryivARB_remap_index }, - { 17663, IsQueryARB_remap_index }, + { 17898, IsQueryARB_remap_index }, { 7302, AttachObjectARB_remap_index }, - { 16334, CompileShaderARB_remap_index }, + { 16528, CompileShaderARB_remap_index }, { 2879, CreateProgramObjectARB_remap_index }, { 5868, CreateShaderObjectARB_remap_index }, - { 12835, DeleteObjectARB_remap_index }, - { 21327, DetachObjectARB_remap_index }, - { 10628, GetActiveUniformARB_remap_index }, - { 8410, GetAttachedObjectsARB_remap_index }, - { 8689, GetHandleARB_remap_index }, - { 29313, GetInfoLogARB_remap_index }, - { 28569, GetObjectParameterfvARB_remap_index }, - { 24384, GetObjectParameterivARB_remap_index }, - { 25717, GetShaderSourceARB_remap_index }, - { 24998, GetUniformLocationARB_remap_index }, - { 21155, GetUniformfvARB_remap_index }, - { 11211, GetUniformivARB_remap_index }, - { 17801, LinkProgramARB_remap_index }, - { 17859, ShaderSourceARB_remap_index }, + { 13029, DeleteObjectARB_remap_index }, + { 21627, DetachObjectARB_remap_index }, + { 10718, GetActiveUniformARB_remap_index }, + { 8464, GetAttachedObjectsARB_remap_index }, + { 8743, GetHandleARB_remap_index }, + { 29673, GetInfoLogARB_remap_index }, + { 28929, GetObjectParameterfvARB_remap_index }, + { 24718, GetObjectParameterivARB_remap_index }, + { 26080, GetShaderSourceARB_remap_index }, + { 25332, GetUniformLocationARB_remap_index }, + { 21455, GetUniformfvARB_remap_index }, + { 11386, GetUniformivARB_remap_index }, + { 18036, LinkProgramARB_remap_index }, + { 18094, ShaderSourceARB_remap_index }, { 6584, Uniform1fARB_remap_index }, - { 26498, Uniform1fvARB_remap_index }, - { 19614, Uniform1iARB_remap_index }, - { 18617, Uniform1ivARB_remap_index }, + { 26861, Uniform1fvARB_remap_index }, + { 19888, Uniform1iARB_remap_index }, + { 18891, Uniform1ivARB_remap_index }, { 2003, Uniform2fARB_remap_index }, - { 12671, Uniform2fvARB_remap_index }, - { 23410, Uniform2iARB_remap_index }, + { 12865, Uniform2fvARB_remap_index }, + { 23712, Uniform2iARB_remap_index }, { 2123, Uniform2ivARB_remap_index }, - { 16444, Uniform3fARB_remap_index }, - { 8440, Uniform3fvARB_remap_index }, + { 16638, Uniform3fARB_remap_index }, + { 8494, Uniform3fvARB_remap_index }, { 5542, Uniform3iARB_remap_index }, - { 14999, Uniform3ivARB_remap_index }, - { 16890, Uniform4fARB_remap_index }, - { 21019, Uniform4fvARB_remap_index }, - { 22202, Uniform4iARB_remap_index }, - { 18169, Uniform4ivARB_remap_index }, + { 15193, Uniform3ivARB_remap_index }, + { 17125, Uniform4fARB_remap_index }, + { 21319, Uniform4fvARB_remap_index }, + { 22502, Uniform4iARB_remap_index }, + { 18404, Uniform4ivARB_remap_index }, { 7354, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, { 2475, UniformMatrix4fvARB_remap_index }, - { 22635, UseProgramObjectARB_remap_index }, - { 13106, ValidateProgramARB_remap_index }, - { 18971, BindAttribLocationARB_remap_index }, + { 22935, UseProgramObjectARB_remap_index }, + { 13300, ValidateProgramARB_remap_index }, + { 19245, BindAttribLocationARB_remap_index }, { 4346, GetActiveAttribARB_remap_index }, - { 14680, GetAttribLocationARB_remap_index }, - { 26237, DrawBuffersARB_remap_index }, - { 11694, RenderbufferStorageMultisample_remap_index }, - { 16938, FlushMappedBufferRange_remap_index }, - { 24801, MapBufferRange_remap_index }, - { 14555, BindVertexArray_remap_index }, - { 12965, GenVertexArrays_remap_index }, - { 27012, CopyBufferSubData_remap_index }, - { 27791, ClientWaitSync_remap_index }, + { 14874, GetAttribLocationARB_remap_index }, + { 26600, DrawBuffersARB_remap_index }, + { 11869, RenderbufferStorageMultisample_remap_index }, + { 17173, FlushMappedBufferRange_remap_index }, + { 25135, MapBufferRange_remap_index }, + { 14749, BindVertexArray_remap_index }, + { 13159, GenVertexArrays_remap_index }, + { 27375, CopyBufferSubData_remap_index }, + { 28190, ClientWaitSync_remap_index }, { 2394, DeleteSync_remap_index }, { 6251, FenceSync_remap_index }, - { 13477, GetInteger64v_remap_index }, - { 20070, GetSynciv_remap_index }, - { 26176, IsSync_remap_index }, - { 8358, WaitSync_remap_index }, + { 13671, GetInteger64v_remap_index }, + { 20370, GetSynciv_remap_index }, + { 26539, IsSync_remap_index }, + { 8412, WaitSync_remap_index }, { 3363, DrawElementsBaseVertex_remap_index }, - { 27255, DrawRangeElementsBaseVertex_remap_index }, - { 23554, MultiDrawElementsBaseVertex_remap_index }, + { 27618, DrawRangeElementsBaseVertex_remap_index }, + { 23856, MultiDrawElementsBaseVertex_remap_index }, { 4711, PolygonOffsetEXT_remap_index }, - { 20655, GetPixelTexGenParameterfvSGIS_remap_index }, + { 20955, GetPixelTexGenParameterfvSGIS_remap_index }, { 3895, GetPixelTexGenParameterivSGIS_remap_index }, - { 20388, PixelTexGenParameterfSGIS_remap_index }, + { 20688, PixelTexGenParameterfSGIS_remap_index }, { 580, PixelTexGenParameterfvSGIS_remap_index }, - { 11249, PixelTexGenParameteriSGIS_remap_index }, - { 12242, PixelTexGenParameterivSGIS_remap_index }, - { 14643, SampleMaskSGIS_remap_index }, - { 17603, SamplePatternSGIS_remap_index }, - { 23483, ColorPointerEXT_remap_index }, - { 15558, EdgeFlagPointerEXT_remap_index }, + { 11424, PixelTexGenParameteriSGIS_remap_index }, + { 12385, PixelTexGenParameterivSGIS_remap_index }, + { 14837, SampleMaskSGIS_remap_index }, + { 17838, SamplePatternSGIS_remap_index }, + { 23785, ColorPointerEXT_remap_index }, + { 15752, EdgeFlagPointerEXT_remap_index }, { 5196, IndexPointerEXT_remap_index }, { 5276, NormalPointerEXT_remap_index }, - { 14071, TexCoordPointerEXT_remap_index }, + { 14265, TexCoordPointerEXT_remap_index }, { 6046, VertexPointerEXT_remap_index }, { 3165, PointParameterfEXT_remap_index }, { 6891, PointParameterfvEXT_remap_index }, - { 28667, LockArraysEXT_remap_index }, - { 13170, UnlockArraysEXT_remap_index }, + { 29027, LockArraysEXT_remap_index }, + { 13364, UnlockArraysEXT_remap_index }, { 7898, CullParameterdvEXT_remap_index }, - { 10423, CullParameterfvEXT_remap_index }, + { 10513, CullParameterfvEXT_remap_index }, { 1151, SecondaryColor3bEXT_remap_index }, { 7050, SecondaryColor3bvEXT_remap_index }, - { 9268, SecondaryColor3dEXT_remap_index }, - { 22808, SecondaryColor3dvEXT_remap_index }, - { 25047, SecondaryColor3fEXT_remap_index }, - { 16124, SecondaryColor3fvEXT_remap_index }, + { 9322, SecondaryColor3dEXT_remap_index }, + { 23108, SecondaryColor3dvEXT_remap_index }, + { 25381, SecondaryColor3fEXT_remap_index }, + { 16318, SecondaryColor3fvEXT_remap_index }, { 426, SecondaryColor3iEXT_remap_index }, - { 14381, SecondaryColor3ivEXT_remap_index }, - { 8926, SecondaryColor3sEXT_remap_index }, - { 27455, SecondaryColor3svEXT_remap_index }, - { 24220, SecondaryColor3ubEXT_remap_index }, - { 18862, SecondaryColor3ubvEXT_remap_index }, - { 11444, SecondaryColor3uiEXT_remap_index }, - { 20275, SecondaryColor3uivEXT_remap_index }, - { 23020, SecondaryColor3usEXT_remap_index }, - { 11517, SecondaryColor3usvEXT_remap_index }, - { 10499, SecondaryColorPointerEXT_remap_index }, - { 22869, MultiDrawArraysEXT_remap_index }, - { 18552, MultiDrawElementsEXT_remap_index }, - { 18747, FogCoordPointerEXT_remap_index }, + { 14575, SecondaryColor3ivEXT_remap_index }, + { 8980, SecondaryColor3sEXT_remap_index }, + { 27854, SecondaryColor3svEXT_remap_index }, + { 24554, SecondaryColor3ubEXT_remap_index }, + { 19136, SecondaryColor3ubvEXT_remap_index }, + { 11619, SecondaryColor3uiEXT_remap_index }, + { 20575, SecondaryColor3uivEXT_remap_index }, + { 23320, SecondaryColor3usEXT_remap_index }, + { 11692, SecondaryColor3usvEXT_remap_index }, + { 10589, SecondaryColorPointerEXT_remap_index }, + { 23169, MultiDrawArraysEXT_remap_index }, + { 18826, MultiDrawElementsEXT_remap_index }, + { 19021, FogCoordPointerEXT_remap_index }, { 4044, FogCoorddEXT_remap_index }, - { 28068, FogCoorddvEXT_remap_index }, + { 28428, FogCoorddvEXT_remap_index }, { 4136, FogCoordfEXT_remap_index }, - { 24143, FogCoordfvEXT_remap_index }, - { 16842, PixelTexGenSGIX_remap_index }, - { 24728, BlendFuncSeparateEXT_remap_index }, + { 24477, FogCoordfvEXT_remap_index }, + { 17077, PixelTexGenSGIX_remap_index }, + { 25062, BlendFuncSeparateEXT_remap_index }, { 5958, FlushVertexArrayRangeNV_remap_index }, { 4660, VertexArrayRangeNV_remap_index }, - { 25112, CombinerInputNV_remap_index }, + { 25446, CombinerInputNV_remap_index }, { 1946, CombinerOutputNV_remap_index }, - { 27608, CombinerParameterfNV_remap_index }, + { 28007, CombinerParameterfNV_remap_index }, { 4580, CombinerParameterfvNV_remap_index }, - { 19820, CombinerParameteriNV_remap_index }, - { 29038, CombinerParameterivNV_remap_index }, + { 20094, CombinerParameteriNV_remap_index }, + { 29398, CombinerParameterivNV_remap_index }, { 6328, FinalCombinerInputNV_remap_index }, - { 8755, GetCombinerInputParameterfvNV_remap_index }, - { 28875, GetCombinerInputParameterivNV_remap_index }, + { 8809, GetCombinerInputParameterfvNV_remap_index }, + { 29235, GetCombinerInputParameterivNV_remap_index }, { 6127, GetCombinerOutputParameterfvNV_remap_index }, - { 12171, GetCombinerOutputParameterivNV_remap_index }, + { 12346, GetCombinerOutputParameterivNV_remap_index }, { 5703, GetFinalCombinerInputParameterfvNV_remap_index }, - { 22074, GetFinalCombinerInputParameterivNV_remap_index }, - { 11189, ResizeBuffersMESA_remap_index }, - { 9872, WindowPos2dMESA_remap_index }, + { 22374, GetFinalCombinerInputParameterivNV_remap_index }, + { 11364, ResizeBuffersMESA_remap_index }, + { 9962, WindowPos2dMESA_remap_index }, { 944, WindowPos2dvMESA_remap_index }, - { 29866, WindowPos2fMESA_remap_index }, + { 30226, WindowPos2fMESA_remap_index }, { 6995, WindowPos2fvMESA_remap_index }, - { 16071, WindowPos2iMESA_remap_index }, - { 18076, WindowPos2ivMESA_remap_index }, - { 18651, WindowPos2sMESA_remap_index }, + { 16265, WindowPos2iMESA_remap_index }, + { 18311, WindowPos2ivMESA_remap_index }, + { 18925, WindowPos2sMESA_remap_index }, { 4946, WindowPos2svMESA_remap_index }, { 6820, WindowPos3dMESA_remap_index }, - { 12450, WindowPos3dvMESA_remap_index }, + { 12593, WindowPos3dvMESA_remap_index }, { 472, WindowPos3fMESA_remap_index }, - { 13231, WindowPos3fvMESA_remap_index }, - { 21369, WindowPos3iMESA_remap_index }, - { 26957, WindowPos3ivMESA_remap_index }, - { 16588, WindowPos3sMESA_remap_index }, - { 28324, WindowPos3svMESA_remap_index }, - { 9823, WindowPos4dMESA_remap_index }, - { 15084, WindowPos4dvMESA_remap_index }, - { 12409, WindowPos4fMESA_remap_index }, - { 27362, WindowPos4fvMESA_remap_index }, - { 27110, WindowPos4iMESA_remap_index }, - { 11028, WindowPos4ivMESA_remap_index }, - { 16721, WindowPos4sMESA_remap_index }, + { 13425, WindowPos3fvMESA_remap_index }, + { 21669, WindowPos3iMESA_remap_index }, + { 27320, WindowPos3ivMESA_remap_index }, + { 16783, WindowPos3sMESA_remap_index }, + { 28684, WindowPos3svMESA_remap_index }, + { 9913, WindowPos4dMESA_remap_index }, + { 15278, WindowPos4dvMESA_remap_index }, + { 12552, WindowPos4fMESA_remap_index }, + { 27761, WindowPos4fvMESA_remap_index }, + { 27473, WindowPos4iMESA_remap_index }, + { 11203, WindowPos4ivMESA_remap_index }, + { 16956, WindowPos4sMESA_remap_index }, { 2857, WindowPos4svMESA_remap_index }, - { 12210, MultiModeDrawArraysIBM_remap_index }, - { 25830, MultiModeDrawElementsIBM_remap_index }, - { 10878, DeleteFencesNV_remap_index }, - { 24959, FinishFenceNV_remap_index }, + { 24220, MultiModeDrawArraysIBM_remap_index }, + { 26193, MultiModeDrawElementsIBM_remap_index }, + { 10968, DeleteFencesNV_remap_index }, + { 25293, FinishFenceNV_remap_index }, { 3287, GenFencesNV_remap_index }, - { 15064, GetFenceivNV_remap_index }, + { 15258, GetFenceivNV_remap_index }, { 7287, IsFenceNV_remap_index }, - { 12098, SetFenceNV_remap_index }, + { 12273, SetFenceNV_remap_index }, { 3744, TestFenceNV_remap_index }, - { 28295, AreProgramsResidentNV_remap_index }, - { 27650, BindProgramNV_remap_index }, - { 23103, DeleteProgramsNV_remap_index }, - { 19080, ExecuteProgramNV_remap_index }, - { 29759, GenProgramsNV_remap_index }, - { 20734, GetProgramParameterdvNV_remap_index }, - { 9330, GetProgramParameterfvNV_remap_index }, - { 23457, GetProgramStringNV_remap_index }, - { 21763, GetProgramivNV_remap_index }, - { 20968, GetTrackMatrixivNV_remap_index }, - { 23253, GetVertexAttribPointervNV_remap_index }, - { 22007, GetVertexAttribdvNV_remap_index }, - { 16561, GetVertexAttribfvNV_remap_index }, - { 16252, GetVertexAttribivNV_remap_index }, - { 16968, IsProgramNV_remap_index }, - { 8336, LoadProgramNV_remap_index }, - { 24824, ProgramParameters4dvNV_remap_index }, - { 21693, ProgramParameters4fvNV_remap_index }, - { 18380, RequestResidentProgramsNV_remap_index }, - { 19798, TrackMatrixNV_remap_index }, - { 28852, VertexAttrib1dNV_remap_index }, - { 12039, VertexAttrib1dvNV_remap_index }, - { 25362, VertexAttrib1fNV_remap_index }, + { 28655, AreProgramsResidentNV_remap_index }, + { 28049, BindProgramNV_remap_index }, + { 23403, DeleteProgramsNV_remap_index }, + { 19354, ExecuteProgramNV_remap_index }, + { 30119, GenProgramsNV_remap_index }, + { 21034, GetProgramParameterdvNV_remap_index }, + { 9384, GetProgramParameterfvNV_remap_index }, + { 23759, GetProgramStringNV_remap_index }, + { 22063, GetProgramivNV_remap_index }, + { 21268, GetTrackMatrixivNV_remap_index }, + { 23553, GetVertexAttribPointervNV_remap_index }, + { 22307, GetVertexAttribdvNV_remap_index }, + { 8307, GetVertexAttribfvNV_remap_index }, + { 16446, GetVertexAttribivNV_remap_index }, + { 17203, IsProgramNV_remap_index }, + { 8390, LoadProgramNV_remap_index }, + { 25158, ProgramParameters4dvNV_remap_index }, + { 21993, ProgramParameters4fvNV_remap_index }, + { 18615, RequestResidentProgramsNV_remap_index }, + { 20072, TrackMatrixNV_remap_index }, + { 29212, VertexAttrib1dNV_remap_index }, + { 12214, VertexAttrib1dvNV_remap_index }, + { 25725, VertexAttrib1fNV_remap_index }, { 2245, VertexAttrib1fvNV_remap_index }, - { 27419, VertexAttrib1sNV_remap_index }, - { 13304, VertexAttrib1svNV_remap_index }, + { 27818, VertexAttrib1sNV_remap_index }, + { 13498, VertexAttrib1svNV_remap_index }, { 4251, VertexAttrib2dNV_remap_index }, - { 11954, VertexAttrib2dvNV_remap_index }, - { 17835, VertexAttrib2fNV_remap_index }, - { 11565, VertexAttrib2fvNV_remap_index }, + { 12129, VertexAttrib2dvNV_remap_index }, + { 18070, VertexAttrib2fNV_remap_index }, + { 11740, VertexAttrib2fvNV_remap_index }, { 5106, VertexAttrib2sNV_remap_index }, - { 16642, VertexAttrib2svNV_remap_index }, - { 10020, VertexAttrib3dNV_remap_index }, - { 28545, VertexAttrib3dvNV_remap_index }, - { 9142, VertexAttrib3fNV_remap_index }, - { 22034, VertexAttrib3fvNV_remap_index }, - { 25337, VertexAttrib3sNV_remap_index }, - { 20995, VertexAttrib3svNV_remap_index }, - { 25804, VertexAttrib4dNV_remap_index }, - { 29796, VertexAttrib4dvNV_remap_index }, + { 16837, VertexAttrib2svNV_remap_index }, + { 10110, VertexAttrib3dNV_remap_index }, + { 28905, VertexAttrib3dvNV_remap_index }, + { 9196, VertexAttrib3fNV_remap_index }, + { 22334, VertexAttrib3fvNV_remap_index }, + { 25700, VertexAttrib3sNV_remap_index }, + { 21295, VertexAttrib3svNV_remap_index }, + { 26167, VertexAttrib4dNV_remap_index }, + { 30156, VertexAttrib4dvNV_remap_index }, { 3945, VertexAttrib4fNV_remap_index }, - { 8386, VertexAttrib4fvNV_remap_index }, - { 23802, VertexAttrib4sNV_remap_index }, + { 8440, VertexAttrib4fvNV_remap_index }, + { 24104, VertexAttrib4sNV_remap_index }, { 1293, VertexAttrib4svNV_remap_index }, { 4409, VertexAttrib4ubNV_remap_index }, { 734, VertexAttrib4ubvNV_remap_index }, - { 19260, VertexAttribPointerNV_remap_index }, + { 19534, VertexAttribPointerNV_remap_index }, { 2097, VertexAttribs1dvNV_remap_index }, - { 16666, VertexAttribs1fvNV_remap_index }, - { 29596, VertexAttribs1svNV_remap_index }, - { 9167, VertexAttribs2dvNV_remap_index }, - { 22596, VertexAttribs2fvNV_remap_index }, - { 15584, VertexAttribs2svNV_remap_index }, + { 23641, VertexAttribs1fvNV_remap_index }, + { 29956, VertexAttribs1svNV_remap_index }, + { 9221, VertexAttribs2dvNV_remap_index }, + { 22896, VertexAttribs2fvNV_remap_index }, + { 15778, VertexAttribs2svNV_remap_index }, { 4608, VertexAttribs3dvNV_remap_index }, { 1977, VertexAttribs3fvNV_remap_index }, - { 26705, VertexAttribs3svNV_remap_index }, - { 23892, VertexAttribs4dvNV_remap_index }, + { 27068, VertexAttribs3svNV_remap_index }, + { 24194, VertexAttribs4dvNV_remap_index }, { 4634, VertexAttribs4fvNV_remap_index }, - { 29383, VertexAttribs4svNV_remap_index }, - { 26453, VertexAttribs4ubvNV_remap_index }, - { 23962, GetTexBumpParameterfvATI_remap_index }, - { 29637, GetTexBumpParameterivATI_remap_index }, - { 16306, TexBumpParameterfvATI_remap_index }, - { 18251, TexBumpParameterivATI_remap_index }, - { 13850, AlphaFragmentOp1ATI_remap_index }, - { 9682, AlphaFragmentOp2ATI_remap_index }, - { 21950, AlphaFragmentOp3ATI_remap_index }, - { 26632, BeginFragmentShaderATI_remap_index }, - { 27849, BindFragmentShaderATI_remap_index }, - { 21124, ColorFragmentOp1ATI_remap_index }, + { 29743, VertexAttribs4svNV_remap_index }, + { 26816, VertexAttribs4ubvNV_remap_index }, + { 24296, GetTexBumpParameterfvATI_remap_index }, + { 29997, GetTexBumpParameterivATI_remap_index }, + { 16500, TexBumpParameterfvATI_remap_index }, + { 18486, TexBumpParameterivATI_remap_index }, + { 14044, AlphaFragmentOp1ATI_remap_index }, + { 9772, AlphaFragmentOp2ATI_remap_index }, + { 22250, AlphaFragmentOp3ATI_remap_index }, + { 26995, BeginFragmentShaderATI_remap_index }, + { 28248, BindFragmentShaderATI_remap_index }, + { 21424, ColorFragmentOp1ATI_remap_index }, { 3823, ColorFragmentOp2ATI_remap_index }, - { 28190, ColorFragmentOp3ATI_remap_index }, + { 28550, ColorFragmentOp3ATI_remap_index }, { 4753, DeleteFragmentShaderATI_remap_index }, - { 29820, EndFragmentShaderATI_remap_index }, - { 29066, GenFragmentShadersATI_remap_index }, - { 22727, PassTexCoordATI_remap_index }, + { 30180, EndFragmentShaderATI_remap_index }, + { 29426, GenFragmentShadersATI_remap_index }, + { 23027, PassTexCoordATI_remap_index }, { 6026, SampleMapATI_remap_index }, { 5799, SetFragmentShaderConstantATI_remap_index }, { 319, PointParameteriNV_remap_index }, - { 12611, PointParameterivNV_remap_index }, - { 25643, ActiveStencilFaceEXT_remap_index }, - { 24484, BindVertexArrayAPPLE_remap_index }, + { 12754, PointParameterivNV_remap_index }, + { 26006, ActiveStencilFaceEXT_remap_index }, + { 24818, BindVertexArrayAPPLE_remap_index }, { 2522, DeleteVertexArraysAPPLE_remap_index }, - { 15923, GenVertexArraysAPPLE_remap_index }, - { 20799, IsVertexArrayAPPLE_remap_index }, + { 16117, GenVertexArraysAPPLE_remap_index }, + { 21099, IsVertexArrayAPPLE_remap_index }, { 775, GetProgramNamedParameterdvNV_remap_index }, { 3128, GetProgramNamedParameterfvNV_remap_index }, - { 23993, ProgramNamedParameter4dNV_remap_index }, - { 12886, ProgramNamedParameter4dvNV_remap_index }, + { 24327, ProgramNamedParameter4dNV_remap_index }, + { 13080, ProgramNamedParameter4dvNV_remap_index }, { 7923, ProgramNamedParameter4fNV_remap_index }, - { 10464, ProgramNamedParameter4fvNV_remap_index }, - { 21672, DepthBoundsEXT_remap_index }, + { 10554, ProgramNamedParameter4fvNV_remap_index }, + { 21972, DepthBoundsEXT_remap_index }, { 1043, BlendEquationSeparateEXT_remap_index }, - { 13005, BindFramebufferEXT_remap_index }, - { 22914, BindRenderbufferEXT_remap_index }, - { 8605, CheckFramebufferStatusEXT_remap_index }, - { 20089, DeleteFramebuffersEXT_remap_index }, - { 28447, DeleteRenderbuffersEXT_remap_index }, - { 11978, FramebufferRenderbufferEXT_remap_index }, - { 12115, FramebufferTexture1DEXT_remap_index }, - { 10258, FramebufferTexture2DEXT_remap_index }, - { 9925, FramebufferTexture3DEXT_remap_index }, - { 20691, GenFramebuffersEXT_remap_index }, - { 15470, GenRenderbuffersEXT_remap_index }, + { 13199, BindFramebufferEXT_remap_index }, + { 23214, BindRenderbufferEXT_remap_index }, + { 8659, CheckFramebufferStatusEXT_remap_index }, + { 20389, DeleteFramebuffersEXT_remap_index }, + { 28807, DeleteRenderbuffersEXT_remap_index }, + { 12153, FramebufferRenderbufferEXT_remap_index }, + { 12290, FramebufferTexture1DEXT_remap_index }, + { 10348, FramebufferTexture2DEXT_remap_index }, + { 10015, FramebufferTexture3DEXT_remap_index }, + { 20991, GenFramebuffersEXT_remap_index }, + { 15664, GenRenderbuffersEXT_remap_index }, { 5745, GenerateMipmapEXT_remap_index }, - { 19320, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 28972, GetRenderbufferParameterivEXT_remap_index }, - { 18131, IsFramebufferEXT_remap_index }, - { 29719, IsRenderbufferEXT_remap_index }, + { 19594, GetFramebufferAttachmentParameterivEXT_remap_index }, + { 29332, GetRenderbufferParameterivEXT_remap_index }, + { 18366, IsFramebufferEXT_remap_index }, + { 30079, IsRenderbufferEXT_remap_index }, { 7234, RenderbufferStorageEXT_remap_index }, { 651, BlitFramebufferEXT_remap_index }, - { 12705, BufferParameteriAPPLE_remap_index }, - { 17000, FlushMappedBufferRangeAPPLE_remap_index }, + { 12899, BufferParameteriAPPLE_remap_index }, + { 17235, FlushMappedBufferRangeAPPLE_remap_index }, { 2701, FramebufferTextureLayerEXT_remap_index }, - { 8307, ColorMaskIndexedEXT_remap_index }, - { 23341, DisableIndexedEXT_remap_index }, - { 23649, EnableIndexedEXT_remap_index }, - { 19291, GetBooleanIndexedvEXT_remap_index }, - { 9715, GetIntegerIndexedvEXT_remap_index }, - { 20165, IsEnabledIndexedEXT_remap_index }, + { 25515, ColorMaskIndexedEXT_remap_index }, + { 16861, DisableIndexedEXT_remap_index }, + { 23951, EnableIndexedEXT_remap_index }, + { 19565, GetBooleanIndexedvEXT_remap_index }, + { 9805, GetIntegerIndexedvEXT_remap_index }, + { 20465, IsEnabledIndexedEXT_remap_index }, { 4074, BeginConditionalRenderNV_remap_index }, - { 22700, EndConditionalRenderNV_remap_index }, - { 26354, ProvokingVertexEXT_remap_index }, - { 9551, GetTexParameterPointervAPPLE_remap_index }, + { 23000, EndConditionalRenderNV_remap_index }, + { 8334, BeginTransformFeedbackEXT_remap_index }, + { 16885, BindBufferBaseEXT_remap_index }, + { 16755, BindBufferOffsetEXT_remap_index }, + { 11028, BindBufferRangeEXT_remap_index }, + { 12814, EndTransformFeedbackEXT_remap_index }, + { 9657, GetTransformFeedbackVaryingEXT_remap_index }, + { 18671, TransformFeedbackVaryingsEXT_remap_index }, + { 26717, ProvokingVertexEXT_remap_index }, + { 9605, GetTexParameterPointervAPPLE_remap_index }, { 4436, TextureRangeAPPLE_remap_index }, - { 10330, GetObjectParameterivAPPLE_remap_index }, - { 17575, ObjectPurgeableAPPLE_remap_index }, + { 10420, GetObjectParameterivAPPLE_remap_index }, + { 17810, ObjectPurgeableAPPLE_remap_index }, { 4900, ObjectUnpurgeableAPPLE_remap_index }, - { 25669, StencilFuncSeparateATI_remap_index }, - { 15990, ProgramEnvParameters4fvEXT_remap_index }, - { 15208, ProgramLocalParameters4fvEXT_remap_index }, - { 12539, GetQueryObjecti64vEXT_remap_index }, - { 9193, GetQueryObjectui64vEXT_remap_index }, - { 21193, EGLImageTargetRenderbufferStorageOES_remap_index }, - { 10817, EGLImageTargetTexture2DOES_remap_index }, + { 26032, StencilFuncSeparateATI_remap_index }, + { 16184, ProgramEnvParameters4fvEXT_remap_index }, + { 15402, ProgramLocalParameters4fvEXT_remap_index }, + { 12682, GetQueryObjecti64vEXT_remap_index }, + { 9247, GetQueryObjectui64vEXT_remap_index }, + { 21493, EGLImageTargetRenderbufferStorageOES_remap_index }, + { 10907, EGLImageTargetTexture2DOES_remap_index }, { -1, -1 } }; @@ -4793,10 +4834,10 @@ static const struct gl_function_remap MESA_alt_functions[] = { /* from GL_EXT_blend_color */ { 2440, _gloffset_BlendColor }, /* from GL_EXT_blend_minmax */ - { 9982, _gloffset_BlendEquation }, + { 10072, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 15106, _gloffset_ColorSubTable }, - { 28379, _gloffset_CopyColorSubTable }, + { 15300, _gloffset_ColorSubTable }, + { 28739, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ { 213, _gloffset_ConvolutionFilter1D }, { 2284, _gloffset_CopyConvolutionFilter1D }, @@ -4804,62 +4845,62 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 7583, _gloffset_ConvolutionFilter2D }, { 7749, _gloffset_ConvolutionParameteriv }, { 8209, _gloffset_ConvolutionParameterfv }, - { 18279, _gloffset_GetSeparableFilter }, - { 21423, _gloffset_SeparableFilter2D }, - { 22252, _gloffset_ConvolutionParameteri }, - { 22375, _gloffset_ConvolutionParameterf }, - { 23828, _gloffset_GetConvolutionParameterfv }, - { 24650, _gloffset_GetConvolutionFilter }, - { 26894, _gloffset_CopyConvolutionFilter2D }, + { 18514, _gloffset_GetSeparableFilter }, + { 21723, _gloffset_SeparableFilter2D }, + { 22552, _gloffset_ConvolutionParameteri }, + { 22675, _gloffset_ConvolutionParameterf }, + { 24130, _gloffset_GetConvolutionParameterfv }, + { 24984, _gloffset_GetConvolutionFilter }, + { 27257, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ - { 13364, _gloffset_CopyTexSubImage3D }, - { 14846, _gloffset_CopyTexImage2D }, - { 21860, _gloffset_CopyTexImage1D }, - { 24331, _gloffset_CopyTexSubImage2D }, - { 26532, _gloffset_CopyTexSubImage1D }, + { 13558, _gloffset_CopyTexSubImage3D }, + { 15040, _gloffset_CopyTexImage2D }, + { 22160, _gloffset_CopyTexImage1D }, + { 24665, _gloffset_CopyTexSubImage2D }, + { 26895, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ - { 8492, _gloffset_DrawRangeElements }, + { 8546, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ { 812, _gloffset_Histogram }, { 3088, _gloffset_ResetHistogram }, - { 8864, _gloffset_GetMinmax }, - { 13698, _gloffset_GetHistogramParameterfv }, - { 21785, _gloffset_GetMinmaxParameteriv }, - { 23718, _gloffset_ResetMinmax }, - { 24547, _gloffset_GetHistogramParameteriv }, - { 25603, _gloffset_GetHistogram }, - { 27965, _gloffset_Minmax }, - { 29466, _gloffset_GetMinmaxParameterfv }, + { 8918, _gloffset_GetMinmax }, + { 13892, _gloffset_GetHistogramParameterfv }, + { 22085, _gloffset_GetMinmaxParameteriv }, + { 24020, _gloffset_ResetMinmax }, + { 24881, _gloffset_GetHistogramParameteriv }, + { 25966, _gloffset_GetHistogram }, + { 28364, _gloffset_Minmax }, + { 29826, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ { 7445, _gloffset_ColorTable }, - { 13544, _gloffset_GetColorTable }, - { 20438, _gloffset_GetColorTableParameterfv }, - { 22431, _gloffset_GetColorTableParameteriv }, + { 13738, _gloffset_GetColorTable }, + { 20738, _gloffset_GetColorTableParameterfv }, + { 22731, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ { 6166, _gloffset_TexSubImage1D }, - { 9478, _gloffset_TexSubImage2D }, + { 9532, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ { 1658, _gloffset_TexImage3D }, - { 20207, _gloffset_TexSubImage3D }, + { 20507, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ { 2964, _gloffset_PrioritizeTextures }, { 6615, _gloffset_AreTexturesResident }, - { 12063, _gloffset_GenTextures }, - { 14030, _gloffset_DeleteTextures }, - { 17281, _gloffset_IsTexture }, - { 26597, _gloffset_BindTexture }, + { 12238, _gloffset_GenTextures }, + { 14224, _gloffset_DeleteTextures }, + { 17516, _gloffset_IsTexture }, + { 26960, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ - { 21612, _gloffset_ArrayElement }, - { 27553, _gloffset_GetPointerv }, - { 29093, _gloffset_DrawArrays }, + { 21912, _gloffset_ArrayElement }, + { 27952, _gloffset_GetPointerv }, + { 29453, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ { 6733, _gloffset_ColorTableParameteriv }, { 7445, _gloffset_ColorTable }, - { 13544, _gloffset_GetColorTable }, - { 13654, _gloffset_CopyColorTable }, - { 17142, _gloffset_ColorTableParameterfv }, - { 20438, _gloffset_GetColorTableParameterfv }, - { 22431, _gloffset_GetColorTableParameteriv }, + { 13738, _gloffset_GetColorTable }, + { 13848, _gloffset_CopyColorTable }, + { 17377, _gloffset_ColorTableParameterfv }, + { 20738, _gloffset_GetColorTableParameterfv }, + { 22731, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ { 381, _gloffset_MultiTexCoord3sARB }, { 613, _gloffset_ActiveTextureARB }, @@ -4868,33 +4909,33 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 5346, _gloffset_MultiTexCoord2iARB }, { 5470, _gloffset_MultiTexCoord2svARB }, { 7401, _gloffset_MultiTexCoord2fARB }, - { 9223, _gloffset_MultiTexCoord3fvARB }, - { 9744, _gloffset_MultiTexCoord4sARB }, - { 10378, _gloffset_MultiTexCoord2dvARB }, - { 10760, _gloffset_MultiTexCoord1svARB }, - { 11050, _gloffset_MultiTexCoord3svARB }, - { 11111, _gloffset_MultiTexCoord4iARB }, - { 11834, _gloffset_MultiTexCoord3iARB }, - { 12568, _gloffset_MultiTexCoord1dARB }, - { 12734, _gloffset_MultiTexCoord3dvARB }, - { 13898, _gloffset_MultiTexCoord3ivARB }, - { 13943, _gloffset_MultiTexCoord2sARB }, - { 15163, _gloffset_MultiTexCoord4ivARB }, - { 16792, _gloffset_ClientActiveTextureARB }, - { 19036, _gloffset_MultiTexCoord2dARB }, - { 19440, _gloffset_MultiTexCoord4dvARB }, - { 19726, _gloffset_MultiTexCoord4fvARB }, - { 20579, _gloffset_MultiTexCoord3fARB }, - { 22959, _gloffset_MultiTexCoord4dARB }, - { 23163, _gloffset_MultiTexCoord1sARB }, - { 23365, _gloffset_MultiTexCoord1dvARB }, - { 24175, _gloffset_MultiTexCoord1ivARB }, - { 24268, _gloffset_MultiTexCoord2ivARB }, - { 24607, _gloffset_MultiTexCoord1iARB }, - { 25878, _gloffset_MultiTexCoord4svARB }, - { 26396, _gloffset_MultiTexCoord1fARB }, - { 26659, _gloffset_MultiTexCoord4fARB }, - { 28927, _gloffset_MultiTexCoord2fvARB }, + { 9277, _gloffset_MultiTexCoord3fvARB }, + { 9834, _gloffset_MultiTexCoord4sARB }, + { 10468, _gloffset_MultiTexCoord2dvARB }, + { 10850, _gloffset_MultiTexCoord1svARB }, + { 11225, _gloffset_MultiTexCoord3svARB }, + { 11286, _gloffset_MultiTexCoord4iARB }, + { 12009, _gloffset_MultiTexCoord3iARB }, + { 12711, _gloffset_MultiTexCoord1dARB }, + { 12928, _gloffset_MultiTexCoord3dvARB }, + { 14092, _gloffset_MultiTexCoord3ivARB }, + { 14137, _gloffset_MultiTexCoord2sARB }, + { 15357, _gloffset_MultiTexCoord4ivARB }, + { 17027, _gloffset_ClientActiveTextureARB }, + { 19310, _gloffset_MultiTexCoord2dARB }, + { 19714, _gloffset_MultiTexCoord4dvARB }, + { 20000, _gloffset_MultiTexCoord4fvARB }, + { 20879, _gloffset_MultiTexCoord3fARB }, + { 23259, _gloffset_MultiTexCoord4dARB }, + { 23463, _gloffset_MultiTexCoord1sARB }, + { 23667, _gloffset_MultiTexCoord1dvARB }, + { 24509, _gloffset_MultiTexCoord1ivARB }, + { 24602, _gloffset_MultiTexCoord2ivARB }, + { 24941, _gloffset_MultiTexCoord1iARB }, + { 26241, _gloffset_MultiTexCoord4svARB }, + { 26759, _gloffset_MultiTexCoord1fARB }, + { 27022, _gloffset_MultiTexCoord4fARB }, + { 29287, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -4973,10 +5014,10 @@ static const struct gl_function_remap GL_ARB_map_buffer_range_functions[] = { #if defined(need_GL_ARB_matrix_palette) static const struct gl_function_remap GL_ARB_matrix_palette_functions[] = { { 3339, -1 }, /* MatrixIndexusvARB */ - { 11655, -1 }, /* MatrixIndexuivARB */ - { 12856, -1 }, /* MatrixIndexPointerARB */ - { 17530, -1 }, /* CurrentPaletteMatrixARB */ - { 20323, -1 }, /* MatrixIndexubvARB */ + { 11830, -1 }, /* MatrixIndexuivARB */ + { 13050, -1 }, /* MatrixIndexPointerARB */ + { 17765, -1 }, /* CurrentPaletteMatrixARB */ + { 20623, -1 }, /* MatrixIndexubvARB */ { -1, -1 } }; #endif @@ -5048,14 +5089,14 @@ static const struct gl_function_remap GL_ARB_vertex_array_object_functions[] = { static const struct gl_function_remap GL_ARB_vertex_blend_functions[] = { { 2226, -1 }, /* WeightubvARB */ { 5633, -1 }, /* WeightivARB */ - { 9847, -1 }, /* WeightPointerARB */ - { 12325, -1 }, /* WeightfvARB */ - { 15610, -1 }, /* WeightbvARB */ - { 18704, -1 }, /* WeightusvARB */ - { 21349, -1 }, /* VertexBlendARB */ - { 26480, -1 }, /* WeightsvARB */ - { 28429, -1 }, /* WeightdvARB */ - { 29127, -1 }, /* WeightuivARB */ + { 9937, -1 }, /* WeightPointerARB */ + { 12468, -1 }, /* WeightfvARB */ + { 15804, -1 }, /* WeightbvARB */ + { 18978, -1 }, /* WeightusvARB */ + { 21649, -1 }, /* VertexBlendARB */ + { 26843, -1 }, /* WeightsvARB */ + { 28789, -1 }, /* WeightdvARB */ + { 29487, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5146,15 +5187,15 @@ static const struct gl_function_remap GL_EXT_blend_func_separate_functions[] = { #if defined(need_GL_EXT_blend_minmax) static const struct gl_function_remap GL_EXT_blend_minmax_functions[] = { - { 9982, _gloffset_BlendEquation }, + { 10072, _gloffset_BlendEquation }, { -1, -1 } }; #endif #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 15106, _gloffset_ColorSubTable }, - { 28379, _gloffset_CopyColorSubTable }, + { 15300, _gloffset_ColorSubTable }, + { 28739, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5174,52 +5215,52 @@ static const struct gl_function_remap GL_EXT_convolution_functions[] = { { 7583, _gloffset_ConvolutionFilter2D }, { 7749, _gloffset_ConvolutionParameteriv }, { 8209, _gloffset_ConvolutionParameterfv }, - { 18279, _gloffset_GetSeparableFilter }, - { 21423, _gloffset_SeparableFilter2D }, - { 22252, _gloffset_ConvolutionParameteri }, - { 22375, _gloffset_ConvolutionParameterf }, - { 23828, _gloffset_GetConvolutionParameterfv }, - { 24650, _gloffset_GetConvolutionFilter }, - { 26894, _gloffset_CopyConvolutionFilter2D }, + { 18514, _gloffset_GetSeparableFilter }, + { 21723, _gloffset_SeparableFilter2D }, + { 22552, _gloffset_ConvolutionParameteri }, + { 22675, _gloffset_ConvolutionParameterf }, + { 24130, _gloffset_GetConvolutionParameterfv }, + { 24984, _gloffset_GetConvolutionFilter }, + { 27257, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif #if defined(need_GL_EXT_coordinate_frame) static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { - { 9362, -1 }, /* TangentPointerEXT */ - { 11169, -1 }, /* Binormal3ivEXT */ - { 11787, -1 }, /* Tangent3sEXT */ - { 12921, -1 }, /* Tangent3fvEXT */ - { 16542, -1 }, /* Tangent3dvEXT */ - { 17228, -1 }, /* Binormal3bvEXT */ - { 18332, -1 }, /* Binormal3dEXT */ - { 20255, -1 }, /* Tangent3fEXT */ - { 22324, -1 }, /* Binormal3sEXT */ - { 22769, -1 }, /* Tangent3ivEXT */ - { 22788, -1 }, /* Tangent3dEXT */ - { 23592, -1 }, /* Binormal3svEXT */ - { 24073, -1 }, /* Binormal3fEXT */ - { 24925, -1 }, /* Binormal3dvEXT */ - { 26100, -1 }, /* Tangent3iEXT */ - { 27179, -1 }, /* Tangent3bvEXT */ - { 27588, -1 }, /* Tangent3bEXT */ - { 28152, -1 }, /* Binormal3fvEXT */ - { 28826, -1 }, /* BinormalPointerEXT */ - { 29231, -1 }, /* Tangent3svEXT */ - { 29668, -1 }, /* Binormal3bEXT */ - { 29845, -1 }, /* Binormal3iEXT */ + { 9416, -1 }, /* TangentPointerEXT */ + { 11344, -1 }, /* Binormal3ivEXT */ + { 11962, -1 }, /* Tangent3sEXT */ + { 13115, -1 }, /* Tangent3fvEXT */ + { 16736, -1 }, /* Tangent3dvEXT */ + { 17463, -1 }, /* Binormal3bvEXT */ + { 18567, -1 }, /* Binormal3dEXT */ + { 20555, -1 }, /* Tangent3fEXT */ + { 22624, -1 }, /* Binormal3sEXT */ + { 23069, -1 }, /* Tangent3ivEXT */ + { 23088, -1 }, /* Tangent3dEXT */ + { 23894, -1 }, /* Binormal3svEXT */ + { 24407, -1 }, /* Binormal3fEXT */ + { 25259, -1 }, /* Binormal3dvEXT */ + { 26463, -1 }, /* Tangent3iEXT */ + { 27542, -1 }, /* Tangent3bvEXT */ + { 27987, -1 }, /* Tangent3bEXT */ + { 28512, -1 }, /* Binormal3fvEXT */ + { 29186, -1 }, /* BinormalPointerEXT */ + { 29591, -1 }, /* Tangent3svEXT */ + { 30028, -1 }, /* Binormal3bEXT */ + { 30205, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { - { 13364, _gloffset_CopyTexSubImage3D }, - { 14846, _gloffset_CopyTexImage2D }, - { 21860, _gloffset_CopyTexImage1D }, - { 24331, _gloffset_CopyTexSubImage2D }, - { 26532, _gloffset_CopyTexSubImage1D }, + { 13558, _gloffset_CopyTexSubImage3D }, + { 15040, _gloffset_CopyTexImage2D }, + { 22160, _gloffset_CopyTexImage1D }, + { 24665, _gloffset_CopyTexSubImage2D }, + { 26895, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif @@ -5247,7 +5288,7 @@ static const struct gl_function_remap GL_EXT_draw_buffers2_functions[] = { #if defined(need_GL_EXT_draw_range_elements) static const struct gl_function_remap GL_EXT_draw_range_elements_functions[] = { - { 8492, _gloffset_DrawRangeElements }, + { 8546, _gloffset_DrawRangeElements }, { -1, -1 } }; #endif @@ -5291,37 +5332,37 @@ static const struct gl_function_remap GL_EXT_gpu_program_parameters_functions[] static const struct gl_function_remap GL_EXT_histogram_functions[] = { { 812, _gloffset_Histogram }, { 3088, _gloffset_ResetHistogram }, - { 8864, _gloffset_GetMinmax }, - { 13698, _gloffset_GetHistogramParameterfv }, - { 21785, _gloffset_GetMinmaxParameteriv }, - { 23718, _gloffset_ResetMinmax }, - { 24547, _gloffset_GetHistogramParameteriv }, - { 25603, _gloffset_GetHistogram }, - { 27965, _gloffset_Minmax }, - { 29466, _gloffset_GetMinmaxParameterfv }, + { 8918, _gloffset_GetMinmax }, + { 13892, _gloffset_GetHistogramParameterfv }, + { 22085, _gloffset_GetMinmaxParameteriv }, + { 24020, _gloffset_ResetMinmax }, + { 24881, _gloffset_GetHistogramParameteriv }, + { 25966, _gloffset_GetHistogram }, + { 28364, _gloffset_Minmax }, + { 29826, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_index_func) static const struct gl_function_remap GL_EXT_index_func_functions[] = { - { 10209, -1 }, /* IndexFuncEXT */ + { 10299, -1 }, /* IndexFuncEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_index_material) static const struct gl_function_remap GL_EXT_index_material_functions[] = { - { 18791, -1 }, /* IndexMaterialEXT */ + { 19065, -1 }, /* IndexMaterialEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_light_texture) static const struct gl_function_remap GL_EXT_light_texture_functions[] = { - { 23612, -1 }, /* ApplyTextureEXT */ - { 23672, -1 }, /* TextureMaterialEXT */ - { 23697, -1 }, /* TextureLightEXT */ + { 23914, -1 }, /* ApplyTextureEXT */ + { 23974, -1 }, /* TextureMaterialEXT */ + { 23999, -1 }, /* TextureLightEXT */ { -1, -1 } }; #endif @@ -5343,19 +5384,19 @@ static const struct gl_function_remap GL_EXT_multisample_functions[] = { #if defined(need_GL_EXT_paletted_texture) static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { { 7445, _gloffset_ColorTable }, - { 13544, _gloffset_GetColorTable }, - { 20438, _gloffset_GetColorTableParameterfv }, - { 22431, _gloffset_GetColorTableParameteriv }, + { 13738, _gloffset_GetColorTable }, + { 20738, _gloffset_GetColorTableParameterfv }, + { 22731, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_pixel_transform) static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { - { 9603, -1 }, /* PixelTransformParameterfvEXT */ - { 19405, -1 }, /* PixelTransformParameterfEXT */ - { 19485, -1 }, /* PixelTransformParameteriEXT */ - { 28790, -1 }, /* PixelTransformParameterivEXT */ + { 19679, -1 }, /* PixelTransformParameterfEXT */ + { 19759, -1 }, /* PixelTransformParameteriEXT */ + { 27725, -1 }, /* PixelTransformParameterfvEXT */ + { 29150, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -5398,7 +5439,7 @@ static const struct gl_function_remap GL_EXT_stencil_two_side_functions[] = { #if defined(need_GL_EXT_subtexture) static const struct gl_function_remap GL_EXT_subtexture_functions[] = { { 6166, _gloffset_TexSubImage1D }, - { 9478, _gloffset_TexSubImage2D }, + { 9532, _gloffset_TexSubImage2D }, { -1, -1 } }; #endif @@ -5406,7 +5447,7 @@ static const struct gl_function_remap GL_EXT_subtexture_functions[] = { #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { { 1658, _gloffset_TexImage3D }, - { 20207, _gloffset_TexSubImage3D }, + { 20507, _gloffset_TexSubImage3D }, { -1, -1 } }; #endif @@ -5422,17 +5463,17 @@ static const struct gl_function_remap GL_EXT_texture_array_functions[] = { static const struct gl_function_remap GL_EXT_texture_object_functions[] = { { 2964, _gloffset_PrioritizeTextures }, { 6615, _gloffset_AreTexturesResident }, - { 12063, _gloffset_GenTextures }, - { 14030, _gloffset_DeleteTextures }, - { 17281, _gloffset_IsTexture }, - { 26597, _gloffset_BindTexture }, + { 12238, _gloffset_GenTextures }, + { 14224, _gloffset_DeleteTextures }, + { 17516, _gloffset_IsTexture }, + { 26960, _gloffset_BindTexture }, { -1, -1 } }; #endif #if defined(need_GL_EXT_texture_perturb_normal) static const struct gl_function_remap GL_EXT_texture_perturb_normal_functions[] = { - { 12275, -1 }, /* TextureNormalEXT */ + { 12418, -1 }, /* TextureNormalEXT */ { -1, -1 } }; #endif @@ -5444,21 +5485,28 @@ static const struct gl_function_remap GL_EXT_timer_query_functions[] = { }; #endif +#if defined(need_GL_EXT_transform_feedback) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_EXT_vertex_array) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { - { 21612, _gloffset_ArrayElement }, - { 27553, _gloffset_GetPointerv }, - { 29093, _gloffset_DrawArrays }, + { 21912, _gloffset_ArrayElement }, + { 27952, _gloffset_GetPointerv }, + { 29453, _gloffset_DrawArrays }, { -1, -1 } }; #endif #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { - { 17311, -1 }, /* VertexWeightfvEXT */ - { 24051, -1 }, /* VertexWeightfEXT */ - { 25572, -1 }, /* VertexWeightPointerEXT */ + { 17546, -1 }, /* VertexWeightfvEXT */ + { 24385, -1 }, /* VertexWeightfEXT */ + { 25935, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif @@ -5467,10 +5515,10 @@ static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { static const struct gl_function_remap GL_HP_image_transform_functions[] = { { 2157, -1 }, /* GetImageTransformParameterfvHP */ { 3305, -1 }, /* ImageTransformParameterfHP */ - { 9056, -1 }, /* ImageTransformParameterfvHP */ - { 10678, -1 }, /* ImageTransformParameteriHP */ - { 10940, -1 }, /* GetImageTransformParameterivHP */ - { 17375, -1 }, /* ImageTransformParameterivHP */ + { 9110, -1 }, /* ImageTransformParameterfvHP */ + { 10768, -1 }, /* ImageTransformParameteriHP */ + { 11115, -1 }, /* GetImageTransformParameterivHP */ + { 17610, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; #endif @@ -5488,10 +5536,10 @@ static const struct gl_function_remap GL_IBM_vertex_array_lists_functions[] = { { 5167, -1 }, /* NormalPointerListIBM */ { 6789, -1 }, /* FogCoordPointerListIBM */ { 7096, -1 }, /* VertexPointerListIBM */ - { 10599, -1 }, /* ColorPointerListIBM */ - { 11894, -1 }, /* TexCoordPointerListIBM */ - { 12297, -1 }, /* IndexPointerListIBM */ - { 29409, -1 }, /* EdgeFlagPointerListIBM */ + { 10689, -1 }, /* ColorPointerListIBM */ + { 12069, -1 }, /* TexCoordPointerListIBM */ + { 12440, -1 }, /* IndexPointerListIBM */ + { 29769, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -5505,10 +5553,10 @@ static const struct gl_function_remap GL_INGR_blend_func_separate_functions[] = #if defined(need_GL_INTEL_parallel_arrays) static const struct gl_function_remap GL_INTEL_parallel_arrays_functions[] = { - { 11281, -1 }, /* VertexPointervINTEL */ - { 13791, -1 }, /* ColorPointervINTEL */ - { 26868, -1 }, /* NormalPointervINTEL */ - { 27294, -1 }, /* TexCoordPointervINTEL */ + { 11456, -1 }, /* VertexPointervINTEL */ + { 13985, -1 }, /* ColorPointervINTEL */ + { 27231, -1 }, /* NormalPointervINTEL */ + { 27657, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -5525,7 +5573,7 @@ static const struct gl_function_remap GL_MESA_shader_debug_functions[] = { { 1522, -1 }, /* GetDebugLogLengthMESA */ { 3063, -1 }, /* ClearDebugLogMESA */ { 4018, -1 }, /* GetDebugLogMESA */ - { 27746, -1 }, /* CreateDebugObjectMESA */ + { 28145, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -5549,12 +5597,12 @@ static const struct gl_function_remap GL_NV_evaluators_functions[] = { { 5834, -1 }, /* GetMapAttribParameterivNV */ { 7551, -1 }, /* MapControlPointsNV */ { 7650, -1 }, /* MapParameterfvNV */ - { 9461, -1 }, /* EvalMapsNV */ - { 15280, -1 }, /* GetMapAttribParameterfvNV */ - { 15446, -1 }, /* MapParameterivNV */ - { 22175, -1 }, /* GetMapParameterivNV */ - { 22673, -1 }, /* GetMapParameterfvNV */ - { 26204, -1 }, /* GetMapControlPointsNV */ + { 9515, -1 }, /* EvalMapsNV */ + { 15474, -1 }, /* GetMapAttribParameterfvNV */ + { 15640, -1 }, /* MapParameterivNV */ + { 22475, -1 }, /* GetMapParameterivNV */ + { 22973, -1 }, /* GetMapParameterfvNV */ + { 26567, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -5589,8 +5637,8 @@ static const struct gl_function_remap GL_NV_register_combiners_functions[] = { #if defined(need_GL_NV_register_combiners2) static const struct gl_function_remap GL_NV_register_combiners2_functions[] = { - { 14183, -1 }, /* CombinerStageParameterfvNV */ - { 14498, -1 }, /* GetCombinerStageParameterfvNV */ + { 14377, -1 }, /* CombinerStageParameterfvNV */ + { 14692, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -5625,16 +5673,16 @@ static const struct gl_function_remap GL_PGI_misc_hints_functions[] = { #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 14471, -1 }, /* GetDetailTexFuncSGIS */ - { 14791, -1 }, /* DetailTexFuncSGIS */ + { 14665, -1 }, /* GetDetailTexFuncSGIS */ + { 14985, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 24313, -1 }, /* FogFuncSGIS */ - { 24978, -1 }, /* GetFogFuncSGIS */ + { 24647, -1 }, /* FogFuncSGIS */ + { 25312, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -5663,7 +5711,7 @@ static const struct gl_function_remap GL_SGIS_point_parameters_functions[] = { #if defined(need_GL_SGIS_sharpen_texture) static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { { 5895, -1 }, /* GetSharpenTexFuncSGIS */ - { 19700, -1 }, /* SharpenTexFuncSGIS */ + { 19974, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; #endif @@ -5671,14 +5719,14 @@ static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { #if defined(need_GL_SGIS_texture4D) static const struct gl_function_remap GL_SGIS_texture4D_functions[] = { { 894, -1 }, /* TexImage4DSGIS */ - { 14099, -1 }, /* TexSubImage4DSGIS */ + { 14293, -1 }, /* TexSubImage4DSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_texture_color_mask) static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = { - { 13497, -1 }, /* TextureColorMaskSGIS */ + { 13691, -1 }, /* TextureColorMaskSGIS */ { -1, -1 } }; #endif @@ -5686,7 +5734,7 @@ static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = { #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { { 6072, -1 }, /* GetTexFilterFuncSGIS */ - { 14617, -1 }, /* TexFilterFuncSGIS */ + { 14811, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif @@ -5696,9 +5744,9 @@ static const struct gl_function_remap GL_SGIX_async_functions[] = { { 3014, -1 }, /* AsyncMarkerSGIX */ { 3997, -1 }, /* FinishAsyncSGIX */ { 4734, -1 }, /* PollAsyncSGIX */ - { 19847, -1 }, /* DeleteAsyncMarkersSGIX */ - { 19876, -1 }, /* IsAsyncMarkerSGIX */ - { 29206, -1 }, /* GenAsyncMarkersSGIX */ + { 20121, -1 }, /* DeleteAsyncMarkersSGIX */ + { 20176, -1 }, /* IsAsyncMarkerSGIX */ + { 29566, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif @@ -5719,31 +5767,31 @@ static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { { 7163, -1 }, /* FragmentMaterialfSGIX */ { 7324, -1 }, /* GetFragmentLightivSGIX */ { 8161, -1 }, /* FragmentLightModeliSGIX */ - { 9524, -1 }, /* FragmentLightivSGIX */ - { 9790, -1 }, /* GetFragmentMaterialivSGIX */ - { 17198, -1 }, /* FragmentLightModelfSGIX */ - { 17498, -1 }, /* FragmentColorMaterialSGIX */ - { 17898, -1 }, /* FragmentMaterialiSGIX */ - { 19119, -1 }, /* LightEnviSGIX */ - { 20530, -1 }, /* FragmentLightModelfvSGIX */ - { 20839, -1 }, /* FragmentLightfvSGIX */ - { 25454, -1 }, /* FragmentLightfSGIX */ - { 28122, -1 }, /* GetFragmentLightfvSGIX */ - { 29689, -1 }, /* FragmentMaterialivSGIX */ + { 9578, -1 }, /* FragmentLightivSGIX */ + { 9880, -1 }, /* GetFragmentMaterialivSGIX */ + { 17433, -1 }, /* FragmentLightModelfSGIX */ + { 17733, -1 }, /* FragmentColorMaterialSGIX */ + { 18133, -1 }, /* FragmentMaterialiSGIX */ + { 19393, -1 }, /* LightEnviSGIX */ + { 20830, -1 }, /* FragmentLightModelfvSGIX */ + { 21139, -1 }, /* FragmentLightfvSGIX */ + { 25817, -1 }, /* FragmentLightfSGIX */ + { 28482, -1 }, /* GetFragmentLightfvSGIX */ + { 30049, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_framezoom) static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { - { 19899, -1 }, /* FrameZoomSGIX */ + { 20199, -1 }, /* FrameZoomSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 25762, -1 }, /* IglooInterfaceSGIX */ + { 26125, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif @@ -5752,10 +5800,10 @@ static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { static const struct gl_function_remap GL_SGIX_instruments_functions[] = { { 2573, -1 }, /* ReadInstrumentsSGIX */ { 5651, -1 }, /* PollInstrumentsSGIX */ - { 9422, -1 }, /* GetInstrumentsSGIX */ - { 11492, -1 }, /* StartInstrumentsSGIX */ - { 14217, -1 }, /* StopInstrumentsSGIX */ - { 15823, -1 }, /* InstrumentsBufferSGIX */ + { 9476, -1 }, /* GetInstrumentsSGIX */ + { 11667, -1 }, /* StartInstrumentsSGIX */ + { 14411, -1 }, /* StopInstrumentsSGIX */ + { 16017, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; #endif @@ -5764,10 +5812,10 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { { 1125, -1 }, /* ListParameterfSGIX */ { 2763, -1 }, /* GetListParameterfvSGIX */ - { 15738, -1 }, /* ListParameteriSGIX */ - { 16492, -1 }, /* ListParameterfvSGIX */ - { 18525, -1 }, /* ListParameterivSGIX */ - { 29250, -1 }, /* GetListParameterivSGIX */ + { 15932, -1 }, /* ListParameteriSGIX */ + { 16686, -1 }, /* ListParameterfvSGIX */ + { 18799, -1 }, /* ListParameterivSGIX */ + { 29610, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -5782,33 +5830,33 @@ static const struct gl_function_remap GL_SGIX_pixel_texture_functions[] = { #if defined(need_GL_SGIX_polynomial_ffd) static const struct gl_function_remap GL_SGIX_polynomial_ffd_functions[] = { { 3251, -1 }, /* LoadIdentityDeformationMapSGIX */ - { 14317, -1 }, /* DeformSGIX */ - { 21724, -1 }, /* DeformationMap3fSGIX */ - { 28010, -1 }, /* DeformationMap3dSGIX */ + { 10989, -1 }, /* DeformationMap3dSGIX */ + { 14511, -1 }, /* DeformSGIX */ + { 22024, -1 }, /* DeformationMap3fSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_reference_plane) static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { - { 13048, -1 }, /* ReferencePlaneSGIX */ + { 13242, -1 }, /* ReferencePlaneSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { - { 8577, -1 }, /* SpriteParameterfvSGIX */ - { 18353, -1 }, /* SpriteParameteriSGIX */ - { 23752, -1 }, /* SpriteParameterfSGIX */ - { 26326, -1 }, /* SpriteParameterivSGIX */ + { 8631, -1 }, /* SpriteParameterfvSGIX */ + { 18588, -1 }, /* SpriteParameteriSGIX */ + { 24054, -1 }, /* SpriteParameterfSGIX */ + { 26689, -1 }, /* SpriteParameterivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_tag_sample_buffer) static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { - { 18412, -1 }, /* TagSampleBufferSGIX */ + { 18647, -1 }, /* TagSampleBufferSGIX */ { -1, -1 } }; #endif @@ -5817,18 +5865,18 @@ static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { static const struct gl_function_remap GL_SGI_color_table_functions[] = { { 6733, _gloffset_ColorTableParameteriv }, { 7445, _gloffset_ColorTable }, - { 13544, _gloffset_GetColorTable }, - { 13654, _gloffset_CopyColorTable }, - { 17142, _gloffset_ColorTableParameterfv }, - { 20438, _gloffset_GetColorTableParameterfv }, - { 22431, _gloffset_GetColorTableParameteriv }, + { 13738, _gloffset_GetColorTable }, + { 13848, _gloffset_CopyColorTable }, + { 17377, _gloffset_ColorTableParameterfv }, + { 20738, _gloffset_GetColorTableParameterfv }, + { 22731, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 28100, -1 }, /* FinishTextureSUNX */ + { 28460, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif @@ -5838,18 +5886,18 @@ static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { { 3035, -1 }, /* GlobalAlphaFactorubSUN */ { 4224, -1 }, /* GlobalAlphaFactoriSUN */ { 5676, -1 }, /* GlobalAlphaFactordSUN */ - { 8661, -1 }, /* GlobalAlphaFactoruiSUN */ - { 9013, -1 }, /* GlobalAlphaFactorbSUN */ - { 11807, -1 }, /* GlobalAlphaFactorfSUN */ - { 11926, -1 }, /* GlobalAlphaFactorusSUN */ - { 20138, -1 }, /* GlobalAlphaFactorsSUN */ + { 8715, -1 }, /* GlobalAlphaFactoruiSUN */ + { 9067, -1 }, /* GlobalAlphaFactorbSUN */ + { 11982, -1 }, /* GlobalAlphaFactorfSUN */ + { 12101, -1 }, /* GlobalAlphaFactorusSUN */ + { 20438, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 26138, -1 }, /* DrawMeshArraysSUN */ + { 26501, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif @@ -5858,11 +5906,11 @@ static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { { 3971, -1 }, /* ReplacementCodeubSUN */ { 5515, -1 }, /* ReplacementCodeubvSUN */ - { 16863, -1 }, /* ReplacementCodeusvSUN */ - { 17051, -1 }, /* ReplacementCodePointerSUN */ - { 18436, -1 }, /* ReplacementCodeusSUN */ - { 19183, -1 }, /* ReplacementCodeuiSUN */ - { 26783, -1 }, /* ReplacementCodeuivSUN */ + { 17098, -1 }, /* ReplacementCodeusvSUN */ + { 17286, -1 }, /* ReplacementCodePointerSUN */ + { 19457, -1 }, /* ReplacementCodeuiSUN */ + { 20150, -1 }, /* ReplacementCodeusSUN */ + { 27146, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif @@ -5884,31 +5932,31 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { { 6480, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */ { 7192, -1 }, /* TexCoord2fNormal3fVertex3fSUN */ { 7960, -1 }, /* Color3fVertex3fSUN */ - { 8972, -1 }, /* Color3fVertex3fvSUN */ - { 9387, -1 }, /* Color4fNormal3fVertex3fvSUN */ - { 10088, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ - { 11355, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ - { 12779, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ - { 13190, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 14242, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 14576, -1 }, /* Color4ubVertex2fvSUN */ - { 14816, -1 }, /* Normal3fVertex3fSUN */ - { 15764, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ - { 16025, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ - { 16692, -1 }, /* TexCoord2fVertex3fvSUN */ - { 17468, -1 }, /* Color4ubVertex2fSUN */ - { 17689, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ - { 19571, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ - { 19918, -1 }, /* Normal3fVertex3fvSUN */ - { 20347, -1 }, /* Color4fNormal3fVertex3fSUN */ - { 21256, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ - { 21476, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 23206, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 24429, -1 }, /* TexCoord4fVertex4fSUN */ - { 24855, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 25181, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 25308, -1 }, /* TexCoord4fVertex4fvSUN */ - { 26010, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 9026, -1 }, /* Color3fVertex3fvSUN */ + { 9441, -1 }, /* Color4fNormal3fVertex3fvSUN */ + { 10178, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */ + { 11530, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ + { 12973, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ + { 13384, -1 }, /* TexCoord2fColor3fVertex3fSUN */ + { 14436, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 14770, -1 }, /* Color4ubVertex2fvSUN */ + { 15010, -1 }, /* Normal3fVertex3fSUN */ + { 15958, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ + { 16219, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ + { 16927, -1 }, /* TexCoord2fVertex3fvSUN */ + { 17703, -1 }, /* Color4ubVertex2fSUN */ + { 17924, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ + { 19845, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ + { 20218, -1 }, /* Normal3fVertex3fvSUN */ + { 20647, -1 }, /* Color4fNormal3fVertex3fSUN */ + { 21556, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ + { 21776, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 23506, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ + { 24763, -1 }, /* TexCoord4fVertex4fSUN */ + { 25189, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 25544, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 25671, -1 }, /* TexCoord4fVertex4fvSUN */ + { 26373, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -5923,33 +5971,33 @@ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { { 5346, _gloffset_MultiTexCoord2iARB }, { 5470, _gloffset_MultiTexCoord2svARB }, { 7401, _gloffset_MultiTexCoord2fARB }, - { 9223, _gloffset_MultiTexCoord3fvARB }, - { 9744, _gloffset_MultiTexCoord4sARB }, - { 10378, _gloffset_MultiTexCoord2dvARB }, - { 10760, _gloffset_MultiTexCoord1svARB }, - { 11050, _gloffset_MultiTexCoord3svARB }, - { 11111, _gloffset_MultiTexCoord4iARB }, - { 11834, _gloffset_MultiTexCoord3iARB }, - { 12568, _gloffset_MultiTexCoord1dARB }, - { 12734, _gloffset_MultiTexCoord3dvARB }, - { 13898, _gloffset_MultiTexCoord3ivARB }, - { 13943, _gloffset_MultiTexCoord2sARB }, - { 15163, _gloffset_MultiTexCoord4ivARB }, - { 16792, _gloffset_ClientActiveTextureARB }, - { 19036, _gloffset_MultiTexCoord2dARB }, - { 19440, _gloffset_MultiTexCoord4dvARB }, - { 19726, _gloffset_MultiTexCoord4fvARB }, - { 20579, _gloffset_MultiTexCoord3fARB }, - { 22959, _gloffset_MultiTexCoord4dARB }, - { 23163, _gloffset_MultiTexCoord1sARB }, - { 23365, _gloffset_MultiTexCoord1dvARB }, - { 24175, _gloffset_MultiTexCoord1ivARB }, - { 24268, _gloffset_MultiTexCoord2ivARB }, - { 24607, _gloffset_MultiTexCoord1iARB }, - { 25878, _gloffset_MultiTexCoord4svARB }, - { 26396, _gloffset_MultiTexCoord1fARB }, - { 26659, _gloffset_MultiTexCoord4fARB }, - { 28927, _gloffset_MultiTexCoord2fvARB }, + { 9277, _gloffset_MultiTexCoord3fvARB }, + { 9834, _gloffset_MultiTexCoord4sARB }, + { 10468, _gloffset_MultiTexCoord2dvARB }, + { 10850, _gloffset_MultiTexCoord1svARB }, + { 11225, _gloffset_MultiTexCoord3svARB }, + { 11286, _gloffset_MultiTexCoord4iARB }, + { 12009, _gloffset_MultiTexCoord3iARB }, + { 12711, _gloffset_MultiTexCoord1dARB }, + { 12928, _gloffset_MultiTexCoord3dvARB }, + { 14092, _gloffset_MultiTexCoord3ivARB }, + { 14137, _gloffset_MultiTexCoord2sARB }, + { 15357, _gloffset_MultiTexCoord4ivARB }, + { 17027, _gloffset_ClientActiveTextureARB }, + { 19310, _gloffset_MultiTexCoord2dARB }, + { 19714, _gloffset_MultiTexCoord4dvARB }, + { 20000, _gloffset_MultiTexCoord4fvARB }, + { 20879, _gloffset_MultiTexCoord3fARB }, + { 23259, _gloffset_MultiTexCoord4dARB }, + { 23463, _gloffset_MultiTexCoord1sARB }, + { 23667, _gloffset_MultiTexCoord1dvARB }, + { 24509, _gloffset_MultiTexCoord1ivARB }, + { 24602, _gloffset_MultiTexCoord2ivARB }, + { 24941, _gloffset_MultiTexCoord1iARB }, + { 26241, _gloffset_MultiTexCoord4svARB }, + { 26759, _gloffset_MultiTexCoord1fARB }, + { 27022, _gloffset_MultiTexCoord4fARB }, + { 29287, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif @@ -5982,3 +6030,10 @@ static const struct gl_function_remap GL_VERSION_2_1_functions[] = { }; #endif +#if defined(need_GL_VERSION_3_0) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_VERSION_3_0_functions[] = { + { -1, -1 } +}; +#endif + diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S index 478adc6520..f256803894 100644 --- a/src/mesa/sparc/glapi_sparc.S +++ b/src/mesa/sparc/glapi_sparc.S @@ -1022,24 +1022,31 @@ gl_dispatch_functions_start: GL_STUB(glIsEnabledIndexedEXT, _gloffset_IsEnabledIndexedEXT) GL_STUB(glBeginConditionalRenderNV, _gloffset_BeginConditionalRenderNV) GL_STUB(glEndConditionalRenderNV, _gloffset_EndConditionalRenderNV) + GL_STUB(glBeginTransformFeedbackEXT, _gloffset_BeginTransformFeedbackEXT) + GL_STUB(glBindBufferBaseEXT, _gloffset_BindBufferBaseEXT) + GL_STUB(glBindBufferOffsetEXT, _gloffset_BindBufferOffsetEXT) + GL_STUB(glBindBufferRangeEXT, _gloffset_BindBufferRangeEXT) + GL_STUB(glEndTransformFeedbackEXT, _gloffset_EndTransformFeedbackEXT) + GL_STUB(glGetTransformFeedbackVaryingEXT, _gloffset_GetTransformFeedbackVaryingEXT) + GL_STUB(glTransformFeedbackVaryingsEXT, _gloffset_TransformFeedbackVaryingsEXT) GL_STUB(glProvokingVertexEXT, _gloffset_ProvokingVertexEXT) - GL_STUB(gl_dispatch_stub_796, _gloffset_GetTexParameterPointervAPPLE) - HIDDEN(gl_dispatch_stub_796) - GL_STUB(gl_dispatch_stub_797, _gloffset_TextureRangeAPPLE) - HIDDEN(gl_dispatch_stub_797) + GL_STUB(gl_dispatch_stub_803, _gloffset_GetTexParameterPointervAPPLE) + HIDDEN(gl_dispatch_stub_803) + GL_STUB(gl_dispatch_stub_804, _gloffset_TextureRangeAPPLE) + HIDDEN(gl_dispatch_stub_804) GL_STUB(glGetObjectParameterivAPPLE, _gloffset_GetObjectParameterivAPPLE) GL_STUB(glObjectPurgeableAPPLE, _gloffset_ObjectPurgeableAPPLE) GL_STUB(glObjectUnpurgeableAPPLE, _gloffset_ObjectUnpurgeableAPPLE) - GL_STUB(gl_dispatch_stub_801, _gloffset_StencilFuncSeparateATI) - HIDDEN(gl_dispatch_stub_801) - GL_STUB(gl_dispatch_stub_802, _gloffset_ProgramEnvParameters4fvEXT) - HIDDEN(gl_dispatch_stub_802) - GL_STUB(gl_dispatch_stub_803, _gloffset_ProgramLocalParameters4fvEXT) - HIDDEN(gl_dispatch_stub_803) - GL_STUB(gl_dispatch_stub_804, _gloffset_GetQueryObjecti64vEXT) - HIDDEN(gl_dispatch_stub_804) - GL_STUB(gl_dispatch_stub_805, _gloffset_GetQueryObjectui64vEXT) - HIDDEN(gl_dispatch_stub_805) + GL_STUB(gl_dispatch_stub_808, _gloffset_StencilFuncSeparateATI) + HIDDEN(gl_dispatch_stub_808) + GL_STUB(gl_dispatch_stub_809, _gloffset_ProgramEnvParameters4fvEXT) + HIDDEN(gl_dispatch_stub_809) + GL_STUB(gl_dispatch_stub_810, _gloffset_ProgramLocalParameters4fvEXT) + HIDDEN(gl_dispatch_stub_810) + GL_STUB(gl_dispatch_stub_811, _gloffset_GetQueryObjecti64vEXT) + HIDDEN(gl_dispatch_stub_811) + GL_STUB(gl_dispatch_stub_812, _gloffset_GetQueryObjectui64vEXT) + HIDDEN(gl_dispatch_stub_812) GL_STUB(glEGLImageTargetRenderbufferStorageOES, _gloffset_EGLImageTargetRenderbufferStorageOES) GL_STUB(glEGLImageTargetTexture2DOES, _gloffset_EGLImageTargetTexture2DOES) GL_STUB_ALIAS(glArrayElementEXT, glArrayElement) @@ -1376,6 +1383,12 @@ gl_dispatch_functions_start: GL_STUB_ALIAS(glIsRenderbuffer, glIsRenderbufferEXT) GL_STUB_ALIAS(glRenderbufferStorage, glRenderbufferStorageEXT) GL_STUB_ALIAS(glFramebufferTextureLayer, glFramebufferTextureLayerEXT) + GL_STUB_ALIAS(glBeginTransformFeedback, glBeginTransformFeedbackEXT) + GL_STUB_ALIAS(glBindBufferBase, glBindBufferBaseEXT) + GL_STUB_ALIAS(glBindBufferRange, glBindBufferRangeEXT) + GL_STUB_ALIAS(glEndTransformFeedback, glEndTransformFeedbackEXT) + GL_STUB_ALIAS(glGetTransformFeedbackVarying, glGetTransformFeedbackVaryingEXT) + GL_STUB_ALIAS(glTransformFeedbackVaryings, glTransformFeedbackVaryingsEXT) GL_STUB_ALIAS(glProvokingVertex, glProvokingVertexEXT) .globl gl_dispatch_functions_end diff --git a/src/mesa/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S index a76cbb07d5..3124606757 100644 --- a/src/mesa/x86-64/glapi_x86-64.S +++ b/src/mesa/x86-64/glapi_x86-64.S @@ -30096,9 +30096,9 @@ GL_PREFIX(EndConditionalRenderNV): .size GL_PREFIX(EndConditionalRenderNV), .-GL_PREFIX(EndConditionalRenderNV) .p2align 4,,15 - .globl GL_PREFIX(ProvokingVertexEXT) - .type GL_PREFIX(ProvokingVertexEXT), @function -GL_PREFIX(ProvokingVertexEXT): + .globl GL_PREFIX(BeginTransformFeedbackEXT) + .type GL_PREFIX(BeginTransformFeedbackEXT), @function +GL_PREFIX(BeginTransformFeedbackEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 6360(%rax), %r11 @@ -30122,13 +30122,12 @@ GL_PREFIX(ProvokingVertexEXT): movq 6360(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(ProvokingVertexEXT), .-GL_PREFIX(ProvokingVertexEXT) + .size GL_PREFIX(BeginTransformFeedbackEXT), .-GL_PREFIX(BeginTransformFeedbackEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_796) - .type GL_PREFIX(_dispatch_stub_796), @function - HIDDEN(GL_PREFIX(_dispatch_stub_796)) -GL_PREFIX(_dispatch_stub_796): + .globl GL_PREFIX(BindBufferBaseEXT) + .type GL_PREFIX(BindBufferBaseEXT), @function +GL_PREFIX(BindBufferBaseEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 6368(%rax), %r11 @@ -30160,13 +30159,12 @@ GL_PREFIX(_dispatch_stub_796): movq 6368(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_796), .-GL_PREFIX(_dispatch_stub_796) + .size GL_PREFIX(BindBufferBaseEXT), .-GL_PREFIX(BindBufferBaseEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_797) - .type GL_PREFIX(_dispatch_stub_797), @function - HIDDEN(GL_PREFIX(_dispatch_stub_797)) -GL_PREFIX(_dispatch_stub_797): + .globl GL_PREFIX(BindBufferOffsetEXT) + .type GL_PREFIX(BindBufferOffsetEXT), @function +GL_PREFIX(BindBufferOffsetEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 6376(%rax), %r11 @@ -30175,7 +30173,11 @@ GL_PREFIX(_dispatch_stub_797): pushq %rdi pushq %rsi pushq %rdx + pushq %rcx + pushq %rbp call _x86_64_get_dispatch@PLT + popq %rbp + popq %rcx popq %rdx popq %rsi popq %rdi @@ -30191,14 +30193,295 @@ GL_PREFIX(_dispatch_stub_797): pushq %rdi pushq %rsi pushq %rdx + pushq %rcx + pushq %rbp call _glapi_get_dispatch + popq %rbp + popq %rcx popq %rdx popq %rsi popq %rdi movq 6376(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_797), .-GL_PREFIX(_dispatch_stub_797) + .size GL_PREFIX(BindBufferOffsetEXT), .-GL_PREFIX(BindBufferOffsetEXT) + + .p2align 4,,15 + .globl GL_PREFIX(BindBufferRangeEXT) + .type GL_PREFIX(BindBufferRangeEXT), @function +GL_PREFIX(BindBufferRangeEXT): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6384(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 + call _x86_64_get_dispatch@PLT + popq %r8 + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6384(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6384(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 + call _glapi_get_dispatch + popq %r8 + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6384(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(BindBufferRangeEXT), .-GL_PREFIX(BindBufferRangeEXT) + + .p2align 4,,15 + .globl GL_PREFIX(EndTransformFeedbackEXT) + .type GL_PREFIX(EndTransformFeedbackEXT), @function +GL_PREFIX(EndTransformFeedbackEXT): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6392(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rbp + call _x86_64_get_dispatch@PLT + popq %rbp + movq 6392(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6392(%rax), %r11 + jmp *%r11 +1: + pushq %rbp + call _glapi_get_dispatch + popq %rbp + movq 6392(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(EndTransformFeedbackEXT), .-GL_PREFIX(EndTransformFeedbackEXT) + + .p2align 4,,15 + .globl GL_PREFIX(GetTransformFeedbackVaryingEXT) + .type GL_PREFIX(GetTransformFeedbackVaryingEXT), @function +GL_PREFIX(GetTransformFeedbackVaryingEXT): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6400(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 + pushq %r9 + pushq %rbp + call _x86_64_get_dispatch@PLT + popq %rbp + popq %r9 + popq %r8 + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6400(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6400(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 + pushq %r9 + pushq %rbp + call _glapi_get_dispatch + popq %rbp + popq %r9 + popq %r8 + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6400(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(GetTransformFeedbackVaryingEXT), .-GL_PREFIX(GetTransformFeedbackVaryingEXT) + + .p2align 4,,15 + .globl GL_PREFIX(TransformFeedbackVaryingsEXT) + .type GL_PREFIX(TransformFeedbackVaryingsEXT), @function +GL_PREFIX(TransformFeedbackVaryingsEXT): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6408(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %rbp + call _x86_64_get_dispatch@PLT + popq %rbp + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6408(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6408(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %rbp + call _glapi_get_dispatch + popq %rbp + popq %rcx + popq %rdx + popq %rsi + popq %rdi + movq 6408(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(TransformFeedbackVaryingsEXT), .-GL_PREFIX(TransformFeedbackVaryingsEXT) + + .p2align 4,,15 + .globl GL_PREFIX(ProvokingVertexEXT) + .type GL_PREFIX(ProvokingVertexEXT), @function +GL_PREFIX(ProvokingVertexEXT): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6416(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + call _x86_64_get_dispatch@PLT + popq %rdi + movq 6416(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6416(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + call _glapi_get_dispatch + popq %rdi + movq 6416(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(ProvokingVertexEXT), .-GL_PREFIX(ProvokingVertexEXT) + + .p2align 4,,15 + .globl GL_PREFIX(_dispatch_stub_803) + .type GL_PREFIX(_dispatch_stub_803), @function + HIDDEN(GL_PREFIX(_dispatch_stub_803)) +GL_PREFIX(_dispatch_stub_803): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6424(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + pushq %rsi + pushq %rdx + call _x86_64_get_dispatch@PLT + popq %rdx + popq %rsi + popq %rdi + movq 6424(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6424(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + pushq %rsi + pushq %rdx + call _glapi_get_dispatch + popq %rdx + popq %rsi + popq %rdi + movq 6424(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(_dispatch_stub_803), .-GL_PREFIX(_dispatch_stub_803) + + .p2align 4,,15 + .globl GL_PREFIX(_dispatch_stub_804) + .type GL_PREFIX(_dispatch_stub_804), @function + HIDDEN(GL_PREFIX(_dispatch_stub_804)) +GL_PREFIX(_dispatch_stub_804): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 6432(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + pushq %rsi + pushq %rdx + call _x86_64_get_dispatch@PLT + popq %rdx + popq %rsi + popq %rdi + movq 6432(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 6432(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + pushq %rsi + pushq %rdx + call _glapi_get_dispatch + popq %rdx + popq %rsi + popq %rdi + movq 6432(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(_dispatch_stub_804), .-GL_PREFIX(_dispatch_stub_804) .p2align 4,,15 .globl GL_PREFIX(GetObjectParameterivAPPLE) @@ -30206,7 +30489,7 @@ GL_PREFIX(_dispatch_stub_797): GL_PREFIX(GetObjectParameterivAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6384(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30220,13 +30503,13 @@ GL_PREFIX(GetObjectParameterivAPPLE): popq %rdx popq %rsi popq %rdi - movq 6384(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6384(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30240,7 +30523,7 @@ GL_PREFIX(GetObjectParameterivAPPLE): popq %rdx popq %rsi popq %rdi - movq 6384(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetObjectParameterivAPPLE), .-GL_PREFIX(GetObjectParameterivAPPLE) @@ -30251,7 +30534,7 @@ GL_PREFIX(GetObjectParameterivAPPLE): GL_PREFIX(ObjectPurgeableAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6392(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30261,13 +30544,13 @@ GL_PREFIX(ObjectPurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6392(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6392(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30277,7 +30560,7 @@ GL_PREFIX(ObjectPurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6392(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ObjectPurgeableAPPLE), .-GL_PREFIX(ObjectPurgeableAPPLE) @@ -30288,7 +30571,7 @@ GL_PREFIX(ObjectPurgeableAPPLE): GL_PREFIX(ObjectUnpurgeableAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6400(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30298,13 +30581,13 @@ GL_PREFIX(ObjectUnpurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6400(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6400(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30314,19 +30597,19 @@ GL_PREFIX(ObjectUnpurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6400(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ObjectUnpurgeableAPPLE), .-GL_PREFIX(ObjectUnpurgeableAPPLE) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_801) - .type GL_PREFIX(_dispatch_stub_801), @function - HIDDEN(GL_PREFIX(_dispatch_stub_801)) -GL_PREFIX(_dispatch_stub_801): + .globl GL_PREFIX(_dispatch_stub_808) + .type GL_PREFIX(_dispatch_stub_808), @function + HIDDEN(GL_PREFIX(_dispatch_stub_808)) +GL_PREFIX(_dispatch_stub_808): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6408(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30340,13 +30623,13 @@ GL_PREFIX(_dispatch_stub_801): popq %rdx popq %rsi popq %rdi - movq 6408(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6408(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30360,19 +30643,19 @@ GL_PREFIX(_dispatch_stub_801): popq %rdx popq %rsi popq %rdi - movq 6408(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_801), .-GL_PREFIX(_dispatch_stub_801) + .size GL_PREFIX(_dispatch_stub_808), .-GL_PREFIX(_dispatch_stub_808) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_802) - .type GL_PREFIX(_dispatch_stub_802), @function - HIDDEN(GL_PREFIX(_dispatch_stub_802)) -GL_PREFIX(_dispatch_stub_802): + .globl GL_PREFIX(_dispatch_stub_809) + .type GL_PREFIX(_dispatch_stub_809), @function + HIDDEN(GL_PREFIX(_dispatch_stub_809)) +GL_PREFIX(_dispatch_stub_809): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6416(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30386,13 +30669,13 @@ GL_PREFIX(_dispatch_stub_802): popq %rdx popq %rsi popq %rdi - movq 6416(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6416(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30406,19 +30689,19 @@ GL_PREFIX(_dispatch_stub_802): popq %rdx popq %rsi popq %rdi - movq 6416(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_802), .-GL_PREFIX(_dispatch_stub_802) + .size GL_PREFIX(_dispatch_stub_809), .-GL_PREFIX(_dispatch_stub_809) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_803) - .type GL_PREFIX(_dispatch_stub_803), @function - HIDDEN(GL_PREFIX(_dispatch_stub_803)) -GL_PREFIX(_dispatch_stub_803): + .globl GL_PREFIX(_dispatch_stub_810) + .type GL_PREFIX(_dispatch_stub_810), @function + HIDDEN(GL_PREFIX(_dispatch_stub_810)) +GL_PREFIX(_dispatch_stub_810): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6424(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30432,13 +30715,13 @@ GL_PREFIX(_dispatch_stub_803): popq %rdx popq %rsi popq %rdi - movq 6424(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6424(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30452,19 +30735,19 @@ GL_PREFIX(_dispatch_stub_803): popq %rdx popq %rsi popq %rdi - movq 6424(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_803), .-GL_PREFIX(_dispatch_stub_803) + .size GL_PREFIX(_dispatch_stub_810), .-GL_PREFIX(_dispatch_stub_810) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_804) - .type GL_PREFIX(_dispatch_stub_804), @function - HIDDEN(GL_PREFIX(_dispatch_stub_804)) -GL_PREFIX(_dispatch_stub_804): + .globl GL_PREFIX(_dispatch_stub_811) + .type GL_PREFIX(_dispatch_stub_811), @function + HIDDEN(GL_PREFIX(_dispatch_stub_811)) +GL_PREFIX(_dispatch_stub_811): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6432(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30474,13 +30757,13 @@ GL_PREFIX(_dispatch_stub_804): popq %rdx popq %rsi popq %rdi - movq 6432(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6432(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30490,19 +30773,19 @@ GL_PREFIX(_dispatch_stub_804): popq %rdx popq %rsi popq %rdi - movq 6432(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_804), .-GL_PREFIX(_dispatch_stub_804) + .size GL_PREFIX(_dispatch_stub_811), .-GL_PREFIX(_dispatch_stub_811) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_805) - .type GL_PREFIX(_dispatch_stub_805), @function - HIDDEN(GL_PREFIX(_dispatch_stub_805)) -GL_PREFIX(_dispatch_stub_805): + .globl GL_PREFIX(_dispatch_stub_812) + .type GL_PREFIX(_dispatch_stub_812), @function + HIDDEN(GL_PREFIX(_dispatch_stub_812)) +GL_PREFIX(_dispatch_stub_812): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6440(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30512,13 +30795,13 @@ GL_PREFIX(_dispatch_stub_805): popq %rdx popq %rsi popq %rdi - movq 6440(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6440(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30528,10 +30811,10 @@ GL_PREFIX(_dispatch_stub_805): popq %rdx popq %rsi popq %rdi - movq 6440(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_805), .-GL_PREFIX(_dispatch_stub_805) + .size GL_PREFIX(_dispatch_stub_812), .-GL_PREFIX(_dispatch_stub_812) .p2align 4,,15 .globl GL_PREFIX(EGLImageTargetRenderbufferStorageOES) @@ -30539,7 +30822,7 @@ GL_PREFIX(_dispatch_stub_805): GL_PREFIX(EGLImageTargetRenderbufferStorageOES): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6448(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30549,13 +30832,13 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): popq %rbp popq %rsi popq %rdi - movq 6448(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6448(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30565,7 +30848,7 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): popq %rbp popq %rsi popq %rdi - movq 6448(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EGLImageTargetRenderbufferStorageOES), .-GL_PREFIX(EGLImageTargetRenderbufferStorageOES) @@ -30576,7 +30859,7 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): GL_PREFIX(EGLImageTargetTexture2DOES): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6456(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30586,13 +30869,13 @@ GL_PREFIX(EGLImageTargetTexture2DOES): popq %rbp popq %rsi popq %rdi - movq 6456(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6456(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30602,7 +30885,7 @@ GL_PREFIX(EGLImageTargetTexture2DOES): popq %rbp popq %rsi popq %rdi - movq 6456(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EGLImageTargetTexture2DOES), .-GL_PREFIX(EGLImageTargetTexture2DOES) @@ -30883,6 +31166,12 @@ GL_PREFIX(EGLImageTargetTexture2DOES): .globl GL_PREFIX(RenderbufferStorage) ; .set GL_PREFIX(RenderbufferStorage), GL_PREFIX(RenderbufferStorageEXT) .globl GL_PREFIX(BlitFramebuffer) ; .set GL_PREFIX(BlitFramebuffer), GL_PREFIX(_dispatch_stub_783) .globl GL_PREFIX(FramebufferTextureLayer) ; .set GL_PREFIX(FramebufferTextureLayer), GL_PREFIX(FramebufferTextureLayerEXT) + .globl GL_PREFIX(BeginTransformFeedback) ; .set GL_PREFIX(BeginTransformFeedback), GL_PREFIX(BeginTransformFeedbackEXT) + .globl GL_PREFIX(BindBufferBase) ; .set GL_PREFIX(BindBufferBase), GL_PREFIX(BindBufferBaseEXT) + .globl GL_PREFIX(BindBufferRange) ; .set GL_PREFIX(BindBufferRange), GL_PREFIX(BindBufferRangeEXT) + .globl GL_PREFIX(EndTransformFeedback) ; .set GL_PREFIX(EndTransformFeedback), GL_PREFIX(EndTransformFeedbackEXT) + .globl GL_PREFIX(GetTransformFeedbackVarying) ; .set GL_PREFIX(GetTransformFeedbackVarying), GL_PREFIX(GetTransformFeedbackVaryingEXT) + .globl GL_PREFIX(TransformFeedbackVaryings) ; .set GL_PREFIX(TransformFeedbackVaryings), GL_PREFIX(TransformFeedbackVaryingsEXT) .globl GL_PREFIX(ProvokingVertex) ; .set GL_PREFIX(ProvokingVertex), GL_PREFIX(ProvokingVertexEXT) #if defined(GLX_USE_TLS) && defined(__linux__) diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S index b1730d25a0..6dd387c399 100644 --- a/src/mesa/x86/glapi_x86.S +++ b/src/mesa/x86/glapi_x86.S @@ -976,24 +976,31 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(IsEnabledIndexedEXT, _gloffset_IsEnabledIndexedEXT, IsEnabledIndexedEXT@8) GL_STUB(BeginConditionalRenderNV, _gloffset_BeginConditionalRenderNV, BeginConditionalRenderNV@8) GL_STUB(EndConditionalRenderNV, _gloffset_EndConditionalRenderNV, EndConditionalRenderNV@0) + GL_STUB(BeginTransformFeedbackEXT, _gloffset_BeginTransformFeedbackEXT, BeginTransformFeedbackEXT@4) + GL_STUB(BindBufferBaseEXT, _gloffset_BindBufferBaseEXT, BindBufferBaseEXT@12) + GL_STUB(BindBufferOffsetEXT, _gloffset_BindBufferOffsetEXT, BindBufferOffsetEXT@16) + GL_STUB(BindBufferRangeEXT, _gloffset_BindBufferRangeEXT, BindBufferRangeEXT@20) + GL_STUB(EndTransformFeedbackEXT, _gloffset_EndTransformFeedbackEXT, EndTransformFeedbackEXT@0) + GL_STUB(GetTransformFeedbackVaryingEXT, _gloffset_GetTransformFeedbackVaryingEXT, GetTransformFeedbackVaryingEXT@28) + GL_STUB(TransformFeedbackVaryingsEXT, _gloffset_TransformFeedbackVaryingsEXT, TransformFeedbackVaryingsEXT@16) GL_STUB(ProvokingVertexEXT, _gloffset_ProvokingVertexEXT, ProvokingVertexEXT@4) - GL_STUB(_dispatch_stub_796, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_796@12) - HIDDEN(GL_PREFIX(_dispatch_stub_796, _dispatch_stub_796@12)) - GL_STUB(_dispatch_stub_797, _gloffset_TextureRangeAPPLE, _dispatch_stub_797@12) - HIDDEN(GL_PREFIX(_dispatch_stub_797, _dispatch_stub_797@12)) + GL_STUB(_dispatch_stub_803, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_803@12) + HIDDEN(GL_PREFIX(_dispatch_stub_803, _dispatch_stub_803@12)) + GL_STUB(_dispatch_stub_804, _gloffset_TextureRangeAPPLE, _dispatch_stub_804@12) + HIDDEN(GL_PREFIX(_dispatch_stub_804, _dispatch_stub_804@12)) GL_STUB(GetObjectParameterivAPPLE, _gloffset_GetObjectParameterivAPPLE, GetObjectParameterivAPPLE@16) GL_STUB(ObjectPurgeableAPPLE, _gloffset_ObjectPurgeableAPPLE, ObjectPurgeableAPPLE@12) GL_STUB(ObjectUnpurgeableAPPLE, _gloffset_ObjectUnpurgeableAPPLE, ObjectUnpurgeableAPPLE@12) - GL_STUB(_dispatch_stub_801, _gloffset_StencilFuncSeparateATI, _dispatch_stub_801@16) - HIDDEN(GL_PREFIX(_dispatch_stub_801, _dispatch_stub_801@16)) - GL_STUB(_dispatch_stub_802, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_802@16) - HIDDEN(GL_PREFIX(_dispatch_stub_802, _dispatch_stub_802@16)) - GL_STUB(_dispatch_stub_803, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_803@16) - HIDDEN(GL_PREFIX(_dispatch_stub_803, _dispatch_stub_803@16)) - GL_STUB(_dispatch_stub_804, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_804@12) - HIDDEN(GL_PREFIX(_dispatch_stub_804, _dispatch_stub_804@12)) - GL_STUB(_dispatch_stub_805, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_805@12) - HIDDEN(GL_PREFIX(_dispatch_stub_805, _dispatch_stub_805@12)) + GL_STUB(_dispatch_stub_808, _gloffset_StencilFuncSeparateATI, _dispatch_stub_808@16) + HIDDEN(GL_PREFIX(_dispatch_stub_808, _dispatch_stub_808@16)) + GL_STUB(_dispatch_stub_809, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_809@16) + HIDDEN(GL_PREFIX(_dispatch_stub_809, _dispatch_stub_809@16)) + GL_STUB(_dispatch_stub_810, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_810@16) + HIDDEN(GL_PREFIX(_dispatch_stub_810, _dispatch_stub_810@16)) + GL_STUB(_dispatch_stub_811, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_811@12) + HIDDEN(GL_PREFIX(_dispatch_stub_811, _dispatch_stub_811@12)) + GL_STUB(_dispatch_stub_812, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_812@12) + HIDDEN(GL_PREFIX(_dispatch_stub_812, _dispatch_stub_812@12)) GL_STUB(EGLImageTargetRenderbufferStorageOES, _gloffset_EGLImageTargetRenderbufferStorageOES, EGLImageTargetRenderbufferStorageOES@8) GL_STUB(EGLImageTargetTexture2DOES, _gloffset_EGLImageTargetTexture2DOES, EGLImageTargetTexture2DOES@8) GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4) @@ -1272,6 +1279,12 @@ GLNAME(gl_dispatch_functions_start): GL_STUB_ALIAS(RenderbufferStorage, _gloffset_RenderbufferStorageEXT, RenderbufferStorage@16, RenderbufferStorageEXT, RenderbufferStorageEXT@16) GL_STUB_ALIAS(BlitFramebuffer, _gloffset_BlitFramebufferEXT, BlitFramebuffer@40, _dispatch_stub_783, _dispatch_stub_783@40) GL_STUB_ALIAS(FramebufferTextureLayer, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayer@20, FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20) + GL_STUB_ALIAS(BeginTransformFeedback, _gloffset_BeginTransformFeedbackEXT, BeginTransformFeedback@4, BeginTransformFeedbackEXT, BeginTransformFeedbackEXT@4) + GL_STUB_ALIAS(BindBufferBase, _gloffset_BindBufferBaseEXT, BindBufferBase@12, BindBufferBaseEXT, BindBufferBaseEXT@12) + GL_STUB_ALIAS(BindBufferRange, _gloffset_BindBufferRangeEXT, BindBufferRange@20, BindBufferRangeEXT, BindBufferRangeEXT@20) + GL_STUB_ALIAS(EndTransformFeedback, _gloffset_EndTransformFeedbackEXT, EndTransformFeedback@0, EndTransformFeedbackEXT, EndTransformFeedbackEXT@0) + GL_STUB_ALIAS(GetTransformFeedbackVarying, _gloffset_GetTransformFeedbackVaryingEXT, GetTransformFeedbackVarying@28, GetTransformFeedbackVaryingEXT, GetTransformFeedbackVaryingEXT@28) + GL_STUB_ALIAS(TransformFeedbackVaryings, _gloffset_TransformFeedbackVaryingsEXT, TransformFeedbackVaryings@16, TransformFeedbackVaryingsEXT, TransformFeedbackVaryingsEXT@16) GL_STUB_ALIAS(ProvokingVertex, _gloffset_ProvokingVertexEXT, ProvokingVertex@4, ProvokingVertexEXT, ProvokingVertexEXT@4) GLOBL GLNAME(gl_dispatch_functions_end) -- cgit v1.2.3 From 808c424b673de109babc608ec74b34f0738ed906 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:38:00 -0600 Subject: mesa: plug in GL_EXT_transform_feedback functions into dispatch --- src/mesa/main/api_exec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index fa8d409caa..1e1aa41611 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -89,6 +89,7 @@ #include "texobj.h" #include "texparam.h" #include "texstate.h" +#include "transformfeedback.h" #include "mtypes.h" #include "varray.h" #include "viewport.h" @@ -477,6 +478,18 @@ _mesa_init_exec_table(struct _glapi_table *exec) /* ???. GL_EXT_depth_bounds_test */ SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT); + /* 352. GL_EXT_transform_feedback */ +#if _HAVE_FULL_GL + SET_BeginTransformFeedbackEXT(exec, _mesa_BeginTransformFeedback); + SET_EndTransformFeedbackEXT(exec, _mesa_EndTransformFeedback); + SET_BindBufferRangeEXT(exec, _mesa_BindBufferRange); + SET_BindBufferBaseEXT(exec, _mesa_BindBufferBase); + SET_BindBufferOffsetEXT(exec, _mesa_BindBufferOffsetEXT); + SET_TransformFeedbackVaryingsEXT(exec, _mesa_TransformFeedbackVaryings); + SET_GetTransformFeedbackVaryingEXT(exec, _mesa_GetTransformFeedbackVarying); +#endif + + /* 364. GL_EXT_provoking_vertex */ SET_ProvokingVertexEXT(exec, _mesa_ProvokingVertexEXT); /* ARB 1. GL_ARB_multitexture */ -- cgit v1.2.3 From f618867645b3ce2570958bfacc1faf8c88e7a620 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Apr 2010 22:38:18 -0600 Subject: mesa: display list support for GL_EXT_transform_feedback --- src/mesa/main/dlist.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 43aadb1de5..cc5fc130df 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -396,6 +396,10 @@ typedef enum /* GL_EXT_provoking_vertex */ OPCODE_PROVOKING_VERTEX, + /* GL_EXT_transform_feedback */ + OPCODE_BEGIN_TRANSFORM_FEEDBACK, + OPCODE_END_TRANSFORM_FEEDBACK, + /* The following three are meta instructions */ OPCODE_ERROR, /* raise compiled-in error */ OPCODE_CONTINUE, @@ -6104,6 +6108,37 @@ save_ProvokingVertexEXT(GLenum mode) } +/** GL_EXT_transform_feedback */ +static void GLAPIENTRY +save_BeginTransformFeedback(GLenum mode) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_BEGIN_TRANSFORM_FEEDBACK, 1); + if (n) { + n[1].e = mode; + } + if (ctx->ExecuteFlag) { + CALL_BeginTransformFeedbackEXT(ctx->Exec, (mode)); + } +} + + +/** GL_EXT_transform_feedback */ +static void GLAPIENTRY +save_EndTransformFeedback(void) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + n = alloc_instruction(ctx, OPCODE_END_TRANSFORM_FEEDBACK, 0); + if (ctx->ExecuteFlag) { + CALL_EndTransformFeedbackEXT(ctx->Exec, ()); + } +} + + /* aka UseProgram() */ static void GLAPIENTRY save_UseProgramObjectARB(GLhandleARB program) @@ -7199,6 +7234,12 @@ execute_list(GLcontext *ctx, GLuint list) case OPCODE_PROVOKING_VERTEX: CALL_ProvokingVertexEXT(ctx->Exec, (n[1].e)); break; + case OPCODE_BEGIN_TRANSFORM_FEEDBACK: + CALL_BeginTransformFeedbackEXT(ctx->Exec, (n[1].e)); + break; + case OPCODE_END_TRANSFORM_FEEDBACK: + CALL_EndTransformFeedbackEXT(ctx->Exec, ()); + break; case OPCODE_STENCIL_FUNC: CALL_StencilFunc(ctx->Exec, (n[1].e, n[2].i, n[3].ui)); break; @@ -9267,7 +9308,7 @@ _mesa_init_save_table(struct _glapi_table *table) /* 299. GL_EXT_blend_equation_separate */ SET_BlendEquationSeparateEXT(table, save_BlendEquationSeparateEXT); - /* GL_EXT_gpu_program_parmaeters */ + /* GL_EXT_gpu_program_parameters */ #if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program SET_ProgramEnvParameters4fvEXT(table, save_ProgramEnvParameters4fvEXT); SET_ProgramLocalParameters4fvEXT(table, save_ProgramLocalParameters4fvEXT); @@ -9282,6 +9323,12 @@ _mesa_init_save_table(struct _glapi_table *table) /* ARB 59. GL_ARB_copy_buffer */ SET_CopyBufferSubData(table, _mesa_CopyBufferSubData); /* no dlist save */ + /* 352. GL_EXT_transform_feedback */ +#if FEATURE_EXT_transform_feedback + SET_BeginTransformFeedbackEXT(table, save_BeginTransformFeedback); + SET_EndTransformFeedbackEXT(table, save_EndTransformFeedback); +#endif + /* 364. GL_EXT_provoking_vertex */ SET_ProvokingVertexEXT(table, save_ProvokingVertexEXT); -- cgit v1.2.3 From 4c26cdbe01619abad413b09317f2842dcf1a4d57 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 3 Apr 2010 21:52:09 +1000 Subject: r300g: fix color tiling for buffer from X server. The tiling setup needs a bit of work, but this should be good enough for now, when we get buffers from the kernel we need to store their tiling properties. Signed-off-by: Dave Airlie --- src/gallium/drivers/r300/r300_texture.c | 1 + src/gallium/drivers/r300/r300_winsys.h | 5 +++++ src/gallium/winsys/radeon/drm/radeon_buffer.h | 4 ++++ src/gallium/winsys/radeon/drm/radeon_drm_buffer.c | 19 ++++++++++++++++++- src/gallium/winsys/radeon/drm/radeon_r300.c | 10 ++++++++++ 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index e7bac615df..a9c9e14ba7 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -909,6 +909,7 @@ static struct pipe_texture* /* one ref already taken */ tex->buffer = buffer; + rws->buffer_get_tiling(rws, buffer, &tex->microtile, &tex->macrotile); return (struct pipe_texture*)tex; } diff --git a/src/gallium/drivers/r300/r300_winsys.h b/src/gallium/drivers/r300/r300_winsys.h index acfa5dbeb9..d8d0c609d2 100644 --- a/src/gallium/drivers/r300/r300_winsys.h +++ b/src/gallium/drivers/r300/r300_winsys.h @@ -146,6 +146,11 @@ struct r300_winsys_screen { void (*reset_bos)(struct r300_winsys_screen *winsys); + void (*buffer_get_tiling)(struct r300_winsys_screen *winsys, + struct r300_winsys_buffer *buffer, + enum r300_buffer_tiling *microtiled, + enum r300_buffer_tiling *macrotiled); + void (*buffer_set_tiling)(struct r300_winsys_screen *winsys, struct r300_winsys_buffer *buffer, uint32_t pitch, diff --git a/src/gallium/winsys/radeon/drm/radeon_buffer.h b/src/gallium/winsys/radeon/drm/radeon_buffer.h index 218a376301..8782d675df 100644 --- a/src/gallium/winsys/radeon/drm/radeon_buffer.h +++ b/src/gallium/winsys/radeon/drm/radeon_buffer.h @@ -72,6 +72,10 @@ void radeon_drm_bufmgr_write_reloc(struct pb_buffer *_buf, struct pb_buffer *radeon_drm_bufmgr_create_buffer_from_handle(struct pb_manager *_mgr, uint32_t handle); +void radeon_drm_bufmgr_get_tiling(struct pb_buffer *_buf, + enum r300_buffer_tiling *microtiled, + enum r300_buffer_tiling *macrotiled); + void radeon_drm_bufmgr_set_tiling(struct pb_buffer *_buf, enum r300_buffer_tiling microtiled, enum r300_buffer_tiling macrotiled, diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c index 66f6132245..5fd20cc775 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c @@ -304,7 +304,24 @@ boolean radeon_drm_bufmgr_get_handle(struct pb_buffer *_buf, } return TRUE; } - + +void radeon_drm_bufmgr_get_tiling(struct pb_buffer *_buf, + enum r300_buffer_tiling *microtiled, + enum r300_buffer_tiling *macrotiled) +{ + struct radeon_drm_buffer *buf = get_drm_buffer(_buf); + uint32_t flags = 0, pitch; + + radeon_bo_get_tiling(buf->bo, &flags, &pitch); + + *microtiled = R300_BUFFER_LINEAR; + *macrotiled = R300_BUFFER_LINEAR; + if (flags & RADEON_BO_FLAGS_MICRO_TILE) + *microtiled = R300_BUFFER_TILED; + + if (flags & RADEON_BO_FLAGS_MACRO_TILE) + *macrotiled = R300_BUFFER_TILED; +} void radeon_drm_bufmgr_set_tiling(struct pb_buffer *_buf, enum r300_buffer_tiling microtiled, diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c b/src/gallium/winsys/radeon/drm/radeon_r300.c index 38fcf889c8..935c1d84d0 100644 --- a/src/gallium/winsys/radeon/drm/radeon_r300.c +++ b/src/gallium/winsys/radeon/drm/radeon_r300.c @@ -72,6 +72,15 @@ static void radeon_r300_winsys_buffer_set_tiling(struct r300_winsys_screen *rws, radeon_drm_bufmgr_set_tiling(_buf, microtiled, macrotiled, pitch); } +static void radeon_r300_winsys_buffer_get_tiling(struct r300_winsys_screen *rws, + struct r300_winsys_buffer *buf, + enum r300_buffer_tiling *microtiled, + enum r300_buffer_tiling *macrotiled) +{ + struct pb_buffer *_buf = radeon_pb_buffer(buf); + radeon_drm_bufmgr_get_tiling(_buf, microtiled, macrotiled); +} + static void *radeon_r300_winsys_buffer_map(struct r300_winsys_screen *ws, struct r300_winsys_buffer *buf, unsigned usage) @@ -320,6 +329,7 @@ radeon_setup_winsys(int fd, struct radeon_libdrm_winsys* ws) ws->base.buffer_create = radeon_r300_winsys_buffer_create; ws->base.buffer_destroy = radeon_r300_winsys_buffer_destroy; ws->base.buffer_set_tiling = radeon_r300_winsys_buffer_set_tiling; + ws->base.buffer_get_tiling = radeon_r300_winsys_buffer_get_tiling; ws->base.buffer_map = radeon_r300_winsys_buffer_map; ws->base.buffer_unmap = radeon_r300_winsys_buffer_unmap; ws->base.buffer_reference = radeon_r300_winsys_buffer_reference; -- cgit v1.2.3 From 71b2f1d8e64eb77b1c1955c175d07def74855bad Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 1 Apr 2010 12:28:41 -0700 Subject: xdemos: Build object files first This helps debugging on darwin. Signed-off-by: Jeremy Huddleston --- progs/xdemos/Makefile | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/progs/xdemos/Makefile b/progs/xdemos/Makefile index e87d55d011..d81caab4dd 100644 --- a/progs/xdemos/Makefile +++ b/progs/xdemos/Makefile @@ -53,17 +53,18 @@ EXTRA_PROGS = \ ##### RULES ##### -.SUFFIXES: -.SUFFIXES: .c +.o: $(LIB_DEP) + $(APP_CC) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ -.c: $(LIB_DEP) - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ +.c.o: + $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< -c -o $@ ##### TARGETS ##### default: $(PROGS) +$(PROGS): $(PROGS:%=%.o) extra: $(EXTRA_PROGS) @@ -74,45 +75,29 @@ clean: # special cases +pbutil.o: pbutil.h +pbinfo.o: pbutil.h pbinfo: pbinfo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbinfo.o pbutil.o $(LIBS) -o $@ +pbdemo.o: pbutil.h pbdemo: pbdemo.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) pbdemo.o pbutil.o $(LIBS) -o $@ -pbinfo.o: pbinfo.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbinfo.c - -pbdemo.o: pbdemo.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbdemo.c - -pbutil.o: pbutil.c pbutil.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) pbutil.c - +glxgears_fbconfig.o: pbutil.h glxgears_fbconfig: glxgears_fbconfig.o pbutil.o $(APP_CC) $(CFLAGS) $(LDFLAGS) glxgears_fbconfig.o pbutil.o $(LIBS) -o $@ -glxgears_fbconfig.o: glxgears_fbconfig.c pbutil.h - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) -c -I. $(CFLAGS) glxgears_fbconfig.c - +xuserotfont.o: xuserotfont.h +xrotfontdemo.o: xuserotfont.h xrotfontdemo: xrotfontdemo.o xuserotfont.o $(APP_CC) $(CFLAGS) $(LDFLAGS) xrotfontdemo.o xuserotfont.o $(LIBS) -o $@ -xuserotfont.o: xuserotfont.c xuserotfont.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xuserotfont.c - -xrotfontdemo.o: xrotfontdemo.c xuserotfont.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) xrotfontdemo.c - +ipc.o: ipc.h +corender.o: ipc.h corender: corender.o ipc.o $(APP_CC) $(CFLAGS) $(LDFLAGS) corender.o ipc.o $(LIBS) -o $@ -corender.o: corender.c ipc.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) corender.c - -ipc.o: ipc.c ipc.h - $(APP_CC) -c -I. -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) ipc.c - -yuvrect_client: yuvrect_client.c - $(APP_CC) -I$(INCDIR) $(X11_INCLUDES) $(CFLAGS) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ +yuvrect_client: yuvrect_client.o + $(APP_CC) $(CFLAGS) $< $(LDFLAGS) $(LIBS) -l$(GLU_LIB) -o $@ -- cgit v1.2.3 From 930838efcdac04dd0a0c7ee0375364548a0efe8c Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 3 Apr 2010 12:14:21 -0700 Subject: util: Use GCC atomic bultins on GCC 4.1 and higher only. --- src/gallium/auxiliary/util/u_atomic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_atomic.h b/src/gallium/auxiliary/util/u_atomic.h index 3c42477ad4..a156823390 100644 --- a/src/gallium/auxiliary/util/u_atomic.h +++ b/src/gallium/auxiliary/util/u_atomic.h @@ -29,7 +29,7 @@ #define PIPE_ATOMIC_ASM_MSVC_X86 #elif (defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86)) #define PIPE_ATOMIC_ASM_GCC_X86 -#elif defined(PIPE_CC_GCC) +#elif defined(PIPE_CC_GCC) && (PIPE_CC_GCC_VERSION >= 401) #define PIPE_ATOMIC_GCC_INTRINSIC #else #error "Unsupported platform" -- cgit v1.2.3 From e0848bd90378ba633cfa57013c650e892d931f74 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sat, 3 Apr 2010 17:08:45 +0200 Subject: r300g: properly setup textures from X server The setup needs be done after querying tiling flags. --- src/gallium/drivers/r300/r300_texture.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index a9c9e14ba7..72e14bd892 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -901,15 +901,14 @@ static struct pipe_texture* tex->tex.screen = screen; tex->stride_override = stride; - tex->pitch[0] = stride / util_format_get_blocksize(base->format); - - r300_setup_flags(tex); - r300_setup_texture_state(rscreen, tex); /* one ref already taken */ tex->buffer = buffer; rws->buffer_get_tiling(rws, buffer, &tex->microtile, &tex->macrotile); + r300_setup_flags(tex); + r300_setup_miptree(rscreen, tex); + r300_setup_texture_state(rscreen, tex); return (struct pipe_texture*)tex; } -- cgit v1.2.3 From 6eb892cc12047af36f4eb42050f1d2e57b0f3a3c Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 4 Apr 2010 03:54:09 +0200 Subject: r300g: do not use the c++ template keyword It makes life for some code browsing utilites easier. --- src/gallium/drivers/r300/r300_texture.c | 30 +++++++++++++++--------------- src/gallium/drivers/r300/r300_transfer.c | 24 ++++++++++++------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 72e14bd892..57f2766d2e 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -785,7 +785,7 @@ static void r300_setup_tiling(struct pipe_screen *screen, /* Create a new texture. */ static struct pipe_texture* r300_texture_create(struct pipe_screen* screen, - const struct pipe_texture* template) + const struct pipe_texture* base) { struct r300_texture* tex = CALLOC_STRUCT(r300_texture); struct r300_screen* rscreen = r300_screen(screen); @@ -795,12 +795,12 @@ static struct pipe_texture* r300_texture_create(struct pipe_screen* screen, return NULL; } - tex->tex = *template; + tex->tex = *base; pipe_reference_init(&tex->tex.reference, 1); tex->tex.screen = screen; r300_setup_flags(tex); - if (!(template->tex_usage & R300_TEXTURE_USAGE_TRANSFER)) { + if (!(base->tex_usage & R300_TEXTURE_USAGE_TRANSFER)) { r300_setup_tiling(screen, tex); } r300_setup_miptree(rscreen, tex); @@ -938,7 +938,7 @@ r300_video_surface_create(struct pipe_screen *screen, unsigned width, unsigned height) { struct r300_video_surface *r300_vsfc; - struct pipe_texture template; + struct pipe_texture base; assert(screen); assert(width && height); @@ -953,17 +953,17 @@ r300_video_surface_create(struct pipe_screen *screen, r300_vsfc->base.width = width; r300_vsfc->base.height = height; - memset(&template, 0, sizeof(struct pipe_texture)); - template.target = PIPE_TEXTURE_2D; - template.format = PIPE_FORMAT_B8G8R8X8_UNORM; - template.last_level = 0; - template.width0 = util_next_power_of_two(width); - template.height0 = util_next_power_of_two(height); - template.depth0 = 1; - template.tex_usage = PIPE_TEXTURE_USAGE_SAMPLER | - PIPE_TEXTURE_USAGE_RENDER_TARGET; - - r300_vsfc->tex = screen->texture_create(screen, &template); + memset(&base, 0, sizeof(struct pipe_texture)); + base.target = PIPE_TEXTURE_2D; + base.format = PIPE_FORMAT_B8G8R8X8_UNORM; + base.last_level = 0; + base.width0 = util_next_power_of_two(width); + base.height0 = util_next_power_of_two(height); + base.depth0 = 1; + base.tex_usage = PIPE_TEXTURE_USAGE_SAMPLER | + PIPE_TEXTURE_USAGE_RENDER_TARGET; + + r300_vsfc->tex = screen->texture_create(screen, &base); if (!r300_vsfc->tex) { FREE(r300_vsfc); diff --git a/src/gallium/drivers/r300/r300_transfer.c b/src/gallium/drivers/r300/r300_transfer.c index 987a040698..cbf3174b38 100644 --- a/src/gallium/drivers/r300/r300_transfer.c +++ b/src/gallium/drivers/r300/r300_transfer.c @@ -129,7 +129,7 @@ r300_get_tex_transfer(struct pipe_context *ctx, struct r300_texture *tex = (struct r300_texture *)texture; struct r300_screen *r300screen = r300_screen(ctx->screen); struct r300_transfer *trans; - struct pipe_texture template; + struct pipe_texture base; trans = CALLOC_STRUCT(r300_transfer); if (trans) { @@ -154,31 +154,31 @@ r300_get_tex_transfer(struct pipe_context *ctx, PIPE_TEXTURE_USAGE_DEPTH_STENCIL : PIPE_TEXTURE_USAGE_RENDER_TARGET; - template.target = PIPE_TEXTURE_2D; - template.format = texture->format; - template.width0 = w; - template.height0 = h; - template.depth0 = 0; - template.last_level = 0; - template.nr_samples = 0; - template.tex_usage = PIPE_TEXTURE_USAGE_DYNAMIC | + base.target = PIPE_TEXTURE_2D; + base.format = texture->format; + base.width0 = w; + base.height0 = h; + base.depth0 = 0; + base.last_level = 0; + base.nr_samples = 0; + base.tex_usage = PIPE_TEXTURE_USAGE_DYNAMIC | R300_TEXTURE_USAGE_TRANSFER; /* For texture reading, the temporary (detiled) texture is used as * a render target when blitting from a tiled texture. */ if (usage & PIPE_TRANSFER_READ) { - template.tex_usage |= trans->render_target_usage; + base.tex_usage |= trans->render_target_usage; } /* For texture writing, the temporary texture is used as a sampler * when blitting into a tiled texture. */ if (usage & PIPE_TRANSFER_WRITE) { - template.tex_usage |= PIPE_TEXTURE_USAGE_SAMPLER; + base.tex_usage |= PIPE_TEXTURE_USAGE_SAMPLER; } /* Create the temporary texture. */ trans->detiled_texture = (struct r300_texture*) ctx->screen->texture_create(ctx->screen, - &template); + &base); assert(!trans->detiled_texture->microtile && !trans->detiled_texture->macrotile); -- cgit v1.2.3 From 116c99768e2c43ff7b41159dafc65e698cde9a62 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 21 Feb 2010 18:22:18 +0100 Subject: r300g: add r4xx fragment shader registers In case anyone needs it, it's here. --- src/gallium/drivers/r300/r300_reg.h | 48 ++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h index 0d6b7654f3..bb87cc7eae 100644 --- a/src/gallium/drivers/r300/r300_reg.h +++ b/src/gallium/drivers/r300/r300_reg.h @@ -1740,6 +1740,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_PFS_CNTL_TEX_OFFSET_MASK (31 << 13) # define R300_PFS_CNTL_TEX_END_SHIFT 18 # define R300_PFS_CNTL_TEX_END_MASK (31 << 18) +# define R400_PFS_CNTL_TEX_OFFSET_MSB_SHIFT 24 +# define R400_PFS_CNTL_TEX_OFFSET_MSB_MASK (0xf << 24) +# define R400_PFS_CNTL_TEX_END_MSB_SHIFT 28 +# define R400_PFS_CNTL_TEX_END_MSB_MASK (0xf << 28) /* gap */ @@ -1764,6 +1768,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_TEX_SIZE_MASK (31 << 17) # define R300_RGBA_OUT (1 << 22) # define R300_W_OUT (1 << 23) +# define R400_TEX_START_MSB_SHIFT 24 +# define R400_TEX_START_MSG_MASK (0xf << 24) +# define R400_TEX_SIZE_MSB_SHIFT 28 +# define R400_TEX_SIZE_MSG_MASK (0xf << 28) /* TEX * As far as I can tell, texture instructions cannot write into output @@ -1784,6 +1792,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_TEX_OP_TXP 3 # define R300_TEX_OP_TXB 4 # define R300_TEX_INST_MASK (7 << 15) +# define R400_SRC_ADDR_EXT_BIT (1 << 19) +# define R400_DST_ADDR_EXT_BIT (1 << 20) /* Output format from the unfied shader */ #define R300_US_OUT_FMT_0 0x46A4 @@ -2092,6 +2102,43 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_ALU_OUTA_CLAMP (1 << 30) /* END: Fragment program instruction set */ +/* R4xx extended fragment shader registers. */ +#define R400_US_ALU_EXT_ADDR_0 0x4ac0 /* up to 63 (0x4bbc) */ +# define R400_ADDR0_EXT_RGB_MSB_BIT 0x01 +# define R400_ADDR1_EXT_RGB_MSB_BIT 0x02 +# define R400_ADDR2_EXT_RGB_MSB_BIT 0x04 +# define R400_ADDRD_EXT_RGB_MSB_BIT 0x08 +# define R400_ADDR0_EXT_A_MSB_BIT 0x10 +# define R400_ADDR1_EXT_A_MSB_BIT 0x20 +# define R400_ADDR2_EXT_A_MSB_BIT 0x40 +# define R400_ADDRD_EXT_A_MSB_BIT 0x80 +#define R400_US_CODE_BANK 0x46b8 +# define R400_BANK_SHIFT 0 +# define R400_BANK_MASK 0xf +# define R400_R390_MODE_ENABLE (1 << 4) +#define R400_US_CODE_EXT 0x46bc +# define R400_ALU_OFFSET_MSB_SHIFT 0 +# define R400_ALU_OFFSET_MSB_MASK (0x7 << 0) +# define R400_ALU_SIZE_MSB_SHIFT 3 +# define R400_ALU_SIZE_MSB_MASK (0x7 << 3) +# define R400_ALU_START0_MSB_SHIFT 6 +# define R400_ALU_START0_MSB_MASK (0x7 << 6) +# define R400_ALU_SIZE0_MSB_SHIFT 9 +# define R400_ALU_SIZE0_MSB_MASK (0x7 << 9) +# define R400_ALU_START1_MSB_SHIFT 12 +# define R400_ALU_START1_MSB_MASK (0x7 << 12) +# define R400_ALU_SIZE1_MSB_SHIFT 15 +# define R400_ALU_SIZE1_MSB_MASK (0x7 << 15) +# define R400_ALU_START2_MSB_SHIFT 18 +# define R400_ALU_START2_MSB_MASK (0x7 << 18) +# define R400_ALU_SIZE2_MSB_SHIFT 21 +# define R400_ALU_SIZE2_MSB_MASK (0x7 << 21) +# define R400_ALU_START3_MSB_SHIFT 24 +# define R400_ALU_START3_MSB_MASK (0x7 << 24) +# define R400_ALU_SIZE3_MSB_SHIFT 27 +# define R400_ALU_SIZE3_MSB_MASK (0x7 << 27) +/* END: R4xx extended fragment shader registers. */ + /* Fog: Fog Blending Enable */ #define R300_FG_FOG_BLEND 0x4bc0 # define R300_FG_FOG_BLEND_DISABLE (0 << 0) @@ -3290,7 +3337,6 @@ enum { # define R300_W_SRC_US (0 << 2) # define R300_W_SRC_RAS (1 << 2) - /* Draw a primitive from vertex data in arrays loaded via 3D_LOAD_VBPNTR. * Two parameter dwords: * 0. VAP_VTX_FMT: The first parameter is not written to hardware -- cgit v1.2.3 From 655fe281556679669699052f37412a6243771619 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 4 Apr 2010 08:59:09 +0200 Subject: r300g: add conditional rendering --- src/gallium/drivers/r300/r300_context.h | 2 ++ src/gallium/drivers/r300/r300_query.c | 23 +++++++++++++++++++++++ src/gallium/drivers/r300/r300_render.c | 8 ++++++++ 3 files changed, 33 insertions(+) diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 0a82484e89..031092312d 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -377,6 +377,8 @@ struct r300_context { uint32_t zbuffer_bpp; /* Whether scissor is enabled. */ boolean scissor_enabled; + /* Whether rendering is conditional and should be skipped. */ + boolean skip_rendering; /* upload managers */ struct u_upload_mgr *upload_vb; struct u_upload_mgr *upload_ib; diff --git a/src/gallium/drivers/r300/r300_query.c b/src/gallium/drivers/r300/r300_query.c index f8b52d593d..1778dc9cca 100644 --- a/src/gallium/drivers/r300/r300_query.c +++ b/src/gallium/drivers/r300/r300_query.c @@ -159,10 +159,33 @@ static boolean r300_get_query_result(struct pipe_context* pipe, return TRUE; } +static void r300_render_condition(struct pipe_context *pipe, + struct pipe_query *query, + uint mode) +{ + struct r300_context *r300 = r300_context(pipe); + uint64_t result; + boolean wait; + + if (query) { + wait = mode == PIPE_RENDER_COND_WAIT || + mode == PIPE_RENDER_COND_BY_REGION_WAIT; + + if (!r300_get_query_result(pipe, query, wait, &result)) { + r300->skip_rendering = FALSE; + } + + r300->skip_rendering = result == 0; + } else { + r300->skip_rendering = FALSE; + } +} + void r300_init_query_functions(struct r300_context* r300) { r300->context.create_query = r300_create_query; r300->context.destroy_query = r300_destroy_query; r300->context.begin_query = r300_begin_query; r300->context.end_query = r300_end_query; r300->context.get_query_result = r300_get_query_result; + r300->context.render_condition = r300_render_condition; } diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index 1fb7eac2b3..7898329771 100644 --- a/src/gallium/drivers/r300/r300_render.c +++ b/src/gallium/drivers/r300/r300_render.c @@ -427,6 +427,10 @@ void r300_draw_range_elements(struct pipe_context* pipe, #endif unsigned short_count; + if (r300->skip_rendering) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } @@ -503,6 +507,10 @@ void r300_draw_arrays(struct pipe_context* pipe, unsigned mode, #endif unsigned short_count; + if (r300->skip_rendering) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } -- cgit v1.2.3 From d605b0db4d4318d2616fffc158e57732c416c5c3 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sun, 4 Apr 2010 20:31:42 +1000 Subject: r300g: fix TFP stride override. We should use pitch for the overriden state, fixes one half of the tfp test. Signed-off-by: Dave Airlie --- src/gallium/drivers/r300/r300_texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 57f2766d2e..d03c28ba35 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -521,7 +521,7 @@ static void r300_setup_texture_state(struct r300_screen* screen, struct r300_tex state->format0 = R300_TX_WIDTH((pt->width0 - 1) & 0x7ff) | R300_TX_HEIGHT((pt->height0 - 1) & 0x7ff); - if (tex->is_npot) { + if (tex->is_npot || tex->stride_override) { /* rectangles love this */ state->format0 |= R300_TX_PITCH_EN; state->format2 = (tex->pitch[0] - 1) & 0x1fff; -- cgit v1.2.3 From 776dc53f62c46e235ff8ef2e1eec1a308a036987 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 12 Mar 2010 09:56:11 +0800 Subject: st/egl: Implement get_egl_image hook. This hook may be used by rendering state trackers to implement EGLImage extensions. --- src/gallium/state_trackers/egl/common/egl_g3d_st.c | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_st.c b/src/gallium/state_trackers/egl/common/egl_g3d_st.c index 6488965e5b..9573ba09d1 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_st.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d_st.c @@ -85,6 +85,37 @@ egl_g3d_create_st_api(enum st_api_type api) return mod->create_api(); } +static boolean +egl_g3d_st_manager_get_egl_image(struct st_manager *smapi, + struct st_egl_image *stimg) +{ + struct egl_g3d_st_manager *gsmapi = egl_g3d_st_manager(smapi); + EGLImageKHR handle = (EGLImageKHR) stimg->egl_image; + _EGLImage *img; + struct egl_g3d_image *gimg; + + /* this is called from state trackers */ + _eglLockMutex(&gsmapi->display->Mutex); + + img = _eglLookupImage(handle, gsmapi->display); + if (!img) { + _eglUnlockMutex(&gsmapi->display->Mutex); + return FALSE; + } + + gimg = egl_g3d_image(img); + + stimg->texture = NULL; + pipe_texture_reference(&stimg->texture, gimg->texture); + stimg->face = gimg->face; + stimg->level = gimg->level; + stimg->zslice = gimg->zslice; + + _eglUnlockMutex(&gsmapi->display->Mutex); + + return TRUE; +} + struct st_manager * egl_g3d_create_st_manager(_EGLDisplay *dpy) { @@ -96,6 +127,7 @@ egl_g3d_create_st_manager(_EGLDisplay *dpy) gsmapi->display = dpy; gsmapi->base.screen = gdpy->native->screen; + gsmapi->base.get_egl_image = egl_g3d_st_manager_get_egl_image; } return &gsmapi->base;; -- cgit v1.2.3 From a1aa53b2a934ca026bb115aca18a46fd920f9e8d Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 25 Feb 2010 23:10:47 +0800 Subject: st/mesa: Implement GL_OES_EGL_image driver hooks. Use st_manager::get_egl_image to look up GLeglImageOES and implement EGLImageTargetTexture2D and EGLImageTargetRenderbufferStorage. --- src/mesa/SConscript | 1 + src/mesa/sources.mak | 1 + src/mesa/state_tracker/st_cb_eglimage.c | 160 ++++++++++++++++++++++++++++++++ src/mesa/state_tracker/st_cb_eglimage.h | 48 ++++++++++ src/mesa/state_tracker/st_context.c | 3 + src/mesa/state_tracker/st_manager.c | 28 ++++++ src/mesa/state_tracker/st_manager.h | 4 + 7 files changed, 245 insertions(+) create mode 100644 src/mesa/state_tracker/st_cb_eglimage.c create mode 100644 src/mesa/state_tracker/st_cb_eglimage.h diff --git a/src/mesa/SConscript b/src/mesa/SConscript index 5a04dfd68f..424232a1d2 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -167,6 +167,7 @@ if env['platform'] != 'winddk': 'state_tracker/st_cb_condrender.c', 'state_tracker/st_cb_flush.c', 'state_tracker/st_cb_drawpixels.c', + 'state_tracker/st_cb_eglimage.c', 'state_tracker/st_cb_fbo.c', 'state_tracker/st_cb_feedback.c', 'state_tracker/st_cb_program.c', diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak index 996172d9a5..f6d52b8e0f 100644 --- a/src/mesa/sources.mak +++ b/src/mesa/sources.mak @@ -199,6 +199,7 @@ STATETRACKER_SOURCES = \ state_tracker/st_cb_condrender.c \ state_tracker/st_cb_flush.c \ state_tracker/st_cb_drawpixels.c \ + state_tracker/st_cb_eglimage.c \ state_tracker/st_cb_fbo.c \ state_tracker/st_cb_feedback.c \ state_tracker/st_cb_program.c \ diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c new file mode 100644 index 0000000000..935b29a324 --- /dev/null +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -0,0 +1,160 @@ +/* + * Mesa 3-D graphics library + * Version: 7.9 + * + * Copyright (C) 2010 LunarG Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Chia-I Wu + */ + +#include "main/texobj.h" +#include "main/texfetch.h" +#include "main/teximage.h" +#include "util/u_inlines.h" +#include "util/u_format.h" +#include "st_cb_eglimage.h" +#include "st_cb_fbo.h" +#include "st_texture.h" +#include "st_format.h" +#include "st_manager.h" + +#if FEATURE_OES_EGL_image + +/** + * Return the base format just like _mesa_base_fbo_format does. + */ +static GLenum +st_pipe_format_to_base_format(enum pipe_format format) +{ + GLenum base_format; + + if (util_format_is_depth_or_stencil(format)) { + if (util_format_is_depth_and_stencil(format)) { + base_format = GL_DEPTH_STENCIL; + } + else { + if (format == PIPE_FORMAT_S8_USCALED) + base_format = GL_STENCIL_INDEX; + else + base_format = GL_DEPTH_COMPONENT; + } + } + else { + /* is this enough? */ + if (util_format_has_alpha(format)) + base_format = GL_RGBA; + else + base_format = GL_RGB; + } + + return base_format; +} + +static void +st_egl_image_target_renderbuffer_storage(GLcontext *ctx, + struct gl_renderbuffer *rb, + GLeglImageOES image_handle) +{ + struct st_context *st = ctx->st; + struct st_renderbuffer *strb = st_renderbuffer(rb); + struct pipe_surface *ps; + unsigned usage; + + usage = PIPE_BUFFER_USAGE_GPU_READ | PIPE_BUFFER_USAGE_GPU_WRITE; + ps = st_manager_get_egl_image_surface(st, (void *) image_handle, usage); + if (ps) { + strb->Base.Width = ps->width; + strb->Base.Height = ps->height; + strb->Base.Format = st_pipe_format_to_mesa_format(ps->format); + strb->Base.DataType = st_format_datatype(ps->format); + strb->Base._BaseFormat = st_pipe_format_to_base_format(ps->format); + strb->Base.InternalFormat = strb->Base._BaseFormat; + + pipe_surface_reference(&strb->surface, ps); + pipe_texture_reference(&strb->texture, ps->texture); + + pipe_surface_reference(&ps, NULL); + } +} + +static void +st_bind_surface(GLcontext *ctx, GLenum target, + struct gl_texture_object *texObj, + struct gl_texture_image *texImage, + struct pipe_surface *ps) +{ + struct st_texture_object *stObj; + struct st_texture_image *stImage; + GLenum internalFormat; + + /* map pipe format to base format */ + if (util_format_get_component_bits(ps->format, UTIL_FORMAT_COLORSPACE_RGB, 3) > 0) + internalFormat = GL_RGBA; + else + internalFormat = GL_RGB; + + stObj = st_texture_object(texObj); + stImage = st_texture_image(texImage); + + /* switch to surface based */ + if (!stObj->surface_based) { + _mesa_clear_texture_object(ctx, texObj); + stObj->surface_based = GL_TRUE; + } + + _mesa_init_teximage_fields(ctx, target, texImage, + ps->width, ps->height, 1, 0, internalFormat); + texImage->TexFormat = st_pipe_format_to_mesa_format(ps->format); + _mesa_set_fetch_functions(texImage, 2); + + stObj->pipe = ctx->st->pipe; + /* FIXME create a non-default sampler view from the pipe_surface? */ + pipe_texture_reference(&stImage->pt, ps->texture); + + _mesa_dirty_texobj(ctx, texObj, GL_TRUE); +} + +static void +st_egl_image_target_texture_2d(GLcontext *ctx, GLenum target, + struct gl_texture_object *texObj, + struct gl_texture_image *texImage, + GLeglImageOES image_handle) +{ + struct st_context *st = ctx->st; + struct pipe_surface *ps; + unsigned usage; + + usage = PIPE_BUFFER_USAGE_GPU_READ | PIPE_BUFFER_USAGE_GPU_WRITE; + ps = st_manager_get_egl_image_surface(st, (void *) image_handle, usage); + if (ps) { + st_bind_surface(ctx, target, texObj, texImage, ps); + pipe_surface_reference(&ps, NULL); + } +} + +void +st_init_eglimage_functions(struct dd_function_table *functions) +{ + functions->EGLImageTargetTexture2D = st_egl_image_target_texture_2d; + functions->EGLImageTargetRenderbufferStorage = st_egl_image_target_renderbuffer_storage; +} + +#endif /* FEATURE_OES_EGL_image */ diff --git a/src/mesa/state_tracker/st_cb_eglimage.h b/src/mesa/state_tracker/st_cb_eglimage.h new file mode 100644 index 0000000000..77e668d919 --- /dev/null +++ b/src/mesa/state_tracker/st_cb_eglimage.h @@ -0,0 +1,48 @@ +/* + * Mesa 3-D graphics library + * Version: 7.9 + * + * Copyright (C) 2010 LunarG Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Chia-I Wu + */ + +#ifndef ST_CB_EGLIMAGE_H +#define ST_CB_EGLIMAGE_H + +#include "main/mtypes.h" +#include "main/dd.h" + +#if FEATURE_OES_EGL_image + +extern void +st_init_eglimage_functions(struct dd_function_table *functions); + +#else + +static INLINE void +st_init_eglimage_functions(struct dd_function_table *functions) +{ +} + +#endif + +#endif /* ST_CB_EGLIMAGE_H */ diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 72f5a9c1e0..83580591fc 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -46,6 +46,7 @@ #if FEATURE_OES_draw_texture #include "st_cb_drawtex.h" #endif +#include "st_cb_eglimage.h" #include "st_cb_fbo.h" #if FEATURE_feedback #include "st_cb_feedback.h" @@ -359,6 +360,8 @@ void st_init_driver_functions(struct dd_function_table *functions) st_init_drawtex_functions(functions); #endif + st_init_eglimage_functions(functions); + st_init_fbo_functions(functions); #if FEATURE_feedback st_init_feedback_functions(functions); diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index cac62e4a14..696d8aa792 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -720,6 +720,34 @@ st_manager_flush_frontbuffer(struct st_context *st) stfb->iface->flush_front(stfb->iface, ST_ATTACHMENT_FRONT_LEFT); } +/** + * Return the surface of an EGLImage. + */ +struct pipe_surface * +st_manager_get_egl_image_surface(struct st_context *st, + void *eglimg, unsigned usage) +{ + struct st_manager *smapi = + (struct st_manager *) st->iface.st_context_private; + struct st_egl_image stimg; + struct pipe_surface *ps; + + if (!smapi || !smapi->get_egl_image) + return NULL; + + memset(&stimg, 0, sizeof(stimg)); + stimg.stctxi = &st->iface; + stimg.egl_image = eglimg; + if (!smapi->get_egl_image(smapi, &stimg)) + return NULL; + + ps = smapi->screen->get_tex_surface(smapi->screen, + stimg.texture, stimg.face, stimg.level, stimg.zslice, usage); + pipe_texture_reference(&stimg.texture, NULL); + + return ps; +} + /** * Re-validate the framebuffers. */ diff --git a/src/mesa/state_tracker/st_manager.h b/src/mesa/state_tracker/st_manager.h index a3f5199223..0d3f8f7de4 100644 --- a/src/mesa/state_tracker/st_manager.h +++ b/src/mesa/state_tracker/st_manager.h @@ -31,6 +31,10 @@ #include "state_tracker/st_api.h" #include "st_context.h" +struct pipe_surface * +st_manager_get_egl_image_surface(struct st_context *st, + void *eglimg, unsigned usage); + void st_manager_flush_frontbuffer(struct st_context *st); -- cgit v1.2.3 From ad3575e2dd81252e9ea341d1a7355e0bfd1cccee Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 1 Mar 2010 15:21:46 +0800 Subject: progs/egl: Add an OpenGL ES demo for EGL_OES_image_pixmap. The demo uses a Pixmap as its drawing area, and whatever is drawn on the pixmap will be used as a texture to draw a cube. --- progs/egl/opengles1/Makefile | 4 + progs/egl/opengles1/texture_from_pixmap.c | 579 ++++++++++++++++++++++++++++++ 2 files changed, 583 insertions(+) create mode 100644 progs/egl/opengles1/texture_from_pixmap.c diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index c575a9703e..dac911e39f 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -35,6 +35,7 @@ PROGRAMS = \ msaa \ pbuffer \ render_tex \ + texture_from_pixmap \ torus \ two_win @@ -72,6 +73,9 @@ render_tex: render_tex.o $(ES1_LIB_DEPS) $(CC) $(CFLAGS) render_tex.o $(ES1_LIBS) -o $@ +texture_from_pixmap: texture_from_pixmap.o $(ES1_LIB_DEPS) + $(CC) $(CFLAGS) texture_from_pixmap.o $(ES1_LIBS) -o $@ + torus: torus.o $(ES1_LIB_DEPS) $(CC) $(CFLAGS) torus.o $(ES1_LIBS) -o $@ diff --git a/progs/egl/opengles1/texture_from_pixmap.c b/progs/egl/opengles1/texture_from_pixmap.c new file mode 100644 index 0000000000..abb8c28e56 --- /dev/null +++ b/progs/egl/opengles1/texture_from_pixmap.c @@ -0,0 +1,579 @@ +/* + * Mesa 3-D graphics library + * Version: 7.9 + * + * Copyright (C) 2010 LunarG Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Chia-I Wu + */ + +/* + * This demo uses EGL_KHR_image_pixmap and GL_OES_EGL_image to demonstrate + * texture-from-pixmap. + */ + +#include +#include +#include +#include +#include /* for usleep */ +#include /* for gettimeofday */ +#include +#include +#include +#include +#include +#include +#include + +struct app_data { + /* native */ + Display *xdpy; + Window canvas, cube; + Pixmap pix; + unsigned int width, height, depth; + GC fg, bg; + + /* EGL */ + EGLDisplay dpy; + EGLContext ctx; + EGLSurface surf; + EGLImageKHR img; + + /* OpenGL ES */ + GLuint texture; + + PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR; + PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR; + PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES; + + /* app state */ + Bool loop; + Bool redraw, reshape; + + struct { + Bool active; + unsigned long next_frame; /* in ms */ + float view_rotx; + float view_roty; + float view_rotz; + + } animate; + + struct { + Bool active; + int x1, y1; + int x2, y2; + } paint; +}; + +static void +gl_redraw(void) +{ + const GLfloat verts[4][2] = { + { -1, -1 }, + { 1, -1 }, + { 1, 1 }, + { -1, 1 } + }; + const GLfloat texcoords[4][2] = { + { 0, 1 }, + { 1, 1 }, + { 1, 0 }, + { 0, 0 } + }; + const GLfloat faces[6][4] = { + { 0, 0, 1, 0 }, + { 90, 0, 1, 0 }, + { 180, 0, 1, 0 }, + { 270, 0, 1, 0 }, + { 90, 1, 0, 0 }, + { -90, 1, 0, 0 } + }; + GLint i; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glVertexPointer(2, GL_FLOAT, 0, verts); + glTexCoordPointer(2, GL_FLOAT, 0, texcoords); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + for (i = 0; i < 6; i++) { + glPushMatrix(); + glRotatef(faces[i][0], faces[i][1], faces[i][2], faces[i][3]); + glTranslatef(0, 0, 1.0); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + glPopMatrix(); + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +} + +static void +gl_reshape(int width, int height) +{ + GLfloat ar = (GLfloat) width / (GLfloat) height; + + glViewport(0, 0, width, height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -10.0); +} + +static void +app_redraw(struct app_data *data) +{ + /* pixmap has changed */ + if (data->reshape || data->paint.active) { + eglWaitNative(EGL_CORE_NATIVE_ENGINE); + + if (data->reshape) { + data->glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, + (GLeglImageOES) data->img); + } + } + + XCopyArea(data->xdpy, data->pix, data->canvas, data->fg, + 0, 0, data->width, data->height, 0, 0); + + glPushMatrix(); + glRotatef(data->animate.view_rotx, 1, 0, 0); + glRotatef(data->animate.view_roty, 0, 1, 0); + glRotatef(data->animate.view_rotz, 0, 0, 1); + gl_redraw(); + glPopMatrix(); + + eglSwapBuffers(data->dpy, data->surf); +} + +static void +app_reshape(struct app_data *data) +{ + const EGLint img_attribs[] = { + EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, + EGL_NONE + }; + + XResizeWindow(data->xdpy, data->cube, data->width, data->height); + XMoveWindow(data->xdpy, data->cube, data->width, 0); + + if (data->img) + data->eglDestroyImageKHR(data->dpy, data->img); + if (data->pix) + XFreePixmap(data->xdpy, data->pix); + + data->pix = XCreatePixmap(data->xdpy, data->canvas, data->width, data->height, data->depth); + XFillRectangle(data->xdpy, data->pix, data->bg, 0, 0, data->width, data->height); + + data->img = data->eglCreateImageKHR(data->dpy, EGL_NO_CONTEXT, + EGL_NATIVE_PIXMAP_KHR, (EGLClientBuffer) data->pix, img_attribs); + + gl_reshape(data->width, data->height); +} + +static void +app_toggle_animate(struct app_data *data) +{ + data->animate.active = !data->animate.active; + + if (data->animate.active) { + struct timeval tv; + + gettimeofday(&tv, NULL); + data->animate.next_frame = tv.tv_sec * 1000 + tv.tv_usec / 1000; + } +} + +static void +app_next_event(struct app_data *data) +{ + XEvent event; + + data->reshape = False; + data->redraw = False; + data->paint.active = False; + + if (data->animate.active) { + struct timeval tv; + unsigned long now; + + gettimeofday(&tv, NULL); + now = tv.tv_sec * 1000 + tv.tv_usec / 1000; + + /* wait for next frame */ + if (!XPending(data->xdpy) && now < data->animate.next_frame) { + usleep((data->animate.next_frame - now) * 1000); + gettimeofday(&tv, NULL); + now = tv.tv_sec * 1000 + tv.tv_usec / 1000; + } + + while (now >= data->animate.next_frame) { + data->animate.view_rotx += 1.0; + data->animate.view_roty += 2.0; + data->animate.view_rotz += 1.5; + + /* 30fps */ + data->animate.next_frame += 1000 / 30; + } + + /* check again in case there were events when sleeping */ + if (!XPending(data->xdpy)) { + data->redraw = True; + return; + } + } + + XNextEvent(data->xdpy, &event); + + switch (event.type) { + case ConfigureNotify: + data->width = event.xconfigure.width / 2; + data->height = event.xconfigure.height; + data->reshape = True; + break; + case Expose: + data->redraw = True; + break; + case KeyPress: + { + int code; + + code = XLookupKeysym(&event.xkey, 0); + switch (code) { + case XK_a: + app_toggle_animate(data); + break; + case XK_Escape: + data->loop = False; + break; + default: + break; + } + } + break; + case ButtonPress: + data->paint.x1 = data->paint.x2 = event.xbutton.x; + data->paint.y1 = data->paint.y2 = event.xbutton.y; + break; + case ButtonRelease: + data->paint.active = False; + break; + case MotionNotify: + data->paint.x1 = data->paint.x2; + data->paint.y1 = data->paint.y2; + data->paint.x2 = event.xmotion.x; + data->paint.y2 = event.xmotion.y; + data->paint.active = True; + break; + default: + break; + } + + if (data->paint.active || data->reshape) + data->redraw = True; +} + +static void +app_init_gl(struct app_data *data) +{ + glClearColor(0.1, 0.1, 0.3, 0.0); + glColor4f(1.0, 1.0, 1.0, 1.0); + + glGenTextures(1, &data->texture); + + glBindTexture(GL_TEXTURE_2D, data->texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); +} + +static Bool +app_init_exts(struct app_data *data) +{ + const char *exts; + + exts = eglQueryString(data->dpy, EGL_EXTENSIONS); + data->eglCreateImageKHR = + (PFNEGLCREATEIMAGEKHRPROC) eglGetProcAddress("eglCreateImageKHR"); + data->eglDestroyImageKHR = + (PFNEGLDESTROYIMAGEKHRPROC) eglGetProcAddress("eglDestroyImageKHR"); + if (!exts || !strstr(exts, "EGL_KHR_image_pixmap") || + !data->eglCreateImageKHR || !data->eglDestroyImageKHR) { + printf("EGL does not support EGL_KHR_image_pixmap\n"); + return False; + } + + exts = (const char *) glGetString(GL_EXTENSIONS); + exts = "GL_OES_EGL_image"; /* XXX */ + data->glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) + eglGetProcAddress("glEGLImageTargetTexture2DOES"); + if (!exts || !strstr(exts, "GL_OES_EGL_image") || + !data->glEGLImageTargetTexture2DOES) { + printf("OpenGL ES does not support GL_OES_EGL_image\n"); + return False; + } + + return True; +} + +static void +app_run(struct app_data *data) +{ + Window root; + int x, y; + unsigned int border; + + if (!eglMakeCurrent(data->dpy, data->surf, data->surf, data->ctx)) + return; + + if (!app_init_exts(data)) + return; + + printf("Draw something on the left with the mouse!\n"); + + app_init_gl(data); + + if (!XGetGeometry(data->xdpy, data->canvas, &root, &x, &y, + &data->width, &data->height, &border, &data->depth)) + return; + data->width /= 2; + + app_reshape(data); + + XMapWindow(data->xdpy, data->canvas); + XMapWindow(data->xdpy, data->cube); + + app_toggle_animate(data); + data->loop = True; + + while (data->loop) { + app_next_event(data); + + if (data->reshape) + app_reshape(data); + if (data->paint.active) { + XDrawLine(data->xdpy, data->pix, data->fg, + data->paint.x1, data->paint.y1, + data->paint.x2, data->paint.y2); + } + + if (data->redraw) + app_redraw(data); + } + + eglMakeCurrent(data->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); +} + +static Bool +make_x_window(struct app_data *data, const char *name, + int x, int y, int width, int height) +{ + static const EGLint attribs[] = { + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, + EGL_DEPTH_SIZE, 1, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + static const EGLint ctx_attribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_NONE + }; + int scrnum; + XSetWindowAttributes attr; + unsigned long mask; + Window root; + Window win; + XVisualInfo *visInfo, visTemplate; + int num_visuals; + EGLConfig config; + EGLint num_configs; + EGLint vid; + + scrnum = DefaultScreen( data->xdpy ); + root = RootWindow( data->xdpy, scrnum ); + + if (!eglChooseConfig( data->dpy, attribs, &config, 1, &num_configs)) { + printf("Error: couldn't get an EGL visual config\n"); + exit(1); + } + + assert(config); + assert(num_configs > 0); + + if (!eglGetConfigAttrib(data->dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { + printf("Error: eglGetConfigAttrib() failed\n"); + exit(1); + } + + /* The X window visual must match the EGL config */ + visTemplate.visualid = vid; + visInfo = XGetVisualInfo(data->xdpy, VisualIDMask, &visTemplate, &num_visuals); + if (!visInfo) { + printf("Error: couldn't get X visual\n"); + exit(1); + } + + /* window attributes */ + attr.background_pixel = 0; + attr.border_pixel = 0; + attr.colormap = XCreateColormap( data->xdpy, root, visInfo->visual, AllocNone); + attr.event_mask = StructureNotifyMask | ExposureMask | + KeyPressMask | ButtonPressMask | ButtonMotionMask; + mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; + + win = XCreateWindow( data->xdpy, root, 0, 0, width * 2, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + + /* set hints and properties */ + { + XSizeHints sizehints; + sizehints.x = x; + sizehints.y = y; + sizehints.width = width; + sizehints.height = height; + sizehints.flags = USSize | USPosition; + XSetNormalHints(data->xdpy, win, &sizehints); + XSetStandardProperties(data->xdpy, win, name, name, + None, (char **)NULL, 0, &sizehints); + } + + data->canvas = win; + + attr.event_mask = 0x0; + win = XCreateWindow( data->xdpy, win, width, 0, width, height, + 0, visInfo->depth, InputOutput, + visInfo->visual, mask, &attr ); + data->cube = win; + + eglBindAPI(EGL_OPENGL_ES_API); + + data->ctx = eglCreateContext(data->dpy, config, EGL_NO_CONTEXT, ctx_attribs ); + if (!data->ctx) { + printf("Error: eglCreateContext failed\n"); + exit(1); + } + + data->surf = eglCreateWindowSurface(data->dpy, config, data->cube, NULL); + if (!data->surf) { + printf("Error: eglCreateWindowSurface failed\n"); + exit(1); + } + + XFree(visInfo); + + return (data->canvas && data->cube && data->ctx && data->surf); +} + +static void +app_fini(struct app_data *data) +{ + if (data->img) + data->eglDestroyImageKHR(data->dpy, data->img); + if (data->pix) + XFreePixmap(data->xdpy, data->pix); + + if (data->fg) + XFreeGC(data->xdpy, data->fg); + if (data->bg) + XFreeGC(data->xdpy, data->bg); + + if (data->surf) + eglDestroySurface(data->dpy, data->surf); + if (data->ctx) + eglDestroyContext(data->dpy, data->ctx); + + if (data->cube) + XDestroyWindow(data->xdpy, data->cube); + if (data->canvas) + XDestroyWindow(data->xdpy, data->canvas); + + if (data->dpy) + eglTerminate(data->dpy); + if (data->xdpy) + XCloseDisplay(data->xdpy); +} + +static Bool +app_init(struct app_data *data, int argc, char **argv) +{ + XGCValues gc_vals; + + memset(data, 0, sizeof(*data)); + + data->xdpy = XOpenDisplay(NULL); + if (!data->xdpy) + goto fail; + + data->dpy = eglGetDisplay(data->xdpy); + if (!data->dpy || !eglInitialize(data->dpy, NULL, NULL)) + goto fail; + + if (!make_x_window(data, "EGLImage TFP", 0, 0, 300, 300)) + goto fail; + + gc_vals.function = GXcopy; + gc_vals.foreground = WhitePixel(data->xdpy, DefaultScreen(data->xdpy)); + gc_vals.line_width = 3; + gc_vals.line_style = LineSolid; + gc_vals.fill_style = FillSolid; + + data->fg = XCreateGC(data->xdpy, data->canvas, + GCFunction | GCForeground | GCLineWidth | GCLineStyle | GCFillStyle, + &gc_vals); + gc_vals.foreground = BlackPixel(data->xdpy, DefaultScreen(data->xdpy)); + data->bg = XCreateGC(data->xdpy, data->canvas, + GCFunction | GCForeground | GCLineWidth | GCLineStyle | GCFillStyle, + &gc_vals); + if (!data->fg || !data->bg) + goto fail; + + return True; + +fail: + app_fini(data); + return False; +} + +int +main(int argc, char **argv) +{ + struct app_data data; + + if (app_init(&data, argc, argv)) { + app_run(&data); + app_fini(&data); + } + + return 0; +} -- cgit v1.2.3 From f66733e0773b4ec794438dd2422aeb28a791adda Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Sun, 4 Apr 2010 16:53:41 -0700 Subject: gl: updated glxext.h to version 27 --- include/GL/glxext.h | 209 ++++++++++++++++++++++++++-------------------------- 1 file changed, 106 insertions(+), 103 deletions(-) diff --git a/include/GL/glxext.h b/include/GL/glxext.h index 50740dd29d..44224308f5 100644 --- a/include/GL/glxext.h +++ b/include/GL/glxext.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2007-2009 The Khronos Group Inc. +** Copyright (c) 2007-2010 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the @@ -48,9 +48,9 @@ extern "C" { /*************************************************************/ /* Header file version number, required by OpenGL ABI for Linux */ -/* glxext.h last updated 2009/10/08 */ +/* glxext.h last updated 2010/02/10 */ /* Current version at http://www.opengl.org/registry/ */ -#define GLX_GLXEXT_VERSION 25 +#define GLX_GLXEXT_VERSION 27 #ifndef GLX_VERSION_1_3 #define GLX_WINDOW_BIT 0x00000001 @@ -396,6 +396,13 @@ extern "C" { #ifndef GLX_NV_copy_image #endif +#ifndef GLX_INTEL_swap_event +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 +#define GLX_COPY_COMPLETE_INTEL 0x8181 +#define GLX_FLIP_COMPLETE_INTEL 0x8182 +#endif + /*************************************************************/ @@ -477,24 +484,24 @@ typedef unsigned __int64 uint64_t; #ifndef GLX_VERSION_1_3 #define GLX_VERSION_1_3 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); -extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); -extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); -extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); -extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); -extern void glXDestroyWindow (Display *, GLXWindow); -extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); -extern void glXDestroyPixmap (Display *, GLXPixmap); -extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); -extern void glXDestroyPbuffer (Display *, GLXPbuffer); -extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); -extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); -extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern GLXFBConfig * glXGetFBConfigs (Display *dpy, int screen, int *nelements); +extern GLXFBConfig * glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements); +extern int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value); +extern XVisualInfo * glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config); +extern GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +extern void glXDestroyWindow (Display *dpy, GLXWindow win); +extern GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +extern void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap); +extern GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list); +extern void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf); +extern void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +extern GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +extern Bool glXMakeContextCurrent (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); extern GLXDrawable glXGetCurrentReadDrawable (void); extern Display * glXGetCurrentDisplay (void); -extern int glXQueryContext (Display *, GLXContext, int, int *); -extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); -extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); +extern int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value); +extern void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask); +extern void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); @@ -519,7 +526,7 @@ typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, un #ifndef GLX_VERSION_1_4 #define GLX_VERSION_1_4 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); +extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); #endif @@ -527,7 +534,7 @@ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); #ifndef GLX_ARB_get_proc_address #define GLX_ARB_get_proc_address 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); +extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); #endif @@ -543,7 +550,7 @@ typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procNam #ifndef GLX_ARB_create_context #define GLX_ARB_create_context 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXContext glXCreateContextAttribsARB (Display *, GLXFBConfig, GLXContext, Bool, const int *); +extern GLXContext glXCreateContextAttribsARB (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); #endif @@ -563,7 +570,7 @@ typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBCo #ifndef GLX_SGI_swap_control #define GLX_SGI_swap_control 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalSGI (int); +extern int glXSwapIntervalSGI (int interval); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); #endif @@ -571,8 +578,8 @@ typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); #ifndef GLX_SGI_video_sync #define GLX_SGI_video_sync 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoSyncSGI (unsigned int *); -extern int glXWaitVideoSyncSGI (int, int, unsigned int *); +extern int glXGetVideoSyncSGI (unsigned int *count); +extern int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int *count); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); @@ -581,7 +588,7 @@ typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigne #ifndef GLX_SGI_make_current_read #define GLX_SGI_make_current_read 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern Bool glXMakeCurrentReadSGI (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); extern GLXDrawable glXGetCurrentReadDrawableSGI (void); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); @@ -592,8 +599,8 @@ typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); #define GLX_SGIX_video_source 1 #ifdef _VL_H #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); -extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); +extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); +extern void glXDestroyGLXVideoSourceSGIX (Display *dpy, GLXVideoSourceSGIX glxvideosource); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); @@ -608,10 +615,10 @@ typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSou #define GLX_EXT_import_context 1 #ifdef GLX_GLXEXT_PROTOTYPES extern Display * glXGetCurrentDisplayEXT (void); -extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); -extern GLXContextID glXGetContextIDEXT (const GLXContext); -extern GLXContext glXImportContextEXT (Display *, GLXContextID); -extern void glXFreeContextEXT (Display *, GLXContext); +extern int glXQueryContextInfoEXT (Display *dpy, GLXContext context, int attribute, int *value); +extern GLXContextID glXGetContextIDEXT (const GLXContext context); +extern GLXContext glXImportContextEXT (Display *dpy, GLXContextID contextID); +extern void glXFreeContextEXT (Display *dpy, GLXContext context); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); @@ -623,12 +630,12 @@ typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); #ifndef GLX_SGIX_fbconfig #define GLX_SGIX_fbconfig 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); -extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); -extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); -extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); -extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); -extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); +extern int glXGetFBConfigAttribSGIX (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); +extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *dpy, int screen, int *attrib_list, int *nelements); +extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); +extern GLXContext glXCreateContextWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *dpy, GLXFBConfigSGIX config); +extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *dpy, XVisualInfo *vis); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); @@ -641,11 +648,11 @@ typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, #ifndef GLX_SGIX_pbuffer #define GLX_SGIX_pbuffer 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); -extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); -extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); -extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); -extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); +extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); +extern void glXDestroyGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf); +extern int glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); +extern void glXSelectEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long mask); +extern void glXGetSelectedEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long *mask); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); @@ -657,7 +664,7 @@ typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable draw #ifndef GLX_SGI_cushion #define GLX_SGI_cushion 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCushionSGI (Display *, Window, float); +extern void glXCushionSGI (Display *dpy, Window window, float cushion); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); #endif @@ -665,11 +672,11 @@ typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushi #ifndef GLX_SGIX_video_resize #define GLX_SGIX_video_resize 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); -extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); -extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); -extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); -extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); +extern int glXBindChannelToWindowSGIX (Display *display, int screen, int channel, Window window); +extern int glXChannelRectSGIX (Display *display, int screen, int channel, int x, int y, int w, int h); +extern int glXQueryChannelRectSGIX (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +extern int glXQueryChannelDeltasSGIX (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); +extern int glXChannelRectSyncSGIX (Display *display, int screen, int channel, GLenum synctype); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); @@ -682,7 +689,7 @@ typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, in #define GLX_SGIX_dmbuffer 1 #ifdef _DM_BUFFER_H_ #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); +extern Bool glXAssociateDMPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); #endif /* _DM_BUFFER_H_ */ @@ -691,24 +698,16 @@ typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX #ifndef GLX_SGIX_swap_group #define GLX_SGIX_swap_group 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); +extern void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); #endif -#ifndef GLX_INTEL_swap_event -#define GLX_INTEL_swap_event -#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x10000000 -#define GLX_EXCHANGE_COMPLETE_INTEL 0x8024 -#define GLX_BLIT_COMPLETE_INTEL 0x8025 -#define GLX_FLIP_COMPLETE_INTEL 0x8026 -#endif - #ifndef GLX_SGIX_swap_barrier #define GLX_SGIX_swap_barrier 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); -extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); +extern void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier); +extern Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); @@ -717,7 +716,7 @@ typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, #ifndef GLX_SUN_get_transparent_index #define GLX_SUN_get_transparent_index 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); +extern Status glXGetTransparentIndexSUN (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); #endif @@ -725,7 +724,7 @@ typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overl #ifndef GLX_MESA_copy_sub_buffer #define GLX_MESA_copy_sub_buffer 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); +extern void glXCopySubBufferMESA (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); #endif @@ -733,7 +732,7 @@ typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawabl #ifndef GLX_MESA_pixmap_colormap #define GLX_MESA_pixmap_colormap 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); +extern GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); #endif @@ -741,7 +740,7 @@ typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo #ifndef GLX_MESA_release_buffers #define GLX_MESA_release_buffers 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); +extern Bool glXReleaseBuffersMESA (Display *dpy, GLXDrawable drawable); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); #endif @@ -749,7 +748,7 @@ typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawab #ifndef GLX_MESA_set_3dfx_mode #define GLX_MESA_set_3dfx_mode 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXSet3DfxModeMESA (int); +extern Bool glXSet3DfxModeMESA (int mode); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); #endif @@ -765,11 +764,11 @@ typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); #ifndef GLX_OML_sync_control #define GLX_OML_sync_control 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); -extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); -extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); -extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); -extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); +extern Bool glXGetSyncValuesOML (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); +extern Bool glXGetMscRateOML (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); +extern int64_t glXSwapBuffersMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +extern Bool glXWaitForMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); +extern Bool glXWaitForSbcOML (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); @@ -810,14 +809,14 @@ typedef struct { } GLXPipeRectLimits; #ifdef GLX_GLXEXT_PROTOTYPES -extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *); -extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *); -extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *); -extern int glXDestroyHyperpipeConfigSGIX (Display *, int); -extern int glXBindHyperpipeSGIX (Display *, int); -extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *); -extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *); -extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *); +extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes); +extern int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes); +extern int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId); +extern int glXBindHyperpipeSGIX (Display *dpy, int hpId); +extern int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +extern int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +extern int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); @@ -832,7 +831,7 @@ typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice #ifndef GLX_MESA_agp_offset #define GLX_MESA_agp_offset 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int glXGetAGPOffsetMESA (const void *); +extern unsigned int glXGetAGPOffsetMESA (const void *pointer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); #endif @@ -848,8 +847,8 @@ typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); #ifndef GLX_EXT_texture_from_pixmap #define GLX_EXT_texture_from_pixmap 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *); -extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int); +extern void glXBindTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); +extern void glXReleaseTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); @@ -858,8 +857,8 @@ typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawab #ifndef GLX_NV_present_video #define GLX_NV_present_video 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern unsigned int * glXEnumerateVideoDevicesNV (Display *, int, int *); -extern int glXBindVideoDeviceNV (Display *, unsigned int, unsigned int, const int *); +extern unsigned int * glXEnumerateVideoDevicesNV (Display *dpy, int screen, int *nelements); +extern int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef unsigned int * ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); @@ -868,12 +867,12 @@ typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_s #ifndef GLX_NV_video_output #define GLX_NV_video_output 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXGetVideoDeviceNV (Display *, int, int, GLXVideoDeviceNV *); -extern int glXReleaseVideoDeviceNV (Display *, int, GLXVideoDeviceNV); -extern int glXBindVideoImageNV (Display *, GLXVideoDeviceNV, GLXPbuffer, int); -extern int glXReleaseVideoImageNV (Display *, GLXPbuffer); -extern int glXSendPbufferToVideoNV (Display *, GLXPbuffer, int, unsigned long *, GLboolean); -extern int glXGetVideoInfoNV (Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *); +extern int glXGetVideoDeviceNV (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); +extern int glXReleaseVideoDeviceNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); +extern int glXBindVideoImageNV (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +extern int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf); +extern int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); +extern int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice); @@ -886,12 +885,12 @@ typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDev #ifndef GLX_NV_swap_group #define GLX_NV_swap_group 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern Bool glXJoinSwapGroupNV (Display *, GLXDrawable, GLuint); -extern Bool glXBindSwapBarrierNV (Display *, GLuint, GLuint); -extern Bool glXQuerySwapGroupNV (Display *, GLXDrawable, GLuint *, GLuint *); -extern Bool glXQueryMaxSwapGroupsNV (Display *, int, GLuint *, GLuint *); -extern Bool glXQueryFrameCountNV (Display *, int, GLuint *); -extern Bool glXResetFrameCountNV (Display *, int); +extern Bool glXJoinSwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint group); +extern Bool glXBindSwapBarrierNV (Display *dpy, GLuint group, GLuint barrier); +extern Bool glXQuerySwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +extern Bool glXQueryMaxSwapGroupsNV (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +extern Bool glXQueryFrameCountNV (Display *dpy, int screen, GLuint *count); +extern Bool glXResetFrameCountNV (Display *dpy, int screen); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); @@ -904,11 +903,11 @@ typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); #ifndef GLX_NV_video_capture #define GLX_NV_video_capture 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXBindVideoCaptureDeviceNV (Display *, unsigned int, GLXVideoCaptureDeviceNV); -extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *, int, int *); -extern void glXLockVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); -extern int glXQueryVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV, int, int *); -extern void glXReleaseVideoCaptureDeviceNV (Display *, GLXVideoCaptureDeviceNV); +extern int glXBindVideoCaptureDeviceNV (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); +extern GLXVideoCaptureDeviceNV * glXEnumerateVideoCaptureDevicesNV (Display *dpy, int screen, int *nelements); +extern void glXLockVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); +extern int glXQueryVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); +extern void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements); @@ -920,7 +919,7 @@ typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoC #ifndef GLX_EXT_swap_control #define GLX_EXT_swap_control 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern int glXSwapIntervalEXT (Display *, GLXDrawable, int); +extern int glXSwapIntervalEXT (Display *dpy, GLXDrawable drawable, int interval); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval); #endif @@ -928,11 +927,15 @@ typedef int ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, #ifndef GLX_NV_copy_image #define GLX_NV_copy_image 1 #ifdef GLX_GLXEXT_PROTOTYPES -extern void glXCopyImageSubDataNV (Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei); +extern void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #endif /* GLX_GLXEXT_PROTOTYPES */ typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #endif +#ifndef GLX_INTEL_swap_event +#define GLX_INTEL_swap_event 1 +#endif + #ifdef __cplusplus } -- cgit v1.2.3 From a4e1abd487b2219dd9781c2fb9462fddc9cc703f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:14:03 -0600 Subject: glapi: ARB_draw_instanced.xml file --- src/mesa/glapi/gen/ARB_draw_instanced.xml | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/mesa/glapi/gen/ARB_draw_instanced.xml diff --git a/src/mesa/glapi/gen/ARB_draw_instanced.xml b/src/mesa/glapi/gen/ARB_draw_instanced.xml new file mode 100644 index 0000000000..5741a588c9 --- /dev/null +++ b/src/mesa/glapi/gen/ARB_draw_instanced.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 736846b22fe3e219c88591a2d5c2f03294c8c145 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:14:49 -0600 Subject: glapi: plug in ARB_draw_instanced.xml --- src/mesa/glapi/gen/Makefile | 1 + src/mesa/glapi/gen/gl_API.xml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/mesa/glapi/gen/Makefile b/src/mesa/glapi/gen/Makefile index 4ac95a29cb..84600bdd98 100644 --- a/src/mesa/glapi/gen/Makefile +++ b/src/mesa/glapi/gen/Makefile @@ -74,6 +74,7 @@ API_XML = \ ARB_copy_buffer.xml \ ARB_depth_clamp.xml \ ARB_draw_elements_base_vertex.xml \ + ARB_draw_instanced.xml \ ARB_framebuffer_object.xml \ ARB_map_buffer_range.xml \ ARB_seamless_cube_map.xml \ diff --git a/src/mesa/glapi/gen/gl_API.xml b/src/mesa/glapi/gen/gl_API.xml index 10fdc0e1bb..31df7a5f80 100644 --- a/src/mesa/glapi/gen/gl_API.xml +++ b/src/mesa/glapi/gen/gl_API.xml @@ -7969,6 +7969,8 @@ + + -- cgit v1.2.3 From 61b21f0c834b093e731ac04141eea2e0887941a7 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:15:30 -0600 Subject: glapi: regenerated files for GL_ARB_draw_instanced --- src/mesa/glapi/glapidispatch.h | 786 ++++----- src/mesa/glapi/glapioffsets.h | 776 ++++----- src/mesa/glapi/glapitable.h | 772 ++++----- src/mesa/glapi/glapitemp.h | 236 +-- src/mesa/glapi/glprocs.h | 1504 ++++++++--------- src/mesa/main/remap_helper.h | 1947 +++++++++++----------- src/mesa/sparc/glapi_sparc.S | 114 +- src/mesa/x86-64/glapi_x86-64.S | 3558 +++++++++++++++++++++------------------- src/mesa/x86/glapi_x86.S | 146 +- 9 files changed, 5024 insertions(+), 4815 deletions(-) diff --git a/src/mesa/glapi/glapidispatch.h b/src/mesa/glapi/glapidispatch.h index 07bcbd905d..f66876fe8d 100644 --- a/src/mesa/glapi/glapidispatch.h +++ b/src/mesa/glapi/glapidispatch.h @@ -1351,6 +1351,12 @@ #define CALL_UniformMatrix4x3fv(disp, parameters) (*((disp)->UniformMatrix4x3fv)) parameters #define GET_UniformMatrix4x3fv(disp) ((disp)->UniformMatrix4x3fv) #define SET_UniformMatrix4x3fv(disp, fn) ((disp)->UniformMatrix4x3fv = fn) +#define CALL_DrawArraysInstanced(disp, parameters) (*((disp)->DrawArraysInstanced)) parameters +#define GET_DrawArraysInstanced(disp) ((disp)->DrawArraysInstanced) +#define SET_DrawArraysInstanced(disp, fn) ((disp)->DrawArraysInstanced = fn) +#define CALL_DrawElementsInstanced(disp, parameters) (*((disp)->DrawElementsInstanced)) parameters +#define GET_DrawElementsInstanced(disp) ((disp)->DrawElementsInstanced) +#define SET_DrawElementsInstanced(disp, fn) ((disp)->DrawElementsInstanced = fn) #define CALL_LoadTransposeMatrixdARB(disp, parameters) (*((disp)->LoadTransposeMatrixdARB)) parameters #define GET_LoadTransposeMatrixdARB(disp) ((disp)->LoadTransposeMatrixdARB) #define SET_LoadTransposeMatrixdARB(disp, fn) ((disp)->LoadTransposeMatrixdARB = fn) @@ -2509,7 +2515,7 @@ #else -#define driDispatchRemapTable_size 407 +#define driDispatchRemapTable_size 409 extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define AttachShader_remap_index 0 @@ -2534,391 +2540,393 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define UniformMatrix3x4fv_remap_index 19 #define UniformMatrix4x2fv_remap_index 20 #define UniformMatrix4x3fv_remap_index 21 -#define LoadTransposeMatrixdARB_remap_index 22 -#define LoadTransposeMatrixfARB_remap_index 23 -#define MultTransposeMatrixdARB_remap_index 24 -#define MultTransposeMatrixfARB_remap_index 25 -#define SampleCoverageARB_remap_index 26 -#define CompressedTexImage1DARB_remap_index 27 -#define CompressedTexImage2DARB_remap_index 28 -#define CompressedTexImage3DARB_remap_index 29 -#define CompressedTexSubImage1DARB_remap_index 30 -#define CompressedTexSubImage2DARB_remap_index 31 -#define CompressedTexSubImage3DARB_remap_index 32 -#define GetCompressedTexImageARB_remap_index 33 -#define DisableVertexAttribArrayARB_remap_index 34 -#define EnableVertexAttribArrayARB_remap_index 35 -#define GetProgramEnvParameterdvARB_remap_index 36 -#define GetProgramEnvParameterfvARB_remap_index 37 -#define GetProgramLocalParameterdvARB_remap_index 38 -#define GetProgramLocalParameterfvARB_remap_index 39 -#define GetProgramStringARB_remap_index 40 -#define GetProgramivARB_remap_index 41 -#define GetVertexAttribdvARB_remap_index 42 -#define GetVertexAttribfvARB_remap_index 43 -#define GetVertexAttribivARB_remap_index 44 -#define ProgramEnvParameter4dARB_remap_index 45 -#define ProgramEnvParameter4dvARB_remap_index 46 -#define ProgramEnvParameter4fARB_remap_index 47 -#define ProgramEnvParameter4fvARB_remap_index 48 -#define ProgramLocalParameter4dARB_remap_index 49 -#define ProgramLocalParameter4dvARB_remap_index 50 -#define ProgramLocalParameter4fARB_remap_index 51 -#define ProgramLocalParameter4fvARB_remap_index 52 -#define ProgramStringARB_remap_index 53 -#define VertexAttrib1dARB_remap_index 54 -#define VertexAttrib1dvARB_remap_index 55 -#define VertexAttrib1fARB_remap_index 56 -#define VertexAttrib1fvARB_remap_index 57 -#define VertexAttrib1sARB_remap_index 58 -#define VertexAttrib1svARB_remap_index 59 -#define VertexAttrib2dARB_remap_index 60 -#define VertexAttrib2dvARB_remap_index 61 -#define VertexAttrib2fARB_remap_index 62 -#define VertexAttrib2fvARB_remap_index 63 -#define VertexAttrib2sARB_remap_index 64 -#define VertexAttrib2svARB_remap_index 65 -#define VertexAttrib3dARB_remap_index 66 -#define VertexAttrib3dvARB_remap_index 67 -#define VertexAttrib3fARB_remap_index 68 -#define VertexAttrib3fvARB_remap_index 69 -#define VertexAttrib3sARB_remap_index 70 -#define VertexAttrib3svARB_remap_index 71 -#define VertexAttrib4NbvARB_remap_index 72 -#define VertexAttrib4NivARB_remap_index 73 -#define VertexAttrib4NsvARB_remap_index 74 -#define VertexAttrib4NubARB_remap_index 75 -#define VertexAttrib4NubvARB_remap_index 76 -#define VertexAttrib4NuivARB_remap_index 77 -#define VertexAttrib4NusvARB_remap_index 78 -#define VertexAttrib4bvARB_remap_index 79 -#define VertexAttrib4dARB_remap_index 80 -#define VertexAttrib4dvARB_remap_index 81 -#define VertexAttrib4fARB_remap_index 82 -#define VertexAttrib4fvARB_remap_index 83 -#define VertexAttrib4ivARB_remap_index 84 -#define VertexAttrib4sARB_remap_index 85 -#define VertexAttrib4svARB_remap_index 86 -#define VertexAttrib4ubvARB_remap_index 87 -#define VertexAttrib4uivARB_remap_index 88 -#define VertexAttrib4usvARB_remap_index 89 -#define VertexAttribPointerARB_remap_index 90 -#define BindBufferARB_remap_index 91 -#define BufferDataARB_remap_index 92 -#define BufferSubDataARB_remap_index 93 -#define DeleteBuffersARB_remap_index 94 -#define GenBuffersARB_remap_index 95 -#define GetBufferParameterivARB_remap_index 96 -#define GetBufferPointervARB_remap_index 97 -#define GetBufferSubDataARB_remap_index 98 -#define IsBufferARB_remap_index 99 -#define MapBufferARB_remap_index 100 -#define UnmapBufferARB_remap_index 101 -#define BeginQueryARB_remap_index 102 -#define DeleteQueriesARB_remap_index 103 -#define EndQueryARB_remap_index 104 -#define GenQueriesARB_remap_index 105 -#define GetQueryObjectivARB_remap_index 106 -#define GetQueryObjectuivARB_remap_index 107 -#define GetQueryivARB_remap_index 108 -#define IsQueryARB_remap_index 109 -#define AttachObjectARB_remap_index 110 -#define CompileShaderARB_remap_index 111 -#define CreateProgramObjectARB_remap_index 112 -#define CreateShaderObjectARB_remap_index 113 -#define DeleteObjectARB_remap_index 114 -#define DetachObjectARB_remap_index 115 -#define GetActiveUniformARB_remap_index 116 -#define GetAttachedObjectsARB_remap_index 117 -#define GetHandleARB_remap_index 118 -#define GetInfoLogARB_remap_index 119 -#define GetObjectParameterfvARB_remap_index 120 -#define GetObjectParameterivARB_remap_index 121 -#define GetShaderSourceARB_remap_index 122 -#define GetUniformLocationARB_remap_index 123 -#define GetUniformfvARB_remap_index 124 -#define GetUniformivARB_remap_index 125 -#define LinkProgramARB_remap_index 126 -#define ShaderSourceARB_remap_index 127 -#define Uniform1fARB_remap_index 128 -#define Uniform1fvARB_remap_index 129 -#define Uniform1iARB_remap_index 130 -#define Uniform1ivARB_remap_index 131 -#define Uniform2fARB_remap_index 132 -#define Uniform2fvARB_remap_index 133 -#define Uniform2iARB_remap_index 134 -#define Uniform2ivARB_remap_index 135 -#define Uniform3fARB_remap_index 136 -#define Uniform3fvARB_remap_index 137 -#define Uniform3iARB_remap_index 138 -#define Uniform3ivARB_remap_index 139 -#define Uniform4fARB_remap_index 140 -#define Uniform4fvARB_remap_index 141 -#define Uniform4iARB_remap_index 142 -#define Uniform4ivARB_remap_index 143 -#define UniformMatrix2fvARB_remap_index 144 -#define UniformMatrix3fvARB_remap_index 145 -#define UniformMatrix4fvARB_remap_index 146 -#define UseProgramObjectARB_remap_index 147 -#define ValidateProgramARB_remap_index 148 -#define BindAttribLocationARB_remap_index 149 -#define GetActiveAttribARB_remap_index 150 -#define GetAttribLocationARB_remap_index 151 -#define DrawBuffersARB_remap_index 152 -#define RenderbufferStorageMultisample_remap_index 153 -#define FlushMappedBufferRange_remap_index 154 -#define MapBufferRange_remap_index 155 -#define BindVertexArray_remap_index 156 -#define GenVertexArrays_remap_index 157 -#define CopyBufferSubData_remap_index 158 -#define ClientWaitSync_remap_index 159 -#define DeleteSync_remap_index 160 -#define FenceSync_remap_index 161 -#define GetInteger64v_remap_index 162 -#define GetSynciv_remap_index 163 -#define IsSync_remap_index 164 -#define WaitSync_remap_index 165 -#define DrawElementsBaseVertex_remap_index 166 -#define DrawRangeElementsBaseVertex_remap_index 167 -#define MultiDrawElementsBaseVertex_remap_index 168 -#define PolygonOffsetEXT_remap_index 169 -#define GetPixelTexGenParameterfvSGIS_remap_index 170 -#define GetPixelTexGenParameterivSGIS_remap_index 171 -#define PixelTexGenParameterfSGIS_remap_index 172 -#define PixelTexGenParameterfvSGIS_remap_index 173 -#define PixelTexGenParameteriSGIS_remap_index 174 -#define PixelTexGenParameterivSGIS_remap_index 175 -#define SampleMaskSGIS_remap_index 176 -#define SamplePatternSGIS_remap_index 177 -#define ColorPointerEXT_remap_index 178 -#define EdgeFlagPointerEXT_remap_index 179 -#define IndexPointerEXT_remap_index 180 -#define NormalPointerEXT_remap_index 181 -#define TexCoordPointerEXT_remap_index 182 -#define VertexPointerEXT_remap_index 183 -#define PointParameterfEXT_remap_index 184 -#define PointParameterfvEXT_remap_index 185 -#define LockArraysEXT_remap_index 186 -#define UnlockArraysEXT_remap_index 187 -#define CullParameterdvEXT_remap_index 188 -#define CullParameterfvEXT_remap_index 189 -#define SecondaryColor3bEXT_remap_index 190 -#define SecondaryColor3bvEXT_remap_index 191 -#define SecondaryColor3dEXT_remap_index 192 -#define SecondaryColor3dvEXT_remap_index 193 -#define SecondaryColor3fEXT_remap_index 194 -#define SecondaryColor3fvEXT_remap_index 195 -#define SecondaryColor3iEXT_remap_index 196 -#define SecondaryColor3ivEXT_remap_index 197 -#define SecondaryColor3sEXT_remap_index 198 -#define SecondaryColor3svEXT_remap_index 199 -#define SecondaryColor3ubEXT_remap_index 200 -#define SecondaryColor3ubvEXT_remap_index 201 -#define SecondaryColor3uiEXT_remap_index 202 -#define SecondaryColor3uivEXT_remap_index 203 -#define SecondaryColor3usEXT_remap_index 204 -#define SecondaryColor3usvEXT_remap_index 205 -#define SecondaryColorPointerEXT_remap_index 206 -#define MultiDrawArraysEXT_remap_index 207 -#define MultiDrawElementsEXT_remap_index 208 -#define FogCoordPointerEXT_remap_index 209 -#define FogCoorddEXT_remap_index 210 -#define FogCoorddvEXT_remap_index 211 -#define FogCoordfEXT_remap_index 212 -#define FogCoordfvEXT_remap_index 213 -#define PixelTexGenSGIX_remap_index 214 -#define BlendFuncSeparateEXT_remap_index 215 -#define FlushVertexArrayRangeNV_remap_index 216 -#define VertexArrayRangeNV_remap_index 217 -#define CombinerInputNV_remap_index 218 -#define CombinerOutputNV_remap_index 219 -#define CombinerParameterfNV_remap_index 220 -#define CombinerParameterfvNV_remap_index 221 -#define CombinerParameteriNV_remap_index 222 -#define CombinerParameterivNV_remap_index 223 -#define FinalCombinerInputNV_remap_index 224 -#define GetCombinerInputParameterfvNV_remap_index 225 -#define GetCombinerInputParameterivNV_remap_index 226 -#define GetCombinerOutputParameterfvNV_remap_index 227 -#define GetCombinerOutputParameterivNV_remap_index 228 -#define GetFinalCombinerInputParameterfvNV_remap_index 229 -#define GetFinalCombinerInputParameterivNV_remap_index 230 -#define ResizeBuffersMESA_remap_index 231 -#define WindowPos2dMESA_remap_index 232 -#define WindowPos2dvMESA_remap_index 233 -#define WindowPos2fMESA_remap_index 234 -#define WindowPos2fvMESA_remap_index 235 -#define WindowPos2iMESA_remap_index 236 -#define WindowPos2ivMESA_remap_index 237 -#define WindowPos2sMESA_remap_index 238 -#define WindowPos2svMESA_remap_index 239 -#define WindowPos3dMESA_remap_index 240 -#define WindowPos3dvMESA_remap_index 241 -#define WindowPos3fMESA_remap_index 242 -#define WindowPos3fvMESA_remap_index 243 -#define WindowPos3iMESA_remap_index 244 -#define WindowPos3ivMESA_remap_index 245 -#define WindowPos3sMESA_remap_index 246 -#define WindowPos3svMESA_remap_index 247 -#define WindowPos4dMESA_remap_index 248 -#define WindowPos4dvMESA_remap_index 249 -#define WindowPos4fMESA_remap_index 250 -#define WindowPos4fvMESA_remap_index 251 -#define WindowPos4iMESA_remap_index 252 -#define WindowPos4ivMESA_remap_index 253 -#define WindowPos4sMESA_remap_index 254 -#define WindowPos4svMESA_remap_index 255 -#define MultiModeDrawArraysIBM_remap_index 256 -#define MultiModeDrawElementsIBM_remap_index 257 -#define DeleteFencesNV_remap_index 258 -#define FinishFenceNV_remap_index 259 -#define GenFencesNV_remap_index 260 -#define GetFenceivNV_remap_index 261 -#define IsFenceNV_remap_index 262 -#define SetFenceNV_remap_index 263 -#define TestFenceNV_remap_index 264 -#define AreProgramsResidentNV_remap_index 265 -#define BindProgramNV_remap_index 266 -#define DeleteProgramsNV_remap_index 267 -#define ExecuteProgramNV_remap_index 268 -#define GenProgramsNV_remap_index 269 -#define GetProgramParameterdvNV_remap_index 270 -#define GetProgramParameterfvNV_remap_index 271 -#define GetProgramStringNV_remap_index 272 -#define GetProgramivNV_remap_index 273 -#define GetTrackMatrixivNV_remap_index 274 -#define GetVertexAttribPointervNV_remap_index 275 -#define GetVertexAttribdvNV_remap_index 276 -#define GetVertexAttribfvNV_remap_index 277 -#define GetVertexAttribivNV_remap_index 278 -#define IsProgramNV_remap_index 279 -#define LoadProgramNV_remap_index 280 -#define ProgramParameters4dvNV_remap_index 281 -#define ProgramParameters4fvNV_remap_index 282 -#define RequestResidentProgramsNV_remap_index 283 -#define TrackMatrixNV_remap_index 284 -#define VertexAttrib1dNV_remap_index 285 -#define VertexAttrib1dvNV_remap_index 286 -#define VertexAttrib1fNV_remap_index 287 -#define VertexAttrib1fvNV_remap_index 288 -#define VertexAttrib1sNV_remap_index 289 -#define VertexAttrib1svNV_remap_index 290 -#define VertexAttrib2dNV_remap_index 291 -#define VertexAttrib2dvNV_remap_index 292 -#define VertexAttrib2fNV_remap_index 293 -#define VertexAttrib2fvNV_remap_index 294 -#define VertexAttrib2sNV_remap_index 295 -#define VertexAttrib2svNV_remap_index 296 -#define VertexAttrib3dNV_remap_index 297 -#define VertexAttrib3dvNV_remap_index 298 -#define VertexAttrib3fNV_remap_index 299 -#define VertexAttrib3fvNV_remap_index 300 -#define VertexAttrib3sNV_remap_index 301 -#define VertexAttrib3svNV_remap_index 302 -#define VertexAttrib4dNV_remap_index 303 -#define VertexAttrib4dvNV_remap_index 304 -#define VertexAttrib4fNV_remap_index 305 -#define VertexAttrib4fvNV_remap_index 306 -#define VertexAttrib4sNV_remap_index 307 -#define VertexAttrib4svNV_remap_index 308 -#define VertexAttrib4ubNV_remap_index 309 -#define VertexAttrib4ubvNV_remap_index 310 -#define VertexAttribPointerNV_remap_index 311 -#define VertexAttribs1dvNV_remap_index 312 -#define VertexAttribs1fvNV_remap_index 313 -#define VertexAttribs1svNV_remap_index 314 -#define VertexAttribs2dvNV_remap_index 315 -#define VertexAttribs2fvNV_remap_index 316 -#define VertexAttribs2svNV_remap_index 317 -#define VertexAttribs3dvNV_remap_index 318 -#define VertexAttribs3fvNV_remap_index 319 -#define VertexAttribs3svNV_remap_index 320 -#define VertexAttribs4dvNV_remap_index 321 -#define VertexAttribs4fvNV_remap_index 322 -#define VertexAttribs4svNV_remap_index 323 -#define VertexAttribs4ubvNV_remap_index 324 -#define GetTexBumpParameterfvATI_remap_index 325 -#define GetTexBumpParameterivATI_remap_index 326 -#define TexBumpParameterfvATI_remap_index 327 -#define TexBumpParameterivATI_remap_index 328 -#define AlphaFragmentOp1ATI_remap_index 329 -#define AlphaFragmentOp2ATI_remap_index 330 -#define AlphaFragmentOp3ATI_remap_index 331 -#define BeginFragmentShaderATI_remap_index 332 -#define BindFragmentShaderATI_remap_index 333 -#define ColorFragmentOp1ATI_remap_index 334 -#define ColorFragmentOp2ATI_remap_index 335 -#define ColorFragmentOp3ATI_remap_index 336 -#define DeleteFragmentShaderATI_remap_index 337 -#define EndFragmentShaderATI_remap_index 338 -#define GenFragmentShadersATI_remap_index 339 -#define PassTexCoordATI_remap_index 340 -#define SampleMapATI_remap_index 341 -#define SetFragmentShaderConstantATI_remap_index 342 -#define PointParameteriNV_remap_index 343 -#define PointParameterivNV_remap_index 344 -#define ActiveStencilFaceEXT_remap_index 345 -#define BindVertexArrayAPPLE_remap_index 346 -#define DeleteVertexArraysAPPLE_remap_index 347 -#define GenVertexArraysAPPLE_remap_index 348 -#define IsVertexArrayAPPLE_remap_index 349 -#define GetProgramNamedParameterdvNV_remap_index 350 -#define GetProgramNamedParameterfvNV_remap_index 351 -#define ProgramNamedParameter4dNV_remap_index 352 -#define ProgramNamedParameter4dvNV_remap_index 353 -#define ProgramNamedParameter4fNV_remap_index 354 -#define ProgramNamedParameter4fvNV_remap_index 355 -#define DepthBoundsEXT_remap_index 356 -#define BlendEquationSeparateEXT_remap_index 357 -#define BindFramebufferEXT_remap_index 358 -#define BindRenderbufferEXT_remap_index 359 -#define CheckFramebufferStatusEXT_remap_index 360 -#define DeleteFramebuffersEXT_remap_index 361 -#define DeleteRenderbuffersEXT_remap_index 362 -#define FramebufferRenderbufferEXT_remap_index 363 -#define FramebufferTexture1DEXT_remap_index 364 -#define FramebufferTexture2DEXT_remap_index 365 -#define FramebufferTexture3DEXT_remap_index 366 -#define GenFramebuffersEXT_remap_index 367 -#define GenRenderbuffersEXT_remap_index 368 -#define GenerateMipmapEXT_remap_index 369 -#define GetFramebufferAttachmentParameterivEXT_remap_index 370 -#define GetRenderbufferParameterivEXT_remap_index 371 -#define IsFramebufferEXT_remap_index 372 -#define IsRenderbufferEXT_remap_index 373 -#define RenderbufferStorageEXT_remap_index 374 -#define BlitFramebufferEXT_remap_index 375 -#define BufferParameteriAPPLE_remap_index 376 -#define FlushMappedBufferRangeAPPLE_remap_index 377 -#define FramebufferTextureLayerEXT_remap_index 378 -#define ColorMaskIndexedEXT_remap_index 379 -#define DisableIndexedEXT_remap_index 380 -#define EnableIndexedEXT_remap_index 381 -#define GetBooleanIndexedvEXT_remap_index 382 -#define GetIntegerIndexedvEXT_remap_index 383 -#define IsEnabledIndexedEXT_remap_index 384 -#define BeginConditionalRenderNV_remap_index 385 -#define EndConditionalRenderNV_remap_index 386 -#define BeginTransformFeedbackEXT_remap_index 387 -#define BindBufferBaseEXT_remap_index 388 -#define BindBufferOffsetEXT_remap_index 389 -#define BindBufferRangeEXT_remap_index 390 -#define EndTransformFeedbackEXT_remap_index 391 -#define GetTransformFeedbackVaryingEXT_remap_index 392 -#define TransformFeedbackVaryingsEXT_remap_index 393 -#define ProvokingVertexEXT_remap_index 394 -#define GetTexParameterPointervAPPLE_remap_index 395 -#define TextureRangeAPPLE_remap_index 396 -#define GetObjectParameterivAPPLE_remap_index 397 -#define ObjectPurgeableAPPLE_remap_index 398 -#define ObjectUnpurgeableAPPLE_remap_index 399 -#define StencilFuncSeparateATI_remap_index 400 -#define ProgramEnvParameters4fvEXT_remap_index 401 -#define ProgramLocalParameters4fvEXT_remap_index 402 -#define GetQueryObjecti64vEXT_remap_index 403 -#define GetQueryObjectui64vEXT_remap_index 404 -#define EGLImageTargetRenderbufferStorageOES_remap_index 405 -#define EGLImageTargetTexture2DOES_remap_index 406 +#define DrawArraysInstanced_remap_index 22 +#define DrawElementsInstanced_remap_index 23 +#define LoadTransposeMatrixdARB_remap_index 24 +#define LoadTransposeMatrixfARB_remap_index 25 +#define MultTransposeMatrixdARB_remap_index 26 +#define MultTransposeMatrixfARB_remap_index 27 +#define SampleCoverageARB_remap_index 28 +#define CompressedTexImage1DARB_remap_index 29 +#define CompressedTexImage2DARB_remap_index 30 +#define CompressedTexImage3DARB_remap_index 31 +#define CompressedTexSubImage1DARB_remap_index 32 +#define CompressedTexSubImage2DARB_remap_index 33 +#define CompressedTexSubImage3DARB_remap_index 34 +#define GetCompressedTexImageARB_remap_index 35 +#define DisableVertexAttribArrayARB_remap_index 36 +#define EnableVertexAttribArrayARB_remap_index 37 +#define GetProgramEnvParameterdvARB_remap_index 38 +#define GetProgramEnvParameterfvARB_remap_index 39 +#define GetProgramLocalParameterdvARB_remap_index 40 +#define GetProgramLocalParameterfvARB_remap_index 41 +#define GetProgramStringARB_remap_index 42 +#define GetProgramivARB_remap_index 43 +#define GetVertexAttribdvARB_remap_index 44 +#define GetVertexAttribfvARB_remap_index 45 +#define GetVertexAttribivARB_remap_index 46 +#define ProgramEnvParameter4dARB_remap_index 47 +#define ProgramEnvParameter4dvARB_remap_index 48 +#define ProgramEnvParameter4fARB_remap_index 49 +#define ProgramEnvParameter4fvARB_remap_index 50 +#define ProgramLocalParameter4dARB_remap_index 51 +#define ProgramLocalParameter4dvARB_remap_index 52 +#define ProgramLocalParameter4fARB_remap_index 53 +#define ProgramLocalParameter4fvARB_remap_index 54 +#define ProgramStringARB_remap_index 55 +#define VertexAttrib1dARB_remap_index 56 +#define VertexAttrib1dvARB_remap_index 57 +#define VertexAttrib1fARB_remap_index 58 +#define VertexAttrib1fvARB_remap_index 59 +#define VertexAttrib1sARB_remap_index 60 +#define VertexAttrib1svARB_remap_index 61 +#define VertexAttrib2dARB_remap_index 62 +#define VertexAttrib2dvARB_remap_index 63 +#define VertexAttrib2fARB_remap_index 64 +#define VertexAttrib2fvARB_remap_index 65 +#define VertexAttrib2sARB_remap_index 66 +#define VertexAttrib2svARB_remap_index 67 +#define VertexAttrib3dARB_remap_index 68 +#define VertexAttrib3dvARB_remap_index 69 +#define VertexAttrib3fARB_remap_index 70 +#define VertexAttrib3fvARB_remap_index 71 +#define VertexAttrib3sARB_remap_index 72 +#define VertexAttrib3svARB_remap_index 73 +#define VertexAttrib4NbvARB_remap_index 74 +#define VertexAttrib4NivARB_remap_index 75 +#define VertexAttrib4NsvARB_remap_index 76 +#define VertexAttrib4NubARB_remap_index 77 +#define VertexAttrib4NubvARB_remap_index 78 +#define VertexAttrib4NuivARB_remap_index 79 +#define VertexAttrib4NusvARB_remap_index 80 +#define VertexAttrib4bvARB_remap_index 81 +#define VertexAttrib4dARB_remap_index 82 +#define VertexAttrib4dvARB_remap_index 83 +#define VertexAttrib4fARB_remap_index 84 +#define VertexAttrib4fvARB_remap_index 85 +#define VertexAttrib4ivARB_remap_index 86 +#define VertexAttrib4sARB_remap_index 87 +#define VertexAttrib4svARB_remap_index 88 +#define VertexAttrib4ubvARB_remap_index 89 +#define VertexAttrib4uivARB_remap_index 90 +#define VertexAttrib4usvARB_remap_index 91 +#define VertexAttribPointerARB_remap_index 92 +#define BindBufferARB_remap_index 93 +#define BufferDataARB_remap_index 94 +#define BufferSubDataARB_remap_index 95 +#define DeleteBuffersARB_remap_index 96 +#define GenBuffersARB_remap_index 97 +#define GetBufferParameterivARB_remap_index 98 +#define GetBufferPointervARB_remap_index 99 +#define GetBufferSubDataARB_remap_index 100 +#define IsBufferARB_remap_index 101 +#define MapBufferARB_remap_index 102 +#define UnmapBufferARB_remap_index 103 +#define BeginQueryARB_remap_index 104 +#define DeleteQueriesARB_remap_index 105 +#define EndQueryARB_remap_index 106 +#define GenQueriesARB_remap_index 107 +#define GetQueryObjectivARB_remap_index 108 +#define GetQueryObjectuivARB_remap_index 109 +#define GetQueryivARB_remap_index 110 +#define IsQueryARB_remap_index 111 +#define AttachObjectARB_remap_index 112 +#define CompileShaderARB_remap_index 113 +#define CreateProgramObjectARB_remap_index 114 +#define CreateShaderObjectARB_remap_index 115 +#define DeleteObjectARB_remap_index 116 +#define DetachObjectARB_remap_index 117 +#define GetActiveUniformARB_remap_index 118 +#define GetAttachedObjectsARB_remap_index 119 +#define GetHandleARB_remap_index 120 +#define GetInfoLogARB_remap_index 121 +#define GetObjectParameterfvARB_remap_index 122 +#define GetObjectParameterivARB_remap_index 123 +#define GetShaderSourceARB_remap_index 124 +#define GetUniformLocationARB_remap_index 125 +#define GetUniformfvARB_remap_index 126 +#define GetUniformivARB_remap_index 127 +#define LinkProgramARB_remap_index 128 +#define ShaderSourceARB_remap_index 129 +#define Uniform1fARB_remap_index 130 +#define Uniform1fvARB_remap_index 131 +#define Uniform1iARB_remap_index 132 +#define Uniform1ivARB_remap_index 133 +#define Uniform2fARB_remap_index 134 +#define Uniform2fvARB_remap_index 135 +#define Uniform2iARB_remap_index 136 +#define Uniform2ivARB_remap_index 137 +#define Uniform3fARB_remap_index 138 +#define Uniform3fvARB_remap_index 139 +#define Uniform3iARB_remap_index 140 +#define Uniform3ivARB_remap_index 141 +#define Uniform4fARB_remap_index 142 +#define Uniform4fvARB_remap_index 143 +#define Uniform4iARB_remap_index 144 +#define Uniform4ivARB_remap_index 145 +#define UniformMatrix2fvARB_remap_index 146 +#define UniformMatrix3fvARB_remap_index 147 +#define UniformMatrix4fvARB_remap_index 148 +#define UseProgramObjectARB_remap_index 149 +#define ValidateProgramARB_remap_index 150 +#define BindAttribLocationARB_remap_index 151 +#define GetActiveAttribARB_remap_index 152 +#define GetAttribLocationARB_remap_index 153 +#define DrawBuffersARB_remap_index 154 +#define RenderbufferStorageMultisample_remap_index 155 +#define FlushMappedBufferRange_remap_index 156 +#define MapBufferRange_remap_index 157 +#define BindVertexArray_remap_index 158 +#define GenVertexArrays_remap_index 159 +#define CopyBufferSubData_remap_index 160 +#define ClientWaitSync_remap_index 161 +#define DeleteSync_remap_index 162 +#define FenceSync_remap_index 163 +#define GetInteger64v_remap_index 164 +#define GetSynciv_remap_index 165 +#define IsSync_remap_index 166 +#define WaitSync_remap_index 167 +#define DrawElementsBaseVertex_remap_index 168 +#define DrawRangeElementsBaseVertex_remap_index 169 +#define MultiDrawElementsBaseVertex_remap_index 170 +#define PolygonOffsetEXT_remap_index 171 +#define GetPixelTexGenParameterfvSGIS_remap_index 172 +#define GetPixelTexGenParameterivSGIS_remap_index 173 +#define PixelTexGenParameterfSGIS_remap_index 174 +#define PixelTexGenParameterfvSGIS_remap_index 175 +#define PixelTexGenParameteriSGIS_remap_index 176 +#define PixelTexGenParameterivSGIS_remap_index 177 +#define SampleMaskSGIS_remap_index 178 +#define SamplePatternSGIS_remap_index 179 +#define ColorPointerEXT_remap_index 180 +#define EdgeFlagPointerEXT_remap_index 181 +#define IndexPointerEXT_remap_index 182 +#define NormalPointerEXT_remap_index 183 +#define TexCoordPointerEXT_remap_index 184 +#define VertexPointerEXT_remap_index 185 +#define PointParameterfEXT_remap_index 186 +#define PointParameterfvEXT_remap_index 187 +#define LockArraysEXT_remap_index 188 +#define UnlockArraysEXT_remap_index 189 +#define CullParameterdvEXT_remap_index 190 +#define CullParameterfvEXT_remap_index 191 +#define SecondaryColor3bEXT_remap_index 192 +#define SecondaryColor3bvEXT_remap_index 193 +#define SecondaryColor3dEXT_remap_index 194 +#define SecondaryColor3dvEXT_remap_index 195 +#define SecondaryColor3fEXT_remap_index 196 +#define SecondaryColor3fvEXT_remap_index 197 +#define SecondaryColor3iEXT_remap_index 198 +#define SecondaryColor3ivEXT_remap_index 199 +#define SecondaryColor3sEXT_remap_index 200 +#define SecondaryColor3svEXT_remap_index 201 +#define SecondaryColor3ubEXT_remap_index 202 +#define SecondaryColor3ubvEXT_remap_index 203 +#define SecondaryColor3uiEXT_remap_index 204 +#define SecondaryColor3uivEXT_remap_index 205 +#define SecondaryColor3usEXT_remap_index 206 +#define SecondaryColor3usvEXT_remap_index 207 +#define SecondaryColorPointerEXT_remap_index 208 +#define MultiDrawArraysEXT_remap_index 209 +#define MultiDrawElementsEXT_remap_index 210 +#define FogCoordPointerEXT_remap_index 211 +#define FogCoorddEXT_remap_index 212 +#define FogCoorddvEXT_remap_index 213 +#define FogCoordfEXT_remap_index 214 +#define FogCoordfvEXT_remap_index 215 +#define PixelTexGenSGIX_remap_index 216 +#define BlendFuncSeparateEXT_remap_index 217 +#define FlushVertexArrayRangeNV_remap_index 218 +#define VertexArrayRangeNV_remap_index 219 +#define CombinerInputNV_remap_index 220 +#define CombinerOutputNV_remap_index 221 +#define CombinerParameterfNV_remap_index 222 +#define CombinerParameterfvNV_remap_index 223 +#define CombinerParameteriNV_remap_index 224 +#define CombinerParameterivNV_remap_index 225 +#define FinalCombinerInputNV_remap_index 226 +#define GetCombinerInputParameterfvNV_remap_index 227 +#define GetCombinerInputParameterivNV_remap_index 228 +#define GetCombinerOutputParameterfvNV_remap_index 229 +#define GetCombinerOutputParameterivNV_remap_index 230 +#define GetFinalCombinerInputParameterfvNV_remap_index 231 +#define GetFinalCombinerInputParameterivNV_remap_index 232 +#define ResizeBuffersMESA_remap_index 233 +#define WindowPos2dMESA_remap_index 234 +#define WindowPos2dvMESA_remap_index 235 +#define WindowPos2fMESA_remap_index 236 +#define WindowPos2fvMESA_remap_index 237 +#define WindowPos2iMESA_remap_index 238 +#define WindowPos2ivMESA_remap_index 239 +#define WindowPos2sMESA_remap_index 240 +#define WindowPos2svMESA_remap_index 241 +#define WindowPos3dMESA_remap_index 242 +#define WindowPos3dvMESA_remap_index 243 +#define WindowPos3fMESA_remap_index 244 +#define WindowPos3fvMESA_remap_index 245 +#define WindowPos3iMESA_remap_index 246 +#define WindowPos3ivMESA_remap_index 247 +#define WindowPos3sMESA_remap_index 248 +#define WindowPos3svMESA_remap_index 249 +#define WindowPos4dMESA_remap_index 250 +#define WindowPos4dvMESA_remap_index 251 +#define WindowPos4fMESA_remap_index 252 +#define WindowPos4fvMESA_remap_index 253 +#define WindowPos4iMESA_remap_index 254 +#define WindowPos4ivMESA_remap_index 255 +#define WindowPos4sMESA_remap_index 256 +#define WindowPos4svMESA_remap_index 257 +#define MultiModeDrawArraysIBM_remap_index 258 +#define MultiModeDrawElementsIBM_remap_index 259 +#define DeleteFencesNV_remap_index 260 +#define FinishFenceNV_remap_index 261 +#define GenFencesNV_remap_index 262 +#define GetFenceivNV_remap_index 263 +#define IsFenceNV_remap_index 264 +#define SetFenceNV_remap_index 265 +#define TestFenceNV_remap_index 266 +#define AreProgramsResidentNV_remap_index 267 +#define BindProgramNV_remap_index 268 +#define DeleteProgramsNV_remap_index 269 +#define ExecuteProgramNV_remap_index 270 +#define GenProgramsNV_remap_index 271 +#define GetProgramParameterdvNV_remap_index 272 +#define GetProgramParameterfvNV_remap_index 273 +#define GetProgramStringNV_remap_index 274 +#define GetProgramivNV_remap_index 275 +#define GetTrackMatrixivNV_remap_index 276 +#define GetVertexAttribPointervNV_remap_index 277 +#define GetVertexAttribdvNV_remap_index 278 +#define GetVertexAttribfvNV_remap_index 279 +#define GetVertexAttribivNV_remap_index 280 +#define IsProgramNV_remap_index 281 +#define LoadProgramNV_remap_index 282 +#define ProgramParameters4dvNV_remap_index 283 +#define ProgramParameters4fvNV_remap_index 284 +#define RequestResidentProgramsNV_remap_index 285 +#define TrackMatrixNV_remap_index 286 +#define VertexAttrib1dNV_remap_index 287 +#define VertexAttrib1dvNV_remap_index 288 +#define VertexAttrib1fNV_remap_index 289 +#define VertexAttrib1fvNV_remap_index 290 +#define VertexAttrib1sNV_remap_index 291 +#define VertexAttrib1svNV_remap_index 292 +#define VertexAttrib2dNV_remap_index 293 +#define VertexAttrib2dvNV_remap_index 294 +#define VertexAttrib2fNV_remap_index 295 +#define VertexAttrib2fvNV_remap_index 296 +#define VertexAttrib2sNV_remap_index 297 +#define VertexAttrib2svNV_remap_index 298 +#define VertexAttrib3dNV_remap_index 299 +#define VertexAttrib3dvNV_remap_index 300 +#define VertexAttrib3fNV_remap_index 301 +#define VertexAttrib3fvNV_remap_index 302 +#define VertexAttrib3sNV_remap_index 303 +#define VertexAttrib3svNV_remap_index 304 +#define VertexAttrib4dNV_remap_index 305 +#define VertexAttrib4dvNV_remap_index 306 +#define VertexAttrib4fNV_remap_index 307 +#define VertexAttrib4fvNV_remap_index 308 +#define VertexAttrib4sNV_remap_index 309 +#define VertexAttrib4svNV_remap_index 310 +#define VertexAttrib4ubNV_remap_index 311 +#define VertexAttrib4ubvNV_remap_index 312 +#define VertexAttribPointerNV_remap_index 313 +#define VertexAttribs1dvNV_remap_index 314 +#define VertexAttribs1fvNV_remap_index 315 +#define VertexAttribs1svNV_remap_index 316 +#define VertexAttribs2dvNV_remap_index 317 +#define VertexAttribs2fvNV_remap_index 318 +#define VertexAttribs2svNV_remap_index 319 +#define VertexAttribs3dvNV_remap_index 320 +#define VertexAttribs3fvNV_remap_index 321 +#define VertexAttribs3svNV_remap_index 322 +#define VertexAttribs4dvNV_remap_index 323 +#define VertexAttribs4fvNV_remap_index 324 +#define VertexAttribs4svNV_remap_index 325 +#define VertexAttribs4ubvNV_remap_index 326 +#define GetTexBumpParameterfvATI_remap_index 327 +#define GetTexBumpParameterivATI_remap_index 328 +#define TexBumpParameterfvATI_remap_index 329 +#define TexBumpParameterivATI_remap_index 330 +#define AlphaFragmentOp1ATI_remap_index 331 +#define AlphaFragmentOp2ATI_remap_index 332 +#define AlphaFragmentOp3ATI_remap_index 333 +#define BeginFragmentShaderATI_remap_index 334 +#define BindFragmentShaderATI_remap_index 335 +#define ColorFragmentOp1ATI_remap_index 336 +#define ColorFragmentOp2ATI_remap_index 337 +#define ColorFragmentOp3ATI_remap_index 338 +#define DeleteFragmentShaderATI_remap_index 339 +#define EndFragmentShaderATI_remap_index 340 +#define GenFragmentShadersATI_remap_index 341 +#define PassTexCoordATI_remap_index 342 +#define SampleMapATI_remap_index 343 +#define SetFragmentShaderConstantATI_remap_index 344 +#define PointParameteriNV_remap_index 345 +#define PointParameterivNV_remap_index 346 +#define ActiveStencilFaceEXT_remap_index 347 +#define BindVertexArrayAPPLE_remap_index 348 +#define DeleteVertexArraysAPPLE_remap_index 349 +#define GenVertexArraysAPPLE_remap_index 350 +#define IsVertexArrayAPPLE_remap_index 351 +#define GetProgramNamedParameterdvNV_remap_index 352 +#define GetProgramNamedParameterfvNV_remap_index 353 +#define ProgramNamedParameter4dNV_remap_index 354 +#define ProgramNamedParameter4dvNV_remap_index 355 +#define ProgramNamedParameter4fNV_remap_index 356 +#define ProgramNamedParameter4fvNV_remap_index 357 +#define DepthBoundsEXT_remap_index 358 +#define BlendEquationSeparateEXT_remap_index 359 +#define BindFramebufferEXT_remap_index 360 +#define BindRenderbufferEXT_remap_index 361 +#define CheckFramebufferStatusEXT_remap_index 362 +#define DeleteFramebuffersEXT_remap_index 363 +#define DeleteRenderbuffersEXT_remap_index 364 +#define FramebufferRenderbufferEXT_remap_index 365 +#define FramebufferTexture1DEXT_remap_index 366 +#define FramebufferTexture2DEXT_remap_index 367 +#define FramebufferTexture3DEXT_remap_index 368 +#define GenFramebuffersEXT_remap_index 369 +#define GenRenderbuffersEXT_remap_index 370 +#define GenerateMipmapEXT_remap_index 371 +#define GetFramebufferAttachmentParameterivEXT_remap_index 372 +#define GetRenderbufferParameterivEXT_remap_index 373 +#define IsFramebufferEXT_remap_index 374 +#define IsRenderbufferEXT_remap_index 375 +#define RenderbufferStorageEXT_remap_index 376 +#define BlitFramebufferEXT_remap_index 377 +#define BufferParameteriAPPLE_remap_index 378 +#define FlushMappedBufferRangeAPPLE_remap_index 379 +#define FramebufferTextureLayerEXT_remap_index 380 +#define ColorMaskIndexedEXT_remap_index 381 +#define DisableIndexedEXT_remap_index 382 +#define EnableIndexedEXT_remap_index 383 +#define GetBooleanIndexedvEXT_remap_index 384 +#define GetIntegerIndexedvEXT_remap_index 385 +#define IsEnabledIndexedEXT_remap_index 386 +#define BeginConditionalRenderNV_remap_index 387 +#define EndConditionalRenderNV_remap_index 388 +#define BeginTransformFeedbackEXT_remap_index 389 +#define BindBufferBaseEXT_remap_index 390 +#define BindBufferOffsetEXT_remap_index 391 +#define BindBufferRangeEXT_remap_index 392 +#define EndTransformFeedbackEXT_remap_index 393 +#define GetTransformFeedbackVaryingEXT_remap_index 394 +#define TransformFeedbackVaryingsEXT_remap_index 395 +#define ProvokingVertexEXT_remap_index 396 +#define GetTexParameterPointervAPPLE_remap_index 397 +#define TextureRangeAPPLE_remap_index 398 +#define GetObjectParameterivAPPLE_remap_index 399 +#define ObjectPurgeableAPPLE_remap_index 400 +#define ObjectUnpurgeableAPPLE_remap_index 401 +#define StencilFuncSeparateATI_remap_index 402 +#define ProgramEnvParameters4fvEXT_remap_index 403 +#define ProgramLocalParameters4fvEXT_remap_index 404 +#define GetQueryObjecti64vEXT_remap_index 405 +#define GetQueryObjectui64vEXT_remap_index 406 +#define EGLImageTargetRenderbufferStorageOES_remap_index 407 +#define EGLImageTargetTexture2DOES_remap_index 408 #define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters) #define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index]) @@ -2986,6 +2994,12 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ]; #define CALL_UniformMatrix4x3fv(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLint, GLsizei, GLboolean, const GLfloat *)), driDispatchRemapTable[UniformMatrix4x3fv_remap_index], parameters) #define GET_UniformMatrix4x3fv(disp) GET_by_offset(disp, driDispatchRemapTable[UniformMatrix4x3fv_remap_index]) #define SET_UniformMatrix4x3fv(disp, fn) SET_by_offset(disp, driDispatchRemapTable[UniformMatrix4x3fv_remap_index], fn) +#define CALL_DrawArraysInstanced(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLint, GLsizei, GLsizei)), driDispatchRemapTable[DrawArraysInstanced_remap_index], parameters) +#define GET_DrawArraysInstanced(disp) GET_by_offset(disp, driDispatchRemapTable[DrawArraysInstanced_remap_index]) +#define SET_DrawArraysInstanced(disp, fn) SET_by_offset(disp, driDispatchRemapTable[DrawArraysInstanced_remap_index], fn) +#define CALL_DrawElementsInstanced(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei)), driDispatchRemapTable[DrawElementsInstanced_remap_index], parameters) +#define GET_DrawElementsInstanced(disp) GET_by_offset(disp, driDispatchRemapTable[DrawElementsInstanced_remap_index]) +#define SET_DrawElementsInstanced(disp, fn) SET_by_offset(disp, driDispatchRemapTable[DrawElementsInstanced_remap_index], fn) #define CALL_LoadTransposeMatrixdARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(const GLdouble *)), driDispatchRemapTable[LoadTransposeMatrixdARB_remap_index], parameters) #define GET_LoadTransposeMatrixdARB(disp) GET_by_offset(disp, driDispatchRemapTable[LoadTransposeMatrixdARB_remap_index]) #define SET_LoadTransposeMatrixdARB(disp, fn) SET_by_offset(disp, driDispatchRemapTable[LoadTransposeMatrixdARB_remap_index], fn) diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index abd29fbc48..a8133b4073 100644 --- a/src/mesa/glapi/glapioffsets.h +++ b/src/mesa/glapi/glapioffsets.h @@ -464,392 +464,394 @@ #define _gloffset_UniformMatrix3x4fv 427 #define _gloffset_UniformMatrix4x2fv 428 #define _gloffset_UniformMatrix4x3fv 429 -#define _gloffset_LoadTransposeMatrixdARB 430 -#define _gloffset_LoadTransposeMatrixfARB 431 -#define _gloffset_MultTransposeMatrixdARB 432 -#define _gloffset_MultTransposeMatrixfARB 433 -#define _gloffset_SampleCoverageARB 434 -#define _gloffset_CompressedTexImage1DARB 435 -#define _gloffset_CompressedTexImage2DARB 436 -#define _gloffset_CompressedTexImage3DARB 437 -#define _gloffset_CompressedTexSubImage1DARB 438 -#define _gloffset_CompressedTexSubImage2DARB 439 -#define _gloffset_CompressedTexSubImage3DARB 440 -#define _gloffset_GetCompressedTexImageARB 441 -#define _gloffset_DisableVertexAttribArrayARB 442 -#define _gloffset_EnableVertexAttribArrayARB 443 -#define _gloffset_GetProgramEnvParameterdvARB 444 -#define _gloffset_GetProgramEnvParameterfvARB 445 -#define _gloffset_GetProgramLocalParameterdvARB 446 -#define _gloffset_GetProgramLocalParameterfvARB 447 -#define _gloffset_GetProgramStringARB 448 -#define _gloffset_GetProgramivARB 449 -#define _gloffset_GetVertexAttribdvARB 450 -#define _gloffset_GetVertexAttribfvARB 451 -#define _gloffset_GetVertexAttribivARB 452 -#define _gloffset_ProgramEnvParameter4dARB 453 -#define _gloffset_ProgramEnvParameter4dvARB 454 -#define _gloffset_ProgramEnvParameter4fARB 455 -#define _gloffset_ProgramEnvParameter4fvARB 456 -#define _gloffset_ProgramLocalParameter4dARB 457 -#define _gloffset_ProgramLocalParameter4dvARB 458 -#define _gloffset_ProgramLocalParameter4fARB 459 -#define _gloffset_ProgramLocalParameter4fvARB 460 -#define _gloffset_ProgramStringARB 461 -#define _gloffset_VertexAttrib1dARB 462 -#define _gloffset_VertexAttrib1dvARB 463 -#define _gloffset_VertexAttrib1fARB 464 -#define _gloffset_VertexAttrib1fvARB 465 -#define _gloffset_VertexAttrib1sARB 466 -#define _gloffset_VertexAttrib1svARB 467 -#define _gloffset_VertexAttrib2dARB 468 -#define _gloffset_VertexAttrib2dvARB 469 -#define _gloffset_VertexAttrib2fARB 470 -#define _gloffset_VertexAttrib2fvARB 471 -#define _gloffset_VertexAttrib2sARB 472 -#define _gloffset_VertexAttrib2svARB 473 -#define _gloffset_VertexAttrib3dARB 474 -#define _gloffset_VertexAttrib3dvARB 475 -#define _gloffset_VertexAttrib3fARB 476 -#define _gloffset_VertexAttrib3fvARB 477 -#define _gloffset_VertexAttrib3sARB 478 -#define _gloffset_VertexAttrib3svARB 479 -#define _gloffset_VertexAttrib4NbvARB 480 -#define _gloffset_VertexAttrib4NivARB 481 -#define _gloffset_VertexAttrib4NsvARB 482 -#define _gloffset_VertexAttrib4NubARB 483 -#define _gloffset_VertexAttrib4NubvARB 484 -#define _gloffset_VertexAttrib4NuivARB 485 -#define _gloffset_VertexAttrib4NusvARB 486 -#define _gloffset_VertexAttrib4bvARB 487 -#define _gloffset_VertexAttrib4dARB 488 -#define _gloffset_VertexAttrib4dvARB 489 -#define _gloffset_VertexAttrib4fARB 490 -#define _gloffset_VertexAttrib4fvARB 491 -#define _gloffset_VertexAttrib4ivARB 492 -#define _gloffset_VertexAttrib4sARB 493 -#define _gloffset_VertexAttrib4svARB 494 -#define _gloffset_VertexAttrib4ubvARB 495 -#define _gloffset_VertexAttrib4uivARB 496 -#define _gloffset_VertexAttrib4usvARB 497 -#define _gloffset_VertexAttribPointerARB 498 -#define _gloffset_BindBufferARB 499 -#define _gloffset_BufferDataARB 500 -#define _gloffset_BufferSubDataARB 501 -#define _gloffset_DeleteBuffersARB 502 -#define _gloffset_GenBuffersARB 503 -#define _gloffset_GetBufferParameterivARB 504 -#define _gloffset_GetBufferPointervARB 505 -#define _gloffset_GetBufferSubDataARB 506 -#define _gloffset_IsBufferARB 507 -#define _gloffset_MapBufferARB 508 -#define _gloffset_UnmapBufferARB 509 -#define _gloffset_BeginQueryARB 510 -#define _gloffset_DeleteQueriesARB 511 -#define _gloffset_EndQueryARB 512 -#define _gloffset_GenQueriesARB 513 -#define _gloffset_GetQueryObjectivARB 514 -#define _gloffset_GetQueryObjectuivARB 515 -#define _gloffset_GetQueryivARB 516 -#define _gloffset_IsQueryARB 517 -#define _gloffset_AttachObjectARB 518 -#define _gloffset_CompileShaderARB 519 -#define _gloffset_CreateProgramObjectARB 520 -#define _gloffset_CreateShaderObjectARB 521 -#define _gloffset_DeleteObjectARB 522 -#define _gloffset_DetachObjectARB 523 -#define _gloffset_GetActiveUniformARB 524 -#define _gloffset_GetAttachedObjectsARB 525 -#define _gloffset_GetHandleARB 526 -#define _gloffset_GetInfoLogARB 527 -#define _gloffset_GetObjectParameterfvARB 528 -#define _gloffset_GetObjectParameterivARB 529 -#define _gloffset_GetShaderSourceARB 530 -#define _gloffset_GetUniformLocationARB 531 -#define _gloffset_GetUniformfvARB 532 -#define _gloffset_GetUniformivARB 533 -#define _gloffset_LinkProgramARB 534 -#define _gloffset_ShaderSourceARB 535 -#define _gloffset_Uniform1fARB 536 -#define _gloffset_Uniform1fvARB 537 -#define _gloffset_Uniform1iARB 538 -#define _gloffset_Uniform1ivARB 539 -#define _gloffset_Uniform2fARB 540 -#define _gloffset_Uniform2fvARB 541 -#define _gloffset_Uniform2iARB 542 -#define _gloffset_Uniform2ivARB 543 -#define _gloffset_Uniform3fARB 544 -#define _gloffset_Uniform3fvARB 545 -#define _gloffset_Uniform3iARB 546 -#define _gloffset_Uniform3ivARB 547 -#define _gloffset_Uniform4fARB 548 -#define _gloffset_Uniform4fvARB 549 -#define _gloffset_Uniform4iARB 550 -#define _gloffset_Uniform4ivARB 551 -#define _gloffset_UniformMatrix2fvARB 552 -#define _gloffset_UniformMatrix3fvARB 553 -#define _gloffset_UniformMatrix4fvARB 554 -#define _gloffset_UseProgramObjectARB 555 -#define _gloffset_ValidateProgramARB 556 -#define _gloffset_BindAttribLocationARB 557 -#define _gloffset_GetActiveAttribARB 558 -#define _gloffset_GetAttribLocationARB 559 -#define _gloffset_DrawBuffersARB 560 -#define _gloffset_RenderbufferStorageMultisample 561 -#define _gloffset_FlushMappedBufferRange 562 -#define _gloffset_MapBufferRange 563 -#define _gloffset_BindVertexArray 564 -#define _gloffset_GenVertexArrays 565 -#define _gloffset_CopyBufferSubData 566 -#define _gloffset_ClientWaitSync 567 -#define _gloffset_DeleteSync 568 -#define _gloffset_FenceSync 569 -#define _gloffset_GetInteger64v 570 -#define _gloffset_GetSynciv 571 -#define _gloffset_IsSync 572 -#define _gloffset_WaitSync 573 -#define _gloffset_DrawElementsBaseVertex 574 -#define _gloffset_DrawRangeElementsBaseVertex 575 -#define _gloffset_MultiDrawElementsBaseVertex 576 -#define _gloffset_PolygonOffsetEXT 577 -#define _gloffset_GetPixelTexGenParameterfvSGIS 578 -#define _gloffset_GetPixelTexGenParameterivSGIS 579 -#define _gloffset_PixelTexGenParameterfSGIS 580 -#define _gloffset_PixelTexGenParameterfvSGIS 581 -#define _gloffset_PixelTexGenParameteriSGIS 582 -#define _gloffset_PixelTexGenParameterivSGIS 583 -#define _gloffset_SampleMaskSGIS 584 -#define _gloffset_SamplePatternSGIS 585 -#define _gloffset_ColorPointerEXT 586 -#define _gloffset_EdgeFlagPointerEXT 587 -#define _gloffset_IndexPointerEXT 588 -#define _gloffset_NormalPointerEXT 589 -#define _gloffset_TexCoordPointerEXT 590 -#define _gloffset_VertexPointerEXT 591 -#define _gloffset_PointParameterfEXT 592 -#define _gloffset_PointParameterfvEXT 593 -#define _gloffset_LockArraysEXT 594 -#define _gloffset_UnlockArraysEXT 595 -#define _gloffset_CullParameterdvEXT 596 -#define _gloffset_CullParameterfvEXT 597 -#define _gloffset_SecondaryColor3bEXT 598 -#define _gloffset_SecondaryColor3bvEXT 599 -#define _gloffset_SecondaryColor3dEXT 600 -#define _gloffset_SecondaryColor3dvEXT 601 -#define _gloffset_SecondaryColor3fEXT 602 -#define _gloffset_SecondaryColor3fvEXT 603 -#define _gloffset_SecondaryColor3iEXT 604 -#define _gloffset_SecondaryColor3ivEXT 605 -#define _gloffset_SecondaryColor3sEXT 606 -#define _gloffset_SecondaryColor3svEXT 607 -#define _gloffset_SecondaryColor3ubEXT 608 -#define _gloffset_SecondaryColor3ubvEXT 609 -#define _gloffset_SecondaryColor3uiEXT 610 -#define _gloffset_SecondaryColor3uivEXT 611 -#define _gloffset_SecondaryColor3usEXT 612 -#define _gloffset_SecondaryColor3usvEXT 613 -#define _gloffset_SecondaryColorPointerEXT 614 -#define _gloffset_MultiDrawArraysEXT 615 -#define _gloffset_MultiDrawElementsEXT 616 -#define _gloffset_FogCoordPointerEXT 617 -#define _gloffset_FogCoorddEXT 618 -#define _gloffset_FogCoorddvEXT 619 -#define _gloffset_FogCoordfEXT 620 -#define _gloffset_FogCoordfvEXT 621 -#define _gloffset_PixelTexGenSGIX 622 -#define _gloffset_BlendFuncSeparateEXT 623 -#define _gloffset_FlushVertexArrayRangeNV 624 -#define _gloffset_VertexArrayRangeNV 625 -#define _gloffset_CombinerInputNV 626 -#define _gloffset_CombinerOutputNV 627 -#define _gloffset_CombinerParameterfNV 628 -#define _gloffset_CombinerParameterfvNV 629 -#define _gloffset_CombinerParameteriNV 630 -#define _gloffset_CombinerParameterivNV 631 -#define _gloffset_FinalCombinerInputNV 632 -#define _gloffset_GetCombinerInputParameterfvNV 633 -#define _gloffset_GetCombinerInputParameterivNV 634 -#define _gloffset_GetCombinerOutputParameterfvNV 635 -#define _gloffset_GetCombinerOutputParameterivNV 636 -#define _gloffset_GetFinalCombinerInputParameterfvNV 637 -#define _gloffset_GetFinalCombinerInputParameterivNV 638 -#define _gloffset_ResizeBuffersMESA 639 -#define _gloffset_WindowPos2dMESA 640 -#define _gloffset_WindowPos2dvMESA 641 -#define _gloffset_WindowPos2fMESA 642 -#define _gloffset_WindowPos2fvMESA 643 -#define _gloffset_WindowPos2iMESA 644 -#define _gloffset_WindowPos2ivMESA 645 -#define _gloffset_WindowPos2sMESA 646 -#define _gloffset_WindowPos2svMESA 647 -#define _gloffset_WindowPos3dMESA 648 -#define _gloffset_WindowPos3dvMESA 649 -#define _gloffset_WindowPos3fMESA 650 -#define _gloffset_WindowPos3fvMESA 651 -#define _gloffset_WindowPos3iMESA 652 -#define _gloffset_WindowPos3ivMESA 653 -#define _gloffset_WindowPos3sMESA 654 -#define _gloffset_WindowPos3svMESA 655 -#define _gloffset_WindowPos4dMESA 656 -#define _gloffset_WindowPos4dvMESA 657 -#define _gloffset_WindowPos4fMESA 658 -#define _gloffset_WindowPos4fvMESA 659 -#define _gloffset_WindowPos4iMESA 660 -#define _gloffset_WindowPos4ivMESA 661 -#define _gloffset_WindowPos4sMESA 662 -#define _gloffset_WindowPos4svMESA 663 -#define _gloffset_MultiModeDrawArraysIBM 664 -#define _gloffset_MultiModeDrawElementsIBM 665 -#define _gloffset_DeleteFencesNV 666 -#define _gloffset_FinishFenceNV 667 -#define _gloffset_GenFencesNV 668 -#define _gloffset_GetFenceivNV 669 -#define _gloffset_IsFenceNV 670 -#define _gloffset_SetFenceNV 671 -#define _gloffset_TestFenceNV 672 -#define _gloffset_AreProgramsResidentNV 673 -#define _gloffset_BindProgramNV 674 -#define _gloffset_DeleteProgramsNV 675 -#define _gloffset_ExecuteProgramNV 676 -#define _gloffset_GenProgramsNV 677 -#define _gloffset_GetProgramParameterdvNV 678 -#define _gloffset_GetProgramParameterfvNV 679 -#define _gloffset_GetProgramStringNV 680 -#define _gloffset_GetProgramivNV 681 -#define _gloffset_GetTrackMatrixivNV 682 -#define _gloffset_GetVertexAttribPointervNV 683 -#define _gloffset_GetVertexAttribdvNV 684 -#define _gloffset_GetVertexAttribfvNV 685 -#define _gloffset_GetVertexAttribivNV 686 -#define _gloffset_IsProgramNV 687 -#define _gloffset_LoadProgramNV 688 -#define _gloffset_ProgramParameters4dvNV 689 -#define _gloffset_ProgramParameters4fvNV 690 -#define _gloffset_RequestResidentProgramsNV 691 -#define _gloffset_TrackMatrixNV 692 -#define _gloffset_VertexAttrib1dNV 693 -#define _gloffset_VertexAttrib1dvNV 694 -#define _gloffset_VertexAttrib1fNV 695 -#define _gloffset_VertexAttrib1fvNV 696 -#define _gloffset_VertexAttrib1sNV 697 -#define _gloffset_VertexAttrib1svNV 698 -#define _gloffset_VertexAttrib2dNV 699 -#define _gloffset_VertexAttrib2dvNV 700 -#define _gloffset_VertexAttrib2fNV 701 -#define _gloffset_VertexAttrib2fvNV 702 -#define _gloffset_VertexAttrib2sNV 703 -#define _gloffset_VertexAttrib2svNV 704 -#define _gloffset_VertexAttrib3dNV 705 -#define _gloffset_VertexAttrib3dvNV 706 -#define _gloffset_VertexAttrib3fNV 707 -#define _gloffset_VertexAttrib3fvNV 708 -#define _gloffset_VertexAttrib3sNV 709 -#define _gloffset_VertexAttrib3svNV 710 -#define _gloffset_VertexAttrib4dNV 711 -#define _gloffset_VertexAttrib4dvNV 712 -#define _gloffset_VertexAttrib4fNV 713 -#define _gloffset_VertexAttrib4fvNV 714 -#define _gloffset_VertexAttrib4sNV 715 -#define _gloffset_VertexAttrib4svNV 716 -#define _gloffset_VertexAttrib4ubNV 717 -#define _gloffset_VertexAttrib4ubvNV 718 -#define _gloffset_VertexAttribPointerNV 719 -#define _gloffset_VertexAttribs1dvNV 720 -#define _gloffset_VertexAttribs1fvNV 721 -#define _gloffset_VertexAttribs1svNV 722 -#define _gloffset_VertexAttribs2dvNV 723 -#define _gloffset_VertexAttribs2fvNV 724 -#define _gloffset_VertexAttribs2svNV 725 -#define _gloffset_VertexAttribs3dvNV 726 -#define _gloffset_VertexAttribs3fvNV 727 -#define _gloffset_VertexAttribs3svNV 728 -#define _gloffset_VertexAttribs4dvNV 729 -#define _gloffset_VertexAttribs4fvNV 730 -#define _gloffset_VertexAttribs4svNV 731 -#define _gloffset_VertexAttribs4ubvNV 732 -#define _gloffset_GetTexBumpParameterfvATI 733 -#define _gloffset_GetTexBumpParameterivATI 734 -#define _gloffset_TexBumpParameterfvATI 735 -#define _gloffset_TexBumpParameterivATI 736 -#define _gloffset_AlphaFragmentOp1ATI 737 -#define _gloffset_AlphaFragmentOp2ATI 738 -#define _gloffset_AlphaFragmentOp3ATI 739 -#define _gloffset_BeginFragmentShaderATI 740 -#define _gloffset_BindFragmentShaderATI 741 -#define _gloffset_ColorFragmentOp1ATI 742 -#define _gloffset_ColorFragmentOp2ATI 743 -#define _gloffset_ColorFragmentOp3ATI 744 -#define _gloffset_DeleteFragmentShaderATI 745 -#define _gloffset_EndFragmentShaderATI 746 -#define _gloffset_GenFragmentShadersATI 747 -#define _gloffset_PassTexCoordATI 748 -#define _gloffset_SampleMapATI 749 -#define _gloffset_SetFragmentShaderConstantATI 750 -#define _gloffset_PointParameteriNV 751 -#define _gloffset_PointParameterivNV 752 -#define _gloffset_ActiveStencilFaceEXT 753 -#define _gloffset_BindVertexArrayAPPLE 754 -#define _gloffset_DeleteVertexArraysAPPLE 755 -#define _gloffset_GenVertexArraysAPPLE 756 -#define _gloffset_IsVertexArrayAPPLE 757 -#define _gloffset_GetProgramNamedParameterdvNV 758 -#define _gloffset_GetProgramNamedParameterfvNV 759 -#define _gloffset_ProgramNamedParameter4dNV 760 -#define _gloffset_ProgramNamedParameter4dvNV 761 -#define _gloffset_ProgramNamedParameter4fNV 762 -#define _gloffset_ProgramNamedParameter4fvNV 763 -#define _gloffset_DepthBoundsEXT 764 -#define _gloffset_BlendEquationSeparateEXT 765 -#define _gloffset_BindFramebufferEXT 766 -#define _gloffset_BindRenderbufferEXT 767 -#define _gloffset_CheckFramebufferStatusEXT 768 -#define _gloffset_DeleteFramebuffersEXT 769 -#define _gloffset_DeleteRenderbuffersEXT 770 -#define _gloffset_FramebufferRenderbufferEXT 771 -#define _gloffset_FramebufferTexture1DEXT 772 -#define _gloffset_FramebufferTexture2DEXT 773 -#define _gloffset_FramebufferTexture3DEXT 774 -#define _gloffset_GenFramebuffersEXT 775 -#define _gloffset_GenRenderbuffersEXT 776 -#define _gloffset_GenerateMipmapEXT 777 -#define _gloffset_GetFramebufferAttachmentParameterivEXT 778 -#define _gloffset_GetRenderbufferParameterivEXT 779 -#define _gloffset_IsFramebufferEXT 780 -#define _gloffset_IsRenderbufferEXT 781 -#define _gloffset_RenderbufferStorageEXT 782 -#define _gloffset_BlitFramebufferEXT 783 -#define _gloffset_BufferParameteriAPPLE 784 -#define _gloffset_FlushMappedBufferRangeAPPLE 785 -#define _gloffset_FramebufferTextureLayerEXT 786 -#define _gloffset_ColorMaskIndexedEXT 787 -#define _gloffset_DisableIndexedEXT 788 -#define _gloffset_EnableIndexedEXT 789 -#define _gloffset_GetBooleanIndexedvEXT 790 -#define _gloffset_GetIntegerIndexedvEXT 791 -#define _gloffset_IsEnabledIndexedEXT 792 -#define _gloffset_BeginConditionalRenderNV 793 -#define _gloffset_EndConditionalRenderNV 794 -#define _gloffset_BeginTransformFeedbackEXT 795 -#define _gloffset_BindBufferBaseEXT 796 -#define _gloffset_BindBufferOffsetEXT 797 -#define _gloffset_BindBufferRangeEXT 798 -#define _gloffset_EndTransformFeedbackEXT 799 -#define _gloffset_GetTransformFeedbackVaryingEXT 800 -#define _gloffset_TransformFeedbackVaryingsEXT 801 -#define _gloffset_ProvokingVertexEXT 802 -#define _gloffset_GetTexParameterPointervAPPLE 803 -#define _gloffset_TextureRangeAPPLE 804 -#define _gloffset_GetObjectParameterivAPPLE 805 -#define _gloffset_ObjectPurgeableAPPLE 806 -#define _gloffset_ObjectUnpurgeableAPPLE 807 -#define _gloffset_StencilFuncSeparateATI 808 -#define _gloffset_ProgramEnvParameters4fvEXT 809 -#define _gloffset_ProgramLocalParameters4fvEXT 810 -#define _gloffset_GetQueryObjecti64vEXT 811 -#define _gloffset_GetQueryObjectui64vEXT 812 -#define _gloffset_EGLImageTargetRenderbufferStorageOES 813 -#define _gloffset_EGLImageTargetTexture2DOES 814 -#define _gloffset_FIRST_DYNAMIC 815 +#define _gloffset_DrawArraysInstanced 430 +#define _gloffset_DrawElementsInstanced 431 +#define _gloffset_LoadTransposeMatrixdARB 432 +#define _gloffset_LoadTransposeMatrixfARB 433 +#define _gloffset_MultTransposeMatrixdARB 434 +#define _gloffset_MultTransposeMatrixfARB 435 +#define _gloffset_SampleCoverageARB 436 +#define _gloffset_CompressedTexImage1DARB 437 +#define _gloffset_CompressedTexImage2DARB 438 +#define _gloffset_CompressedTexImage3DARB 439 +#define _gloffset_CompressedTexSubImage1DARB 440 +#define _gloffset_CompressedTexSubImage2DARB 441 +#define _gloffset_CompressedTexSubImage3DARB 442 +#define _gloffset_GetCompressedTexImageARB 443 +#define _gloffset_DisableVertexAttribArrayARB 444 +#define _gloffset_EnableVertexAttribArrayARB 445 +#define _gloffset_GetProgramEnvParameterdvARB 446 +#define _gloffset_GetProgramEnvParameterfvARB 447 +#define _gloffset_GetProgramLocalParameterdvARB 448 +#define _gloffset_GetProgramLocalParameterfvARB 449 +#define _gloffset_GetProgramStringARB 450 +#define _gloffset_GetProgramivARB 451 +#define _gloffset_GetVertexAttribdvARB 452 +#define _gloffset_GetVertexAttribfvARB 453 +#define _gloffset_GetVertexAttribivARB 454 +#define _gloffset_ProgramEnvParameter4dARB 455 +#define _gloffset_ProgramEnvParameter4dvARB 456 +#define _gloffset_ProgramEnvParameter4fARB 457 +#define _gloffset_ProgramEnvParameter4fvARB 458 +#define _gloffset_ProgramLocalParameter4dARB 459 +#define _gloffset_ProgramLocalParameter4dvARB 460 +#define _gloffset_ProgramLocalParameter4fARB 461 +#define _gloffset_ProgramLocalParameter4fvARB 462 +#define _gloffset_ProgramStringARB 463 +#define _gloffset_VertexAttrib1dARB 464 +#define _gloffset_VertexAttrib1dvARB 465 +#define _gloffset_VertexAttrib1fARB 466 +#define _gloffset_VertexAttrib1fvARB 467 +#define _gloffset_VertexAttrib1sARB 468 +#define _gloffset_VertexAttrib1svARB 469 +#define _gloffset_VertexAttrib2dARB 470 +#define _gloffset_VertexAttrib2dvARB 471 +#define _gloffset_VertexAttrib2fARB 472 +#define _gloffset_VertexAttrib2fvARB 473 +#define _gloffset_VertexAttrib2sARB 474 +#define _gloffset_VertexAttrib2svARB 475 +#define _gloffset_VertexAttrib3dARB 476 +#define _gloffset_VertexAttrib3dvARB 477 +#define _gloffset_VertexAttrib3fARB 478 +#define _gloffset_VertexAttrib3fvARB 479 +#define _gloffset_VertexAttrib3sARB 480 +#define _gloffset_VertexAttrib3svARB 481 +#define _gloffset_VertexAttrib4NbvARB 482 +#define _gloffset_VertexAttrib4NivARB 483 +#define _gloffset_VertexAttrib4NsvARB 484 +#define _gloffset_VertexAttrib4NubARB 485 +#define _gloffset_VertexAttrib4NubvARB 486 +#define _gloffset_VertexAttrib4NuivARB 487 +#define _gloffset_VertexAttrib4NusvARB 488 +#define _gloffset_VertexAttrib4bvARB 489 +#define _gloffset_VertexAttrib4dARB 490 +#define _gloffset_VertexAttrib4dvARB 491 +#define _gloffset_VertexAttrib4fARB 492 +#define _gloffset_VertexAttrib4fvARB 493 +#define _gloffset_VertexAttrib4ivARB 494 +#define _gloffset_VertexAttrib4sARB 495 +#define _gloffset_VertexAttrib4svARB 496 +#define _gloffset_VertexAttrib4ubvARB 497 +#define _gloffset_VertexAttrib4uivARB 498 +#define _gloffset_VertexAttrib4usvARB 499 +#define _gloffset_VertexAttribPointerARB 500 +#define _gloffset_BindBufferARB 501 +#define _gloffset_BufferDataARB 502 +#define _gloffset_BufferSubDataARB 503 +#define _gloffset_DeleteBuffersARB 504 +#define _gloffset_GenBuffersARB 505 +#define _gloffset_GetBufferParameterivARB 506 +#define _gloffset_GetBufferPointervARB 507 +#define _gloffset_GetBufferSubDataARB 508 +#define _gloffset_IsBufferARB 509 +#define _gloffset_MapBufferARB 510 +#define _gloffset_UnmapBufferARB 511 +#define _gloffset_BeginQueryARB 512 +#define _gloffset_DeleteQueriesARB 513 +#define _gloffset_EndQueryARB 514 +#define _gloffset_GenQueriesARB 515 +#define _gloffset_GetQueryObjectivARB 516 +#define _gloffset_GetQueryObjectuivARB 517 +#define _gloffset_GetQueryivARB 518 +#define _gloffset_IsQueryARB 519 +#define _gloffset_AttachObjectARB 520 +#define _gloffset_CompileShaderARB 521 +#define _gloffset_CreateProgramObjectARB 522 +#define _gloffset_CreateShaderObjectARB 523 +#define _gloffset_DeleteObjectARB 524 +#define _gloffset_DetachObjectARB 525 +#define _gloffset_GetActiveUniformARB 526 +#define _gloffset_GetAttachedObjectsARB 527 +#define _gloffset_GetHandleARB 528 +#define _gloffset_GetInfoLogARB 529 +#define _gloffset_GetObjectParameterfvARB 530 +#define _gloffset_GetObjectParameterivARB 531 +#define _gloffset_GetShaderSourceARB 532 +#define _gloffset_GetUniformLocationARB 533 +#define _gloffset_GetUniformfvARB 534 +#define _gloffset_GetUniformivARB 535 +#define _gloffset_LinkProgramARB 536 +#define _gloffset_ShaderSourceARB 537 +#define _gloffset_Uniform1fARB 538 +#define _gloffset_Uniform1fvARB 539 +#define _gloffset_Uniform1iARB 540 +#define _gloffset_Uniform1ivARB 541 +#define _gloffset_Uniform2fARB 542 +#define _gloffset_Uniform2fvARB 543 +#define _gloffset_Uniform2iARB 544 +#define _gloffset_Uniform2ivARB 545 +#define _gloffset_Uniform3fARB 546 +#define _gloffset_Uniform3fvARB 547 +#define _gloffset_Uniform3iARB 548 +#define _gloffset_Uniform3ivARB 549 +#define _gloffset_Uniform4fARB 550 +#define _gloffset_Uniform4fvARB 551 +#define _gloffset_Uniform4iARB 552 +#define _gloffset_Uniform4ivARB 553 +#define _gloffset_UniformMatrix2fvARB 554 +#define _gloffset_UniformMatrix3fvARB 555 +#define _gloffset_UniformMatrix4fvARB 556 +#define _gloffset_UseProgramObjectARB 557 +#define _gloffset_ValidateProgramARB 558 +#define _gloffset_BindAttribLocationARB 559 +#define _gloffset_GetActiveAttribARB 560 +#define _gloffset_GetAttribLocationARB 561 +#define _gloffset_DrawBuffersARB 562 +#define _gloffset_RenderbufferStorageMultisample 563 +#define _gloffset_FlushMappedBufferRange 564 +#define _gloffset_MapBufferRange 565 +#define _gloffset_BindVertexArray 566 +#define _gloffset_GenVertexArrays 567 +#define _gloffset_CopyBufferSubData 568 +#define _gloffset_ClientWaitSync 569 +#define _gloffset_DeleteSync 570 +#define _gloffset_FenceSync 571 +#define _gloffset_GetInteger64v 572 +#define _gloffset_GetSynciv 573 +#define _gloffset_IsSync 574 +#define _gloffset_WaitSync 575 +#define _gloffset_DrawElementsBaseVertex 576 +#define _gloffset_DrawRangeElementsBaseVertex 577 +#define _gloffset_MultiDrawElementsBaseVertex 578 +#define _gloffset_PolygonOffsetEXT 579 +#define _gloffset_GetPixelTexGenParameterfvSGIS 580 +#define _gloffset_GetPixelTexGenParameterivSGIS 581 +#define _gloffset_PixelTexGenParameterfSGIS 582 +#define _gloffset_PixelTexGenParameterfvSGIS 583 +#define _gloffset_PixelTexGenParameteriSGIS 584 +#define _gloffset_PixelTexGenParameterivSGIS 585 +#define _gloffset_SampleMaskSGIS 586 +#define _gloffset_SamplePatternSGIS 587 +#define _gloffset_ColorPointerEXT 588 +#define _gloffset_EdgeFlagPointerEXT 589 +#define _gloffset_IndexPointerEXT 590 +#define _gloffset_NormalPointerEXT 591 +#define _gloffset_TexCoordPointerEXT 592 +#define _gloffset_VertexPointerEXT 593 +#define _gloffset_PointParameterfEXT 594 +#define _gloffset_PointParameterfvEXT 595 +#define _gloffset_LockArraysEXT 596 +#define _gloffset_UnlockArraysEXT 597 +#define _gloffset_CullParameterdvEXT 598 +#define _gloffset_CullParameterfvEXT 599 +#define _gloffset_SecondaryColor3bEXT 600 +#define _gloffset_SecondaryColor3bvEXT 601 +#define _gloffset_SecondaryColor3dEXT 602 +#define _gloffset_SecondaryColor3dvEXT 603 +#define _gloffset_SecondaryColor3fEXT 604 +#define _gloffset_SecondaryColor3fvEXT 605 +#define _gloffset_SecondaryColor3iEXT 606 +#define _gloffset_SecondaryColor3ivEXT 607 +#define _gloffset_SecondaryColor3sEXT 608 +#define _gloffset_SecondaryColor3svEXT 609 +#define _gloffset_SecondaryColor3ubEXT 610 +#define _gloffset_SecondaryColor3ubvEXT 611 +#define _gloffset_SecondaryColor3uiEXT 612 +#define _gloffset_SecondaryColor3uivEXT 613 +#define _gloffset_SecondaryColor3usEXT 614 +#define _gloffset_SecondaryColor3usvEXT 615 +#define _gloffset_SecondaryColorPointerEXT 616 +#define _gloffset_MultiDrawArraysEXT 617 +#define _gloffset_MultiDrawElementsEXT 618 +#define _gloffset_FogCoordPointerEXT 619 +#define _gloffset_FogCoorddEXT 620 +#define _gloffset_FogCoorddvEXT 621 +#define _gloffset_FogCoordfEXT 622 +#define _gloffset_FogCoordfvEXT 623 +#define _gloffset_PixelTexGenSGIX 624 +#define _gloffset_BlendFuncSeparateEXT 625 +#define _gloffset_FlushVertexArrayRangeNV 626 +#define _gloffset_VertexArrayRangeNV 627 +#define _gloffset_CombinerInputNV 628 +#define _gloffset_CombinerOutputNV 629 +#define _gloffset_CombinerParameterfNV 630 +#define _gloffset_CombinerParameterfvNV 631 +#define _gloffset_CombinerParameteriNV 632 +#define _gloffset_CombinerParameterivNV 633 +#define _gloffset_FinalCombinerInputNV 634 +#define _gloffset_GetCombinerInputParameterfvNV 635 +#define _gloffset_GetCombinerInputParameterivNV 636 +#define _gloffset_GetCombinerOutputParameterfvNV 637 +#define _gloffset_GetCombinerOutputParameterivNV 638 +#define _gloffset_GetFinalCombinerInputParameterfvNV 639 +#define _gloffset_GetFinalCombinerInputParameterivNV 640 +#define _gloffset_ResizeBuffersMESA 641 +#define _gloffset_WindowPos2dMESA 642 +#define _gloffset_WindowPos2dvMESA 643 +#define _gloffset_WindowPos2fMESA 644 +#define _gloffset_WindowPos2fvMESA 645 +#define _gloffset_WindowPos2iMESA 646 +#define _gloffset_WindowPos2ivMESA 647 +#define _gloffset_WindowPos2sMESA 648 +#define _gloffset_WindowPos2svMESA 649 +#define _gloffset_WindowPos3dMESA 650 +#define _gloffset_WindowPos3dvMESA 651 +#define _gloffset_WindowPos3fMESA 652 +#define _gloffset_WindowPos3fvMESA 653 +#define _gloffset_WindowPos3iMESA 654 +#define _gloffset_WindowPos3ivMESA 655 +#define _gloffset_WindowPos3sMESA 656 +#define _gloffset_WindowPos3svMESA 657 +#define _gloffset_WindowPos4dMESA 658 +#define _gloffset_WindowPos4dvMESA 659 +#define _gloffset_WindowPos4fMESA 660 +#define _gloffset_WindowPos4fvMESA 661 +#define _gloffset_WindowPos4iMESA 662 +#define _gloffset_WindowPos4ivMESA 663 +#define _gloffset_WindowPos4sMESA 664 +#define _gloffset_WindowPos4svMESA 665 +#define _gloffset_MultiModeDrawArraysIBM 666 +#define _gloffset_MultiModeDrawElementsIBM 667 +#define _gloffset_DeleteFencesNV 668 +#define _gloffset_FinishFenceNV 669 +#define _gloffset_GenFencesNV 670 +#define _gloffset_GetFenceivNV 671 +#define _gloffset_IsFenceNV 672 +#define _gloffset_SetFenceNV 673 +#define _gloffset_TestFenceNV 674 +#define _gloffset_AreProgramsResidentNV 675 +#define _gloffset_BindProgramNV 676 +#define _gloffset_DeleteProgramsNV 677 +#define _gloffset_ExecuteProgramNV 678 +#define _gloffset_GenProgramsNV 679 +#define _gloffset_GetProgramParameterdvNV 680 +#define _gloffset_GetProgramParameterfvNV 681 +#define _gloffset_GetProgramStringNV 682 +#define _gloffset_GetProgramivNV 683 +#define _gloffset_GetTrackMatrixivNV 684 +#define _gloffset_GetVertexAttribPointervNV 685 +#define _gloffset_GetVertexAttribdvNV 686 +#define _gloffset_GetVertexAttribfvNV 687 +#define _gloffset_GetVertexAttribivNV 688 +#define _gloffset_IsProgramNV 689 +#define _gloffset_LoadProgramNV 690 +#define _gloffset_ProgramParameters4dvNV 691 +#define _gloffset_ProgramParameters4fvNV 692 +#define _gloffset_RequestResidentProgramsNV 693 +#define _gloffset_TrackMatrixNV 694 +#define _gloffset_VertexAttrib1dNV 695 +#define _gloffset_VertexAttrib1dvNV 696 +#define _gloffset_VertexAttrib1fNV 697 +#define _gloffset_VertexAttrib1fvNV 698 +#define _gloffset_VertexAttrib1sNV 699 +#define _gloffset_VertexAttrib1svNV 700 +#define _gloffset_VertexAttrib2dNV 701 +#define _gloffset_VertexAttrib2dvNV 702 +#define _gloffset_VertexAttrib2fNV 703 +#define _gloffset_VertexAttrib2fvNV 704 +#define _gloffset_VertexAttrib2sNV 705 +#define _gloffset_VertexAttrib2svNV 706 +#define _gloffset_VertexAttrib3dNV 707 +#define _gloffset_VertexAttrib3dvNV 708 +#define _gloffset_VertexAttrib3fNV 709 +#define _gloffset_VertexAttrib3fvNV 710 +#define _gloffset_VertexAttrib3sNV 711 +#define _gloffset_VertexAttrib3svNV 712 +#define _gloffset_VertexAttrib4dNV 713 +#define _gloffset_VertexAttrib4dvNV 714 +#define _gloffset_VertexAttrib4fNV 715 +#define _gloffset_VertexAttrib4fvNV 716 +#define _gloffset_VertexAttrib4sNV 717 +#define _gloffset_VertexAttrib4svNV 718 +#define _gloffset_VertexAttrib4ubNV 719 +#define _gloffset_VertexAttrib4ubvNV 720 +#define _gloffset_VertexAttribPointerNV 721 +#define _gloffset_VertexAttribs1dvNV 722 +#define _gloffset_VertexAttribs1fvNV 723 +#define _gloffset_VertexAttribs1svNV 724 +#define _gloffset_VertexAttribs2dvNV 725 +#define _gloffset_VertexAttribs2fvNV 726 +#define _gloffset_VertexAttribs2svNV 727 +#define _gloffset_VertexAttribs3dvNV 728 +#define _gloffset_VertexAttribs3fvNV 729 +#define _gloffset_VertexAttribs3svNV 730 +#define _gloffset_VertexAttribs4dvNV 731 +#define _gloffset_VertexAttribs4fvNV 732 +#define _gloffset_VertexAttribs4svNV 733 +#define _gloffset_VertexAttribs4ubvNV 734 +#define _gloffset_GetTexBumpParameterfvATI 735 +#define _gloffset_GetTexBumpParameterivATI 736 +#define _gloffset_TexBumpParameterfvATI 737 +#define _gloffset_TexBumpParameterivATI 738 +#define _gloffset_AlphaFragmentOp1ATI 739 +#define _gloffset_AlphaFragmentOp2ATI 740 +#define _gloffset_AlphaFragmentOp3ATI 741 +#define _gloffset_BeginFragmentShaderATI 742 +#define _gloffset_BindFragmentShaderATI 743 +#define _gloffset_ColorFragmentOp1ATI 744 +#define _gloffset_ColorFragmentOp2ATI 745 +#define _gloffset_ColorFragmentOp3ATI 746 +#define _gloffset_DeleteFragmentShaderATI 747 +#define _gloffset_EndFragmentShaderATI 748 +#define _gloffset_GenFragmentShadersATI 749 +#define _gloffset_PassTexCoordATI 750 +#define _gloffset_SampleMapATI 751 +#define _gloffset_SetFragmentShaderConstantATI 752 +#define _gloffset_PointParameteriNV 753 +#define _gloffset_PointParameterivNV 754 +#define _gloffset_ActiveStencilFaceEXT 755 +#define _gloffset_BindVertexArrayAPPLE 756 +#define _gloffset_DeleteVertexArraysAPPLE 757 +#define _gloffset_GenVertexArraysAPPLE 758 +#define _gloffset_IsVertexArrayAPPLE 759 +#define _gloffset_GetProgramNamedParameterdvNV 760 +#define _gloffset_GetProgramNamedParameterfvNV 761 +#define _gloffset_ProgramNamedParameter4dNV 762 +#define _gloffset_ProgramNamedParameter4dvNV 763 +#define _gloffset_ProgramNamedParameter4fNV 764 +#define _gloffset_ProgramNamedParameter4fvNV 765 +#define _gloffset_DepthBoundsEXT 766 +#define _gloffset_BlendEquationSeparateEXT 767 +#define _gloffset_BindFramebufferEXT 768 +#define _gloffset_BindRenderbufferEXT 769 +#define _gloffset_CheckFramebufferStatusEXT 770 +#define _gloffset_DeleteFramebuffersEXT 771 +#define _gloffset_DeleteRenderbuffersEXT 772 +#define _gloffset_FramebufferRenderbufferEXT 773 +#define _gloffset_FramebufferTexture1DEXT 774 +#define _gloffset_FramebufferTexture2DEXT 775 +#define _gloffset_FramebufferTexture3DEXT 776 +#define _gloffset_GenFramebuffersEXT 777 +#define _gloffset_GenRenderbuffersEXT 778 +#define _gloffset_GenerateMipmapEXT 779 +#define _gloffset_GetFramebufferAttachmentParameterivEXT 780 +#define _gloffset_GetRenderbufferParameterivEXT 781 +#define _gloffset_IsFramebufferEXT 782 +#define _gloffset_IsRenderbufferEXT 783 +#define _gloffset_RenderbufferStorageEXT 784 +#define _gloffset_BlitFramebufferEXT 785 +#define _gloffset_BufferParameteriAPPLE 786 +#define _gloffset_FlushMappedBufferRangeAPPLE 787 +#define _gloffset_FramebufferTextureLayerEXT 788 +#define _gloffset_ColorMaskIndexedEXT 789 +#define _gloffset_DisableIndexedEXT 790 +#define _gloffset_EnableIndexedEXT 791 +#define _gloffset_GetBooleanIndexedvEXT 792 +#define _gloffset_GetIntegerIndexedvEXT 793 +#define _gloffset_IsEnabledIndexedEXT 794 +#define _gloffset_BeginConditionalRenderNV 795 +#define _gloffset_EndConditionalRenderNV 796 +#define _gloffset_BeginTransformFeedbackEXT 797 +#define _gloffset_BindBufferBaseEXT 798 +#define _gloffset_BindBufferOffsetEXT 799 +#define _gloffset_BindBufferRangeEXT 800 +#define _gloffset_EndTransformFeedbackEXT 801 +#define _gloffset_GetTransformFeedbackVaryingEXT 802 +#define _gloffset_TransformFeedbackVaryingsEXT 803 +#define _gloffset_ProvokingVertexEXT 804 +#define _gloffset_GetTexParameterPointervAPPLE 805 +#define _gloffset_TextureRangeAPPLE 806 +#define _gloffset_GetObjectParameterivAPPLE 807 +#define _gloffset_ObjectPurgeableAPPLE 808 +#define _gloffset_ObjectUnpurgeableAPPLE 809 +#define _gloffset_StencilFuncSeparateATI 810 +#define _gloffset_ProgramEnvParameters4fvEXT 811 +#define _gloffset_ProgramLocalParameters4fvEXT 812 +#define _gloffset_GetQueryObjecti64vEXT 813 +#define _gloffset_GetQueryObjectui64vEXT 814 +#define _gloffset_EGLImageTargetRenderbufferStorageOES 815 +#define _gloffset_EGLImageTargetTexture2DOES 816 +#define _gloffset_FIRST_DYNAMIC 817 #else @@ -875,6 +877,8 @@ #define _gloffset_UniformMatrix3x4fv driDispatchRemapTable[UniformMatrix3x4fv_remap_index] #define _gloffset_UniformMatrix4x2fv driDispatchRemapTable[UniformMatrix4x2fv_remap_index] #define _gloffset_UniformMatrix4x3fv driDispatchRemapTable[UniformMatrix4x3fv_remap_index] +#define _gloffset_DrawArraysInstanced driDispatchRemapTable[DrawArraysInstanced_remap_index] +#define _gloffset_DrawElementsInstanced driDispatchRemapTable[DrawElementsInstanced_remap_index] #define _gloffset_LoadTransposeMatrixdARB driDispatchRemapTable[LoadTransposeMatrixdARB_remap_index] #define _gloffset_LoadTransposeMatrixfARB driDispatchRemapTable[LoadTransposeMatrixfARB_remap_index] #define _gloffset_MultTransposeMatrixdARB driDispatchRemapTable[MultTransposeMatrixdARB_remap_index] diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 317c64de00..faf274f270 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -470,391 +470,393 @@ struct _glapi_table void (GLAPIENTRYP UniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 427 */ void (GLAPIENTRYP UniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 428 */ void (GLAPIENTRYP UniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 429 */ - void (GLAPIENTRYP LoadTransposeMatrixdARB)(const GLdouble * m); /* 430 */ - void (GLAPIENTRYP LoadTransposeMatrixfARB)(const GLfloat * m); /* 431 */ - void (GLAPIENTRYP MultTransposeMatrixdARB)(const GLdouble * m); /* 432 */ - void (GLAPIENTRYP MultTransposeMatrixfARB)(const GLfloat * m); /* 433 */ - void (GLAPIENTRYP SampleCoverageARB)(GLclampf value, GLboolean invert); /* 434 */ - void (GLAPIENTRYP CompressedTexImage1DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data); /* 435 */ - void (GLAPIENTRYP CompressedTexImage2DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); /* 436 */ - void (GLAPIENTRYP CompressedTexImage3DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); /* 437 */ - void (GLAPIENTRYP CompressedTexSubImage1DARB)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); /* 438 */ - void (GLAPIENTRYP CompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); /* 439 */ - void (GLAPIENTRYP CompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); /* 440 */ - void (GLAPIENTRYP GetCompressedTexImageARB)(GLenum target, GLint level, GLvoid * img); /* 441 */ - void (GLAPIENTRYP DisableVertexAttribArrayARB)(GLuint index); /* 442 */ - void (GLAPIENTRYP EnableVertexAttribArrayARB)(GLuint index); /* 443 */ - void (GLAPIENTRYP GetProgramEnvParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 444 */ - void (GLAPIENTRYP GetProgramEnvParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 445 */ - void (GLAPIENTRYP GetProgramLocalParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 446 */ - void (GLAPIENTRYP GetProgramLocalParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 447 */ - void (GLAPIENTRYP GetProgramStringARB)(GLenum target, GLenum pname, GLvoid * string); /* 448 */ - void (GLAPIENTRYP GetProgramivARB)(GLenum target, GLenum pname, GLint * params); /* 449 */ - void (GLAPIENTRYP GetVertexAttribdvARB)(GLuint index, GLenum pname, GLdouble * params); /* 450 */ - void (GLAPIENTRYP GetVertexAttribfvARB)(GLuint index, GLenum pname, GLfloat * params); /* 451 */ - void (GLAPIENTRYP GetVertexAttribivARB)(GLuint index, GLenum pname, GLint * params); /* 452 */ - void (GLAPIENTRYP ProgramEnvParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 453 */ - void (GLAPIENTRYP ProgramEnvParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 454 */ - void (GLAPIENTRYP ProgramEnvParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 455 */ - void (GLAPIENTRYP ProgramEnvParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 456 */ - void (GLAPIENTRYP ProgramLocalParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 457 */ - void (GLAPIENTRYP ProgramLocalParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 458 */ - void (GLAPIENTRYP ProgramLocalParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 459 */ - void (GLAPIENTRYP ProgramLocalParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 460 */ - void (GLAPIENTRYP ProgramStringARB)(GLenum target, GLenum format, GLsizei len, const GLvoid * string); /* 461 */ - void (GLAPIENTRYP VertexAttrib1dARB)(GLuint index, GLdouble x); /* 462 */ - void (GLAPIENTRYP VertexAttrib1dvARB)(GLuint index, const GLdouble * v); /* 463 */ - void (GLAPIENTRYP VertexAttrib1fARB)(GLuint index, GLfloat x); /* 464 */ - void (GLAPIENTRYP VertexAttrib1fvARB)(GLuint index, const GLfloat * v); /* 465 */ - void (GLAPIENTRYP VertexAttrib1sARB)(GLuint index, GLshort x); /* 466 */ - void (GLAPIENTRYP VertexAttrib1svARB)(GLuint index, const GLshort * v); /* 467 */ - void (GLAPIENTRYP VertexAttrib2dARB)(GLuint index, GLdouble x, GLdouble y); /* 468 */ - void (GLAPIENTRYP VertexAttrib2dvARB)(GLuint index, const GLdouble * v); /* 469 */ - void (GLAPIENTRYP VertexAttrib2fARB)(GLuint index, GLfloat x, GLfloat y); /* 470 */ - void (GLAPIENTRYP VertexAttrib2fvARB)(GLuint index, const GLfloat * v); /* 471 */ - void (GLAPIENTRYP VertexAttrib2sARB)(GLuint index, GLshort x, GLshort y); /* 472 */ - void (GLAPIENTRYP VertexAttrib2svARB)(GLuint index, const GLshort * v); /* 473 */ - void (GLAPIENTRYP VertexAttrib3dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 474 */ - void (GLAPIENTRYP VertexAttrib3dvARB)(GLuint index, const GLdouble * v); /* 475 */ - void (GLAPIENTRYP VertexAttrib3fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 476 */ - void (GLAPIENTRYP VertexAttrib3fvARB)(GLuint index, const GLfloat * v); /* 477 */ - void (GLAPIENTRYP VertexAttrib3sARB)(GLuint index, GLshort x, GLshort y, GLshort z); /* 478 */ - void (GLAPIENTRYP VertexAttrib3svARB)(GLuint index, const GLshort * v); /* 479 */ - void (GLAPIENTRYP VertexAttrib4NbvARB)(GLuint index, const GLbyte * v); /* 480 */ - void (GLAPIENTRYP VertexAttrib4NivARB)(GLuint index, const GLint * v); /* 481 */ - void (GLAPIENTRYP VertexAttrib4NsvARB)(GLuint index, const GLshort * v); /* 482 */ - void (GLAPIENTRYP VertexAttrib4NubARB)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 483 */ - void (GLAPIENTRYP VertexAttrib4NubvARB)(GLuint index, const GLubyte * v); /* 484 */ - void (GLAPIENTRYP VertexAttrib4NuivARB)(GLuint index, const GLuint * v); /* 485 */ - void (GLAPIENTRYP VertexAttrib4NusvARB)(GLuint index, const GLushort * v); /* 486 */ - void (GLAPIENTRYP VertexAttrib4bvARB)(GLuint index, const GLbyte * v); /* 487 */ - void (GLAPIENTRYP VertexAttrib4dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 488 */ - void (GLAPIENTRYP VertexAttrib4dvARB)(GLuint index, const GLdouble * v); /* 489 */ - void (GLAPIENTRYP VertexAttrib4fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 490 */ - void (GLAPIENTRYP VertexAttrib4fvARB)(GLuint index, const GLfloat * v); /* 491 */ - void (GLAPIENTRYP VertexAttrib4ivARB)(GLuint index, const GLint * v); /* 492 */ - void (GLAPIENTRYP VertexAttrib4sARB)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 493 */ - void (GLAPIENTRYP VertexAttrib4svARB)(GLuint index, const GLshort * v); /* 494 */ - void (GLAPIENTRYP VertexAttrib4ubvARB)(GLuint index, const GLubyte * v); /* 495 */ - void (GLAPIENTRYP VertexAttrib4uivARB)(GLuint index, const GLuint * v); /* 496 */ - void (GLAPIENTRYP VertexAttrib4usvARB)(GLuint index, const GLushort * v); /* 497 */ - void (GLAPIENTRYP VertexAttribPointerARB)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); /* 498 */ - void (GLAPIENTRYP BindBufferARB)(GLenum target, GLuint buffer); /* 499 */ - void (GLAPIENTRYP BufferDataARB)(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); /* 500 */ - void (GLAPIENTRYP BufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); /* 501 */ - void (GLAPIENTRYP DeleteBuffersARB)(GLsizei n, const GLuint * buffer); /* 502 */ - void (GLAPIENTRYP GenBuffersARB)(GLsizei n, GLuint * buffer); /* 503 */ - void (GLAPIENTRYP GetBufferParameterivARB)(GLenum target, GLenum pname, GLint * params); /* 504 */ - void (GLAPIENTRYP GetBufferPointervARB)(GLenum target, GLenum pname, GLvoid ** params); /* 505 */ - void (GLAPIENTRYP GetBufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); /* 506 */ - GLboolean (GLAPIENTRYP IsBufferARB)(GLuint buffer); /* 507 */ - GLvoid * (GLAPIENTRYP MapBufferARB)(GLenum target, GLenum access); /* 508 */ - GLboolean (GLAPIENTRYP UnmapBufferARB)(GLenum target); /* 509 */ - void (GLAPIENTRYP BeginQueryARB)(GLenum target, GLuint id); /* 510 */ - void (GLAPIENTRYP DeleteQueriesARB)(GLsizei n, const GLuint * ids); /* 511 */ - void (GLAPIENTRYP EndQueryARB)(GLenum target); /* 512 */ - void (GLAPIENTRYP GenQueriesARB)(GLsizei n, GLuint * ids); /* 513 */ - void (GLAPIENTRYP GetQueryObjectivARB)(GLuint id, GLenum pname, GLint * params); /* 514 */ - void (GLAPIENTRYP GetQueryObjectuivARB)(GLuint id, GLenum pname, GLuint * params); /* 515 */ - void (GLAPIENTRYP GetQueryivARB)(GLenum target, GLenum pname, GLint * params); /* 516 */ - GLboolean (GLAPIENTRYP IsQueryARB)(GLuint id); /* 517 */ - void (GLAPIENTRYP AttachObjectARB)(GLhandleARB containerObj, GLhandleARB obj); /* 518 */ - void (GLAPIENTRYP CompileShaderARB)(GLhandleARB shader); /* 519 */ - GLhandleARB (GLAPIENTRYP CreateProgramObjectARB)(void); /* 520 */ - GLhandleARB (GLAPIENTRYP CreateShaderObjectARB)(GLenum shaderType); /* 521 */ - void (GLAPIENTRYP DeleteObjectARB)(GLhandleARB obj); /* 522 */ - void (GLAPIENTRYP DetachObjectARB)(GLhandleARB containerObj, GLhandleARB attachedObj); /* 523 */ - void (GLAPIENTRYP GetActiveUniformARB)(GLhandleARB program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); /* 524 */ - void (GLAPIENTRYP GetAttachedObjectsARB)(GLhandleARB containerObj, GLsizei maxLength, GLsizei * length, GLhandleARB * infoLog); /* 525 */ - GLhandleARB (GLAPIENTRYP GetHandleARB)(GLenum pname); /* 526 */ - void (GLAPIENTRYP GetInfoLogARB)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog); /* 527 */ - void (GLAPIENTRYP GetObjectParameterfvARB)(GLhandleARB obj, GLenum pname, GLfloat * params); /* 528 */ - void (GLAPIENTRYP GetObjectParameterivARB)(GLhandleARB obj, GLenum pname, GLint * params); /* 529 */ - void (GLAPIENTRYP GetShaderSourceARB)(GLhandleARB shader, GLsizei bufSize, GLsizei * length, GLcharARB * source); /* 530 */ - GLint (GLAPIENTRYP GetUniformLocationARB)(GLhandleARB program, const GLcharARB * name); /* 531 */ - void (GLAPIENTRYP GetUniformfvARB)(GLhandleARB program, GLint location, GLfloat * params); /* 532 */ - void (GLAPIENTRYP GetUniformivARB)(GLhandleARB program, GLint location, GLint * params); /* 533 */ - void (GLAPIENTRYP LinkProgramARB)(GLhandleARB program); /* 534 */ - void (GLAPIENTRYP ShaderSourceARB)(GLhandleARB shader, GLsizei count, const GLcharARB ** string, const GLint * length); /* 535 */ - void (GLAPIENTRYP Uniform1fARB)(GLint location, GLfloat v0); /* 536 */ - void (GLAPIENTRYP Uniform1fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 537 */ - void (GLAPIENTRYP Uniform1iARB)(GLint location, GLint v0); /* 538 */ - void (GLAPIENTRYP Uniform1ivARB)(GLint location, GLsizei count, const GLint * value); /* 539 */ - void (GLAPIENTRYP Uniform2fARB)(GLint location, GLfloat v0, GLfloat v1); /* 540 */ - void (GLAPIENTRYP Uniform2fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 541 */ - void (GLAPIENTRYP Uniform2iARB)(GLint location, GLint v0, GLint v1); /* 542 */ - void (GLAPIENTRYP Uniform2ivARB)(GLint location, GLsizei count, const GLint * value); /* 543 */ - void (GLAPIENTRYP Uniform3fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); /* 544 */ - void (GLAPIENTRYP Uniform3fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 545 */ - void (GLAPIENTRYP Uniform3iARB)(GLint location, GLint v0, GLint v1, GLint v2); /* 546 */ - void (GLAPIENTRYP Uniform3ivARB)(GLint location, GLsizei count, const GLint * value); /* 547 */ - void (GLAPIENTRYP Uniform4fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); /* 548 */ - void (GLAPIENTRYP Uniform4fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 549 */ - void (GLAPIENTRYP Uniform4iARB)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); /* 550 */ - void (GLAPIENTRYP Uniform4ivARB)(GLint location, GLsizei count, const GLint * value); /* 551 */ - void (GLAPIENTRYP UniformMatrix2fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 552 */ - void (GLAPIENTRYP UniformMatrix3fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 553 */ - void (GLAPIENTRYP UniformMatrix4fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 554 */ - void (GLAPIENTRYP UseProgramObjectARB)(GLhandleARB program); /* 555 */ - void (GLAPIENTRYP ValidateProgramARB)(GLhandleARB program); /* 556 */ - void (GLAPIENTRYP BindAttribLocationARB)(GLhandleARB program, GLuint index, const GLcharARB * name); /* 557 */ - void (GLAPIENTRYP GetActiveAttribARB)(GLhandleARB program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); /* 558 */ - GLint (GLAPIENTRYP GetAttribLocationARB)(GLhandleARB program, const GLcharARB * name); /* 559 */ - void (GLAPIENTRYP DrawBuffersARB)(GLsizei n, const GLenum * bufs); /* 560 */ - void (GLAPIENTRYP RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); /* 561 */ - void (GLAPIENTRYP FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length); /* 562 */ - GLvoid * (GLAPIENTRYP MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); /* 563 */ - void (GLAPIENTRYP BindVertexArray)(GLuint array); /* 564 */ - void (GLAPIENTRYP GenVertexArrays)(GLsizei n, GLuint * arrays); /* 565 */ - void (GLAPIENTRYP CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); /* 566 */ - GLenum (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 567 */ - void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 568 */ - GLsync (GLAPIENTRYP FenceSync)(GLenum condition, GLbitfield flags); /* 569 */ - void (GLAPIENTRYP GetInteger64v)(GLenum pname, GLint64 * params); /* 570 */ - void (GLAPIENTRYP GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); /* 571 */ - GLboolean (GLAPIENTRYP IsSync)(GLsync sync); /* 572 */ - void (GLAPIENTRYP WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 573 */ - void (GLAPIENTRYP DrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 574 */ - void (GLAPIENTRYP DrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 575 */ - void (GLAPIENTRYP MultiDrawElementsBaseVertex)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount, const GLint * basevertex); /* 576 */ - void (GLAPIENTRYP PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 577 */ - void (GLAPIENTRYP GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 578 */ - void (GLAPIENTRYP GetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params); /* 579 */ - void (GLAPIENTRYP PixelTexGenParameterfSGIS)(GLenum pname, GLfloat param); /* 580 */ - void (GLAPIENTRYP PixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params); /* 581 */ - void (GLAPIENTRYP PixelTexGenParameteriSGIS)(GLenum pname, GLint param); /* 582 */ - void (GLAPIENTRYP PixelTexGenParameterivSGIS)(GLenum pname, const GLint * params); /* 583 */ - void (GLAPIENTRYP SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 584 */ - void (GLAPIENTRYP SamplePatternSGIS)(GLenum pattern); /* 585 */ - void (GLAPIENTRYP ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 586 */ - void (GLAPIENTRYP EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 587 */ - void (GLAPIENTRYP IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 588 */ - void (GLAPIENTRYP NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 589 */ - void (GLAPIENTRYP TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 590 */ - void (GLAPIENTRYP VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 591 */ - void (GLAPIENTRYP PointParameterfEXT)(GLenum pname, GLfloat param); /* 592 */ - void (GLAPIENTRYP PointParameterfvEXT)(GLenum pname, const GLfloat * params); /* 593 */ - void (GLAPIENTRYP LockArraysEXT)(GLint first, GLsizei count); /* 594 */ - void (GLAPIENTRYP UnlockArraysEXT)(void); /* 595 */ - void (GLAPIENTRYP CullParameterdvEXT)(GLenum pname, GLdouble * params); /* 596 */ - void (GLAPIENTRYP CullParameterfvEXT)(GLenum pname, GLfloat * params); /* 597 */ - void (GLAPIENTRYP SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 598 */ - void (GLAPIENTRYP SecondaryColor3bvEXT)(const GLbyte * v); /* 599 */ - void (GLAPIENTRYP SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 600 */ - void (GLAPIENTRYP SecondaryColor3dvEXT)(const GLdouble * v); /* 601 */ - void (GLAPIENTRYP SecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue); /* 602 */ - void (GLAPIENTRYP SecondaryColor3fvEXT)(const GLfloat * v); /* 603 */ - void (GLAPIENTRYP SecondaryColor3iEXT)(GLint red, GLint green, GLint blue); /* 604 */ - void (GLAPIENTRYP SecondaryColor3ivEXT)(const GLint * v); /* 605 */ - void (GLAPIENTRYP SecondaryColor3sEXT)(GLshort red, GLshort green, GLshort blue); /* 606 */ - void (GLAPIENTRYP SecondaryColor3svEXT)(const GLshort * v); /* 607 */ - void (GLAPIENTRYP SecondaryColor3ubEXT)(GLubyte red, GLubyte green, GLubyte blue); /* 608 */ - void (GLAPIENTRYP SecondaryColor3ubvEXT)(const GLubyte * v); /* 609 */ - void (GLAPIENTRYP SecondaryColor3uiEXT)(GLuint red, GLuint green, GLuint blue); /* 610 */ - void (GLAPIENTRYP SecondaryColor3uivEXT)(const GLuint * v); /* 611 */ - void (GLAPIENTRYP SecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue); /* 612 */ - void (GLAPIENTRYP SecondaryColor3usvEXT)(const GLushort * v); /* 613 */ - void (GLAPIENTRYP SecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 614 */ - void (GLAPIENTRYP MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 615 */ - void (GLAPIENTRYP MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 616 */ - void (GLAPIENTRYP FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 617 */ - void (GLAPIENTRYP FogCoorddEXT)(GLdouble coord); /* 618 */ - void (GLAPIENTRYP FogCoorddvEXT)(const GLdouble * coord); /* 619 */ - void (GLAPIENTRYP FogCoordfEXT)(GLfloat coord); /* 620 */ - void (GLAPIENTRYP FogCoordfvEXT)(const GLfloat * coord); /* 621 */ - void (GLAPIENTRYP PixelTexGenSGIX)(GLenum mode); /* 622 */ - void (GLAPIENTRYP BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 623 */ - void (GLAPIENTRYP FlushVertexArrayRangeNV)(void); /* 624 */ - void (GLAPIENTRYP VertexArrayRangeNV)(GLsizei length, const GLvoid * pointer); /* 625 */ - void (GLAPIENTRYP CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 626 */ - void (GLAPIENTRYP CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); /* 627 */ - void (GLAPIENTRYP CombinerParameterfNV)(GLenum pname, GLfloat param); /* 628 */ - void (GLAPIENTRYP CombinerParameterfvNV)(GLenum pname, const GLfloat * params); /* 629 */ - void (GLAPIENTRYP CombinerParameteriNV)(GLenum pname, GLint param); /* 630 */ - void (GLAPIENTRYP CombinerParameterivNV)(GLenum pname, const GLint * params); /* 631 */ - void (GLAPIENTRYP FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 632 */ - void (GLAPIENTRYP GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); /* 633 */ - void (GLAPIENTRYP GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); /* 634 */ - void (GLAPIENTRYP GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); /* 635 */ - void (GLAPIENTRYP GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params); /* 636 */ - void (GLAPIENTRYP GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params); /* 637 */ - void (GLAPIENTRYP GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params); /* 638 */ - void (GLAPIENTRYP ResizeBuffersMESA)(void); /* 639 */ - void (GLAPIENTRYP WindowPos2dMESA)(GLdouble x, GLdouble y); /* 640 */ - void (GLAPIENTRYP WindowPos2dvMESA)(const GLdouble * v); /* 641 */ - void (GLAPIENTRYP WindowPos2fMESA)(GLfloat x, GLfloat y); /* 642 */ - void (GLAPIENTRYP WindowPos2fvMESA)(const GLfloat * v); /* 643 */ - void (GLAPIENTRYP WindowPos2iMESA)(GLint x, GLint y); /* 644 */ - void (GLAPIENTRYP WindowPos2ivMESA)(const GLint * v); /* 645 */ - void (GLAPIENTRYP WindowPos2sMESA)(GLshort x, GLshort y); /* 646 */ - void (GLAPIENTRYP WindowPos2svMESA)(const GLshort * v); /* 647 */ - void (GLAPIENTRYP WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z); /* 648 */ - void (GLAPIENTRYP WindowPos3dvMESA)(const GLdouble * v); /* 649 */ - void (GLAPIENTRYP WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z); /* 650 */ - void (GLAPIENTRYP WindowPos3fvMESA)(const GLfloat * v); /* 651 */ - void (GLAPIENTRYP WindowPos3iMESA)(GLint x, GLint y, GLint z); /* 652 */ - void (GLAPIENTRYP WindowPos3ivMESA)(const GLint * v); /* 653 */ - void (GLAPIENTRYP WindowPos3sMESA)(GLshort x, GLshort y, GLshort z); /* 654 */ - void (GLAPIENTRYP WindowPos3svMESA)(const GLshort * v); /* 655 */ - void (GLAPIENTRYP WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 656 */ - void (GLAPIENTRYP WindowPos4dvMESA)(const GLdouble * v); /* 657 */ - void (GLAPIENTRYP WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 658 */ - void (GLAPIENTRYP WindowPos4fvMESA)(const GLfloat * v); /* 659 */ - void (GLAPIENTRYP WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 660 */ - void (GLAPIENTRYP WindowPos4ivMESA)(const GLint * v); /* 661 */ - void (GLAPIENTRYP WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 662 */ - void (GLAPIENTRYP WindowPos4svMESA)(const GLshort * v); /* 663 */ - void (GLAPIENTRYP MultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); /* 664 */ - void (GLAPIENTRYP MultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); /* 665 */ - void (GLAPIENTRYP DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 666 */ - void (GLAPIENTRYP FinishFenceNV)(GLuint fence); /* 667 */ - void (GLAPIENTRYP GenFencesNV)(GLsizei n, GLuint * fences); /* 668 */ - void (GLAPIENTRYP GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 669 */ - GLboolean (GLAPIENTRYP IsFenceNV)(GLuint fence); /* 670 */ - void (GLAPIENTRYP SetFenceNV)(GLuint fence, GLenum condition); /* 671 */ - GLboolean (GLAPIENTRYP TestFenceNV)(GLuint fence); /* 672 */ - GLboolean (GLAPIENTRYP AreProgramsResidentNV)(GLsizei n, const GLuint * ids, GLboolean * residences); /* 673 */ - void (GLAPIENTRYP BindProgramNV)(GLenum target, GLuint program); /* 674 */ - void (GLAPIENTRYP DeleteProgramsNV)(GLsizei n, const GLuint * programs); /* 675 */ - void (GLAPIENTRYP ExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params); /* 676 */ - void (GLAPIENTRYP GenProgramsNV)(GLsizei n, GLuint * programs); /* 677 */ - void (GLAPIENTRYP GetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params); /* 678 */ - void (GLAPIENTRYP GetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params); /* 679 */ - void (GLAPIENTRYP GetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program); /* 680 */ - void (GLAPIENTRYP GetProgramivNV)(GLuint id, GLenum pname, GLint * params); /* 681 */ - void (GLAPIENTRYP GetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params); /* 682 */ - void (GLAPIENTRYP GetVertexAttribPointervNV)(GLuint index, GLenum pname, GLvoid ** pointer); /* 683 */ - void (GLAPIENTRYP GetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params); /* 684 */ - void (GLAPIENTRYP GetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params); /* 685 */ - void (GLAPIENTRYP GetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params); /* 686 */ - GLboolean (GLAPIENTRYP IsProgramNV)(GLuint program); /* 687 */ - void (GLAPIENTRYP LoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); /* 688 */ - void (GLAPIENTRYP ProgramParameters4dvNV)(GLenum target, GLuint index, GLuint num, const GLdouble * params); /* 689 */ - void (GLAPIENTRYP ProgramParameters4fvNV)(GLenum target, GLuint index, GLuint num, const GLfloat * params); /* 690 */ - void (GLAPIENTRYP RequestResidentProgramsNV)(GLsizei n, const GLuint * ids); /* 691 */ - void (GLAPIENTRYP TrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform); /* 692 */ - void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); /* 693 */ - void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble * v); /* 694 */ - void (GLAPIENTRYP VertexAttrib1fNV)(GLuint index, GLfloat x); /* 695 */ - void (GLAPIENTRYP VertexAttrib1fvNV)(GLuint index, const GLfloat * v); /* 696 */ - void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); /* 697 */ - void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort * v); /* 698 */ - void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); /* 699 */ - void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble * v); /* 700 */ - void (GLAPIENTRYP VertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y); /* 701 */ - void (GLAPIENTRYP VertexAttrib2fvNV)(GLuint index, const GLfloat * v); /* 702 */ - void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); /* 703 */ - void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort * v); /* 704 */ - void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 705 */ - void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble * v); /* 706 */ - void (GLAPIENTRYP VertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 707 */ - void (GLAPIENTRYP VertexAttrib3fvNV)(GLuint index, const GLfloat * v); /* 708 */ - void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); /* 709 */ - void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort * v); /* 710 */ - void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 711 */ - void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble * v); /* 712 */ - void (GLAPIENTRYP VertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 713 */ - void (GLAPIENTRYP VertexAttrib4fvNV)(GLuint index, const GLfloat * v); /* 714 */ - void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 715 */ - void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort * v); /* 716 */ - void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 717 */ - void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte * v); /* 718 */ - void (GLAPIENTRYP VertexAttribPointerNV)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 719 */ - void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 720 */ - void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 721 */ - void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort * v); /* 722 */ - void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 723 */ - void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 724 */ - void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort * v); /* 725 */ - void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 726 */ - void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 727 */ - void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort * v); /* 728 */ - void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 729 */ - void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 730 */ - void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort * v); /* 731 */ - void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte * v); /* 732 */ - void (GLAPIENTRYP GetTexBumpParameterfvATI)(GLenum pname, GLfloat * param); /* 733 */ - void (GLAPIENTRYP GetTexBumpParameterivATI)(GLenum pname, GLint * param); /* 734 */ - void (GLAPIENTRYP TexBumpParameterfvATI)(GLenum pname, const GLfloat * param); /* 735 */ - void (GLAPIENTRYP TexBumpParameterivATI)(GLenum pname, const GLint * param); /* 736 */ - void (GLAPIENTRYP AlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 737 */ - void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 738 */ - void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 739 */ - void (GLAPIENTRYP BeginFragmentShaderATI)(void); /* 740 */ - void (GLAPIENTRYP BindFragmentShaderATI)(GLuint id); /* 741 */ - void (GLAPIENTRYP ColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 742 */ - void (GLAPIENTRYP ColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 743 */ - void (GLAPIENTRYP ColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 744 */ - void (GLAPIENTRYP DeleteFragmentShaderATI)(GLuint id); /* 745 */ - void (GLAPIENTRYP EndFragmentShaderATI)(void); /* 746 */ - GLuint (GLAPIENTRYP GenFragmentShadersATI)(GLuint range); /* 747 */ - void (GLAPIENTRYP PassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle); /* 748 */ - void (GLAPIENTRYP SampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle); /* 749 */ - void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 750 */ - void (GLAPIENTRYP PointParameteriNV)(GLenum pname, GLint param); /* 751 */ - void (GLAPIENTRYP PointParameterivNV)(GLenum pname, const GLint * params); /* 752 */ - void (GLAPIENTRYP ActiveStencilFaceEXT)(GLenum face); /* 753 */ - void (GLAPIENTRYP BindVertexArrayAPPLE)(GLuint array); /* 754 */ - void (GLAPIENTRYP DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays); /* 755 */ - void (GLAPIENTRYP GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays); /* 756 */ - GLboolean (GLAPIENTRYP IsVertexArrayAPPLE)(GLuint array); /* 757 */ - void (GLAPIENTRYP GetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); /* 758 */ - void (GLAPIENTRYP GetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); /* 759 */ - void (GLAPIENTRYP ProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 760 */ - void (GLAPIENTRYP ProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); /* 761 */ - void (GLAPIENTRYP ProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 762 */ - void (GLAPIENTRYP ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); /* 763 */ - void (GLAPIENTRYP DepthBoundsEXT)(GLclampd zmin, GLclampd zmax); /* 764 */ - void (GLAPIENTRYP BlendEquationSeparateEXT)(GLenum modeRGB, GLenum modeA); /* 765 */ - void (GLAPIENTRYP BindFramebufferEXT)(GLenum target, GLuint framebuffer); /* 766 */ - void (GLAPIENTRYP BindRenderbufferEXT)(GLenum target, GLuint renderbuffer); /* 767 */ - GLenum (GLAPIENTRYP CheckFramebufferStatusEXT)(GLenum target); /* 768 */ - void (GLAPIENTRYP DeleteFramebuffersEXT)(GLsizei n, const GLuint * framebuffers); /* 769 */ - void (GLAPIENTRYP DeleteRenderbuffersEXT)(GLsizei n, const GLuint * renderbuffers); /* 770 */ - void (GLAPIENTRYP FramebufferRenderbufferEXT)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); /* 771 */ - void (GLAPIENTRYP FramebufferTexture1DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 772 */ - void (GLAPIENTRYP FramebufferTexture2DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 773 */ - void (GLAPIENTRYP FramebufferTexture3DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); /* 774 */ - void (GLAPIENTRYP GenFramebuffersEXT)(GLsizei n, GLuint * framebuffers); /* 775 */ - void (GLAPIENTRYP GenRenderbuffersEXT)(GLsizei n, GLuint * renderbuffers); /* 776 */ - void (GLAPIENTRYP GenerateMipmapEXT)(GLenum target); /* 777 */ - void (GLAPIENTRYP GetFramebufferAttachmentParameterivEXT)(GLenum target, GLenum attachment, GLenum pname, GLint * params); /* 778 */ - void (GLAPIENTRYP GetRenderbufferParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 779 */ - GLboolean (GLAPIENTRYP IsFramebufferEXT)(GLuint framebuffer); /* 780 */ - GLboolean (GLAPIENTRYP IsRenderbufferEXT)(GLuint renderbuffer); /* 781 */ - void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 782 */ - void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 783 */ - void (GLAPIENTRYP BufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param); /* 784 */ - void (GLAPIENTRYP FlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size); /* 785 */ - void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 786 */ - void (GLAPIENTRYP ColorMaskIndexedEXT)(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); /* 787 */ - void (GLAPIENTRYP DisableIndexedEXT)(GLenum target, GLuint index); /* 788 */ - void (GLAPIENTRYP EnableIndexedEXT)(GLenum target, GLuint index); /* 789 */ - void (GLAPIENTRYP GetBooleanIndexedvEXT)(GLenum value, GLuint index, GLboolean * data); /* 790 */ - void (GLAPIENTRYP GetIntegerIndexedvEXT)(GLenum value, GLuint index, GLint * data); /* 791 */ - GLboolean (GLAPIENTRYP IsEnabledIndexedEXT)(GLenum target, GLuint index); /* 792 */ - void (GLAPIENTRYP BeginConditionalRenderNV)(GLuint query, GLenum mode); /* 793 */ - void (GLAPIENTRYP EndConditionalRenderNV)(void); /* 794 */ - void (GLAPIENTRYP BeginTransformFeedbackEXT)(GLenum mode); /* 795 */ - void (GLAPIENTRYP BindBufferBaseEXT)(GLenum target, GLuint index, GLuint buffer); /* 796 */ - void (GLAPIENTRYP BindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); /* 797 */ - void (GLAPIENTRYP BindBufferRangeEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); /* 798 */ - void (GLAPIENTRYP EndTransformFeedbackEXT)(void); /* 799 */ - void (GLAPIENTRYP GetTransformFeedbackVaryingEXT)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); /* 800 */ - void (GLAPIENTRYP TransformFeedbackVaryingsEXT)(GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); /* 801 */ - void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 802 */ - void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 803 */ - void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 804 */ - void (GLAPIENTRYP GetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * value); /* 805 */ - GLenum (GLAPIENTRYP ObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 806 */ - GLenum (GLAPIENTRYP ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 807 */ - void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 808 */ - void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 809 */ - void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 810 */ - void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 811 */ - void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 812 */ - void (GLAPIENTRYP EGLImageTargetRenderbufferStorageOES)(GLenum target, GLvoid * writeOffset); /* 813 */ - void (GLAPIENTRYP EGLImageTargetTexture2DOES)(GLenum target, GLvoid * writeOffset); /* 814 */ + void (GLAPIENTRYP DrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); /* 430 */ + void (GLAPIENTRYP DrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount); /* 431 */ + void (GLAPIENTRYP LoadTransposeMatrixdARB)(const GLdouble * m); /* 432 */ + void (GLAPIENTRYP LoadTransposeMatrixfARB)(const GLfloat * m); /* 433 */ + void (GLAPIENTRYP MultTransposeMatrixdARB)(const GLdouble * m); /* 434 */ + void (GLAPIENTRYP MultTransposeMatrixfARB)(const GLfloat * m); /* 435 */ + void (GLAPIENTRYP SampleCoverageARB)(GLclampf value, GLboolean invert); /* 436 */ + void (GLAPIENTRYP CompressedTexImage1DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data); /* 437 */ + void (GLAPIENTRYP CompressedTexImage2DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); /* 438 */ + void (GLAPIENTRYP CompressedTexImage3DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); /* 439 */ + void (GLAPIENTRYP CompressedTexSubImage1DARB)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); /* 440 */ + void (GLAPIENTRYP CompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); /* 441 */ + void (GLAPIENTRYP CompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); /* 442 */ + void (GLAPIENTRYP GetCompressedTexImageARB)(GLenum target, GLint level, GLvoid * img); /* 443 */ + void (GLAPIENTRYP DisableVertexAttribArrayARB)(GLuint index); /* 444 */ + void (GLAPIENTRYP EnableVertexAttribArrayARB)(GLuint index); /* 445 */ + void (GLAPIENTRYP GetProgramEnvParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 446 */ + void (GLAPIENTRYP GetProgramEnvParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 447 */ + void (GLAPIENTRYP GetProgramLocalParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 448 */ + void (GLAPIENTRYP GetProgramLocalParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 449 */ + void (GLAPIENTRYP GetProgramStringARB)(GLenum target, GLenum pname, GLvoid * string); /* 450 */ + void (GLAPIENTRYP GetProgramivARB)(GLenum target, GLenum pname, GLint * params); /* 451 */ + void (GLAPIENTRYP GetVertexAttribdvARB)(GLuint index, GLenum pname, GLdouble * params); /* 452 */ + void (GLAPIENTRYP GetVertexAttribfvARB)(GLuint index, GLenum pname, GLfloat * params); /* 453 */ + void (GLAPIENTRYP GetVertexAttribivARB)(GLuint index, GLenum pname, GLint * params); /* 454 */ + void (GLAPIENTRYP ProgramEnvParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 455 */ + void (GLAPIENTRYP ProgramEnvParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 456 */ + void (GLAPIENTRYP ProgramEnvParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 457 */ + void (GLAPIENTRYP ProgramEnvParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 458 */ + void (GLAPIENTRYP ProgramLocalParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 459 */ + void (GLAPIENTRYP ProgramLocalParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 460 */ + void (GLAPIENTRYP ProgramLocalParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 461 */ + void (GLAPIENTRYP ProgramLocalParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 462 */ + void (GLAPIENTRYP ProgramStringARB)(GLenum target, GLenum format, GLsizei len, const GLvoid * string); /* 463 */ + void (GLAPIENTRYP VertexAttrib1dARB)(GLuint index, GLdouble x); /* 464 */ + void (GLAPIENTRYP VertexAttrib1dvARB)(GLuint index, const GLdouble * v); /* 465 */ + void (GLAPIENTRYP VertexAttrib1fARB)(GLuint index, GLfloat x); /* 466 */ + void (GLAPIENTRYP VertexAttrib1fvARB)(GLuint index, const GLfloat * v); /* 467 */ + void (GLAPIENTRYP VertexAttrib1sARB)(GLuint index, GLshort x); /* 468 */ + void (GLAPIENTRYP VertexAttrib1svARB)(GLuint index, const GLshort * v); /* 469 */ + void (GLAPIENTRYP VertexAttrib2dARB)(GLuint index, GLdouble x, GLdouble y); /* 470 */ + void (GLAPIENTRYP VertexAttrib2dvARB)(GLuint index, const GLdouble * v); /* 471 */ + void (GLAPIENTRYP VertexAttrib2fARB)(GLuint index, GLfloat x, GLfloat y); /* 472 */ + void (GLAPIENTRYP VertexAttrib2fvARB)(GLuint index, const GLfloat * v); /* 473 */ + void (GLAPIENTRYP VertexAttrib2sARB)(GLuint index, GLshort x, GLshort y); /* 474 */ + void (GLAPIENTRYP VertexAttrib2svARB)(GLuint index, const GLshort * v); /* 475 */ + void (GLAPIENTRYP VertexAttrib3dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 476 */ + void (GLAPIENTRYP VertexAttrib3dvARB)(GLuint index, const GLdouble * v); /* 477 */ + void (GLAPIENTRYP VertexAttrib3fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 478 */ + void (GLAPIENTRYP VertexAttrib3fvARB)(GLuint index, const GLfloat * v); /* 479 */ + void (GLAPIENTRYP VertexAttrib3sARB)(GLuint index, GLshort x, GLshort y, GLshort z); /* 480 */ + void (GLAPIENTRYP VertexAttrib3svARB)(GLuint index, const GLshort * v); /* 481 */ + void (GLAPIENTRYP VertexAttrib4NbvARB)(GLuint index, const GLbyte * v); /* 482 */ + void (GLAPIENTRYP VertexAttrib4NivARB)(GLuint index, const GLint * v); /* 483 */ + void (GLAPIENTRYP VertexAttrib4NsvARB)(GLuint index, const GLshort * v); /* 484 */ + void (GLAPIENTRYP VertexAttrib4NubARB)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 485 */ + void (GLAPIENTRYP VertexAttrib4NubvARB)(GLuint index, const GLubyte * v); /* 486 */ + void (GLAPIENTRYP VertexAttrib4NuivARB)(GLuint index, const GLuint * v); /* 487 */ + void (GLAPIENTRYP VertexAttrib4NusvARB)(GLuint index, const GLushort * v); /* 488 */ + void (GLAPIENTRYP VertexAttrib4bvARB)(GLuint index, const GLbyte * v); /* 489 */ + void (GLAPIENTRYP VertexAttrib4dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 490 */ + void (GLAPIENTRYP VertexAttrib4dvARB)(GLuint index, const GLdouble * v); /* 491 */ + void (GLAPIENTRYP VertexAttrib4fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 492 */ + void (GLAPIENTRYP VertexAttrib4fvARB)(GLuint index, const GLfloat * v); /* 493 */ + void (GLAPIENTRYP VertexAttrib4ivARB)(GLuint index, const GLint * v); /* 494 */ + void (GLAPIENTRYP VertexAttrib4sARB)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 495 */ + void (GLAPIENTRYP VertexAttrib4svARB)(GLuint index, const GLshort * v); /* 496 */ + void (GLAPIENTRYP VertexAttrib4ubvARB)(GLuint index, const GLubyte * v); /* 497 */ + void (GLAPIENTRYP VertexAttrib4uivARB)(GLuint index, const GLuint * v); /* 498 */ + void (GLAPIENTRYP VertexAttrib4usvARB)(GLuint index, const GLushort * v); /* 499 */ + void (GLAPIENTRYP VertexAttribPointerARB)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); /* 500 */ + void (GLAPIENTRYP BindBufferARB)(GLenum target, GLuint buffer); /* 501 */ + void (GLAPIENTRYP BufferDataARB)(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); /* 502 */ + void (GLAPIENTRYP BufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); /* 503 */ + void (GLAPIENTRYP DeleteBuffersARB)(GLsizei n, const GLuint * buffer); /* 504 */ + void (GLAPIENTRYP GenBuffersARB)(GLsizei n, GLuint * buffer); /* 505 */ + void (GLAPIENTRYP GetBufferParameterivARB)(GLenum target, GLenum pname, GLint * params); /* 506 */ + void (GLAPIENTRYP GetBufferPointervARB)(GLenum target, GLenum pname, GLvoid ** params); /* 507 */ + void (GLAPIENTRYP GetBufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); /* 508 */ + GLboolean (GLAPIENTRYP IsBufferARB)(GLuint buffer); /* 509 */ + GLvoid * (GLAPIENTRYP MapBufferARB)(GLenum target, GLenum access); /* 510 */ + GLboolean (GLAPIENTRYP UnmapBufferARB)(GLenum target); /* 511 */ + void (GLAPIENTRYP BeginQueryARB)(GLenum target, GLuint id); /* 512 */ + void (GLAPIENTRYP DeleteQueriesARB)(GLsizei n, const GLuint * ids); /* 513 */ + void (GLAPIENTRYP EndQueryARB)(GLenum target); /* 514 */ + void (GLAPIENTRYP GenQueriesARB)(GLsizei n, GLuint * ids); /* 515 */ + void (GLAPIENTRYP GetQueryObjectivARB)(GLuint id, GLenum pname, GLint * params); /* 516 */ + void (GLAPIENTRYP GetQueryObjectuivARB)(GLuint id, GLenum pname, GLuint * params); /* 517 */ + void (GLAPIENTRYP GetQueryivARB)(GLenum target, GLenum pname, GLint * params); /* 518 */ + GLboolean (GLAPIENTRYP IsQueryARB)(GLuint id); /* 519 */ + void (GLAPIENTRYP AttachObjectARB)(GLhandleARB containerObj, GLhandleARB obj); /* 520 */ + void (GLAPIENTRYP CompileShaderARB)(GLhandleARB shader); /* 521 */ + GLhandleARB (GLAPIENTRYP CreateProgramObjectARB)(void); /* 522 */ + GLhandleARB (GLAPIENTRYP CreateShaderObjectARB)(GLenum shaderType); /* 523 */ + void (GLAPIENTRYP DeleteObjectARB)(GLhandleARB obj); /* 524 */ + void (GLAPIENTRYP DetachObjectARB)(GLhandleARB containerObj, GLhandleARB attachedObj); /* 525 */ + void (GLAPIENTRYP GetActiveUniformARB)(GLhandleARB program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); /* 526 */ + void (GLAPIENTRYP GetAttachedObjectsARB)(GLhandleARB containerObj, GLsizei maxLength, GLsizei * length, GLhandleARB * infoLog); /* 527 */ + GLhandleARB (GLAPIENTRYP GetHandleARB)(GLenum pname); /* 528 */ + void (GLAPIENTRYP GetInfoLogARB)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog); /* 529 */ + void (GLAPIENTRYP GetObjectParameterfvARB)(GLhandleARB obj, GLenum pname, GLfloat * params); /* 530 */ + void (GLAPIENTRYP GetObjectParameterivARB)(GLhandleARB obj, GLenum pname, GLint * params); /* 531 */ + void (GLAPIENTRYP GetShaderSourceARB)(GLhandleARB shader, GLsizei bufSize, GLsizei * length, GLcharARB * source); /* 532 */ + GLint (GLAPIENTRYP GetUniformLocationARB)(GLhandleARB program, const GLcharARB * name); /* 533 */ + void (GLAPIENTRYP GetUniformfvARB)(GLhandleARB program, GLint location, GLfloat * params); /* 534 */ + void (GLAPIENTRYP GetUniformivARB)(GLhandleARB program, GLint location, GLint * params); /* 535 */ + void (GLAPIENTRYP LinkProgramARB)(GLhandleARB program); /* 536 */ + void (GLAPIENTRYP ShaderSourceARB)(GLhandleARB shader, GLsizei count, const GLcharARB ** string, const GLint * length); /* 537 */ + void (GLAPIENTRYP Uniform1fARB)(GLint location, GLfloat v0); /* 538 */ + void (GLAPIENTRYP Uniform1fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 539 */ + void (GLAPIENTRYP Uniform1iARB)(GLint location, GLint v0); /* 540 */ + void (GLAPIENTRYP Uniform1ivARB)(GLint location, GLsizei count, const GLint * value); /* 541 */ + void (GLAPIENTRYP Uniform2fARB)(GLint location, GLfloat v0, GLfloat v1); /* 542 */ + void (GLAPIENTRYP Uniform2fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 543 */ + void (GLAPIENTRYP Uniform2iARB)(GLint location, GLint v0, GLint v1); /* 544 */ + void (GLAPIENTRYP Uniform2ivARB)(GLint location, GLsizei count, const GLint * value); /* 545 */ + void (GLAPIENTRYP Uniform3fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); /* 546 */ + void (GLAPIENTRYP Uniform3fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 547 */ + void (GLAPIENTRYP Uniform3iARB)(GLint location, GLint v0, GLint v1, GLint v2); /* 548 */ + void (GLAPIENTRYP Uniform3ivARB)(GLint location, GLsizei count, const GLint * value); /* 549 */ + void (GLAPIENTRYP Uniform4fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); /* 550 */ + void (GLAPIENTRYP Uniform4fvARB)(GLint location, GLsizei count, const GLfloat * value); /* 551 */ + void (GLAPIENTRYP Uniform4iARB)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); /* 552 */ + void (GLAPIENTRYP Uniform4ivARB)(GLint location, GLsizei count, const GLint * value); /* 553 */ + void (GLAPIENTRYP UniformMatrix2fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 554 */ + void (GLAPIENTRYP UniformMatrix3fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 555 */ + void (GLAPIENTRYP UniformMatrix4fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 556 */ + void (GLAPIENTRYP UseProgramObjectARB)(GLhandleARB program); /* 557 */ + void (GLAPIENTRYP ValidateProgramARB)(GLhandleARB program); /* 558 */ + void (GLAPIENTRYP BindAttribLocationARB)(GLhandleARB program, GLuint index, const GLcharARB * name); /* 559 */ + void (GLAPIENTRYP GetActiveAttribARB)(GLhandleARB program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); /* 560 */ + GLint (GLAPIENTRYP GetAttribLocationARB)(GLhandleARB program, const GLcharARB * name); /* 561 */ + void (GLAPIENTRYP DrawBuffersARB)(GLsizei n, const GLenum * bufs); /* 562 */ + void (GLAPIENTRYP RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); /* 563 */ + void (GLAPIENTRYP FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length); /* 564 */ + GLvoid * (GLAPIENTRYP MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); /* 565 */ + void (GLAPIENTRYP BindVertexArray)(GLuint array); /* 566 */ + void (GLAPIENTRYP GenVertexArrays)(GLsizei n, GLuint * arrays); /* 567 */ + void (GLAPIENTRYP CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); /* 568 */ + GLenum (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 569 */ + void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 570 */ + GLsync (GLAPIENTRYP FenceSync)(GLenum condition, GLbitfield flags); /* 571 */ + void (GLAPIENTRYP GetInteger64v)(GLenum pname, GLint64 * params); /* 572 */ + void (GLAPIENTRYP GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); /* 573 */ + GLboolean (GLAPIENTRYP IsSync)(GLsync sync); /* 574 */ + void (GLAPIENTRYP WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 575 */ + void (GLAPIENTRYP DrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 576 */ + void (GLAPIENTRYP DrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 577 */ + void (GLAPIENTRYP MultiDrawElementsBaseVertex)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount, const GLint * basevertex); /* 578 */ + void (GLAPIENTRYP PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 579 */ + void (GLAPIENTRYP GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 580 */ + void (GLAPIENTRYP GetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params); /* 581 */ + void (GLAPIENTRYP PixelTexGenParameterfSGIS)(GLenum pname, GLfloat param); /* 582 */ + void (GLAPIENTRYP PixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params); /* 583 */ + void (GLAPIENTRYP PixelTexGenParameteriSGIS)(GLenum pname, GLint param); /* 584 */ + void (GLAPIENTRYP PixelTexGenParameterivSGIS)(GLenum pname, const GLint * params); /* 585 */ + void (GLAPIENTRYP SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 586 */ + void (GLAPIENTRYP SamplePatternSGIS)(GLenum pattern); /* 587 */ + void (GLAPIENTRYP ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 588 */ + void (GLAPIENTRYP EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 589 */ + void (GLAPIENTRYP IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 590 */ + void (GLAPIENTRYP NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 591 */ + void (GLAPIENTRYP TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 592 */ + void (GLAPIENTRYP VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 593 */ + void (GLAPIENTRYP PointParameterfEXT)(GLenum pname, GLfloat param); /* 594 */ + void (GLAPIENTRYP PointParameterfvEXT)(GLenum pname, const GLfloat * params); /* 595 */ + void (GLAPIENTRYP LockArraysEXT)(GLint first, GLsizei count); /* 596 */ + void (GLAPIENTRYP UnlockArraysEXT)(void); /* 597 */ + void (GLAPIENTRYP CullParameterdvEXT)(GLenum pname, GLdouble * params); /* 598 */ + void (GLAPIENTRYP CullParameterfvEXT)(GLenum pname, GLfloat * params); /* 599 */ + void (GLAPIENTRYP SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 600 */ + void (GLAPIENTRYP SecondaryColor3bvEXT)(const GLbyte * v); /* 601 */ + void (GLAPIENTRYP SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 602 */ + void (GLAPIENTRYP SecondaryColor3dvEXT)(const GLdouble * v); /* 603 */ + void (GLAPIENTRYP SecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue); /* 604 */ + void (GLAPIENTRYP SecondaryColor3fvEXT)(const GLfloat * v); /* 605 */ + void (GLAPIENTRYP SecondaryColor3iEXT)(GLint red, GLint green, GLint blue); /* 606 */ + void (GLAPIENTRYP SecondaryColor3ivEXT)(const GLint * v); /* 607 */ + void (GLAPIENTRYP SecondaryColor3sEXT)(GLshort red, GLshort green, GLshort blue); /* 608 */ + void (GLAPIENTRYP SecondaryColor3svEXT)(const GLshort * v); /* 609 */ + void (GLAPIENTRYP SecondaryColor3ubEXT)(GLubyte red, GLubyte green, GLubyte blue); /* 610 */ + void (GLAPIENTRYP SecondaryColor3ubvEXT)(const GLubyte * v); /* 611 */ + void (GLAPIENTRYP SecondaryColor3uiEXT)(GLuint red, GLuint green, GLuint blue); /* 612 */ + void (GLAPIENTRYP SecondaryColor3uivEXT)(const GLuint * v); /* 613 */ + void (GLAPIENTRYP SecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue); /* 614 */ + void (GLAPIENTRYP SecondaryColor3usvEXT)(const GLushort * v); /* 615 */ + void (GLAPIENTRYP SecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 616 */ + void (GLAPIENTRYP MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 617 */ + void (GLAPIENTRYP MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 618 */ + void (GLAPIENTRYP FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 619 */ + void (GLAPIENTRYP FogCoorddEXT)(GLdouble coord); /* 620 */ + void (GLAPIENTRYP FogCoorddvEXT)(const GLdouble * coord); /* 621 */ + void (GLAPIENTRYP FogCoordfEXT)(GLfloat coord); /* 622 */ + void (GLAPIENTRYP FogCoordfvEXT)(const GLfloat * coord); /* 623 */ + void (GLAPIENTRYP PixelTexGenSGIX)(GLenum mode); /* 624 */ + void (GLAPIENTRYP BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 625 */ + void (GLAPIENTRYP FlushVertexArrayRangeNV)(void); /* 626 */ + void (GLAPIENTRYP VertexArrayRangeNV)(GLsizei length, const GLvoid * pointer); /* 627 */ + void (GLAPIENTRYP CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 628 */ + void (GLAPIENTRYP CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); /* 629 */ + void (GLAPIENTRYP CombinerParameterfNV)(GLenum pname, GLfloat param); /* 630 */ + void (GLAPIENTRYP CombinerParameterfvNV)(GLenum pname, const GLfloat * params); /* 631 */ + void (GLAPIENTRYP CombinerParameteriNV)(GLenum pname, GLint param); /* 632 */ + void (GLAPIENTRYP CombinerParameterivNV)(GLenum pname, const GLint * params); /* 633 */ + void (GLAPIENTRYP FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 634 */ + void (GLAPIENTRYP GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); /* 635 */ + void (GLAPIENTRYP GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); /* 636 */ + void (GLAPIENTRYP GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); /* 637 */ + void (GLAPIENTRYP GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params); /* 638 */ + void (GLAPIENTRYP GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params); /* 639 */ + void (GLAPIENTRYP GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params); /* 640 */ + void (GLAPIENTRYP ResizeBuffersMESA)(void); /* 641 */ + void (GLAPIENTRYP WindowPos2dMESA)(GLdouble x, GLdouble y); /* 642 */ + void (GLAPIENTRYP WindowPos2dvMESA)(const GLdouble * v); /* 643 */ + void (GLAPIENTRYP WindowPos2fMESA)(GLfloat x, GLfloat y); /* 644 */ + void (GLAPIENTRYP WindowPos2fvMESA)(const GLfloat * v); /* 645 */ + void (GLAPIENTRYP WindowPos2iMESA)(GLint x, GLint y); /* 646 */ + void (GLAPIENTRYP WindowPos2ivMESA)(const GLint * v); /* 647 */ + void (GLAPIENTRYP WindowPos2sMESA)(GLshort x, GLshort y); /* 648 */ + void (GLAPIENTRYP WindowPos2svMESA)(const GLshort * v); /* 649 */ + void (GLAPIENTRYP WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z); /* 650 */ + void (GLAPIENTRYP WindowPos3dvMESA)(const GLdouble * v); /* 651 */ + void (GLAPIENTRYP WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z); /* 652 */ + void (GLAPIENTRYP WindowPos3fvMESA)(const GLfloat * v); /* 653 */ + void (GLAPIENTRYP WindowPos3iMESA)(GLint x, GLint y, GLint z); /* 654 */ + void (GLAPIENTRYP WindowPos3ivMESA)(const GLint * v); /* 655 */ + void (GLAPIENTRYP WindowPos3sMESA)(GLshort x, GLshort y, GLshort z); /* 656 */ + void (GLAPIENTRYP WindowPos3svMESA)(const GLshort * v); /* 657 */ + void (GLAPIENTRYP WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 658 */ + void (GLAPIENTRYP WindowPos4dvMESA)(const GLdouble * v); /* 659 */ + void (GLAPIENTRYP WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 660 */ + void (GLAPIENTRYP WindowPos4fvMESA)(const GLfloat * v); /* 661 */ + void (GLAPIENTRYP WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 662 */ + void (GLAPIENTRYP WindowPos4ivMESA)(const GLint * v); /* 663 */ + void (GLAPIENTRYP WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 664 */ + void (GLAPIENTRYP WindowPos4svMESA)(const GLshort * v); /* 665 */ + void (GLAPIENTRYP MultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); /* 666 */ + void (GLAPIENTRYP MultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); /* 667 */ + void (GLAPIENTRYP DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 668 */ + void (GLAPIENTRYP FinishFenceNV)(GLuint fence); /* 669 */ + void (GLAPIENTRYP GenFencesNV)(GLsizei n, GLuint * fences); /* 670 */ + void (GLAPIENTRYP GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 671 */ + GLboolean (GLAPIENTRYP IsFenceNV)(GLuint fence); /* 672 */ + void (GLAPIENTRYP SetFenceNV)(GLuint fence, GLenum condition); /* 673 */ + GLboolean (GLAPIENTRYP TestFenceNV)(GLuint fence); /* 674 */ + GLboolean (GLAPIENTRYP AreProgramsResidentNV)(GLsizei n, const GLuint * ids, GLboolean * residences); /* 675 */ + void (GLAPIENTRYP BindProgramNV)(GLenum target, GLuint program); /* 676 */ + void (GLAPIENTRYP DeleteProgramsNV)(GLsizei n, const GLuint * programs); /* 677 */ + void (GLAPIENTRYP ExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params); /* 678 */ + void (GLAPIENTRYP GenProgramsNV)(GLsizei n, GLuint * programs); /* 679 */ + void (GLAPIENTRYP GetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params); /* 680 */ + void (GLAPIENTRYP GetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params); /* 681 */ + void (GLAPIENTRYP GetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program); /* 682 */ + void (GLAPIENTRYP GetProgramivNV)(GLuint id, GLenum pname, GLint * params); /* 683 */ + void (GLAPIENTRYP GetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params); /* 684 */ + void (GLAPIENTRYP GetVertexAttribPointervNV)(GLuint index, GLenum pname, GLvoid ** pointer); /* 685 */ + void (GLAPIENTRYP GetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params); /* 686 */ + void (GLAPIENTRYP GetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params); /* 687 */ + void (GLAPIENTRYP GetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params); /* 688 */ + GLboolean (GLAPIENTRYP IsProgramNV)(GLuint program); /* 689 */ + void (GLAPIENTRYP LoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); /* 690 */ + void (GLAPIENTRYP ProgramParameters4dvNV)(GLenum target, GLuint index, GLuint num, const GLdouble * params); /* 691 */ + void (GLAPIENTRYP ProgramParameters4fvNV)(GLenum target, GLuint index, GLuint num, const GLfloat * params); /* 692 */ + void (GLAPIENTRYP RequestResidentProgramsNV)(GLsizei n, const GLuint * ids); /* 693 */ + void (GLAPIENTRYP TrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform); /* 694 */ + void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); /* 695 */ + void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble * v); /* 696 */ + void (GLAPIENTRYP VertexAttrib1fNV)(GLuint index, GLfloat x); /* 697 */ + void (GLAPIENTRYP VertexAttrib1fvNV)(GLuint index, const GLfloat * v); /* 698 */ + void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); /* 699 */ + void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort * v); /* 700 */ + void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); /* 701 */ + void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble * v); /* 702 */ + void (GLAPIENTRYP VertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y); /* 703 */ + void (GLAPIENTRYP VertexAttrib2fvNV)(GLuint index, const GLfloat * v); /* 704 */ + void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); /* 705 */ + void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort * v); /* 706 */ + void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 707 */ + void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble * v); /* 708 */ + void (GLAPIENTRYP VertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 709 */ + void (GLAPIENTRYP VertexAttrib3fvNV)(GLuint index, const GLfloat * v); /* 710 */ + void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); /* 711 */ + void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort * v); /* 712 */ + void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 713 */ + void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble * v); /* 714 */ + void (GLAPIENTRYP VertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 715 */ + void (GLAPIENTRYP VertexAttrib4fvNV)(GLuint index, const GLfloat * v); /* 716 */ + void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 717 */ + void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort * v); /* 718 */ + void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 719 */ + void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte * v); /* 720 */ + void (GLAPIENTRYP VertexAttribPointerNV)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 721 */ + void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 722 */ + void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 723 */ + void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort * v); /* 724 */ + void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 725 */ + void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 726 */ + void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort * v); /* 727 */ + void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 728 */ + void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 729 */ + void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort * v); /* 730 */ + void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 731 */ + void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 732 */ + void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort * v); /* 733 */ + void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte * v); /* 734 */ + void (GLAPIENTRYP GetTexBumpParameterfvATI)(GLenum pname, GLfloat * param); /* 735 */ + void (GLAPIENTRYP GetTexBumpParameterivATI)(GLenum pname, GLint * param); /* 736 */ + void (GLAPIENTRYP TexBumpParameterfvATI)(GLenum pname, const GLfloat * param); /* 737 */ + void (GLAPIENTRYP TexBumpParameterivATI)(GLenum pname, const GLint * param); /* 738 */ + void (GLAPIENTRYP AlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 739 */ + void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 740 */ + void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 741 */ + void (GLAPIENTRYP BeginFragmentShaderATI)(void); /* 742 */ + void (GLAPIENTRYP BindFragmentShaderATI)(GLuint id); /* 743 */ + void (GLAPIENTRYP ColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 744 */ + void (GLAPIENTRYP ColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 745 */ + void (GLAPIENTRYP ColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 746 */ + void (GLAPIENTRYP DeleteFragmentShaderATI)(GLuint id); /* 747 */ + void (GLAPIENTRYP EndFragmentShaderATI)(void); /* 748 */ + GLuint (GLAPIENTRYP GenFragmentShadersATI)(GLuint range); /* 749 */ + void (GLAPIENTRYP PassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle); /* 750 */ + void (GLAPIENTRYP SampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle); /* 751 */ + void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 752 */ + void (GLAPIENTRYP PointParameteriNV)(GLenum pname, GLint param); /* 753 */ + void (GLAPIENTRYP PointParameterivNV)(GLenum pname, const GLint * params); /* 754 */ + void (GLAPIENTRYP ActiveStencilFaceEXT)(GLenum face); /* 755 */ + void (GLAPIENTRYP BindVertexArrayAPPLE)(GLuint array); /* 756 */ + void (GLAPIENTRYP DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays); /* 757 */ + void (GLAPIENTRYP GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays); /* 758 */ + GLboolean (GLAPIENTRYP IsVertexArrayAPPLE)(GLuint array); /* 759 */ + void (GLAPIENTRYP GetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); /* 760 */ + void (GLAPIENTRYP GetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); /* 761 */ + void (GLAPIENTRYP ProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 762 */ + void (GLAPIENTRYP ProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); /* 763 */ + void (GLAPIENTRYP ProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 764 */ + void (GLAPIENTRYP ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); /* 765 */ + void (GLAPIENTRYP DepthBoundsEXT)(GLclampd zmin, GLclampd zmax); /* 766 */ + void (GLAPIENTRYP BlendEquationSeparateEXT)(GLenum modeRGB, GLenum modeA); /* 767 */ + void (GLAPIENTRYP BindFramebufferEXT)(GLenum target, GLuint framebuffer); /* 768 */ + void (GLAPIENTRYP BindRenderbufferEXT)(GLenum target, GLuint renderbuffer); /* 769 */ + GLenum (GLAPIENTRYP CheckFramebufferStatusEXT)(GLenum target); /* 770 */ + void (GLAPIENTRYP DeleteFramebuffersEXT)(GLsizei n, const GLuint * framebuffers); /* 771 */ + void (GLAPIENTRYP DeleteRenderbuffersEXT)(GLsizei n, const GLuint * renderbuffers); /* 772 */ + void (GLAPIENTRYP FramebufferRenderbufferEXT)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); /* 773 */ + void (GLAPIENTRYP FramebufferTexture1DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 774 */ + void (GLAPIENTRYP FramebufferTexture2DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 775 */ + void (GLAPIENTRYP FramebufferTexture3DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); /* 776 */ + void (GLAPIENTRYP GenFramebuffersEXT)(GLsizei n, GLuint * framebuffers); /* 777 */ + void (GLAPIENTRYP GenRenderbuffersEXT)(GLsizei n, GLuint * renderbuffers); /* 778 */ + void (GLAPIENTRYP GenerateMipmapEXT)(GLenum target); /* 779 */ + void (GLAPIENTRYP GetFramebufferAttachmentParameterivEXT)(GLenum target, GLenum attachment, GLenum pname, GLint * params); /* 780 */ + void (GLAPIENTRYP GetRenderbufferParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 781 */ + GLboolean (GLAPIENTRYP IsFramebufferEXT)(GLuint framebuffer); /* 782 */ + GLboolean (GLAPIENTRYP IsRenderbufferEXT)(GLuint renderbuffer); /* 783 */ + void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 784 */ + void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 785 */ + void (GLAPIENTRYP BufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param); /* 786 */ + void (GLAPIENTRYP FlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size); /* 787 */ + void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 788 */ + void (GLAPIENTRYP ColorMaskIndexedEXT)(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); /* 789 */ + void (GLAPIENTRYP DisableIndexedEXT)(GLenum target, GLuint index); /* 790 */ + void (GLAPIENTRYP EnableIndexedEXT)(GLenum target, GLuint index); /* 791 */ + void (GLAPIENTRYP GetBooleanIndexedvEXT)(GLenum value, GLuint index, GLboolean * data); /* 792 */ + void (GLAPIENTRYP GetIntegerIndexedvEXT)(GLenum value, GLuint index, GLint * data); /* 793 */ + GLboolean (GLAPIENTRYP IsEnabledIndexedEXT)(GLenum target, GLuint index); /* 794 */ + void (GLAPIENTRYP BeginConditionalRenderNV)(GLuint query, GLenum mode); /* 795 */ + void (GLAPIENTRYP EndConditionalRenderNV)(void); /* 796 */ + void (GLAPIENTRYP BeginTransformFeedbackEXT)(GLenum mode); /* 797 */ + void (GLAPIENTRYP BindBufferBaseEXT)(GLenum target, GLuint index, GLuint buffer); /* 798 */ + void (GLAPIENTRYP BindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); /* 799 */ + void (GLAPIENTRYP BindBufferRangeEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); /* 800 */ + void (GLAPIENTRYP EndTransformFeedbackEXT)(void); /* 801 */ + void (GLAPIENTRYP GetTransformFeedbackVaryingEXT)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); /* 802 */ + void (GLAPIENTRYP TransformFeedbackVaryingsEXT)(GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); /* 803 */ + void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 804 */ + void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 805 */ + void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 806 */ + void (GLAPIENTRYP GetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * value); /* 807 */ + GLenum (GLAPIENTRYP ObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 808 */ + GLenum (GLAPIENTRYP ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 809 */ + void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 810 */ + void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 811 */ + void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 812 */ + void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 813 */ + void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 814 */ + void (GLAPIENTRYP EGLImageTargetRenderbufferStorageOES)(GLenum target, GLvoid * writeOffset); /* 815 */ + void (GLAPIENTRYP EGLImageTargetTexture2DOES)(GLenum target, GLvoid * writeOffset); /* 816 */ }; #endif /* !defined( _GLAPI_TABLE_H_ ) */ diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index bd805ca923..3ed337f825 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -2632,6 +2632,36 @@ KEYWORD1 void KEYWORD2 NAME(UniformMatrix4x3fv)(GLint location, GLsizei count, G DISPATCH(UniformMatrix4x3fv, (location, count, transpose, value), (F, "glUniformMatrix4x3fv(%d, %d, %d, %p);\n", location, count, transpose, (const void *) value)); } +KEYWORD1 void KEYWORD2 NAME(DrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei primcount) +{ + DISPATCH(DrawArraysInstanced, (mode, first, count, primcount), (F, "glDrawArraysInstanced(0x%x, %d, %d, %d);\n", mode, first, count, primcount)); +} + +KEYWORD1 void KEYWORD2 NAME(DrawArraysInstancedARB)(GLenum mode, GLint first, GLsizei count, GLsizei primcount) +{ + DISPATCH(DrawArraysInstanced, (mode, first, count, primcount), (F, "glDrawArraysInstancedARB(0x%x, %d, %d, %d);\n", mode, first, count, primcount)); +} + +KEYWORD1 void KEYWORD2 NAME(DrawArraysInstancedEXT)(GLenum mode, GLint first, GLsizei count, GLsizei primcount) +{ + DISPATCH(DrawArraysInstanced, (mode, first, count, primcount), (F, "glDrawArraysInstancedEXT(0x%x, %d, %d, %d);\n", mode, first, count, primcount)); +} + +KEYWORD1 void KEYWORD2 NAME(DrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount) +{ + DISPATCH(DrawElementsInstanced, (mode, count, type, indices, primcount), (F, "glDrawElementsInstanced(0x%x, %d, 0x%x, %p, %d);\n", mode, count, type, (const void *) indices, primcount)); +} + +KEYWORD1 void KEYWORD2 NAME(DrawElementsInstancedARB)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount) +{ + DISPATCH(DrawElementsInstanced, (mode, count, type, indices, primcount), (F, "glDrawElementsInstancedARB(0x%x, %d, 0x%x, %p, %d);\n", mode, count, type, (const void *) indices, primcount)); +} + +KEYWORD1 void KEYWORD2 NAME(DrawElementsInstancedEXT)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount) +{ + DISPATCH(DrawElementsInstanced, (mode, count, type, indices, primcount), (F, "glDrawElementsInstancedEXT(0x%x, %d, 0x%x, %p, %d);\n", mode, count, type, (const void *) indices, primcount)); +} + KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixd)(const GLdouble * m) { DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixd(%p);\n", (const void *) m)); @@ -3932,58 +3962,58 @@ KEYWORD1 void KEYWORD2 NAME(PolygonOffsetEXT)(GLfloat factor, GLfloat bias) DISPATCH(PolygonOffsetEXT, (factor, bias), (F, "glPolygonOffsetEXT(%f, %f);\n", factor, bias)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_578)(GLenum pname, GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_578)(GLenum pname, GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, GLfloat * params) { DISPATCH(GetPixelTexGenParameterfvSGIS, (pname, params), (F, "glGetPixelTexGenParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_579)(GLenum pname, GLint * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLenum pname, GLint * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_579)(GLenum pname, GLint * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLenum pname, GLint * params) { DISPATCH(GetPixelTexGenParameterivSGIS, (pname, params), (F, "glGetPixelTexGenParameterivSGIS(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, GLfloat param); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLfloat param); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, GLfloat param) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLfloat param) { DISPATCH(PixelTexGenParameterfSGIS, (pname, param), (F, "glPixelTexGenParameterfSGIS(0x%x, %f);\n", pname, param)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLenum pname, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLenum pname, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLfloat * params) { DISPATCH(PixelTexGenParameterfvSGIS, (pname, params), (F, "glPixelTexGenParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLint param); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_584)(GLenum pname, GLint param); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLint param) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_584)(GLenum pname, GLint param) { DISPATCH(PixelTexGenParameteriSGIS, (pname, param), (F, "glPixelTexGenParameteriSGIS(0x%x, %d);\n", pname, param)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLint * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_585)(GLenum pname, const GLint * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLint * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_585)(GLenum pname, const GLint * params) { DISPATCH(PixelTexGenParameterivSGIS, (pname, params), (F, "glPixelTexGenParameterivSGIS(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_584)(GLclampf value, GLboolean invert); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_586)(GLclampf value, GLboolean invert); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_584)(GLclampf value, GLboolean invert) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_586)(GLclampf value, GLboolean invert) { DISPATCH(SampleMaskSGIS, (value, invert), (F, "glSampleMaskSGIS(%f, %d);\n", value, invert)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_585)(GLenum pattern); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_587)(GLenum pattern); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_585)(GLenum pattern) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_587)(GLenum pattern) { DISPATCH(SamplePatternSGIS, (pattern), (F, "glSamplePatternSGIS(0x%x);\n", pattern)); } @@ -4033,9 +4063,9 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterfEXT)(GLenum pname, GLfloat param) DISPATCH(PointParameterfEXT, (pname, param), (F, "glPointParameterfEXT(0x%x, %f);\n", pname, param)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_592)(GLenum pname, GLfloat param); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_594)(GLenum pname, GLfloat param); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_592)(GLenum pname, GLfloat param) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_594)(GLenum pname, GLfloat param) { DISPATCH(PointParameterfEXT, (pname, param), (F, "glPointParameterfSGIS(0x%x, %f);\n", pname, param)); } @@ -4055,9 +4085,9 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterfvEXT)(GLenum pname, const GLfloat * p DISPATCH(PointParameterfvEXT, (pname, params), (F, "glPointParameterfvEXT(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_593)(GLenum pname, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_595)(GLenum pname, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_593)(GLenum pname, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_595)(GLenum pname, const GLfloat * params) { DISPATCH(PointParameterfvEXT, (pname, params), (F, "glPointParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params)); } @@ -4072,16 +4102,16 @@ KEYWORD1 void KEYWORD2 NAME(UnlockArraysEXT)(void) DISPATCH(UnlockArraysEXT, (), (F, "glUnlockArraysEXT();\n")); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_596)(GLenum pname, GLdouble * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_598)(GLenum pname, GLdouble * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_596)(GLenum pname, GLdouble * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_598)(GLenum pname, GLdouble * params) { DISPATCH(CullParameterdvEXT, (pname, params), (F, "glCullParameterdvEXT(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_597)(GLenum pname, GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_599)(GLenum pname, GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_597)(GLenum pname, GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_599)(GLenum pname, GLfloat * params) { DISPATCH(CullParameterfvEXT, (pname, params), (F, "glCullParameterfvEXT(0x%x, %p);\n", pname, (const void *) params)); } @@ -4326,9 +4356,9 @@ KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat * coord) DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);\n", (const void *) coord)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_622)(GLenum mode); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_624)(GLenum mode); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_622)(GLenum mode) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_624)(GLenum mode) { DISPATCH(PixelTexGenSGIX, (mode), (F, "glPixelTexGenSGIX(0x%x);\n", mode)); } @@ -4343,9 +4373,9 @@ KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfac DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, "glBlendFuncSeparateEXT(0x%x, 0x%x, 0x%x, 0x%x);\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_623)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_625)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_623)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_625)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, "glBlendFuncSeparateINGR(0x%x, 0x%x, 0x%x, 0x%x);\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)); } @@ -4710,65 +4740,65 @@ KEYWORD1 void KEYWORD2 NAME(WindowPos4svMESA)(const GLshort * v) DISPATCH(WindowPos4svMESA, (v), (F, "glWindowPos4svMESA(%p);\n", (const void *) v)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_664)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_664)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride) { DISPATCH(MultiModeDrawArraysIBM, (mode, first, count, primcount, modestride), (F, "glMultiModeDrawArraysIBM(%p, %p, %p, %d, %d);\n", (const void *) mode, (const void *) first, (const void *) count, primcount, modestride)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_665)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_667)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_665)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_667)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride) { DISPATCH(MultiModeDrawElementsIBM, (mode, count, type, indices, primcount, modestride), (F, "glMultiModeDrawElementsIBM(%p, %p, 0x%x, %p, %d, %d);\n", (const void *) mode, (const void *) count, type, (const void *) indices, primcount, modestride)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(GLsizei n, const GLuint * fences); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLsizei n, const GLuint * fences); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(GLsizei n, const GLuint * fences) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLsizei n, const GLuint * fences) { DISPATCH(DeleteFencesNV, (n, fences), (F, "glDeleteFencesNV(%d, %p);\n", n, (const void *) fences)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_667)(GLuint fence); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_667)(GLuint fence) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence) { DISPATCH(FinishFenceNV, (fence), (F, "glFinishFenceNV(%d);\n", fence)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLsizei n, GLuint * fences); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_670)(GLsizei n, GLuint * fences); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLsizei n, GLuint * fences) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_670)(GLsizei n, GLuint * fences) { DISPATCH(GenFencesNV, (n, fences), (F, "glGenFencesNV(%d, %p);\n", n, (const void *) fences)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence, GLenum pname, GLint * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_671)(GLuint fence, GLenum pname, GLint * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence, GLenum pname, GLint * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_671)(GLuint fence, GLenum pname, GLint * params) { DISPATCH(GetFenceivNV, (fence, pname, params), (F, "glGetFenceivNV(%d, 0x%x, %p);\n", fence, pname, (const void *) params)); } -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_670)(GLuint fence); +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_672)(GLuint fence); -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_670)(GLuint fence) +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_672)(GLuint fence) { RETURN_DISPATCH(IsFenceNV, (fence), (F, "glIsFenceNV(%d);\n", fence)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_671)(GLuint fence, GLenum condition); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_673)(GLuint fence, GLenum condition); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_671)(GLuint fence, GLenum condition) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_673)(GLuint fence, GLenum condition) { DISPATCH(SetFenceNV, (fence, condition), (F, "glSetFenceNV(%d, 0x%x);\n", fence, condition)); } -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_672)(GLuint fence); +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_674)(GLuint fence); -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_672)(GLuint fence) +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_674)(GLuint fence) { RETURN_DISPATCH(TestFenceNV, (fence), (F, "glTestFenceNV(%d);\n", fence)); } @@ -5213,16 +5243,16 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterivNV)(GLenum pname, const GLint * para DISPATCH(PointParameterivNV, (pname, params), (F, "glPointParameterivNV(0x%x, %p);\n", pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_753)(GLenum face); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLenum face); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_753)(GLenum face) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLenum face) { DISPATCH(ActiveStencilFaceEXT, (face), (F, "glActiveStencilFaceEXT(0x%x);\n", face)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_754)(GLuint array); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_756)(GLuint array); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_754)(GLuint array) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_756)(GLuint array) { DISPATCH(BindVertexArrayAPPLE, (array), (F, "glBindVertexArrayAPPLE(%d);\n", array)); } @@ -5232,16 +5262,16 @@ KEYWORD1 void KEYWORD2 NAME(DeleteVertexArrays)(GLsizei n, const GLuint * arrays DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArrays(%d, %p);\n", n, (const void *) arrays)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLsizei n, const GLuint * arrays); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_757)(GLsizei n, const GLuint * arrays); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLsizei n, const GLuint * arrays) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_757)(GLsizei n, const GLuint * arrays) { DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_756)(GLsizei n, GLuint * arrays); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_758)(GLsizei n, GLuint * arrays); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_756)(GLsizei n, GLuint * arrays) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_758)(GLsizei n, GLuint * arrays) { DISPATCH(GenVertexArraysAPPLE, (n, arrays), (F, "glGenVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays)); } @@ -5251,9 +5281,9 @@ KEYWORD1 GLboolean KEYWORD2 NAME(IsVertexArray)(GLuint array) RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArray(%d);\n", array)); } -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_757)(GLuint array); +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_759)(GLuint array); -KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_757)(GLuint array) +KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_759)(GLuint array) { RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArrayAPPLE(%d);\n", array)); } @@ -5288,9 +5318,9 @@ KEYWORD1 void KEYWORD2 NAME(ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, DISPATCH(ProgramNamedParameter4fvNV, (id, len, name, v), (F, "glProgramNamedParameter4fvNV(%d, %d, %p, %p);\n", id, len, (const void *) name, (const void *) v)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_764)(GLclampd zmin, GLclampd zmax); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_766)(GLclampd zmin, GLclampd zmax); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_764)(GLclampd zmin, GLclampd zmax) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_766)(GLclampd zmin, GLclampd zmax) { DISPATCH(DepthBoundsEXT, (zmin, zmax), (F, "glDepthBoundsEXT(%f, %f);\n", zmin, zmax)); } @@ -5300,9 +5330,9 @@ KEYWORD1 void KEYWORD2 NAME(BlendEquationSeparate)(GLenum modeRGB, GLenum modeA) DISPATCH(BlendEquationSeparateEXT, (modeRGB, modeA), (F, "glBlendEquationSeparate(0x%x, 0x%x);\n", modeRGB, modeA)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_765)(GLenum modeRGB, GLenum modeA); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_767)(GLenum modeRGB, GLenum modeA); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_765)(GLenum modeRGB, GLenum modeA) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_767)(GLenum modeRGB, GLenum modeA) { DISPATCH(BlendEquationSeparateEXT, (modeRGB, modeA), (F, "glBlendEquationSeparateEXT(0x%x, 0x%x);\n", modeRGB, modeA)); } @@ -5482,23 +5512,23 @@ KEYWORD1 void KEYWORD2 NAME(BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint src DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebuffer(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_783)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_783)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebufferEXT(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_784)(GLenum target, GLenum pname, GLint param); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_786)(GLenum target, GLenum pname, GLint param); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_784)(GLenum target, GLenum pname, GLint param) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_786)(GLenum target, GLenum pname, GLint param) { DISPATCH(BufferParameteriAPPLE, (target, pname, param), (F, "glBufferParameteriAPPLE(0x%x, 0x%x, %d);\n", target, pname, param)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLenum target, GLintptr offset, GLsizeiptr size); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_787)(GLenum target, GLintptr offset, GLsizeiptr size); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLenum target, GLintptr offset, GLsizeiptr size) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_787)(GLenum target, GLintptr offset, GLsizeiptr size) { DISPATCH(FlushMappedBufferRangeAPPLE, (target, offset, size), (F, "glFlushMappedBufferRangeAPPLE(0x%x, %d, %d);\n", target, offset, size)); } @@ -5628,16 +5658,16 @@ KEYWORD1 void KEYWORD2 NAME(ProvokingVertex)(GLenum mode) DISPATCH(ProvokingVertexEXT, (mode), (F, "glProvokingVertex(0x%x);\n", mode)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLenum pname, GLvoid ** params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_805)(GLenum target, GLenum pname, GLvoid ** params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_803)(GLenum target, GLenum pname, GLvoid ** params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_805)(GLenum target, GLenum pname, GLvoid ** params) { DISPATCH(GetTexParameterPointervAPPLE, (target, pname, params), (F, "glGetTexParameterPointervAPPLE(0x%x, 0x%x, %p);\n", target, pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLenum target, GLsizei length, GLvoid * pointer); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_806)(GLenum target, GLsizei length, GLvoid * pointer); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_804)(GLenum target, GLsizei length, GLvoid * pointer) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_806)(GLenum target, GLsizei length, GLvoid * pointer) { DISPATCH(TextureRangeAPPLE, (target, length, pointer), (F, "glTextureRangeAPPLE(0x%x, %d, %p);\n", target, length, (const void *) pointer)); } @@ -5657,37 +5687,37 @@ KEYWORD1 GLenum KEYWORD2 NAME(ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint RETURN_DISPATCH(ObjectUnpurgeableAPPLE, (objectType, name, option), (F, "glObjectUnpurgeableAPPLE(0x%x, %d, 0x%x);\n", objectType, name, option)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_808)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_808)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) { DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_809)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_809)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) { DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_810)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLenum target, GLuint index, GLsizei count, const GLfloat * params) { DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLuint id, GLenum pname, GLint64EXT * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_813)(GLuint id, GLenum pname, GLint64EXT * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_811)(GLuint id, GLenum pname, GLint64EXT * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_813)(GLuint id, GLenum pname, GLint64EXT * params) { DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params)); } -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLuint id, GLenum pname, GLuint64EXT * params); +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_814)(GLuint id, GLenum pname, GLuint64EXT * params); -KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_812)(GLuint id, GLenum pname, GLuint64EXT * params) +KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_814)(GLuint id, GLenum pname, GLuint64EXT * params) { DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params)); } @@ -6285,6 +6315,8 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(UniformMatrix3x4fv), TABLE_ENTRY(UniformMatrix4x2fv), TABLE_ENTRY(UniformMatrix4x3fv), + TABLE_ENTRY(DrawArraysInstanced), + TABLE_ENTRY(DrawElementsInstanced), TABLE_ENTRY(LoadTransposeMatrixdARB), TABLE_ENTRY(LoadTransposeMatrixfARB), TABLE_ENTRY(MultTransposeMatrixdARB), @@ -6433,14 +6465,14 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(DrawRangeElementsBaseVertex), TABLE_ENTRY(MultiDrawElementsBaseVertex), TABLE_ENTRY(PolygonOffsetEXT), - TABLE_ENTRY(_dispatch_stub_578), - TABLE_ENTRY(_dispatch_stub_579), TABLE_ENTRY(_dispatch_stub_580), TABLE_ENTRY(_dispatch_stub_581), TABLE_ENTRY(_dispatch_stub_582), TABLE_ENTRY(_dispatch_stub_583), TABLE_ENTRY(_dispatch_stub_584), TABLE_ENTRY(_dispatch_stub_585), + TABLE_ENTRY(_dispatch_stub_586), + TABLE_ENTRY(_dispatch_stub_587), TABLE_ENTRY(ColorPointerEXT), TABLE_ENTRY(EdgeFlagPointerEXT), TABLE_ENTRY(IndexPointerEXT), @@ -6451,8 +6483,8 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(PointParameterfvEXT), TABLE_ENTRY(LockArraysEXT), TABLE_ENTRY(UnlockArraysEXT), - TABLE_ENTRY(_dispatch_stub_596), - TABLE_ENTRY(_dispatch_stub_597), + TABLE_ENTRY(_dispatch_stub_598), + TABLE_ENTRY(_dispatch_stub_599), TABLE_ENTRY(SecondaryColor3bEXT), TABLE_ENTRY(SecondaryColor3bvEXT), TABLE_ENTRY(SecondaryColor3dEXT), @@ -6477,7 +6509,7 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(FogCoorddvEXT), TABLE_ENTRY(FogCoordfEXT), TABLE_ENTRY(FogCoordfvEXT), - TABLE_ENTRY(_dispatch_stub_622), + TABLE_ENTRY(_dispatch_stub_624), TABLE_ENTRY(BlendFuncSeparateEXT), TABLE_ENTRY(FlushVertexArrayRangeNV), TABLE_ENTRY(VertexArrayRangeNV), @@ -6519,8 +6551,6 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(WindowPos4ivMESA), TABLE_ENTRY(WindowPos4sMESA), TABLE_ENTRY(WindowPos4svMESA), - TABLE_ENTRY(_dispatch_stub_664), - TABLE_ENTRY(_dispatch_stub_665), TABLE_ENTRY(_dispatch_stub_666), TABLE_ENTRY(_dispatch_stub_667), TABLE_ENTRY(_dispatch_stub_668), @@ -6528,6 +6558,8 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(_dispatch_stub_670), TABLE_ENTRY(_dispatch_stub_671), TABLE_ENTRY(_dispatch_stub_672), + TABLE_ENTRY(_dispatch_stub_673), + TABLE_ENTRY(_dispatch_stub_674), TABLE_ENTRY(AreProgramsResidentNV), TABLE_ENTRY(BindProgramNV), TABLE_ENTRY(DeleteProgramsNV), @@ -6608,19 +6640,19 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(SetFragmentShaderConstantATI), TABLE_ENTRY(PointParameteriNV), TABLE_ENTRY(PointParameterivNV), - TABLE_ENTRY(_dispatch_stub_753), - TABLE_ENTRY(_dispatch_stub_754), TABLE_ENTRY(_dispatch_stub_755), TABLE_ENTRY(_dispatch_stub_756), TABLE_ENTRY(_dispatch_stub_757), + TABLE_ENTRY(_dispatch_stub_758), + TABLE_ENTRY(_dispatch_stub_759), TABLE_ENTRY(GetProgramNamedParameterdvNV), TABLE_ENTRY(GetProgramNamedParameterfvNV), TABLE_ENTRY(ProgramNamedParameter4dNV), TABLE_ENTRY(ProgramNamedParameter4dvNV), TABLE_ENTRY(ProgramNamedParameter4fNV), TABLE_ENTRY(ProgramNamedParameter4fvNV), - TABLE_ENTRY(_dispatch_stub_764), - TABLE_ENTRY(_dispatch_stub_765), + TABLE_ENTRY(_dispatch_stub_766), + TABLE_ENTRY(_dispatch_stub_767), TABLE_ENTRY(BindFramebufferEXT), TABLE_ENTRY(BindRenderbufferEXT), TABLE_ENTRY(CheckFramebufferStatusEXT), @@ -6638,9 +6670,9 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(IsFramebufferEXT), TABLE_ENTRY(IsRenderbufferEXT), TABLE_ENTRY(RenderbufferStorageEXT), - TABLE_ENTRY(_dispatch_stub_783), - TABLE_ENTRY(_dispatch_stub_784), TABLE_ENTRY(_dispatch_stub_785), + TABLE_ENTRY(_dispatch_stub_786), + TABLE_ENTRY(_dispatch_stub_787), TABLE_ENTRY(FramebufferTextureLayerEXT), TABLE_ENTRY(ColorMaskIndexedEXT), TABLE_ENTRY(DisableIndexedEXT), @@ -6658,16 +6690,16 @@ _glapi_proc DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(GetTransformFeedbackVaryingEXT), TABLE_ENTRY(TransformFeedbackVaryingsEXT), TABLE_ENTRY(ProvokingVertexEXT), - TABLE_ENTRY(_dispatch_stub_803), - TABLE_ENTRY(_dispatch_stub_804), + TABLE_ENTRY(_dispatch_stub_805), + TABLE_ENTRY(_dispatch_stub_806), TABLE_ENTRY(GetObjectParameterivAPPLE), TABLE_ENTRY(ObjectPurgeableAPPLE), TABLE_ENTRY(ObjectUnpurgeableAPPLE), - TABLE_ENTRY(_dispatch_stub_808), - TABLE_ENTRY(_dispatch_stub_809), TABLE_ENTRY(_dispatch_stub_810), TABLE_ENTRY(_dispatch_stub_811), TABLE_ENTRY(_dispatch_stub_812), + TABLE_ENTRY(_dispatch_stub_813), + TABLE_ENTRY(_dispatch_stub_814), TABLE_ENTRY(EGLImageTargetRenderbufferStorageOES), TABLE_ENTRY(EGLImageTargetTexture2DOES), /* A whole bunch of no-op functions. These might be called @@ -6856,6 +6888,10 @@ _glapi_proc UNUSED_TABLE_NAME[] = { TABLE_ENTRY(MultiTexCoord4s), TABLE_ENTRY(MultiTexCoord4sv), TABLE_ENTRY(_dispatch_stub_423), + TABLE_ENTRY(DrawArraysInstancedARB), + TABLE_ENTRY(DrawArraysInstancedEXT), + TABLE_ENTRY(DrawElementsInstancedARB), + TABLE_ENTRY(DrawElementsInstancedEXT), TABLE_ENTRY(LoadTransposeMatrixd), TABLE_ENTRY(LoadTransposeMatrixf), TABLE_ENTRY(MultTransposeMatrixd), @@ -6970,10 +7006,10 @@ _glapi_proc UNUSED_TABLE_NAME[] = { TABLE_ENTRY(RenderbufferStorageMultisampleEXT), TABLE_ENTRY(PointParameterf), TABLE_ENTRY(PointParameterfARB), - TABLE_ENTRY(_dispatch_stub_592), + TABLE_ENTRY(_dispatch_stub_594), TABLE_ENTRY(PointParameterfv), TABLE_ENTRY(PointParameterfvARB), - TABLE_ENTRY(_dispatch_stub_593), + TABLE_ENTRY(_dispatch_stub_595), TABLE_ENTRY(SecondaryColor3b), TABLE_ENTRY(SecondaryColor3bv), TABLE_ENTRY(SecondaryColor3d), @@ -6999,7 +7035,7 @@ _glapi_proc UNUSED_TABLE_NAME[] = { TABLE_ENTRY(FogCoordf), TABLE_ENTRY(FogCoordfv), TABLE_ENTRY(BlendFuncSeparate), - TABLE_ENTRY(_dispatch_stub_623), + TABLE_ENTRY(_dispatch_stub_625), TABLE_ENTRY(WindowPos2d), TABLE_ENTRY(WindowPos2dARB), TABLE_ENTRY(WindowPos2dv), diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h index bdeafb4df5..8eb04ee678 100644 --- a/src/mesa/glapi/glprocs.h +++ b/src/mesa/glapi/glprocs.h @@ -482,6 +482,8 @@ static const char gl_string_table[] = "glUniformMatrix3x4fv\0" "glUniformMatrix4x2fv\0" "glUniformMatrix4x3fv\0" + "glDrawArraysInstanced\0" + "glDrawElementsInstanced\0" "glLoadTransposeMatrixdARB\0" "glLoadTransposeMatrixfARB\0" "glMultTransposeMatrixdARB\0" @@ -959,6 +961,10 @@ static const char gl_string_table[] = "glMultiTexCoord4s\0" "glMultiTexCoord4sv\0" "glStencilOpSeparateATI\0" + "glDrawArraysInstancedARB\0" + "glDrawArraysInstancedEXT\0" + "glDrawElementsInstancedARB\0" + "glDrawElementsInstancedEXT\0" "glLoadTransposeMatrixd\0" "glLoadTransposeMatrixf\0" "glMultTransposeMatrixd\0" @@ -1192,19 +1198,17 @@ static const char gl_string_table[] = #define gl_dispatch_stub_364 mgl_dispatch_stub_364 #define gl_dispatch_stub_365 mgl_dispatch_stub_365 #define gl_dispatch_stub_366 mgl_dispatch_stub_366 -#define gl_dispatch_stub_578 mgl_dispatch_stub_578 -#define gl_dispatch_stub_579 mgl_dispatch_stub_579 #define gl_dispatch_stub_580 mgl_dispatch_stub_580 #define gl_dispatch_stub_581 mgl_dispatch_stub_581 #define gl_dispatch_stub_582 mgl_dispatch_stub_582 #define gl_dispatch_stub_583 mgl_dispatch_stub_583 #define gl_dispatch_stub_584 mgl_dispatch_stub_584 #define gl_dispatch_stub_585 mgl_dispatch_stub_585 -#define gl_dispatch_stub_596 mgl_dispatch_stub_596 -#define gl_dispatch_stub_597 mgl_dispatch_stub_597 -#define gl_dispatch_stub_622 mgl_dispatch_stub_622 -#define gl_dispatch_stub_664 mgl_dispatch_stub_664 -#define gl_dispatch_stub_665 mgl_dispatch_stub_665 +#define gl_dispatch_stub_586 mgl_dispatch_stub_586 +#define gl_dispatch_stub_587 mgl_dispatch_stub_587 +#define gl_dispatch_stub_598 mgl_dispatch_stub_598 +#define gl_dispatch_stub_599 mgl_dispatch_stub_599 +#define gl_dispatch_stub_624 mgl_dispatch_stub_624 #define gl_dispatch_stub_666 mgl_dispatch_stub_666 #define gl_dispatch_stub_667 mgl_dispatch_stub_667 #define gl_dispatch_stub_668 mgl_dispatch_stub_668 @@ -1212,23 +1216,25 @@ static const char gl_string_table[] = #define gl_dispatch_stub_670 mgl_dispatch_stub_670 #define gl_dispatch_stub_671 mgl_dispatch_stub_671 #define gl_dispatch_stub_672 mgl_dispatch_stub_672 -#define gl_dispatch_stub_753 mgl_dispatch_stub_753 -#define gl_dispatch_stub_754 mgl_dispatch_stub_754 +#define gl_dispatch_stub_673 mgl_dispatch_stub_673 +#define gl_dispatch_stub_674 mgl_dispatch_stub_674 #define gl_dispatch_stub_755 mgl_dispatch_stub_755 #define gl_dispatch_stub_756 mgl_dispatch_stub_756 #define gl_dispatch_stub_757 mgl_dispatch_stub_757 -#define gl_dispatch_stub_764 mgl_dispatch_stub_764 -#define gl_dispatch_stub_765 mgl_dispatch_stub_765 -#define gl_dispatch_stub_783 mgl_dispatch_stub_783 -#define gl_dispatch_stub_784 mgl_dispatch_stub_784 +#define gl_dispatch_stub_758 mgl_dispatch_stub_758 +#define gl_dispatch_stub_759 mgl_dispatch_stub_759 +#define gl_dispatch_stub_766 mgl_dispatch_stub_766 +#define gl_dispatch_stub_767 mgl_dispatch_stub_767 #define gl_dispatch_stub_785 mgl_dispatch_stub_785 -#define gl_dispatch_stub_803 mgl_dispatch_stub_803 -#define gl_dispatch_stub_804 mgl_dispatch_stub_804 -#define gl_dispatch_stub_808 mgl_dispatch_stub_808 -#define gl_dispatch_stub_809 mgl_dispatch_stub_809 +#define gl_dispatch_stub_786 mgl_dispatch_stub_786 +#define gl_dispatch_stub_787 mgl_dispatch_stub_787 +#define gl_dispatch_stub_805 mgl_dispatch_stub_805 +#define gl_dispatch_stub_806 mgl_dispatch_stub_806 #define gl_dispatch_stub_810 mgl_dispatch_stub_810 #define gl_dispatch_stub_811 mgl_dispatch_stub_811 #define gl_dispatch_stub_812 mgl_dispatch_stub_812 +#define gl_dispatch_stub_813 mgl_dispatch_stub_813 +#define gl_dispatch_stub_814 mgl_dispatch_stub_814 #endif /* USE_MGL_NAMESPACE */ @@ -1246,43 +1252,43 @@ void GLAPIENTRY gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params void GLAPIENTRY gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); void GLAPIENTRY gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params); void GLAPIENTRY gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params); -void GLAPIENTRY gl_dispatch_stub_578(GLenum pname, GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_579(GLenum pname, GLint * params); -void GLAPIENTRY gl_dispatch_stub_580(GLenum pname, GLfloat param); -void GLAPIENTRY gl_dispatch_stub_581(GLenum pname, const GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_582(GLenum pname, GLint param); -void GLAPIENTRY gl_dispatch_stub_583(GLenum pname, const GLint * params); -void GLAPIENTRY gl_dispatch_stub_584(GLclampf value, GLboolean invert); -void GLAPIENTRY gl_dispatch_stub_585(GLenum pattern); -void GLAPIENTRY gl_dispatch_stub_596(GLenum pname, GLdouble * params); -void GLAPIENTRY gl_dispatch_stub_597(GLenum pname, GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_622(GLenum mode); -void GLAPIENTRY gl_dispatch_stub_664(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); -void GLAPIENTRY gl_dispatch_stub_665(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); -void GLAPIENTRY gl_dispatch_stub_666(GLsizei n, const GLuint * fences); -void GLAPIENTRY gl_dispatch_stub_667(GLuint fence); -void GLAPIENTRY gl_dispatch_stub_668(GLsizei n, GLuint * fences); -void GLAPIENTRY gl_dispatch_stub_669(GLuint fence, GLenum pname, GLint * params); -GLboolean GLAPIENTRY gl_dispatch_stub_670(GLuint fence); -void GLAPIENTRY gl_dispatch_stub_671(GLuint fence, GLenum condition); +void GLAPIENTRY gl_dispatch_stub_580(GLenum pname, GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_581(GLenum pname, GLint * params); +void GLAPIENTRY gl_dispatch_stub_582(GLenum pname, GLfloat param); +void GLAPIENTRY gl_dispatch_stub_583(GLenum pname, const GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_584(GLenum pname, GLint param); +void GLAPIENTRY gl_dispatch_stub_585(GLenum pname, const GLint * params); +void GLAPIENTRY gl_dispatch_stub_586(GLclampf value, GLboolean invert); +void GLAPIENTRY gl_dispatch_stub_587(GLenum pattern); +void GLAPIENTRY gl_dispatch_stub_598(GLenum pname, GLdouble * params); +void GLAPIENTRY gl_dispatch_stub_599(GLenum pname, GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_624(GLenum mode); +void GLAPIENTRY gl_dispatch_stub_666(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); +void GLAPIENTRY gl_dispatch_stub_667(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); +void GLAPIENTRY gl_dispatch_stub_668(GLsizei n, const GLuint * fences); +void GLAPIENTRY gl_dispatch_stub_669(GLuint fence); +void GLAPIENTRY gl_dispatch_stub_670(GLsizei n, GLuint * fences); +void GLAPIENTRY gl_dispatch_stub_671(GLuint fence, GLenum pname, GLint * params); GLboolean GLAPIENTRY gl_dispatch_stub_672(GLuint fence); -void GLAPIENTRY gl_dispatch_stub_753(GLenum face); -void GLAPIENTRY gl_dispatch_stub_754(GLuint array); -void GLAPIENTRY gl_dispatch_stub_755(GLsizei n, const GLuint * arrays); -void GLAPIENTRY gl_dispatch_stub_756(GLsizei n, GLuint * arrays); -GLboolean GLAPIENTRY gl_dispatch_stub_757(GLuint array); -void GLAPIENTRY gl_dispatch_stub_764(GLclampd zmin, GLclampd zmax); -void GLAPIENTRY gl_dispatch_stub_765(GLenum modeRGB, GLenum modeA); -void GLAPIENTRY gl_dispatch_stub_783(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -void GLAPIENTRY gl_dispatch_stub_784(GLenum target, GLenum pname, GLint param); -void GLAPIENTRY gl_dispatch_stub_785(GLenum target, GLintptr offset, GLsizeiptr size); -void GLAPIENTRY gl_dispatch_stub_803(GLenum target, GLenum pname, GLvoid ** params); -void GLAPIENTRY gl_dispatch_stub_804(GLenum target, GLsizei length, GLvoid * pointer); -void GLAPIENTRY gl_dispatch_stub_808(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -void GLAPIENTRY gl_dispatch_stub_809(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_810(GLenum target, GLuint index, GLsizei count, const GLfloat * params); -void GLAPIENTRY gl_dispatch_stub_811(GLuint id, GLenum pname, GLint64EXT * params); -void GLAPIENTRY gl_dispatch_stub_812(GLuint id, GLenum pname, GLuint64EXT * params); +void GLAPIENTRY gl_dispatch_stub_673(GLuint fence, GLenum condition); +GLboolean GLAPIENTRY gl_dispatch_stub_674(GLuint fence); +void GLAPIENTRY gl_dispatch_stub_755(GLenum face); +void GLAPIENTRY gl_dispatch_stub_756(GLuint array); +void GLAPIENTRY gl_dispatch_stub_757(GLsizei n, const GLuint * arrays); +void GLAPIENTRY gl_dispatch_stub_758(GLsizei n, GLuint * arrays); +GLboolean GLAPIENTRY gl_dispatch_stub_759(GLuint array); +void GLAPIENTRY gl_dispatch_stub_766(GLclampd zmin, GLclampd zmax); +void GLAPIENTRY gl_dispatch_stub_767(GLenum modeRGB, GLenum modeA); +void GLAPIENTRY gl_dispatch_stub_785(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void GLAPIENTRY gl_dispatch_stub_786(GLenum target, GLenum pname, GLint param); +void GLAPIENTRY gl_dispatch_stub_787(GLenum target, GLintptr offset, GLsizeiptr size); +void GLAPIENTRY gl_dispatch_stub_805(GLenum target, GLenum pname, GLvoid ** params); +void GLAPIENTRY gl_dispatch_stub_806(GLenum target, GLsizei length, GLvoid * pointer); +void GLAPIENTRY gl_dispatch_stub_810(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +void GLAPIENTRY gl_dispatch_stub_811(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_812(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +void GLAPIENTRY gl_dispatch_stub_813(GLuint id, GLenum pname, GLint64EXT * params); +void GLAPIENTRY gl_dispatch_stub_814(GLuint id, GLenum pname, GLuint64EXT * params); #endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */ static const glprocs_table_t static_functions[] = { @@ -1716,699 +1722,705 @@ static const glprocs_table_t static_functions[] = { NAME_FUNC_OFFSET( 6100, glUniformMatrix3x4fv, glUniformMatrix3x4fv, NULL, _gloffset_UniformMatrix3x4fv), NAME_FUNC_OFFSET( 6121, glUniformMatrix4x2fv, glUniformMatrix4x2fv, NULL, _gloffset_UniformMatrix4x2fv), NAME_FUNC_OFFSET( 6142, glUniformMatrix4x3fv, glUniformMatrix4x3fv, NULL, _gloffset_UniformMatrix4x3fv), - NAME_FUNC_OFFSET( 6163, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), - NAME_FUNC_OFFSET( 6189, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), - NAME_FUNC_OFFSET( 6215, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), - NAME_FUNC_OFFSET( 6241, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), - NAME_FUNC_OFFSET( 6267, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), - NAME_FUNC_OFFSET( 6287, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), - NAME_FUNC_OFFSET( 6313, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), - NAME_FUNC_OFFSET( 6339, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), - NAME_FUNC_OFFSET( 6365, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), - NAME_FUNC_OFFSET( 6394, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), - NAME_FUNC_OFFSET( 6423, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), - NAME_FUNC_OFFSET( 6452, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), - NAME_FUNC_OFFSET( 6479, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), - NAME_FUNC_OFFSET( 6509, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), - NAME_FUNC_OFFSET( 6538, glGetProgramEnvParameterdvARB, glGetProgramEnvParameterdvARB, NULL, _gloffset_GetProgramEnvParameterdvARB), - NAME_FUNC_OFFSET( 6568, glGetProgramEnvParameterfvARB, glGetProgramEnvParameterfvARB, NULL, _gloffset_GetProgramEnvParameterfvARB), - NAME_FUNC_OFFSET( 6598, glGetProgramLocalParameterdvARB, glGetProgramLocalParameterdvARB, NULL, _gloffset_GetProgramLocalParameterdvARB), - NAME_FUNC_OFFSET( 6630, glGetProgramLocalParameterfvARB, glGetProgramLocalParameterfvARB, NULL, _gloffset_GetProgramLocalParameterfvARB), - NAME_FUNC_OFFSET( 6662, glGetProgramStringARB, glGetProgramStringARB, NULL, _gloffset_GetProgramStringARB), - NAME_FUNC_OFFSET( 6684, glGetProgramivARB, glGetProgramivARB, NULL, _gloffset_GetProgramivARB), - NAME_FUNC_OFFSET( 6702, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), - NAME_FUNC_OFFSET( 6725, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), - NAME_FUNC_OFFSET( 6748, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), - NAME_FUNC_OFFSET( 6771, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), - NAME_FUNC_OFFSET( 6798, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), - NAME_FUNC_OFFSET( 6826, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), - NAME_FUNC_OFFSET( 6853, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), - NAME_FUNC_OFFSET( 6881, glProgramLocalParameter4dARB, glProgramLocalParameter4dARB, NULL, _gloffset_ProgramLocalParameter4dARB), - NAME_FUNC_OFFSET( 6910, glProgramLocalParameter4dvARB, glProgramLocalParameter4dvARB, NULL, _gloffset_ProgramLocalParameter4dvARB), - NAME_FUNC_OFFSET( 6940, glProgramLocalParameter4fARB, glProgramLocalParameter4fARB, NULL, _gloffset_ProgramLocalParameter4fARB), - NAME_FUNC_OFFSET( 6969, glProgramLocalParameter4fvARB, glProgramLocalParameter4fvARB, NULL, _gloffset_ProgramLocalParameter4fvARB), - NAME_FUNC_OFFSET( 6999, glProgramStringARB, glProgramStringARB, NULL, _gloffset_ProgramStringARB), - NAME_FUNC_OFFSET( 7018, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), - NAME_FUNC_OFFSET( 7038, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), - NAME_FUNC_OFFSET( 7059, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), - NAME_FUNC_OFFSET( 7079, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), - NAME_FUNC_OFFSET( 7100, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), - NAME_FUNC_OFFSET( 7120, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), - NAME_FUNC_OFFSET( 7141, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), - NAME_FUNC_OFFSET( 7161, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), - NAME_FUNC_OFFSET( 7182, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), - NAME_FUNC_OFFSET( 7202, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), - NAME_FUNC_OFFSET( 7223, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), - NAME_FUNC_OFFSET( 7243, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), - NAME_FUNC_OFFSET( 7264, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), - NAME_FUNC_OFFSET( 7284, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), - NAME_FUNC_OFFSET( 7305, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), - NAME_FUNC_OFFSET( 7325, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), - NAME_FUNC_OFFSET( 7346, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), - NAME_FUNC_OFFSET( 7366, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), - NAME_FUNC_OFFSET( 7387, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), - NAME_FUNC_OFFSET( 7409, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), - NAME_FUNC_OFFSET( 7431, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), - NAME_FUNC_OFFSET( 7453, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), - NAME_FUNC_OFFSET( 7475, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), - NAME_FUNC_OFFSET( 7498, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), - NAME_FUNC_OFFSET( 7521, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), - NAME_FUNC_OFFSET( 7544, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), - NAME_FUNC_OFFSET( 7565, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), - NAME_FUNC_OFFSET( 7585, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), - NAME_FUNC_OFFSET( 7606, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), - NAME_FUNC_OFFSET( 7626, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), - NAME_FUNC_OFFSET( 7647, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), - NAME_FUNC_OFFSET( 7668, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), - NAME_FUNC_OFFSET( 7688, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), - NAME_FUNC_OFFSET( 7709, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), - NAME_FUNC_OFFSET( 7731, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), - NAME_FUNC_OFFSET( 7753, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), - NAME_FUNC_OFFSET( 7775, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), - NAME_FUNC_OFFSET( 7800, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), - NAME_FUNC_OFFSET( 7816, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), - NAME_FUNC_OFFSET( 7832, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), - NAME_FUNC_OFFSET( 7851, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), - NAME_FUNC_OFFSET( 7870, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), - NAME_FUNC_OFFSET( 7886, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), - NAME_FUNC_OFFSET( 7912, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), - NAME_FUNC_OFFSET( 7935, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), - NAME_FUNC_OFFSET( 7957, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), - NAME_FUNC_OFFSET( 7971, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), - NAME_FUNC_OFFSET( 7986, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), - NAME_FUNC_OFFSET( 8003, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), - NAME_FUNC_OFFSET( 8019, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), - NAME_FUNC_OFFSET( 8038, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), - NAME_FUNC_OFFSET( 8052, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), - NAME_FUNC_OFFSET( 8068, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), - NAME_FUNC_OFFSET( 8090, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), - NAME_FUNC_OFFSET( 8113, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), - NAME_FUNC_OFFSET( 8129, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), - NAME_FUNC_OFFSET( 8142, glAttachObjectARB, glAttachObjectARB, NULL, _gloffset_AttachObjectARB), - NAME_FUNC_OFFSET( 8160, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), - NAME_FUNC_OFFSET( 8179, glCreateProgramObjectARB, glCreateProgramObjectARB, NULL, _gloffset_CreateProgramObjectARB), - NAME_FUNC_OFFSET( 8204, glCreateShaderObjectARB, glCreateShaderObjectARB, NULL, _gloffset_CreateShaderObjectARB), - NAME_FUNC_OFFSET( 8228, glDeleteObjectARB, glDeleteObjectARB, NULL, _gloffset_DeleteObjectARB), - NAME_FUNC_OFFSET( 8246, glDetachObjectARB, glDetachObjectARB, NULL, _gloffset_DetachObjectARB), - NAME_FUNC_OFFSET( 8264, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), - NAME_FUNC_OFFSET( 8286, glGetAttachedObjectsARB, glGetAttachedObjectsARB, NULL, _gloffset_GetAttachedObjectsARB), - NAME_FUNC_OFFSET( 8310, glGetHandleARB, glGetHandleARB, NULL, _gloffset_GetHandleARB), - NAME_FUNC_OFFSET( 8325, glGetInfoLogARB, glGetInfoLogARB, NULL, _gloffset_GetInfoLogARB), - NAME_FUNC_OFFSET( 8341, glGetObjectParameterfvARB, glGetObjectParameterfvARB, NULL, _gloffset_GetObjectParameterfvARB), - NAME_FUNC_OFFSET( 8367, glGetObjectParameterivARB, glGetObjectParameterivARB, NULL, _gloffset_GetObjectParameterivARB), - NAME_FUNC_OFFSET( 8393, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), - NAME_FUNC_OFFSET( 8414, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), - NAME_FUNC_OFFSET( 8438, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), - NAME_FUNC_OFFSET( 8456, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), - NAME_FUNC_OFFSET( 8474, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), - NAME_FUNC_OFFSET( 8491, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), - NAME_FUNC_OFFSET( 8509, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), - NAME_FUNC_OFFSET( 8524, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), - NAME_FUNC_OFFSET( 8540, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), - NAME_FUNC_OFFSET( 8555, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), - NAME_FUNC_OFFSET( 8571, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), - NAME_FUNC_OFFSET( 8586, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), - NAME_FUNC_OFFSET( 8602, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), - NAME_FUNC_OFFSET( 8617, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), - NAME_FUNC_OFFSET( 8633, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), - NAME_FUNC_OFFSET( 8648, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), - NAME_FUNC_OFFSET( 8664, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), - NAME_FUNC_OFFSET( 8679, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), - NAME_FUNC_OFFSET( 8695, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), - NAME_FUNC_OFFSET( 8710, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), - NAME_FUNC_OFFSET( 8726, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), - NAME_FUNC_OFFSET( 8741, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), - NAME_FUNC_OFFSET( 8757, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), - NAME_FUNC_OFFSET( 8779, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), - NAME_FUNC_OFFSET( 8801, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), - NAME_FUNC_OFFSET( 8823, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), - NAME_FUNC_OFFSET( 8845, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), - NAME_FUNC_OFFSET( 8866, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), - NAME_FUNC_OFFSET( 8890, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), - NAME_FUNC_OFFSET( 8911, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), - NAME_FUNC_OFFSET( 8934, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), - NAME_FUNC_OFFSET( 8951, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), - NAME_FUNC_OFFSET( 8984, glFlushMappedBufferRange, glFlushMappedBufferRange, NULL, _gloffset_FlushMappedBufferRange), - NAME_FUNC_OFFSET( 9009, glMapBufferRange, glMapBufferRange, NULL, _gloffset_MapBufferRange), - NAME_FUNC_OFFSET( 9026, glBindVertexArray, glBindVertexArray, NULL, _gloffset_BindVertexArray), - NAME_FUNC_OFFSET( 9044, glGenVertexArrays, glGenVertexArrays, NULL, _gloffset_GenVertexArrays), - NAME_FUNC_OFFSET( 9062, glCopyBufferSubData, glCopyBufferSubData, NULL, _gloffset_CopyBufferSubData), - NAME_FUNC_OFFSET( 9082, glClientWaitSync, glClientWaitSync, NULL, _gloffset_ClientWaitSync), - NAME_FUNC_OFFSET( 9099, glDeleteSync, glDeleteSync, NULL, _gloffset_DeleteSync), - NAME_FUNC_OFFSET( 9112, glFenceSync, glFenceSync, NULL, _gloffset_FenceSync), - NAME_FUNC_OFFSET( 9124, glGetInteger64v, glGetInteger64v, NULL, _gloffset_GetInteger64v), - NAME_FUNC_OFFSET( 9140, glGetSynciv, glGetSynciv, NULL, _gloffset_GetSynciv), - NAME_FUNC_OFFSET( 9152, glIsSync, glIsSync, NULL, _gloffset_IsSync), - NAME_FUNC_OFFSET( 9161, glWaitSync, glWaitSync, NULL, _gloffset_WaitSync), - NAME_FUNC_OFFSET( 9172, glDrawElementsBaseVertex, glDrawElementsBaseVertex, NULL, _gloffset_DrawElementsBaseVertex), - NAME_FUNC_OFFSET( 9197, glDrawRangeElementsBaseVertex, glDrawRangeElementsBaseVertex, NULL, _gloffset_DrawRangeElementsBaseVertex), - NAME_FUNC_OFFSET( 9227, glMultiDrawElementsBaseVertex, glMultiDrawElementsBaseVertex, NULL, _gloffset_MultiDrawElementsBaseVertex), - NAME_FUNC_OFFSET( 9257, glPolygonOffsetEXT, glPolygonOffsetEXT, NULL, _gloffset_PolygonOffsetEXT), - NAME_FUNC_OFFSET( 9276, gl_dispatch_stub_578, gl_dispatch_stub_578, NULL, _gloffset_GetPixelTexGenParameterfvSGIS), - NAME_FUNC_OFFSET( 9308, gl_dispatch_stub_579, gl_dispatch_stub_579, NULL, _gloffset_GetPixelTexGenParameterivSGIS), - NAME_FUNC_OFFSET( 9340, gl_dispatch_stub_580, gl_dispatch_stub_580, NULL, _gloffset_PixelTexGenParameterfSGIS), - NAME_FUNC_OFFSET( 9368, gl_dispatch_stub_581, gl_dispatch_stub_581, NULL, _gloffset_PixelTexGenParameterfvSGIS), - NAME_FUNC_OFFSET( 9397, gl_dispatch_stub_582, gl_dispatch_stub_582, NULL, _gloffset_PixelTexGenParameteriSGIS), - NAME_FUNC_OFFSET( 9425, gl_dispatch_stub_583, gl_dispatch_stub_583, NULL, _gloffset_PixelTexGenParameterivSGIS), - NAME_FUNC_OFFSET( 9454, gl_dispatch_stub_584, gl_dispatch_stub_584, NULL, _gloffset_SampleMaskSGIS), - NAME_FUNC_OFFSET( 9471, gl_dispatch_stub_585, gl_dispatch_stub_585, NULL, _gloffset_SamplePatternSGIS), - NAME_FUNC_OFFSET( 9491, glColorPointerEXT, glColorPointerEXT, NULL, _gloffset_ColorPointerEXT), - NAME_FUNC_OFFSET( 9509, glEdgeFlagPointerEXT, glEdgeFlagPointerEXT, NULL, _gloffset_EdgeFlagPointerEXT), - NAME_FUNC_OFFSET( 9530, glIndexPointerEXT, glIndexPointerEXT, NULL, _gloffset_IndexPointerEXT), - NAME_FUNC_OFFSET( 9548, glNormalPointerEXT, glNormalPointerEXT, NULL, _gloffset_NormalPointerEXT), - NAME_FUNC_OFFSET( 9567, glTexCoordPointerEXT, glTexCoordPointerEXT, NULL, _gloffset_TexCoordPointerEXT), - NAME_FUNC_OFFSET( 9588, glVertexPointerEXT, glVertexPointerEXT, NULL, _gloffset_VertexPointerEXT), - NAME_FUNC_OFFSET( 9607, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET( 9628, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET( 9650, glLockArraysEXT, glLockArraysEXT, NULL, _gloffset_LockArraysEXT), - NAME_FUNC_OFFSET( 9666, glUnlockArraysEXT, glUnlockArraysEXT, NULL, _gloffset_UnlockArraysEXT), - NAME_FUNC_OFFSET( 9684, gl_dispatch_stub_596, gl_dispatch_stub_596, NULL, _gloffset_CullParameterdvEXT), - NAME_FUNC_OFFSET( 9705, gl_dispatch_stub_597, gl_dispatch_stub_597, NULL, _gloffset_CullParameterfvEXT), - NAME_FUNC_OFFSET( 9726, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), - NAME_FUNC_OFFSET( 9748, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), - NAME_FUNC_OFFSET( 9771, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), - NAME_FUNC_OFFSET( 9793, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), - NAME_FUNC_OFFSET( 9816, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), - NAME_FUNC_OFFSET( 9838, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), - NAME_FUNC_OFFSET( 9861, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), - NAME_FUNC_OFFSET( 9883, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), - NAME_FUNC_OFFSET( 9906, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), - NAME_FUNC_OFFSET( 9928, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), - NAME_FUNC_OFFSET( 9951, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), - NAME_FUNC_OFFSET( 9974, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), - NAME_FUNC_OFFSET( 9998, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), - NAME_FUNC_OFFSET(10021, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), - NAME_FUNC_OFFSET(10045, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), - NAME_FUNC_OFFSET(10068, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), - NAME_FUNC_OFFSET(10092, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), - NAME_FUNC_OFFSET(10119, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), - NAME_FUNC_OFFSET(10140, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), - NAME_FUNC_OFFSET(10163, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), - NAME_FUNC_OFFSET(10184, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), - NAME_FUNC_OFFSET(10199, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), - NAME_FUNC_OFFSET(10215, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), - NAME_FUNC_OFFSET(10230, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), - NAME_FUNC_OFFSET(10246, gl_dispatch_stub_622, gl_dispatch_stub_622, NULL, _gloffset_PixelTexGenSGIX), - NAME_FUNC_OFFSET(10264, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), - NAME_FUNC_OFFSET(10287, glFlushVertexArrayRangeNV, glFlushVertexArrayRangeNV, NULL, _gloffset_FlushVertexArrayRangeNV), - NAME_FUNC_OFFSET(10313, glVertexArrayRangeNV, glVertexArrayRangeNV, NULL, _gloffset_VertexArrayRangeNV), - NAME_FUNC_OFFSET(10334, glCombinerInputNV, glCombinerInputNV, NULL, _gloffset_CombinerInputNV), - NAME_FUNC_OFFSET(10352, glCombinerOutputNV, glCombinerOutputNV, NULL, _gloffset_CombinerOutputNV), - NAME_FUNC_OFFSET(10371, glCombinerParameterfNV, glCombinerParameterfNV, NULL, _gloffset_CombinerParameterfNV), - NAME_FUNC_OFFSET(10394, glCombinerParameterfvNV, glCombinerParameterfvNV, NULL, _gloffset_CombinerParameterfvNV), - NAME_FUNC_OFFSET(10418, glCombinerParameteriNV, glCombinerParameteriNV, NULL, _gloffset_CombinerParameteriNV), - NAME_FUNC_OFFSET(10441, glCombinerParameterivNV, glCombinerParameterivNV, NULL, _gloffset_CombinerParameterivNV), - NAME_FUNC_OFFSET(10465, glFinalCombinerInputNV, glFinalCombinerInputNV, NULL, _gloffset_FinalCombinerInputNV), - NAME_FUNC_OFFSET(10488, glGetCombinerInputParameterfvNV, glGetCombinerInputParameterfvNV, NULL, _gloffset_GetCombinerInputParameterfvNV), - NAME_FUNC_OFFSET(10520, glGetCombinerInputParameterivNV, glGetCombinerInputParameterivNV, NULL, _gloffset_GetCombinerInputParameterivNV), - NAME_FUNC_OFFSET(10552, glGetCombinerOutputParameterfvNV, glGetCombinerOutputParameterfvNV, NULL, _gloffset_GetCombinerOutputParameterfvNV), - NAME_FUNC_OFFSET(10585, glGetCombinerOutputParameterivNV, glGetCombinerOutputParameterivNV, NULL, _gloffset_GetCombinerOutputParameterivNV), - NAME_FUNC_OFFSET(10618, glGetFinalCombinerInputParameterfvNV, glGetFinalCombinerInputParameterfvNV, NULL, _gloffset_GetFinalCombinerInputParameterfvNV), - NAME_FUNC_OFFSET(10655, glGetFinalCombinerInputParameterivNV, glGetFinalCombinerInputParameterivNV, NULL, _gloffset_GetFinalCombinerInputParameterivNV), - NAME_FUNC_OFFSET(10692, glResizeBuffersMESA, glResizeBuffersMESA, NULL, _gloffset_ResizeBuffersMESA), - NAME_FUNC_OFFSET(10712, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), - NAME_FUNC_OFFSET(10730, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), - NAME_FUNC_OFFSET(10749, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), - NAME_FUNC_OFFSET(10767, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), - NAME_FUNC_OFFSET(10786, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), - NAME_FUNC_OFFSET(10804, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), - NAME_FUNC_OFFSET(10823, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), - NAME_FUNC_OFFSET(10841, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), - NAME_FUNC_OFFSET(10860, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), - NAME_FUNC_OFFSET(10878, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), - NAME_FUNC_OFFSET(10897, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), - NAME_FUNC_OFFSET(10915, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), - NAME_FUNC_OFFSET(10934, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), - NAME_FUNC_OFFSET(10952, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), - NAME_FUNC_OFFSET(10971, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), - NAME_FUNC_OFFSET(10989, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), - NAME_FUNC_OFFSET(11008, glWindowPos4dMESA, glWindowPos4dMESA, NULL, _gloffset_WindowPos4dMESA), - NAME_FUNC_OFFSET(11026, glWindowPos4dvMESA, glWindowPos4dvMESA, NULL, _gloffset_WindowPos4dvMESA), - NAME_FUNC_OFFSET(11045, glWindowPos4fMESA, glWindowPos4fMESA, NULL, _gloffset_WindowPos4fMESA), - NAME_FUNC_OFFSET(11063, glWindowPos4fvMESA, glWindowPos4fvMESA, NULL, _gloffset_WindowPos4fvMESA), - NAME_FUNC_OFFSET(11082, glWindowPos4iMESA, glWindowPos4iMESA, NULL, _gloffset_WindowPos4iMESA), - NAME_FUNC_OFFSET(11100, glWindowPos4ivMESA, glWindowPos4ivMESA, NULL, _gloffset_WindowPos4ivMESA), - NAME_FUNC_OFFSET(11119, glWindowPos4sMESA, glWindowPos4sMESA, NULL, _gloffset_WindowPos4sMESA), - NAME_FUNC_OFFSET(11137, glWindowPos4svMESA, glWindowPos4svMESA, NULL, _gloffset_WindowPos4svMESA), - NAME_FUNC_OFFSET(11156, gl_dispatch_stub_664, gl_dispatch_stub_664, NULL, _gloffset_MultiModeDrawArraysIBM), - NAME_FUNC_OFFSET(11181, gl_dispatch_stub_665, gl_dispatch_stub_665, NULL, _gloffset_MultiModeDrawElementsIBM), - NAME_FUNC_OFFSET(11208, gl_dispatch_stub_666, gl_dispatch_stub_666, NULL, _gloffset_DeleteFencesNV), - NAME_FUNC_OFFSET(11225, gl_dispatch_stub_667, gl_dispatch_stub_667, NULL, _gloffset_FinishFenceNV), - NAME_FUNC_OFFSET(11241, gl_dispatch_stub_668, gl_dispatch_stub_668, NULL, _gloffset_GenFencesNV), - NAME_FUNC_OFFSET(11255, gl_dispatch_stub_669, gl_dispatch_stub_669, NULL, _gloffset_GetFenceivNV), - NAME_FUNC_OFFSET(11270, gl_dispatch_stub_670, gl_dispatch_stub_670, NULL, _gloffset_IsFenceNV), - NAME_FUNC_OFFSET(11282, gl_dispatch_stub_671, gl_dispatch_stub_671, NULL, _gloffset_SetFenceNV), - NAME_FUNC_OFFSET(11295, gl_dispatch_stub_672, gl_dispatch_stub_672, NULL, _gloffset_TestFenceNV), - NAME_FUNC_OFFSET(11309, glAreProgramsResidentNV, glAreProgramsResidentNV, NULL, _gloffset_AreProgramsResidentNV), - NAME_FUNC_OFFSET(11333, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), - NAME_FUNC_OFFSET(11349, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), - NAME_FUNC_OFFSET(11368, glExecuteProgramNV, glExecuteProgramNV, NULL, _gloffset_ExecuteProgramNV), - NAME_FUNC_OFFSET(11387, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), - NAME_FUNC_OFFSET(11403, glGetProgramParameterdvNV, glGetProgramParameterdvNV, NULL, _gloffset_GetProgramParameterdvNV), - NAME_FUNC_OFFSET(11429, glGetProgramParameterfvNV, glGetProgramParameterfvNV, NULL, _gloffset_GetProgramParameterfvNV), - NAME_FUNC_OFFSET(11455, glGetProgramStringNV, glGetProgramStringNV, NULL, _gloffset_GetProgramStringNV), - NAME_FUNC_OFFSET(11476, glGetProgramivNV, glGetProgramivNV, NULL, _gloffset_GetProgramivNV), - NAME_FUNC_OFFSET(11493, glGetTrackMatrixivNV, glGetTrackMatrixivNV, NULL, _gloffset_GetTrackMatrixivNV), - NAME_FUNC_OFFSET(11514, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), - NAME_FUNC_OFFSET(11542, glGetVertexAttribdvNV, glGetVertexAttribdvNV, NULL, _gloffset_GetVertexAttribdvNV), - NAME_FUNC_OFFSET(11564, glGetVertexAttribfvNV, glGetVertexAttribfvNV, NULL, _gloffset_GetVertexAttribfvNV), - NAME_FUNC_OFFSET(11586, glGetVertexAttribivNV, glGetVertexAttribivNV, NULL, _gloffset_GetVertexAttribivNV), - NAME_FUNC_OFFSET(11608, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), - NAME_FUNC_OFFSET(11622, glLoadProgramNV, glLoadProgramNV, NULL, _gloffset_LoadProgramNV), - NAME_FUNC_OFFSET(11638, glProgramParameters4dvNV, glProgramParameters4dvNV, NULL, _gloffset_ProgramParameters4dvNV), - NAME_FUNC_OFFSET(11663, glProgramParameters4fvNV, glProgramParameters4fvNV, NULL, _gloffset_ProgramParameters4fvNV), - NAME_FUNC_OFFSET(11688, glRequestResidentProgramsNV, glRequestResidentProgramsNV, NULL, _gloffset_RequestResidentProgramsNV), - NAME_FUNC_OFFSET(11716, glTrackMatrixNV, glTrackMatrixNV, NULL, _gloffset_TrackMatrixNV), - NAME_FUNC_OFFSET(11732, glVertexAttrib1dNV, glVertexAttrib1dNV, NULL, _gloffset_VertexAttrib1dNV), - NAME_FUNC_OFFSET(11751, glVertexAttrib1dvNV, glVertexAttrib1dvNV, NULL, _gloffset_VertexAttrib1dvNV), - NAME_FUNC_OFFSET(11771, glVertexAttrib1fNV, glVertexAttrib1fNV, NULL, _gloffset_VertexAttrib1fNV), - NAME_FUNC_OFFSET(11790, glVertexAttrib1fvNV, glVertexAttrib1fvNV, NULL, _gloffset_VertexAttrib1fvNV), - NAME_FUNC_OFFSET(11810, glVertexAttrib1sNV, glVertexAttrib1sNV, NULL, _gloffset_VertexAttrib1sNV), - NAME_FUNC_OFFSET(11829, glVertexAttrib1svNV, glVertexAttrib1svNV, NULL, _gloffset_VertexAttrib1svNV), - NAME_FUNC_OFFSET(11849, glVertexAttrib2dNV, glVertexAttrib2dNV, NULL, _gloffset_VertexAttrib2dNV), - NAME_FUNC_OFFSET(11868, glVertexAttrib2dvNV, glVertexAttrib2dvNV, NULL, _gloffset_VertexAttrib2dvNV), - NAME_FUNC_OFFSET(11888, glVertexAttrib2fNV, glVertexAttrib2fNV, NULL, _gloffset_VertexAttrib2fNV), - NAME_FUNC_OFFSET(11907, glVertexAttrib2fvNV, glVertexAttrib2fvNV, NULL, _gloffset_VertexAttrib2fvNV), - NAME_FUNC_OFFSET(11927, glVertexAttrib2sNV, glVertexAttrib2sNV, NULL, _gloffset_VertexAttrib2sNV), - NAME_FUNC_OFFSET(11946, glVertexAttrib2svNV, glVertexAttrib2svNV, NULL, _gloffset_VertexAttrib2svNV), - NAME_FUNC_OFFSET(11966, glVertexAttrib3dNV, glVertexAttrib3dNV, NULL, _gloffset_VertexAttrib3dNV), - NAME_FUNC_OFFSET(11985, glVertexAttrib3dvNV, glVertexAttrib3dvNV, NULL, _gloffset_VertexAttrib3dvNV), - NAME_FUNC_OFFSET(12005, glVertexAttrib3fNV, glVertexAttrib3fNV, NULL, _gloffset_VertexAttrib3fNV), - NAME_FUNC_OFFSET(12024, glVertexAttrib3fvNV, glVertexAttrib3fvNV, NULL, _gloffset_VertexAttrib3fvNV), - NAME_FUNC_OFFSET(12044, glVertexAttrib3sNV, glVertexAttrib3sNV, NULL, _gloffset_VertexAttrib3sNV), - NAME_FUNC_OFFSET(12063, glVertexAttrib3svNV, glVertexAttrib3svNV, NULL, _gloffset_VertexAttrib3svNV), - NAME_FUNC_OFFSET(12083, glVertexAttrib4dNV, glVertexAttrib4dNV, NULL, _gloffset_VertexAttrib4dNV), - NAME_FUNC_OFFSET(12102, glVertexAttrib4dvNV, glVertexAttrib4dvNV, NULL, _gloffset_VertexAttrib4dvNV), - NAME_FUNC_OFFSET(12122, glVertexAttrib4fNV, glVertexAttrib4fNV, NULL, _gloffset_VertexAttrib4fNV), - NAME_FUNC_OFFSET(12141, glVertexAttrib4fvNV, glVertexAttrib4fvNV, NULL, _gloffset_VertexAttrib4fvNV), - NAME_FUNC_OFFSET(12161, glVertexAttrib4sNV, glVertexAttrib4sNV, NULL, _gloffset_VertexAttrib4sNV), - NAME_FUNC_OFFSET(12180, glVertexAttrib4svNV, glVertexAttrib4svNV, NULL, _gloffset_VertexAttrib4svNV), - NAME_FUNC_OFFSET(12200, glVertexAttrib4ubNV, glVertexAttrib4ubNV, NULL, _gloffset_VertexAttrib4ubNV), - NAME_FUNC_OFFSET(12220, glVertexAttrib4ubvNV, glVertexAttrib4ubvNV, NULL, _gloffset_VertexAttrib4ubvNV), - NAME_FUNC_OFFSET(12241, glVertexAttribPointerNV, glVertexAttribPointerNV, NULL, _gloffset_VertexAttribPointerNV), - NAME_FUNC_OFFSET(12265, glVertexAttribs1dvNV, glVertexAttribs1dvNV, NULL, _gloffset_VertexAttribs1dvNV), - NAME_FUNC_OFFSET(12286, glVertexAttribs1fvNV, glVertexAttribs1fvNV, NULL, _gloffset_VertexAttribs1fvNV), - NAME_FUNC_OFFSET(12307, glVertexAttribs1svNV, glVertexAttribs1svNV, NULL, _gloffset_VertexAttribs1svNV), - NAME_FUNC_OFFSET(12328, glVertexAttribs2dvNV, glVertexAttribs2dvNV, NULL, _gloffset_VertexAttribs2dvNV), - NAME_FUNC_OFFSET(12349, glVertexAttribs2fvNV, glVertexAttribs2fvNV, NULL, _gloffset_VertexAttribs2fvNV), - NAME_FUNC_OFFSET(12370, glVertexAttribs2svNV, glVertexAttribs2svNV, NULL, _gloffset_VertexAttribs2svNV), - NAME_FUNC_OFFSET(12391, glVertexAttribs3dvNV, glVertexAttribs3dvNV, NULL, _gloffset_VertexAttribs3dvNV), - NAME_FUNC_OFFSET(12412, glVertexAttribs3fvNV, glVertexAttribs3fvNV, NULL, _gloffset_VertexAttribs3fvNV), - NAME_FUNC_OFFSET(12433, glVertexAttribs3svNV, glVertexAttribs3svNV, NULL, _gloffset_VertexAttribs3svNV), - NAME_FUNC_OFFSET(12454, glVertexAttribs4dvNV, glVertexAttribs4dvNV, NULL, _gloffset_VertexAttribs4dvNV), - NAME_FUNC_OFFSET(12475, glVertexAttribs4fvNV, glVertexAttribs4fvNV, NULL, _gloffset_VertexAttribs4fvNV), - NAME_FUNC_OFFSET(12496, glVertexAttribs4svNV, glVertexAttribs4svNV, NULL, _gloffset_VertexAttribs4svNV), - NAME_FUNC_OFFSET(12517, glVertexAttribs4ubvNV, glVertexAttribs4ubvNV, NULL, _gloffset_VertexAttribs4ubvNV), - NAME_FUNC_OFFSET(12539, glGetTexBumpParameterfvATI, glGetTexBumpParameterfvATI, NULL, _gloffset_GetTexBumpParameterfvATI), - NAME_FUNC_OFFSET(12566, glGetTexBumpParameterivATI, glGetTexBumpParameterivATI, NULL, _gloffset_GetTexBumpParameterivATI), - NAME_FUNC_OFFSET(12593, glTexBumpParameterfvATI, glTexBumpParameterfvATI, NULL, _gloffset_TexBumpParameterfvATI), - NAME_FUNC_OFFSET(12617, glTexBumpParameterivATI, glTexBumpParameterivATI, NULL, _gloffset_TexBumpParameterivATI), - NAME_FUNC_OFFSET(12641, glAlphaFragmentOp1ATI, glAlphaFragmentOp1ATI, NULL, _gloffset_AlphaFragmentOp1ATI), - NAME_FUNC_OFFSET(12663, glAlphaFragmentOp2ATI, glAlphaFragmentOp2ATI, NULL, _gloffset_AlphaFragmentOp2ATI), - NAME_FUNC_OFFSET(12685, glAlphaFragmentOp3ATI, glAlphaFragmentOp3ATI, NULL, _gloffset_AlphaFragmentOp3ATI), - NAME_FUNC_OFFSET(12707, glBeginFragmentShaderATI, glBeginFragmentShaderATI, NULL, _gloffset_BeginFragmentShaderATI), - NAME_FUNC_OFFSET(12732, glBindFragmentShaderATI, glBindFragmentShaderATI, NULL, _gloffset_BindFragmentShaderATI), - NAME_FUNC_OFFSET(12756, glColorFragmentOp1ATI, glColorFragmentOp1ATI, NULL, _gloffset_ColorFragmentOp1ATI), - NAME_FUNC_OFFSET(12778, glColorFragmentOp2ATI, glColorFragmentOp2ATI, NULL, _gloffset_ColorFragmentOp2ATI), - NAME_FUNC_OFFSET(12800, glColorFragmentOp3ATI, glColorFragmentOp3ATI, NULL, _gloffset_ColorFragmentOp3ATI), - NAME_FUNC_OFFSET(12822, glDeleteFragmentShaderATI, glDeleteFragmentShaderATI, NULL, _gloffset_DeleteFragmentShaderATI), - NAME_FUNC_OFFSET(12848, glEndFragmentShaderATI, glEndFragmentShaderATI, NULL, _gloffset_EndFragmentShaderATI), - NAME_FUNC_OFFSET(12871, glGenFragmentShadersATI, glGenFragmentShadersATI, NULL, _gloffset_GenFragmentShadersATI), - NAME_FUNC_OFFSET(12895, glPassTexCoordATI, glPassTexCoordATI, NULL, _gloffset_PassTexCoordATI), - NAME_FUNC_OFFSET(12913, glSampleMapATI, glSampleMapATI, NULL, _gloffset_SampleMapATI), - NAME_FUNC_OFFSET(12928, glSetFragmentShaderConstantATI, glSetFragmentShaderConstantATI, NULL, _gloffset_SetFragmentShaderConstantATI), - NAME_FUNC_OFFSET(12959, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), - NAME_FUNC_OFFSET(12979, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), - NAME_FUNC_OFFSET(13000, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_ActiveStencilFaceEXT), - NAME_FUNC_OFFSET(13023, gl_dispatch_stub_754, gl_dispatch_stub_754, NULL, _gloffset_BindVertexArrayAPPLE), - NAME_FUNC_OFFSET(13046, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_DeleteVertexArraysAPPLE), - NAME_FUNC_OFFSET(13072, gl_dispatch_stub_756, gl_dispatch_stub_756, NULL, _gloffset_GenVertexArraysAPPLE), - NAME_FUNC_OFFSET(13095, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_IsVertexArrayAPPLE), - NAME_FUNC_OFFSET(13116, glGetProgramNamedParameterdvNV, glGetProgramNamedParameterdvNV, NULL, _gloffset_GetProgramNamedParameterdvNV), - NAME_FUNC_OFFSET(13147, glGetProgramNamedParameterfvNV, glGetProgramNamedParameterfvNV, NULL, _gloffset_GetProgramNamedParameterfvNV), - NAME_FUNC_OFFSET(13178, glProgramNamedParameter4dNV, glProgramNamedParameter4dNV, NULL, _gloffset_ProgramNamedParameter4dNV), - NAME_FUNC_OFFSET(13206, glProgramNamedParameter4dvNV, glProgramNamedParameter4dvNV, NULL, _gloffset_ProgramNamedParameter4dvNV), - NAME_FUNC_OFFSET(13235, glProgramNamedParameter4fNV, glProgramNamedParameter4fNV, NULL, _gloffset_ProgramNamedParameter4fNV), - NAME_FUNC_OFFSET(13263, glProgramNamedParameter4fvNV, glProgramNamedParameter4fvNV, NULL, _gloffset_ProgramNamedParameter4fvNV), - NAME_FUNC_OFFSET(13292, gl_dispatch_stub_764, gl_dispatch_stub_764, NULL, _gloffset_DepthBoundsEXT), - NAME_FUNC_OFFSET(13309, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), - NAME_FUNC_OFFSET(13336, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), - NAME_FUNC_OFFSET(13357, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), - NAME_FUNC_OFFSET(13379, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), - NAME_FUNC_OFFSET(13407, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), - NAME_FUNC_OFFSET(13431, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), - NAME_FUNC_OFFSET(13456, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), - NAME_FUNC_OFFSET(13485, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), - NAME_FUNC_OFFSET(13511, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), - NAME_FUNC_OFFSET(13537, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), - NAME_FUNC_OFFSET(13563, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), - NAME_FUNC_OFFSET(13584, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), - NAME_FUNC_OFFSET(13606, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), - NAME_FUNC_OFFSET(13626, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), - NAME_FUNC_OFFSET(13667, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), - NAME_FUNC_OFFSET(13699, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), - NAME_FUNC_OFFSET(13718, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), - NAME_FUNC_OFFSET(13738, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), - NAME_FUNC_OFFSET(13763, gl_dispatch_stub_783, gl_dispatch_stub_783, NULL, _gloffset_BlitFramebufferEXT), - NAME_FUNC_OFFSET(13784, gl_dispatch_stub_784, gl_dispatch_stub_784, NULL, _gloffset_BufferParameteriAPPLE), - NAME_FUNC_OFFSET(13808, gl_dispatch_stub_785, gl_dispatch_stub_785, NULL, _gloffset_FlushMappedBufferRangeAPPLE), - NAME_FUNC_OFFSET(13838, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), - NAME_FUNC_OFFSET(13867, glColorMaskIndexedEXT, glColorMaskIndexedEXT, NULL, _gloffset_ColorMaskIndexedEXT), - NAME_FUNC_OFFSET(13889, glDisableIndexedEXT, glDisableIndexedEXT, NULL, _gloffset_DisableIndexedEXT), - NAME_FUNC_OFFSET(13909, glEnableIndexedEXT, glEnableIndexedEXT, NULL, _gloffset_EnableIndexedEXT), - NAME_FUNC_OFFSET(13928, glGetBooleanIndexedvEXT, glGetBooleanIndexedvEXT, NULL, _gloffset_GetBooleanIndexedvEXT), - NAME_FUNC_OFFSET(13952, glGetIntegerIndexedvEXT, glGetIntegerIndexedvEXT, NULL, _gloffset_GetIntegerIndexedvEXT), - NAME_FUNC_OFFSET(13976, glIsEnabledIndexedEXT, glIsEnabledIndexedEXT, NULL, _gloffset_IsEnabledIndexedEXT), - NAME_FUNC_OFFSET(13998, glBeginConditionalRenderNV, glBeginConditionalRenderNV, NULL, _gloffset_BeginConditionalRenderNV), - NAME_FUNC_OFFSET(14025, glEndConditionalRenderNV, glEndConditionalRenderNV, NULL, _gloffset_EndConditionalRenderNV), - NAME_FUNC_OFFSET(14050, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), - NAME_FUNC_OFFSET(14078, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), - NAME_FUNC_OFFSET(14098, glBindBufferOffsetEXT, glBindBufferOffsetEXT, NULL, _gloffset_BindBufferOffsetEXT), - NAME_FUNC_OFFSET(14120, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), - NAME_FUNC_OFFSET(14141, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), - NAME_FUNC_OFFSET(14167, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), - NAME_FUNC_OFFSET(14200, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), - NAME_FUNC_OFFSET(14231, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), - NAME_FUNC_OFFSET(14252, gl_dispatch_stub_803, gl_dispatch_stub_803, NULL, _gloffset_GetTexParameterPointervAPPLE), - NAME_FUNC_OFFSET(14283, gl_dispatch_stub_804, gl_dispatch_stub_804, NULL, _gloffset_TextureRangeAPPLE), - NAME_FUNC_OFFSET(14303, glGetObjectParameterivAPPLE, glGetObjectParameterivAPPLE, NULL, _gloffset_GetObjectParameterivAPPLE), - NAME_FUNC_OFFSET(14331, glObjectPurgeableAPPLE, glObjectPurgeableAPPLE, NULL, _gloffset_ObjectPurgeableAPPLE), - NAME_FUNC_OFFSET(14354, glObjectUnpurgeableAPPLE, glObjectUnpurgeableAPPLE, NULL, _gloffset_ObjectUnpurgeableAPPLE), - NAME_FUNC_OFFSET(14379, gl_dispatch_stub_808, gl_dispatch_stub_808, NULL, _gloffset_StencilFuncSeparateATI), - NAME_FUNC_OFFSET(14404, gl_dispatch_stub_809, gl_dispatch_stub_809, NULL, _gloffset_ProgramEnvParameters4fvEXT), - NAME_FUNC_OFFSET(14433, gl_dispatch_stub_810, gl_dispatch_stub_810, NULL, _gloffset_ProgramLocalParameters4fvEXT), - NAME_FUNC_OFFSET(14464, gl_dispatch_stub_811, gl_dispatch_stub_811, NULL, _gloffset_GetQueryObjecti64vEXT), - NAME_FUNC_OFFSET(14488, gl_dispatch_stub_812, gl_dispatch_stub_812, NULL, _gloffset_GetQueryObjectui64vEXT), - NAME_FUNC_OFFSET(14513, glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorageOES, NULL, _gloffset_EGLImageTargetRenderbufferStorageOES), - NAME_FUNC_OFFSET(14552, glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2DOES, NULL, _gloffset_EGLImageTargetTexture2DOES), - NAME_FUNC_OFFSET(14581, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement), - NAME_FUNC_OFFSET(14599, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture), - NAME_FUNC_OFFSET(14616, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays), - NAME_FUNC_OFFSET(14632, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident), - NAME_FUNC_OFFSET(14657, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D), - NAME_FUNC_OFFSET(14677, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D), - NAME_FUNC_OFFSET(14697, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D), - NAME_FUNC_OFFSET(14720, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D), - NAME_FUNC_OFFSET(14743, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures), - NAME_FUNC_OFFSET(14763, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures), - NAME_FUNC_OFFSET(14780, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv), - NAME_FUNC_OFFSET(14797, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture), - NAME_FUNC_OFFSET(14812, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures), - NAME_FUNC_OFFSET(14836, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D), - NAME_FUNC_OFFSET(14855, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D), - NAME_FUNC_OFFSET(14874, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor), - NAME_FUNC_OFFSET(14890, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation), - NAME_FUNC_OFFSET(14909, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements), - NAME_FUNC_OFFSET(14932, glColorTable, glColorTable, NULL, _gloffset_ColorTable), - NAME_FUNC_OFFSET(14948, glColorTable, glColorTable, NULL, _gloffset_ColorTable), - NAME_FUNC_OFFSET(14964, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv), - NAME_FUNC_OFFSET(14991, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv), - NAME_FUNC_OFFSET(15018, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable), - NAME_FUNC_OFFSET(15038, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), - NAME_FUNC_OFFSET(15057, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), - NAME_FUNC_OFFSET(15076, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), - NAME_FUNC_OFFSET(15106, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), - NAME_FUNC_OFFSET(15136, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), - NAME_FUNC_OFFSET(15166, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), - NAME_FUNC_OFFSET(15196, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable), - NAME_FUNC_OFFSET(15215, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable), - NAME_FUNC_OFFSET(15238, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D), - NAME_FUNC_OFFSET(15263, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D), - NAME_FUNC_OFFSET(15288, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf), - NAME_FUNC_OFFSET(15315, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv), - NAME_FUNC_OFFSET(15343, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri), - NAME_FUNC_OFFSET(15370, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv), - NAME_FUNC_OFFSET(15398, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D), - NAME_FUNC_OFFSET(15427, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D), - NAME_FUNC_OFFSET(15456, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter), - NAME_FUNC_OFFSET(15482, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv), - NAME_FUNC_OFFSET(15513, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv), - NAME_FUNC_OFFSET(15544, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter), - NAME_FUNC_OFFSET(15568, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D), - NAME_FUNC_OFFSET(15591, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram), - NAME_FUNC_OFFSET(15609, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv), - NAME_FUNC_OFFSET(15638, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv), - NAME_FUNC_OFFSET(15667, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax), - NAME_FUNC_OFFSET(15682, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv), - NAME_FUNC_OFFSET(15708, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv), - NAME_FUNC_OFFSET(15734, glHistogram, glHistogram, NULL, _gloffset_Histogram), - NAME_FUNC_OFFSET(15749, glMinmax, glMinmax, NULL, _gloffset_Minmax), - NAME_FUNC_OFFSET(15761, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram), - NAME_FUNC_OFFSET(15781, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax), - NAME_FUNC_OFFSET(15798, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D), - NAME_FUNC_OFFSET(15814, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D), - NAME_FUNC_OFFSET(15833, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D), - NAME_FUNC_OFFSET(15856, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB), - NAME_FUNC_OFFSET(15872, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB), - NAME_FUNC_OFFSET(15894, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB), - NAME_FUNC_OFFSET(15912, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB), - NAME_FUNC_OFFSET(15931, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB), - NAME_FUNC_OFFSET(15949, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB), - NAME_FUNC_OFFSET(15968, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB), - NAME_FUNC_OFFSET(15986, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB), - NAME_FUNC_OFFSET(16005, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB), - NAME_FUNC_OFFSET(16023, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB), - NAME_FUNC_OFFSET(16042, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB), - NAME_FUNC_OFFSET(16060, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB), - NAME_FUNC_OFFSET(16079, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB), - NAME_FUNC_OFFSET(16097, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB), - NAME_FUNC_OFFSET(16116, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB), - NAME_FUNC_OFFSET(16134, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB), - NAME_FUNC_OFFSET(16153, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB), - NAME_FUNC_OFFSET(16171, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB), - NAME_FUNC_OFFSET(16190, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB), - NAME_FUNC_OFFSET(16208, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB), - NAME_FUNC_OFFSET(16227, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB), - NAME_FUNC_OFFSET(16245, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB), - NAME_FUNC_OFFSET(16264, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB), - NAME_FUNC_OFFSET(16282, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB), - NAME_FUNC_OFFSET(16301, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB), - NAME_FUNC_OFFSET(16319, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB), - NAME_FUNC_OFFSET(16338, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB), - NAME_FUNC_OFFSET(16356, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB), - NAME_FUNC_OFFSET(16375, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB), - NAME_FUNC_OFFSET(16393, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB), - NAME_FUNC_OFFSET(16412, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB), - NAME_FUNC_OFFSET(16430, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB), - NAME_FUNC_OFFSET(16449, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB), - NAME_FUNC_OFFSET(16467, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB), - NAME_FUNC_OFFSET(16486, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate), - NAME_FUNC_OFFSET(16509, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), - NAME_FUNC_OFFSET(16532, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), - NAME_FUNC_OFFSET(16555, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), - NAME_FUNC_OFFSET(16578, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), - NAME_FUNC_OFFSET(16601, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), - NAME_FUNC_OFFSET(16618, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), - NAME_FUNC_OFFSET(16641, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), - NAME_FUNC_OFFSET(16664, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), - NAME_FUNC_OFFSET(16687, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), - NAME_FUNC_OFFSET(16713, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), - NAME_FUNC_OFFSET(16739, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), - NAME_FUNC_OFFSET(16765, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), - NAME_FUNC_OFFSET(16789, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), - NAME_FUNC_OFFSET(16816, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), - NAME_FUNC_OFFSET(16842, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), - NAME_FUNC_OFFSET(16862, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), - NAME_FUNC_OFFSET(16882, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), - NAME_FUNC_OFFSET(16902, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), - NAME_FUNC_OFFSET(16925, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), - NAME_FUNC_OFFSET(16949, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), - NAME_FUNC_OFFSET(16972, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), - NAME_FUNC_OFFSET(16996, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), - NAME_FUNC_OFFSET(17013, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), - NAME_FUNC_OFFSET(17031, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), - NAME_FUNC_OFFSET(17048, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), - NAME_FUNC_OFFSET(17066, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), - NAME_FUNC_OFFSET(17083, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), - NAME_FUNC_OFFSET(17101, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), - NAME_FUNC_OFFSET(17118, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), - NAME_FUNC_OFFSET(17136, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), - NAME_FUNC_OFFSET(17153, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), - NAME_FUNC_OFFSET(17171, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), - NAME_FUNC_OFFSET(17188, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), - NAME_FUNC_OFFSET(17206, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), - NAME_FUNC_OFFSET(17223, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), - NAME_FUNC_OFFSET(17241, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), - NAME_FUNC_OFFSET(17258, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), - NAME_FUNC_OFFSET(17276, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), - NAME_FUNC_OFFSET(17293, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), - NAME_FUNC_OFFSET(17311, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), - NAME_FUNC_OFFSET(17330, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), - NAME_FUNC_OFFSET(17349, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), - NAME_FUNC_OFFSET(17368, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), - NAME_FUNC_OFFSET(17387, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), - NAME_FUNC_OFFSET(17407, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), - NAME_FUNC_OFFSET(17427, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), - NAME_FUNC_OFFSET(17447, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), - NAME_FUNC_OFFSET(17465, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), - NAME_FUNC_OFFSET(17482, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), - NAME_FUNC_OFFSET(17500, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), - NAME_FUNC_OFFSET(17517, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), - NAME_FUNC_OFFSET(17535, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), - NAME_FUNC_OFFSET(17553, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), - NAME_FUNC_OFFSET(17570, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), - NAME_FUNC_OFFSET(17588, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), - NAME_FUNC_OFFSET(17607, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), - NAME_FUNC_OFFSET(17626, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), - NAME_FUNC_OFFSET(17645, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), - NAME_FUNC_OFFSET(17667, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), - NAME_FUNC_OFFSET(17680, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), - NAME_FUNC_OFFSET(17693, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), - NAME_FUNC_OFFSET(17709, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), - NAME_FUNC_OFFSET(17725, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), - NAME_FUNC_OFFSET(17738, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), - NAME_FUNC_OFFSET(17761, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), - NAME_FUNC_OFFSET(17781, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), - NAME_FUNC_OFFSET(17800, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), - NAME_FUNC_OFFSET(17811, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), - NAME_FUNC_OFFSET(17823, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), - NAME_FUNC_OFFSET(17837, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), - NAME_FUNC_OFFSET(17850, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), - NAME_FUNC_OFFSET(17866, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), - NAME_FUNC_OFFSET(17877, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), - NAME_FUNC_OFFSET(17890, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), - NAME_FUNC_OFFSET(17909, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), - NAME_FUNC_OFFSET(17929, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), - NAME_FUNC_OFFSET(17942, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), - NAME_FUNC_OFFSET(17952, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), - NAME_FUNC_OFFSET(17968, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), - NAME_FUNC_OFFSET(17987, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), - NAME_FUNC_OFFSET(18005, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), - NAME_FUNC_OFFSET(18026, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), - NAME_FUNC_OFFSET(18041, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), - NAME_FUNC_OFFSET(18056, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), - NAME_FUNC_OFFSET(18070, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), - NAME_FUNC_OFFSET(18085, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), - NAME_FUNC_OFFSET(18097, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), - NAME_FUNC_OFFSET(18110, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), - NAME_FUNC_OFFSET(18122, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), - NAME_FUNC_OFFSET(18135, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), - NAME_FUNC_OFFSET(18147, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), - NAME_FUNC_OFFSET(18160, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), - NAME_FUNC_OFFSET(18172, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), - NAME_FUNC_OFFSET(18185, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), - NAME_FUNC_OFFSET(18197, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), - NAME_FUNC_OFFSET(18210, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), - NAME_FUNC_OFFSET(18222, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), - NAME_FUNC_OFFSET(18235, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), - NAME_FUNC_OFFSET(18247, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), - NAME_FUNC_OFFSET(18260, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), - NAME_FUNC_OFFSET(18272, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), - NAME_FUNC_OFFSET(18285, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), - NAME_FUNC_OFFSET(18304, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), - NAME_FUNC_OFFSET(18323, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), - NAME_FUNC_OFFSET(18342, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), - NAME_FUNC_OFFSET(18355, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), - NAME_FUNC_OFFSET(18373, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), - NAME_FUNC_OFFSET(18394, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), - NAME_FUNC_OFFSET(18412, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), - NAME_FUNC_OFFSET(18432, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), - NAME_FUNC_OFFSET(18446, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), - NAME_FUNC_OFFSET(18463, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), - NAME_FUNC_OFFSET(18499, gl_dispatch_stub_584, gl_dispatch_stub_584, NULL, _gloffset_SampleMaskSGIS), - NAME_FUNC_OFFSET(18515, gl_dispatch_stub_585, gl_dispatch_stub_585, NULL, _gloffset_SamplePatternSGIS), - NAME_FUNC_OFFSET(18534, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18552, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18573, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), - NAME_FUNC_OFFSET(18595, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18614, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18636, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), - NAME_FUNC_OFFSET(18659, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), - NAME_FUNC_OFFSET(18678, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), - NAME_FUNC_OFFSET(18698, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), - NAME_FUNC_OFFSET(18717, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), - NAME_FUNC_OFFSET(18737, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), - NAME_FUNC_OFFSET(18756, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), - NAME_FUNC_OFFSET(18776, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), - NAME_FUNC_OFFSET(18795, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), - NAME_FUNC_OFFSET(18815, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), - NAME_FUNC_OFFSET(18834, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), - NAME_FUNC_OFFSET(18854, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), - NAME_FUNC_OFFSET(18874, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), - NAME_FUNC_OFFSET(18895, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), - NAME_FUNC_OFFSET(18915, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), - NAME_FUNC_OFFSET(18936, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), - NAME_FUNC_OFFSET(18956, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), - NAME_FUNC_OFFSET(18977, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), - NAME_FUNC_OFFSET(19001, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), - NAME_FUNC_OFFSET(19019, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), - NAME_FUNC_OFFSET(19039, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), - NAME_FUNC_OFFSET(19057, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), - NAME_FUNC_OFFSET(19069, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), - NAME_FUNC_OFFSET(19082, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), - NAME_FUNC_OFFSET(19094, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), - NAME_FUNC_OFFSET(19107, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), - NAME_FUNC_OFFSET(19127, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), - NAME_FUNC_OFFSET(19151, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), - NAME_FUNC_OFFSET(19165, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), - NAME_FUNC_OFFSET(19182, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), - NAME_FUNC_OFFSET(19197, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), - NAME_FUNC_OFFSET(19215, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), - NAME_FUNC_OFFSET(19229, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), - NAME_FUNC_OFFSET(19246, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), - NAME_FUNC_OFFSET(19261, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), - NAME_FUNC_OFFSET(19279, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), - NAME_FUNC_OFFSET(19293, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), - NAME_FUNC_OFFSET(19310, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), - NAME_FUNC_OFFSET(19325, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), - NAME_FUNC_OFFSET(19343, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), - NAME_FUNC_OFFSET(19357, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), - NAME_FUNC_OFFSET(19374, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), - NAME_FUNC_OFFSET(19389, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), - NAME_FUNC_OFFSET(19407, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), - NAME_FUNC_OFFSET(19421, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), - NAME_FUNC_OFFSET(19438, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), - NAME_FUNC_OFFSET(19453, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), - NAME_FUNC_OFFSET(19471, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), - NAME_FUNC_OFFSET(19485, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), - NAME_FUNC_OFFSET(19502, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), - NAME_FUNC_OFFSET(19517, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), - NAME_FUNC_OFFSET(19535, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), - NAME_FUNC_OFFSET(19549, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), - NAME_FUNC_OFFSET(19566, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), - NAME_FUNC_OFFSET(19581, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), - NAME_FUNC_OFFSET(19599, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), - NAME_FUNC_OFFSET(19613, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), - NAME_FUNC_OFFSET(19630, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), - NAME_FUNC_OFFSET(19645, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), - NAME_FUNC_OFFSET(19663, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), - NAME_FUNC_OFFSET(19680, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), - NAME_FUNC_OFFSET(19700, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), - NAME_FUNC_OFFSET(19717, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), - NAME_FUNC_OFFSET(19743, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), - NAME_FUNC_OFFSET(19772, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), - NAME_FUNC_OFFSET(19787, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), - NAME_FUNC_OFFSET(19805, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), - NAME_FUNC_OFFSET(19824, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_DeleteVertexArraysAPPLE), - NAME_FUNC_OFFSET(19845, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_IsVertexArrayAPPLE), - NAME_FUNC_OFFSET(19861, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), - NAME_FUNC_OFFSET(19885, gl_dispatch_stub_765, gl_dispatch_stub_765, NULL, _gloffset_BlendEquationSeparateEXT), - NAME_FUNC_OFFSET(19912, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), - NAME_FUNC_OFFSET(19930, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), - NAME_FUNC_OFFSET(19949, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), - NAME_FUNC_OFFSET(19974, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), - NAME_FUNC_OFFSET(19995, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), - NAME_FUNC_OFFSET(20017, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), - NAME_FUNC_OFFSET(20043, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), - NAME_FUNC_OFFSET(20066, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), - NAME_FUNC_OFFSET(20089, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), - NAME_FUNC_OFFSET(20112, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), - NAME_FUNC_OFFSET(20130, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), - NAME_FUNC_OFFSET(20149, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), - NAME_FUNC_OFFSET(20166, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), - NAME_FUNC_OFFSET(20204, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), - NAME_FUNC_OFFSET(20233, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), - NAME_FUNC_OFFSET(20249, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), - NAME_FUNC_OFFSET(20266, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), - NAME_FUNC_OFFSET(20288, gl_dispatch_stub_783, gl_dispatch_stub_783, NULL, _gloffset_BlitFramebufferEXT), - NAME_FUNC_OFFSET(20306, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), - NAME_FUNC_OFFSET(20332, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), - NAME_FUNC_OFFSET(20357, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), - NAME_FUNC_OFFSET(20374, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), - NAME_FUNC_OFFSET(20392, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), - NAME_FUNC_OFFSET(20415, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), - NAME_FUNC_OFFSET(20445, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), - NAME_FUNC_OFFSET(20473, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), + NAME_FUNC_OFFSET( 6163, glDrawArraysInstanced, glDrawArraysInstanced, NULL, _gloffset_DrawArraysInstanced), + NAME_FUNC_OFFSET( 6185, glDrawElementsInstanced, glDrawElementsInstanced, NULL, _gloffset_DrawElementsInstanced), + NAME_FUNC_OFFSET( 6209, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), + NAME_FUNC_OFFSET( 6235, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), + NAME_FUNC_OFFSET( 6261, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), + NAME_FUNC_OFFSET( 6287, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), + NAME_FUNC_OFFSET( 6313, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), + NAME_FUNC_OFFSET( 6333, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), + NAME_FUNC_OFFSET( 6359, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), + NAME_FUNC_OFFSET( 6385, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), + NAME_FUNC_OFFSET( 6411, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), + NAME_FUNC_OFFSET( 6440, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), + NAME_FUNC_OFFSET( 6469, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), + NAME_FUNC_OFFSET( 6498, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), + NAME_FUNC_OFFSET( 6525, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), + NAME_FUNC_OFFSET( 6555, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), + NAME_FUNC_OFFSET( 6584, glGetProgramEnvParameterdvARB, glGetProgramEnvParameterdvARB, NULL, _gloffset_GetProgramEnvParameterdvARB), + NAME_FUNC_OFFSET( 6614, glGetProgramEnvParameterfvARB, glGetProgramEnvParameterfvARB, NULL, _gloffset_GetProgramEnvParameterfvARB), + NAME_FUNC_OFFSET( 6644, glGetProgramLocalParameterdvARB, glGetProgramLocalParameterdvARB, NULL, _gloffset_GetProgramLocalParameterdvARB), + NAME_FUNC_OFFSET( 6676, glGetProgramLocalParameterfvARB, glGetProgramLocalParameterfvARB, NULL, _gloffset_GetProgramLocalParameterfvARB), + NAME_FUNC_OFFSET( 6708, glGetProgramStringARB, glGetProgramStringARB, NULL, _gloffset_GetProgramStringARB), + NAME_FUNC_OFFSET( 6730, glGetProgramivARB, glGetProgramivARB, NULL, _gloffset_GetProgramivARB), + NAME_FUNC_OFFSET( 6748, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), + NAME_FUNC_OFFSET( 6771, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), + NAME_FUNC_OFFSET( 6794, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), + NAME_FUNC_OFFSET( 6817, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), + NAME_FUNC_OFFSET( 6844, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), + NAME_FUNC_OFFSET( 6872, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), + NAME_FUNC_OFFSET( 6899, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), + NAME_FUNC_OFFSET( 6927, glProgramLocalParameter4dARB, glProgramLocalParameter4dARB, NULL, _gloffset_ProgramLocalParameter4dARB), + NAME_FUNC_OFFSET( 6956, glProgramLocalParameter4dvARB, glProgramLocalParameter4dvARB, NULL, _gloffset_ProgramLocalParameter4dvARB), + NAME_FUNC_OFFSET( 6986, glProgramLocalParameter4fARB, glProgramLocalParameter4fARB, NULL, _gloffset_ProgramLocalParameter4fARB), + NAME_FUNC_OFFSET( 7015, glProgramLocalParameter4fvARB, glProgramLocalParameter4fvARB, NULL, _gloffset_ProgramLocalParameter4fvARB), + NAME_FUNC_OFFSET( 7045, glProgramStringARB, glProgramStringARB, NULL, _gloffset_ProgramStringARB), + NAME_FUNC_OFFSET( 7064, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), + NAME_FUNC_OFFSET( 7084, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), + NAME_FUNC_OFFSET( 7105, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), + NAME_FUNC_OFFSET( 7125, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), + NAME_FUNC_OFFSET( 7146, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), + NAME_FUNC_OFFSET( 7166, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), + NAME_FUNC_OFFSET( 7187, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), + NAME_FUNC_OFFSET( 7207, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), + NAME_FUNC_OFFSET( 7228, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), + NAME_FUNC_OFFSET( 7248, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), + NAME_FUNC_OFFSET( 7269, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), + NAME_FUNC_OFFSET( 7289, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), + NAME_FUNC_OFFSET( 7310, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), + NAME_FUNC_OFFSET( 7330, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), + NAME_FUNC_OFFSET( 7351, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), + NAME_FUNC_OFFSET( 7371, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), + NAME_FUNC_OFFSET( 7392, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), + NAME_FUNC_OFFSET( 7412, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), + NAME_FUNC_OFFSET( 7433, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), + NAME_FUNC_OFFSET( 7455, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), + NAME_FUNC_OFFSET( 7477, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), + NAME_FUNC_OFFSET( 7499, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), + NAME_FUNC_OFFSET( 7521, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), + NAME_FUNC_OFFSET( 7544, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), + NAME_FUNC_OFFSET( 7567, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), + NAME_FUNC_OFFSET( 7590, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), + NAME_FUNC_OFFSET( 7611, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), + NAME_FUNC_OFFSET( 7631, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), + NAME_FUNC_OFFSET( 7652, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), + NAME_FUNC_OFFSET( 7672, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), + NAME_FUNC_OFFSET( 7693, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), + NAME_FUNC_OFFSET( 7714, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), + NAME_FUNC_OFFSET( 7734, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), + NAME_FUNC_OFFSET( 7755, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), + NAME_FUNC_OFFSET( 7777, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), + NAME_FUNC_OFFSET( 7799, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), + NAME_FUNC_OFFSET( 7821, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), + NAME_FUNC_OFFSET( 7846, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), + NAME_FUNC_OFFSET( 7862, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), + NAME_FUNC_OFFSET( 7878, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), + NAME_FUNC_OFFSET( 7897, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), + NAME_FUNC_OFFSET( 7916, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), + NAME_FUNC_OFFSET( 7932, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), + NAME_FUNC_OFFSET( 7958, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), + NAME_FUNC_OFFSET( 7981, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), + NAME_FUNC_OFFSET( 8003, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), + NAME_FUNC_OFFSET( 8017, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), + NAME_FUNC_OFFSET( 8032, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), + NAME_FUNC_OFFSET( 8049, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), + NAME_FUNC_OFFSET( 8065, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), + NAME_FUNC_OFFSET( 8084, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), + NAME_FUNC_OFFSET( 8098, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), + NAME_FUNC_OFFSET( 8114, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), + NAME_FUNC_OFFSET( 8136, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), + NAME_FUNC_OFFSET( 8159, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), + NAME_FUNC_OFFSET( 8175, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), + NAME_FUNC_OFFSET( 8188, glAttachObjectARB, glAttachObjectARB, NULL, _gloffset_AttachObjectARB), + NAME_FUNC_OFFSET( 8206, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), + NAME_FUNC_OFFSET( 8225, glCreateProgramObjectARB, glCreateProgramObjectARB, NULL, _gloffset_CreateProgramObjectARB), + NAME_FUNC_OFFSET( 8250, glCreateShaderObjectARB, glCreateShaderObjectARB, NULL, _gloffset_CreateShaderObjectARB), + NAME_FUNC_OFFSET( 8274, glDeleteObjectARB, glDeleteObjectARB, NULL, _gloffset_DeleteObjectARB), + NAME_FUNC_OFFSET( 8292, glDetachObjectARB, glDetachObjectARB, NULL, _gloffset_DetachObjectARB), + NAME_FUNC_OFFSET( 8310, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), + NAME_FUNC_OFFSET( 8332, glGetAttachedObjectsARB, glGetAttachedObjectsARB, NULL, _gloffset_GetAttachedObjectsARB), + NAME_FUNC_OFFSET( 8356, glGetHandleARB, glGetHandleARB, NULL, _gloffset_GetHandleARB), + NAME_FUNC_OFFSET( 8371, glGetInfoLogARB, glGetInfoLogARB, NULL, _gloffset_GetInfoLogARB), + NAME_FUNC_OFFSET( 8387, glGetObjectParameterfvARB, glGetObjectParameterfvARB, NULL, _gloffset_GetObjectParameterfvARB), + NAME_FUNC_OFFSET( 8413, glGetObjectParameterivARB, glGetObjectParameterivARB, NULL, _gloffset_GetObjectParameterivARB), + NAME_FUNC_OFFSET( 8439, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), + NAME_FUNC_OFFSET( 8460, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), + NAME_FUNC_OFFSET( 8484, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), + NAME_FUNC_OFFSET( 8502, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), + NAME_FUNC_OFFSET( 8520, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), + NAME_FUNC_OFFSET( 8537, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), + NAME_FUNC_OFFSET( 8555, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), + NAME_FUNC_OFFSET( 8570, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), + NAME_FUNC_OFFSET( 8586, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), + NAME_FUNC_OFFSET( 8601, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), + NAME_FUNC_OFFSET( 8617, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), + NAME_FUNC_OFFSET( 8632, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), + NAME_FUNC_OFFSET( 8648, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), + NAME_FUNC_OFFSET( 8663, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), + NAME_FUNC_OFFSET( 8679, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), + NAME_FUNC_OFFSET( 8694, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), + NAME_FUNC_OFFSET( 8710, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), + NAME_FUNC_OFFSET( 8725, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), + NAME_FUNC_OFFSET( 8741, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), + NAME_FUNC_OFFSET( 8756, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), + NAME_FUNC_OFFSET( 8772, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), + NAME_FUNC_OFFSET( 8787, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), + NAME_FUNC_OFFSET( 8803, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), + NAME_FUNC_OFFSET( 8825, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), + NAME_FUNC_OFFSET( 8847, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), + NAME_FUNC_OFFSET( 8869, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), + NAME_FUNC_OFFSET( 8891, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), + NAME_FUNC_OFFSET( 8912, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), + NAME_FUNC_OFFSET( 8936, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), + NAME_FUNC_OFFSET( 8957, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), + NAME_FUNC_OFFSET( 8980, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), + NAME_FUNC_OFFSET( 8997, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), + NAME_FUNC_OFFSET( 9030, glFlushMappedBufferRange, glFlushMappedBufferRange, NULL, _gloffset_FlushMappedBufferRange), + NAME_FUNC_OFFSET( 9055, glMapBufferRange, glMapBufferRange, NULL, _gloffset_MapBufferRange), + NAME_FUNC_OFFSET( 9072, glBindVertexArray, glBindVertexArray, NULL, _gloffset_BindVertexArray), + NAME_FUNC_OFFSET( 9090, glGenVertexArrays, glGenVertexArrays, NULL, _gloffset_GenVertexArrays), + NAME_FUNC_OFFSET( 9108, glCopyBufferSubData, glCopyBufferSubData, NULL, _gloffset_CopyBufferSubData), + NAME_FUNC_OFFSET( 9128, glClientWaitSync, glClientWaitSync, NULL, _gloffset_ClientWaitSync), + NAME_FUNC_OFFSET( 9145, glDeleteSync, glDeleteSync, NULL, _gloffset_DeleteSync), + NAME_FUNC_OFFSET( 9158, glFenceSync, glFenceSync, NULL, _gloffset_FenceSync), + NAME_FUNC_OFFSET( 9170, glGetInteger64v, glGetInteger64v, NULL, _gloffset_GetInteger64v), + NAME_FUNC_OFFSET( 9186, glGetSynciv, glGetSynciv, NULL, _gloffset_GetSynciv), + NAME_FUNC_OFFSET( 9198, glIsSync, glIsSync, NULL, _gloffset_IsSync), + NAME_FUNC_OFFSET( 9207, glWaitSync, glWaitSync, NULL, _gloffset_WaitSync), + NAME_FUNC_OFFSET( 9218, glDrawElementsBaseVertex, glDrawElementsBaseVertex, NULL, _gloffset_DrawElementsBaseVertex), + NAME_FUNC_OFFSET( 9243, glDrawRangeElementsBaseVertex, glDrawRangeElementsBaseVertex, NULL, _gloffset_DrawRangeElementsBaseVertex), + NAME_FUNC_OFFSET( 9273, glMultiDrawElementsBaseVertex, glMultiDrawElementsBaseVertex, NULL, _gloffset_MultiDrawElementsBaseVertex), + NAME_FUNC_OFFSET( 9303, glPolygonOffsetEXT, glPolygonOffsetEXT, NULL, _gloffset_PolygonOffsetEXT), + NAME_FUNC_OFFSET( 9322, gl_dispatch_stub_580, gl_dispatch_stub_580, NULL, _gloffset_GetPixelTexGenParameterfvSGIS), + NAME_FUNC_OFFSET( 9354, gl_dispatch_stub_581, gl_dispatch_stub_581, NULL, _gloffset_GetPixelTexGenParameterivSGIS), + NAME_FUNC_OFFSET( 9386, gl_dispatch_stub_582, gl_dispatch_stub_582, NULL, _gloffset_PixelTexGenParameterfSGIS), + NAME_FUNC_OFFSET( 9414, gl_dispatch_stub_583, gl_dispatch_stub_583, NULL, _gloffset_PixelTexGenParameterfvSGIS), + NAME_FUNC_OFFSET( 9443, gl_dispatch_stub_584, gl_dispatch_stub_584, NULL, _gloffset_PixelTexGenParameteriSGIS), + NAME_FUNC_OFFSET( 9471, gl_dispatch_stub_585, gl_dispatch_stub_585, NULL, _gloffset_PixelTexGenParameterivSGIS), + NAME_FUNC_OFFSET( 9500, gl_dispatch_stub_586, gl_dispatch_stub_586, NULL, _gloffset_SampleMaskSGIS), + NAME_FUNC_OFFSET( 9517, gl_dispatch_stub_587, gl_dispatch_stub_587, NULL, _gloffset_SamplePatternSGIS), + NAME_FUNC_OFFSET( 9537, glColorPointerEXT, glColorPointerEXT, NULL, _gloffset_ColorPointerEXT), + NAME_FUNC_OFFSET( 9555, glEdgeFlagPointerEXT, glEdgeFlagPointerEXT, NULL, _gloffset_EdgeFlagPointerEXT), + NAME_FUNC_OFFSET( 9576, glIndexPointerEXT, glIndexPointerEXT, NULL, _gloffset_IndexPointerEXT), + NAME_FUNC_OFFSET( 9594, glNormalPointerEXT, glNormalPointerEXT, NULL, _gloffset_NormalPointerEXT), + NAME_FUNC_OFFSET( 9613, glTexCoordPointerEXT, glTexCoordPointerEXT, NULL, _gloffset_TexCoordPointerEXT), + NAME_FUNC_OFFSET( 9634, glVertexPointerEXT, glVertexPointerEXT, NULL, _gloffset_VertexPointerEXT), + NAME_FUNC_OFFSET( 9653, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET( 9674, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET( 9696, glLockArraysEXT, glLockArraysEXT, NULL, _gloffset_LockArraysEXT), + NAME_FUNC_OFFSET( 9712, glUnlockArraysEXT, glUnlockArraysEXT, NULL, _gloffset_UnlockArraysEXT), + NAME_FUNC_OFFSET( 9730, gl_dispatch_stub_598, gl_dispatch_stub_598, NULL, _gloffset_CullParameterdvEXT), + NAME_FUNC_OFFSET( 9751, gl_dispatch_stub_599, gl_dispatch_stub_599, NULL, _gloffset_CullParameterfvEXT), + NAME_FUNC_OFFSET( 9772, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), + NAME_FUNC_OFFSET( 9794, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), + NAME_FUNC_OFFSET( 9817, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), + NAME_FUNC_OFFSET( 9839, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), + NAME_FUNC_OFFSET( 9862, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), + NAME_FUNC_OFFSET( 9884, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), + NAME_FUNC_OFFSET( 9907, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), + NAME_FUNC_OFFSET( 9929, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), + NAME_FUNC_OFFSET( 9952, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), + NAME_FUNC_OFFSET( 9974, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), + NAME_FUNC_OFFSET( 9997, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), + NAME_FUNC_OFFSET(10020, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), + NAME_FUNC_OFFSET(10044, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), + NAME_FUNC_OFFSET(10067, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), + NAME_FUNC_OFFSET(10091, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), + NAME_FUNC_OFFSET(10114, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), + NAME_FUNC_OFFSET(10138, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), + NAME_FUNC_OFFSET(10165, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), + NAME_FUNC_OFFSET(10186, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), + NAME_FUNC_OFFSET(10209, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), + NAME_FUNC_OFFSET(10230, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), + NAME_FUNC_OFFSET(10245, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), + NAME_FUNC_OFFSET(10261, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), + NAME_FUNC_OFFSET(10276, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), + NAME_FUNC_OFFSET(10292, gl_dispatch_stub_624, gl_dispatch_stub_624, NULL, _gloffset_PixelTexGenSGIX), + NAME_FUNC_OFFSET(10310, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), + NAME_FUNC_OFFSET(10333, glFlushVertexArrayRangeNV, glFlushVertexArrayRangeNV, NULL, _gloffset_FlushVertexArrayRangeNV), + NAME_FUNC_OFFSET(10359, glVertexArrayRangeNV, glVertexArrayRangeNV, NULL, _gloffset_VertexArrayRangeNV), + NAME_FUNC_OFFSET(10380, glCombinerInputNV, glCombinerInputNV, NULL, _gloffset_CombinerInputNV), + NAME_FUNC_OFFSET(10398, glCombinerOutputNV, glCombinerOutputNV, NULL, _gloffset_CombinerOutputNV), + NAME_FUNC_OFFSET(10417, glCombinerParameterfNV, glCombinerParameterfNV, NULL, _gloffset_CombinerParameterfNV), + NAME_FUNC_OFFSET(10440, glCombinerParameterfvNV, glCombinerParameterfvNV, NULL, _gloffset_CombinerParameterfvNV), + NAME_FUNC_OFFSET(10464, glCombinerParameteriNV, glCombinerParameteriNV, NULL, _gloffset_CombinerParameteriNV), + NAME_FUNC_OFFSET(10487, glCombinerParameterivNV, glCombinerParameterivNV, NULL, _gloffset_CombinerParameterivNV), + NAME_FUNC_OFFSET(10511, glFinalCombinerInputNV, glFinalCombinerInputNV, NULL, _gloffset_FinalCombinerInputNV), + NAME_FUNC_OFFSET(10534, glGetCombinerInputParameterfvNV, glGetCombinerInputParameterfvNV, NULL, _gloffset_GetCombinerInputParameterfvNV), + NAME_FUNC_OFFSET(10566, glGetCombinerInputParameterivNV, glGetCombinerInputParameterivNV, NULL, _gloffset_GetCombinerInputParameterivNV), + NAME_FUNC_OFFSET(10598, glGetCombinerOutputParameterfvNV, glGetCombinerOutputParameterfvNV, NULL, _gloffset_GetCombinerOutputParameterfvNV), + NAME_FUNC_OFFSET(10631, glGetCombinerOutputParameterivNV, glGetCombinerOutputParameterivNV, NULL, _gloffset_GetCombinerOutputParameterivNV), + NAME_FUNC_OFFSET(10664, glGetFinalCombinerInputParameterfvNV, glGetFinalCombinerInputParameterfvNV, NULL, _gloffset_GetFinalCombinerInputParameterfvNV), + NAME_FUNC_OFFSET(10701, glGetFinalCombinerInputParameterivNV, glGetFinalCombinerInputParameterivNV, NULL, _gloffset_GetFinalCombinerInputParameterivNV), + NAME_FUNC_OFFSET(10738, glResizeBuffersMESA, glResizeBuffersMESA, NULL, _gloffset_ResizeBuffersMESA), + NAME_FUNC_OFFSET(10758, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), + NAME_FUNC_OFFSET(10776, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), + NAME_FUNC_OFFSET(10795, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), + NAME_FUNC_OFFSET(10813, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), + NAME_FUNC_OFFSET(10832, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), + NAME_FUNC_OFFSET(10850, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), + NAME_FUNC_OFFSET(10869, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), + NAME_FUNC_OFFSET(10887, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), + NAME_FUNC_OFFSET(10906, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), + NAME_FUNC_OFFSET(10924, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), + NAME_FUNC_OFFSET(10943, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), + NAME_FUNC_OFFSET(10961, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), + NAME_FUNC_OFFSET(10980, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), + NAME_FUNC_OFFSET(10998, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), + NAME_FUNC_OFFSET(11017, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), + NAME_FUNC_OFFSET(11035, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), + NAME_FUNC_OFFSET(11054, glWindowPos4dMESA, glWindowPos4dMESA, NULL, _gloffset_WindowPos4dMESA), + NAME_FUNC_OFFSET(11072, glWindowPos4dvMESA, glWindowPos4dvMESA, NULL, _gloffset_WindowPos4dvMESA), + NAME_FUNC_OFFSET(11091, glWindowPos4fMESA, glWindowPos4fMESA, NULL, _gloffset_WindowPos4fMESA), + NAME_FUNC_OFFSET(11109, glWindowPos4fvMESA, glWindowPos4fvMESA, NULL, _gloffset_WindowPos4fvMESA), + NAME_FUNC_OFFSET(11128, glWindowPos4iMESA, glWindowPos4iMESA, NULL, _gloffset_WindowPos4iMESA), + NAME_FUNC_OFFSET(11146, glWindowPos4ivMESA, glWindowPos4ivMESA, NULL, _gloffset_WindowPos4ivMESA), + NAME_FUNC_OFFSET(11165, glWindowPos4sMESA, glWindowPos4sMESA, NULL, _gloffset_WindowPos4sMESA), + NAME_FUNC_OFFSET(11183, glWindowPos4svMESA, glWindowPos4svMESA, NULL, _gloffset_WindowPos4svMESA), + NAME_FUNC_OFFSET(11202, gl_dispatch_stub_666, gl_dispatch_stub_666, NULL, _gloffset_MultiModeDrawArraysIBM), + NAME_FUNC_OFFSET(11227, gl_dispatch_stub_667, gl_dispatch_stub_667, NULL, _gloffset_MultiModeDrawElementsIBM), + NAME_FUNC_OFFSET(11254, gl_dispatch_stub_668, gl_dispatch_stub_668, NULL, _gloffset_DeleteFencesNV), + NAME_FUNC_OFFSET(11271, gl_dispatch_stub_669, gl_dispatch_stub_669, NULL, _gloffset_FinishFenceNV), + NAME_FUNC_OFFSET(11287, gl_dispatch_stub_670, gl_dispatch_stub_670, NULL, _gloffset_GenFencesNV), + NAME_FUNC_OFFSET(11301, gl_dispatch_stub_671, gl_dispatch_stub_671, NULL, _gloffset_GetFenceivNV), + NAME_FUNC_OFFSET(11316, gl_dispatch_stub_672, gl_dispatch_stub_672, NULL, _gloffset_IsFenceNV), + NAME_FUNC_OFFSET(11328, gl_dispatch_stub_673, gl_dispatch_stub_673, NULL, _gloffset_SetFenceNV), + NAME_FUNC_OFFSET(11341, gl_dispatch_stub_674, gl_dispatch_stub_674, NULL, _gloffset_TestFenceNV), + NAME_FUNC_OFFSET(11355, glAreProgramsResidentNV, glAreProgramsResidentNV, NULL, _gloffset_AreProgramsResidentNV), + NAME_FUNC_OFFSET(11379, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), + NAME_FUNC_OFFSET(11395, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), + NAME_FUNC_OFFSET(11414, glExecuteProgramNV, glExecuteProgramNV, NULL, _gloffset_ExecuteProgramNV), + NAME_FUNC_OFFSET(11433, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), + NAME_FUNC_OFFSET(11449, glGetProgramParameterdvNV, glGetProgramParameterdvNV, NULL, _gloffset_GetProgramParameterdvNV), + NAME_FUNC_OFFSET(11475, glGetProgramParameterfvNV, glGetProgramParameterfvNV, NULL, _gloffset_GetProgramParameterfvNV), + NAME_FUNC_OFFSET(11501, glGetProgramStringNV, glGetProgramStringNV, NULL, _gloffset_GetProgramStringNV), + NAME_FUNC_OFFSET(11522, glGetProgramivNV, glGetProgramivNV, NULL, _gloffset_GetProgramivNV), + NAME_FUNC_OFFSET(11539, glGetTrackMatrixivNV, glGetTrackMatrixivNV, NULL, _gloffset_GetTrackMatrixivNV), + NAME_FUNC_OFFSET(11560, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), + NAME_FUNC_OFFSET(11588, glGetVertexAttribdvNV, glGetVertexAttribdvNV, NULL, _gloffset_GetVertexAttribdvNV), + NAME_FUNC_OFFSET(11610, glGetVertexAttribfvNV, glGetVertexAttribfvNV, NULL, _gloffset_GetVertexAttribfvNV), + NAME_FUNC_OFFSET(11632, glGetVertexAttribivNV, glGetVertexAttribivNV, NULL, _gloffset_GetVertexAttribivNV), + NAME_FUNC_OFFSET(11654, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), + NAME_FUNC_OFFSET(11668, glLoadProgramNV, glLoadProgramNV, NULL, _gloffset_LoadProgramNV), + NAME_FUNC_OFFSET(11684, glProgramParameters4dvNV, glProgramParameters4dvNV, NULL, _gloffset_ProgramParameters4dvNV), + NAME_FUNC_OFFSET(11709, glProgramParameters4fvNV, glProgramParameters4fvNV, NULL, _gloffset_ProgramParameters4fvNV), + NAME_FUNC_OFFSET(11734, glRequestResidentProgramsNV, glRequestResidentProgramsNV, NULL, _gloffset_RequestResidentProgramsNV), + NAME_FUNC_OFFSET(11762, glTrackMatrixNV, glTrackMatrixNV, NULL, _gloffset_TrackMatrixNV), + NAME_FUNC_OFFSET(11778, glVertexAttrib1dNV, glVertexAttrib1dNV, NULL, _gloffset_VertexAttrib1dNV), + NAME_FUNC_OFFSET(11797, glVertexAttrib1dvNV, glVertexAttrib1dvNV, NULL, _gloffset_VertexAttrib1dvNV), + NAME_FUNC_OFFSET(11817, glVertexAttrib1fNV, glVertexAttrib1fNV, NULL, _gloffset_VertexAttrib1fNV), + NAME_FUNC_OFFSET(11836, glVertexAttrib1fvNV, glVertexAttrib1fvNV, NULL, _gloffset_VertexAttrib1fvNV), + NAME_FUNC_OFFSET(11856, glVertexAttrib1sNV, glVertexAttrib1sNV, NULL, _gloffset_VertexAttrib1sNV), + NAME_FUNC_OFFSET(11875, glVertexAttrib1svNV, glVertexAttrib1svNV, NULL, _gloffset_VertexAttrib1svNV), + NAME_FUNC_OFFSET(11895, glVertexAttrib2dNV, glVertexAttrib2dNV, NULL, _gloffset_VertexAttrib2dNV), + NAME_FUNC_OFFSET(11914, glVertexAttrib2dvNV, glVertexAttrib2dvNV, NULL, _gloffset_VertexAttrib2dvNV), + NAME_FUNC_OFFSET(11934, glVertexAttrib2fNV, glVertexAttrib2fNV, NULL, _gloffset_VertexAttrib2fNV), + NAME_FUNC_OFFSET(11953, glVertexAttrib2fvNV, glVertexAttrib2fvNV, NULL, _gloffset_VertexAttrib2fvNV), + NAME_FUNC_OFFSET(11973, glVertexAttrib2sNV, glVertexAttrib2sNV, NULL, _gloffset_VertexAttrib2sNV), + NAME_FUNC_OFFSET(11992, glVertexAttrib2svNV, glVertexAttrib2svNV, NULL, _gloffset_VertexAttrib2svNV), + NAME_FUNC_OFFSET(12012, glVertexAttrib3dNV, glVertexAttrib3dNV, NULL, _gloffset_VertexAttrib3dNV), + NAME_FUNC_OFFSET(12031, glVertexAttrib3dvNV, glVertexAttrib3dvNV, NULL, _gloffset_VertexAttrib3dvNV), + NAME_FUNC_OFFSET(12051, glVertexAttrib3fNV, glVertexAttrib3fNV, NULL, _gloffset_VertexAttrib3fNV), + NAME_FUNC_OFFSET(12070, glVertexAttrib3fvNV, glVertexAttrib3fvNV, NULL, _gloffset_VertexAttrib3fvNV), + NAME_FUNC_OFFSET(12090, glVertexAttrib3sNV, glVertexAttrib3sNV, NULL, _gloffset_VertexAttrib3sNV), + NAME_FUNC_OFFSET(12109, glVertexAttrib3svNV, glVertexAttrib3svNV, NULL, _gloffset_VertexAttrib3svNV), + NAME_FUNC_OFFSET(12129, glVertexAttrib4dNV, glVertexAttrib4dNV, NULL, _gloffset_VertexAttrib4dNV), + NAME_FUNC_OFFSET(12148, glVertexAttrib4dvNV, glVertexAttrib4dvNV, NULL, _gloffset_VertexAttrib4dvNV), + NAME_FUNC_OFFSET(12168, glVertexAttrib4fNV, glVertexAttrib4fNV, NULL, _gloffset_VertexAttrib4fNV), + NAME_FUNC_OFFSET(12187, glVertexAttrib4fvNV, glVertexAttrib4fvNV, NULL, _gloffset_VertexAttrib4fvNV), + NAME_FUNC_OFFSET(12207, glVertexAttrib4sNV, glVertexAttrib4sNV, NULL, _gloffset_VertexAttrib4sNV), + NAME_FUNC_OFFSET(12226, glVertexAttrib4svNV, glVertexAttrib4svNV, NULL, _gloffset_VertexAttrib4svNV), + NAME_FUNC_OFFSET(12246, glVertexAttrib4ubNV, glVertexAttrib4ubNV, NULL, _gloffset_VertexAttrib4ubNV), + NAME_FUNC_OFFSET(12266, glVertexAttrib4ubvNV, glVertexAttrib4ubvNV, NULL, _gloffset_VertexAttrib4ubvNV), + NAME_FUNC_OFFSET(12287, glVertexAttribPointerNV, glVertexAttribPointerNV, NULL, _gloffset_VertexAttribPointerNV), + NAME_FUNC_OFFSET(12311, glVertexAttribs1dvNV, glVertexAttribs1dvNV, NULL, _gloffset_VertexAttribs1dvNV), + NAME_FUNC_OFFSET(12332, glVertexAttribs1fvNV, glVertexAttribs1fvNV, NULL, _gloffset_VertexAttribs1fvNV), + NAME_FUNC_OFFSET(12353, glVertexAttribs1svNV, glVertexAttribs1svNV, NULL, _gloffset_VertexAttribs1svNV), + NAME_FUNC_OFFSET(12374, glVertexAttribs2dvNV, glVertexAttribs2dvNV, NULL, _gloffset_VertexAttribs2dvNV), + NAME_FUNC_OFFSET(12395, glVertexAttribs2fvNV, glVertexAttribs2fvNV, NULL, _gloffset_VertexAttribs2fvNV), + NAME_FUNC_OFFSET(12416, glVertexAttribs2svNV, glVertexAttribs2svNV, NULL, _gloffset_VertexAttribs2svNV), + NAME_FUNC_OFFSET(12437, glVertexAttribs3dvNV, glVertexAttribs3dvNV, NULL, _gloffset_VertexAttribs3dvNV), + NAME_FUNC_OFFSET(12458, glVertexAttribs3fvNV, glVertexAttribs3fvNV, NULL, _gloffset_VertexAttribs3fvNV), + NAME_FUNC_OFFSET(12479, glVertexAttribs3svNV, glVertexAttribs3svNV, NULL, _gloffset_VertexAttribs3svNV), + NAME_FUNC_OFFSET(12500, glVertexAttribs4dvNV, glVertexAttribs4dvNV, NULL, _gloffset_VertexAttribs4dvNV), + NAME_FUNC_OFFSET(12521, glVertexAttribs4fvNV, glVertexAttribs4fvNV, NULL, _gloffset_VertexAttribs4fvNV), + NAME_FUNC_OFFSET(12542, glVertexAttribs4svNV, glVertexAttribs4svNV, NULL, _gloffset_VertexAttribs4svNV), + NAME_FUNC_OFFSET(12563, glVertexAttribs4ubvNV, glVertexAttribs4ubvNV, NULL, _gloffset_VertexAttribs4ubvNV), + NAME_FUNC_OFFSET(12585, glGetTexBumpParameterfvATI, glGetTexBumpParameterfvATI, NULL, _gloffset_GetTexBumpParameterfvATI), + NAME_FUNC_OFFSET(12612, glGetTexBumpParameterivATI, glGetTexBumpParameterivATI, NULL, _gloffset_GetTexBumpParameterivATI), + NAME_FUNC_OFFSET(12639, glTexBumpParameterfvATI, glTexBumpParameterfvATI, NULL, _gloffset_TexBumpParameterfvATI), + NAME_FUNC_OFFSET(12663, glTexBumpParameterivATI, glTexBumpParameterivATI, NULL, _gloffset_TexBumpParameterivATI), + NAME_FUNC_OFFSET(12687, glAlphaFragmentOp1ATI, glAlphaFragmentOp1ATI, NULL, _gloffset_AlphaFragmentOp1ATI), + NAME_FUNC_OFFSET(12709, glAlphaFragmentOp2ATI, glAlphaFragmentOp2ATI, NULL, _gloffset_AlphaFragmentOp2ATI), + NAME_FUNC_OFFSET(12731, glAlphaFragmentOp3ATI, glAlphaFragmentOp3ATI, NULL, _gloffset_AlphaFragmentOp3ATI), + NAME_FUNC_OFFSET(12753, glBeginFragmentShaderATI, glBeginFragmentShaderATI, NULL, _gloffset_BeginFragmentShaderATI), + NAME_FUNC_OFFSET(12778, glBindFragmentShaderATI, glBindFragmentShaderATI, NULL, _gloffset_BindFragmentShaderATI), + NAME_FUNC_OFFSET(12802, glColorFragmentOp1ATI, glColorFragmentOp1ATI, NULL, _gloffset_ColorFragmentOp1ATI), + NAME_FUNC_OFFSET(12824, glColorFragmentOp2ATI, glColorFragmentOp2ATI, NULL, _gloffset_ColorFragmentOp2ATI), + NAME_FUNC_OFFSET(12846, glColorFragmentOp3ATI, glColorFragmentOp3ATI, NULL, _gloffset_ColorFragmentOp3ATI), + NAME_FUNC_OFFSET(12868, glDeleteFragmentShaderATI, glDeleteFragmentShaderATI, NULL, _gloffset_DeleteFragmentShaderATI), + NAME_FUNC_OFFSET(12894, glEndFragmentShaderATI, glEndFragmentShaderATI, NULL, _gloffset_EndFragmentShaderATI), + NAME_FUNC_OFFSET(12917, glGenFragmentShadersATI, glGenFragmentShadersATI, NULL, _gloffset_GenFragmentShadersATI), + NAME_FUNC_OFFSET(12941, glPassTexCoordATI, glPassTexCoordATI, NULL, _gloffset_PassTexCoordATI), + NAME_FUNC_OFFSET(12959, glSampleMapATI, glSampleMapATI, NULL, _gloffset_SampleMapATI), + NAME_FUNC_OFFSET(12974, glSetFragmentShaderConstantATI, glSetFragmentShaderConstantATI, NULL, _gloffset_SetFragmentShaderConstantATI), + NAME_FUNC_OFFSET(13005, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), + NAME_FUNC_OFFSET(13025, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), + NAME_FUNC_OFFSET(13046, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_ActiveStencilFaceEXT), + NAME_FUNC_OFFSET(13069, gl_dispatch_stub_756, gl_dispatch_stub_756, NULL, _gloffset_BindVertexArrayAPPLE), + NAME_FUNC_OFFSET(13092, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_DeleteVertexArraysAPPLE), + NAME_FUNC_OFFSET(13118, gl_dispatch_stub_758, gl_dispatch_stub_758, NULL, _gloffset_GenVertexArraysAPPLE), + NAME_FUNC_OFFSET(13141, gl_dispatch_stub_759, gl_dispatch_stub_759, NULL, _gloffset_IsVertexArrayAPPLE), + NAME_FUNC_OFFSET(13162, glGetProgramNamedParameterdvNV, glGetProgramNamedParameterdvNV, NULL, _gloffset_GetProgramNamedParameterdvNV), + NAME_FUNC_OFFSET(13193, glGetProgramNamedParameterfvNV, glGetProgramNamedParameterfvNV, NULL, _gloffset_GetProgramNamedParameterfvNV), + NAME_FUNC_OFFSET(13224, glProgramNamedParameter4dNV, glProgramNamedParameter4dNV, NULL, _gloffset_ProgramNamedParameter4dNV), + NAME_FUNC_OFFSET(13252, glProgramNamedParameter4dvNV, glProgramNamedParameter4dvNV, NULL, _gloffset_ProgramNamedParameter4dvNV), + NAME_FUNC_OFFSET(13281, glProgramNamedParameter4fNV, glProgramNamedParameter4fNV, NULL, _gloffset_ProgramNamedParameter4fNV), + NAME_FUNC_OFFSET(13309, glProgramNamedParameter4fvNV, glProgramNamedParameter4fvNV, NULL, _gloffset_ProgramNamedParameter4fvNV), + NAME_FUNC_OFFSET(13338, gl_dispatch_stub_766, gl_dispatch_stub_766, NULL, _gloffset_DepthBoundsEXT), + NAME_FUNC_OFFSET(13355, gl_dispatch_stub_767, gl_dispatch_stub_767, NULL, _gloffset_BlendEquationSeparateEXT), + NAME_FUNC_OFFSET(13382, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), + NAME_FUNC_OFFSET(13403, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), + NAME_FUNC_OFFSET(13425, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), + NAME_FUNC_OFFSET(13453, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), + NAME_FUNC_OFFSET(13477, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), + NAME_FUNC_OFFSET(13502, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), + NAME_FUNC_OFFSET(13531, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), + NAME_FUNC_OFFSET(13557, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), + NAME_FUNC_OFFSET(13583, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), + NAME_FUNC_OFFSET(13609, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), + NAME_FUNC_OFFSET(13630, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), + NAME_FUNC_OFFSET(13652, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), + NAME_FUNC_OFFSET(13672, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), + NAME_FUNC_OFFSET(13713, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), + NAME_FUNC_OFFSET(13745, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), + NAME_FUNC_OFFSET(13764, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), + NAME_FUNC_OFFSET(13784, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), + NAME_FUNC_OFFSET(13809, gl_dispatch_stub_785, gl_dispatch_stub_785, NULL, _gloffset_BlitFramebufferEXT), + NAME_FUNC_OFFSET(13830, gl_dispatch_stub_786, gl_dispatch_stub_786, NULL, _gloffset_BufferParameteriAPPLE), + NAME_FUNC_OFFSET(13854, gl_dispatch_stub_787, gl_dispatch_stub_787, NULL, _gloffset_FlushMappedBufferRangeAPPLE), + NAME_FUNC_OFFSET(13884, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), + NAME_FUNC_OFFSET(13913, glColorMaskIndexedEXT, glColorMaskIndexedEXT, NULL, _gloffset_ColorMaskIndexedEXT), + NAME_FUNC_OFFSET(13935, glDisableIndexedEXT, glDisableIndexedEXT, NULL, _gloffset_DisableIndexedEXT), + NAME_FUNC_OFFSET(13955, glEnableIndexedEXT, glEnableIndexedEXT, NULL, _gloffset_EnableIndexedEXT), + NAME_FUNC_OFFSET(13974, glGetBooleanIndexedvEXT, glGetBooleanIndexedvEXT, NULL, _gloffset_GetBooleanIndexedvEXT), + NAME_FUNC_OFFSET(13998, glGetIntegerIndexedvEXT, glGetIntegerIndexedvEXT, NULL, _gloffset_GetIntegerIndexedvEXT), + NAME_FUNC_OFFSET(14022, glIsEnabledIndexedEXT, glIsEnabledIndexedEXT, NULL, _gloffset_IsEnabledIndexedEXT), + NAME_FUNC_OFFSET(14044, glBeginConditionalRenderNV, glBeginConditionalRenderNV, NULL, _gloffset_BeginConditionalRenderNV), + NAME_FUNC_OFFSET(14071, glEndConditionalRenderNV, glEndConditionalRenderNV, NULL, _gloffset_EndConditionalRenderNV), + NAME_FUNC_OFFSET(14096, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), + NAME_FUNC_OFFSET(14124, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), + NAME_FUNC_OFFSET(14144, glBindBufferOffsetEXT, glBindBufferOffsetEXT, NULL, _gloffset_BindBufferOffsetEXT), + NAME_FUNC_OFFSET(14166, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), + NAME_FUNC_OFFSET(14187, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), + NAME_FUNC_OFFSET(14213, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), + NAME_FUNC_OFFSET(14246, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), + NAME_FUNC_OFFSET(14277, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), + NAME_FUNC_OFFSET(14298, gl_dispatch_stub_805, gl_dispatch_stub_805, NULL, _gloffset_GetTexParameterPointervAPPLE), + NAME_FUNC_OFFSET(14329, gl_dispatch_stub_806, gl_dispatch_stub_806, NULL, _gloffset_TextureRangeAPPLE), + NAME_FUNC_OFFSET(14349, glGetObjectParameterivAPPLE, glGetObjectParameterivAPPLE, NULL, _gloffset_GetObjectParameterivAPPLE), + NAME_FUNC_OFFSET(14377, glObjectPurgeableAPPLE, glObjectPurgeableAPPLE, NULL, _gloffset_ObjectPurgeableAPPLE), + NAME_FUNC_OFFSET(14400, glObjectUnpurgeableAPPLE, glObjectUnpurgeableAPPLE, NULL, _gloffset_ObjectUnpurgeableAPPLE), + NAME_FUNC_OFFSET(14425, gl_dispatch_stub_810, gl_dispatch_stub_810, NULL, _gloffset_StencilFuncSeparateATI), + NAME_FUNC_OFFSET(14450, gl_dispatch_stub_811, gl_dispatch_stub_811, NULL, _gloffset_ProgramEnvParameters4fvEXT), + NAME_FUNC_OFFSET(14479, gl_dispatch_stub_812, gl_dispatch_stub_812, NULL, _gloffset_ProgramLocalParameters4fvEXT), + NAME_FUNC_OFFSET(14510, gl_dispatch_stub_813, gl_dispatch_stub_813, NULL, _gloffset_GetQueryObjecti64vEXT), + NAME_FUNC_OFFSET(14534, gl_dispatch_stub_814, gl_dispatch_stub_814, NULL, _gloffset_GetQueryObjectui64vEXT), + NAME_FUNC_OFFSET(14559, glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorageOES, NULL, _gloffset_EGLImageTargetRenderbufferStorageOES), + NAME_FUNC_OFFSET(14598, glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2DOES, NULL, _gloffset_EGLImageTargetTexture2DOES), + NAME_FUNC_OFFSET(14627, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement), + NAME_FUNC_OFFSET(14645, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture), + NAME_FUNC_OFFSET(14662, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays), + NAME_FUNC_OFFSET(14678, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident), + NAME_FUNC_OFFSET(14703, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D), + NAME_FUNC_OFFSET(14723, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D), + NAME_FUNC_OFFSET(14743, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D), + NAME_FUNC_OFFSET(14766, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D), + NAME_FUNC_OFFSET(14789, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures), + NAME_FUNC_OFFSET(14809, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures), + NAME_FUNC_OFFSET(14826, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv), + NAME_FUNC_OFFSET(14843, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture), + NAME_FUNC_OFFSET(14858, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures), + NAME_FUNC_OFFSET(14882, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D), + NAME_FUNC_OFFSET(14901, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D), + NAME_FUNC_OFFSET(14920, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor), + NAME_FUNC_OFFSET(14936, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation), + NAME_FUNC_OFFSET(14955, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements), + NAME_FUNC_OFFSET(14978, glColorTable, glColorTable, NULL, _gloffset_ColorTable), + NAME_FUNC_OFFSET(14994, glColorTable, glColorTable, NULL, _gloffset_ColorTable), + NAME_FUNC_OFFSET(15010, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv), + NAME_FUNC_OFFSET(15037, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv), + NAME_FUNC_OFFSET(15064, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable), + NAME_FUNC_OFFSET(15084, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), + NAME_FUNC_OFFSET(15103, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable), + NAME_FUNC_OFFSET(15122, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), + NAME_FUNC_OFFSET(15152, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv), + NAME_FUNC_OFFSET(15182, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), + NAME_FUNC_OFFSET(15212, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv), + NAME_FUNC_OFFSET(15242, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable), + NAME_FUNC_OFFSET(15261, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable), + NAME_FUNC_OFFSET(15284, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D), + NAME_FUNC_OFFSET(15309, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D), + NAME_FUNC_OFFSET(15334, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf), + NAME_FUNC_OFFSET(15361, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv), + NAME_FUNC_OFFSET(15389, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri), + NAME_FUNC_OFFSET(15416, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv), + NAME_FUNC_OFFSET(15444, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D), + NAME_FUNC_OFFSET(15473, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D), + NAME_FUNC_OFFSET(15502, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter), + NAME_FUNC_OFFSET(15528, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv), + NAME_FUNC_OFFSET(15559, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv), + NAME_FUNC_OFFSET(15590, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter), + NAME_FUNC_OFFSET(15614, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D), + NAME_FUNC_OFFSET(15637, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram), + NAME_FUNC_OFFSET(15655, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv), + NAME_FUNC_OFFSET(15684, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv), + NAME_FUNC_OFFSET(15713, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax), + NAME_FUNC_OFFSET(15728, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv), + NAME_FUNC_OFFSET(15754, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv), + NAME_FUNC_OFFSET(15780, glHistogram, glHistogram, NULL, _gloffset_Histogram), + NAME_FUNC_OFFSET(15795, glMinmax, glMinmax, NULL, _gloffset_Minmax), + NAME_FUNC_OFFSET(15807, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram), + NAME_FUNC_OFFSET(15827, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax), + NAME_FUNC_OFFSET(15844, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D), + NAME_FUNC_OFFSET(15860, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D), + NAME_FUNC_OFFSET(15879, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D), + NAME_FUNC_OFFSET(15902, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB), + NAME_FUNC_OFFSET(15918, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB), + NAME_FUNC_OFFSET(15940, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB), + NAME_FUNC_OFFSET(15958, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB), + NAME_FUNC_OFFSET(15977, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB), + NAME_FUNC_OFFSET(15995, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB), + NAME_FUNC_OFFSET(16014, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB), + NAME_FUNC_OFFSET(16032, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB), + NAME_FUNC_OFFSET(16051, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB), + NAME_FUNC_OFFSET(16069, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB), + NAME_FUNC_OFFSET(16088, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB), + NAME_FUNC_OFFSET(16106, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB), + NAME_FUNC_OFFSET(16125, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB), + NAME_FUNC_OFFSET(16143, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB), + NAME_FUNC_OFFSET(16162, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB), + NAME_FUNC_OFFSET(16180, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB), + NAME_FUNC_OFFSET(16199, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB), + NAME_FUNC_OFFSET(16217, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB), + NAME_FUNC_OFFSET(16236, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB), + NAME_FUNC_OFFSET(16254, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB), + NAME_FUNC_OFFSET(16273, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB), + NAME_FUNC_OFFSET(16291, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB), + NAME_FUNC_OFFSET(16310, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB), + NAME_FUNC_OFFSET(16328, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB), + NAME_FUNC_OFFSET(16347, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB), + NAME_FUNC_OFFSET(16365, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB), + NAME_FUNC_OFFSET(16384, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB), + NAME_FUNC_OFFSET(16402, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB), + NAME_FUNC_OFFSET(16421, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB), + NAME_FUNC_OFFSET(16439, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB), + NAME_FUNC_OFFSET(16458, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB), + NAME_FUNC_OFFSET(16476, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB), + NAME_FUNC_OFFSET(16495, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB), + NAME_FUNC_OFFSET(16513, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB), + NAME_FUNC_OFFSET(16532, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate), + NAME_FUNC_OFFSET(16555, glDrawArraysInstanced, glDrawArraysInstanced, NULL, _gloffset_DrawArraysInstanced), + NAME_FUNC_OFFSET(16580, glDrawArraysInstanced, glDrawArraysInstanced, NULL, _gloffset_DrawArraysInstanced), + NAME_FUNC_OFFSET(16605, glDrawElementsInstanced, glDrawElementsInstanced, NULL, _gloffset_DrawElementsInstanced), + NAME_FUNC_OFFSET(16632, glDrawElementsInstanced, glDrawElementsInstanced, NULL, _gloffset_DrawElementsInstanced), + NAME_FUNC_OFFSET(16659, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB), + NAME_FUNC_OFFSET(16682, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB), + NAME_FUNC_OFFSET(16705, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB), + NAME_FUNC_OFFSET(16728, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB), + NAME_FUNC_OFFSET(16751, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB), + NAME_FUNC_OFFSET(16768, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB), + NAME_FUNC_OFFSET(16791, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB), + NAME_FUNC_OFFSET(16814, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB), + NAME_FUNC_OFFSET(16837, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB), + NAME_FUNC_OFFSET(16863, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB), + NAME_FUNC_OFFSET(16889, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB), + NAME_FUNC_OFFSET(16915, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB), + NAME_FUNC_OFFSET(16939, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB), + NAME_FUNC_OFFSET(16966, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB), + NAME_FUNC_OFFSET(16992, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB), + NAME_FUNC_OFFSET(17012, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB), + NAME_FUNC_OFFSET(17032, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB), + NAME_FUNC_OFFSET(17052, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB), + NAME_FUNC_OFFSET(17075, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB), + NAME_FUNC_OFFSET(17099, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB), + NAME_FUNC_OFFSET(17122, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB), + NAME_FUNC_OFFSET(17146, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB), + NAME_FUNC_OFFSET(17163, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB), + NAME_FUNC_OFFSET(17181, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB), + NAME_FUNC_OFFSET(17198, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB), + NAME_FUNC_OFFSET(17216, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB), + NAME_FUNC_OFFSET(17233, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB), + NAME_FUNC_OFFSET(17251, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB), + NAME_FUNC_OFFSET(17268, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB), + NAME_FUNC_OFFSET(17286, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB), + NAME_FUNC_OFFSET(17303, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB), + NAME_FUNC_OFFSET(17321, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB), + NAME_FUNC_OFFSET(17338, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB), + NAME_FUNC_OFFSET(17356, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB), + NAME_FUNC_OFFSET(17373, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB), + NAME_FUNC_OFFSET(17391, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB), + NAME_FUNC_OFFSET(17408, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB), + NAME_FUNC_OFFSET(17426, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB), + NAME_FUNC_OFFSET(17443, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB), + NAME_FUNC_OFFSET(17461, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB), + NAME_FUNC_OFFSET(17480, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB), + NAME_FUNC_OFFSET(17499, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB), + NAME_FUNC_OFFSET(17518, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB), + NAME_FUNC_OFFSET(17537, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB), + NAME_FUNC_OFFSET(17557, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB), + NAME_FUNC_OFFSET(17577, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB), + NAME_FUNC_OFFSET(17597, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB), + NAME_FUNC_OFFSET(17615, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB), + NAME_FUNC_OFFSET(17632, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB), + NAME_FUNC_OFFSET(17650, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB), + NAME_FUNC_OFFSET(17667, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB), + NAME_FUNC_OFFSET(17685, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB), + NAME_FUNC_OFFSET(17703, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB), + NAME_FUNC_OFFSET(17720, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB), + NAME_FUNC_OFFSET(17738, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB), + NAME_FUNC_OFFSET(17757, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB), + NAME_FUNC_OFFSET(17776, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB), + NAME_FUNC_OFFSET(17795, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB), + NAME_FUNC_OFFSET(17817, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB), + NAME_FUNC_OFFSET(17830, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB), + NAME_FUNC_OFFSET(17843, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB), + NAME_FUNC_OFFSET(17859, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB), + NAME_FUNC_OFFSET(17875, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB), + NAME_FUNC_OFFSET(17888, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB), + NAME_FUNC_OFFSET(17911, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB), + NAME_FUNC_OFFSET(17931, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB), + NAME_FUNC_OFFSET(17950, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB), + NAME_FUNC_OFFSET(17961, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB), + NAME_FUNC_OFFSET(17973, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB), + NAME_FUNC_OFFSET(17987, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB), + NAME_FUNC_OFFSET(18000, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB), + NAME_FUNC_OFFSET(18016, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB), + NAME_FUNC_OFFSET(18027, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB), + NAME_FUNC_OFFSET(18040, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB), + NAME_FUNC_OFFSET(18059, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB), + NAME_FUNC_OFFSET(18079, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB), + NAME_FUNC_OFFSET(18092, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB), + NAME_FUNC_OFFSET(18102, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB), + NAME_FUNC_OFFSET(18118, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB), + NAME_FUNC_OFFSET(18137, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB), + NAME_FUNC_OFFSET(18155, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB), + NAME_FUNC_OFFSET(18176, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB), + NAME_FUNC_OFFSET(18191, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB), + NAME_FUNC_OFFSET(18206, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB), + NAME_FUNC_OFFSET(18220, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB), + NAME_FUNC_OFFSET(18235, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB), + NAME_FUNC_OFFSET(18247, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB), + NAME_FUNC_OFFSET(18260, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB), + NAME_FUNC_OFFSET(18272, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB), + NAME_FUNC_OFFSET(18285, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB), + NAME_FUNC_OFFSET(18297, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB), + NAME_FUNC_OFFSET(18310, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB), + NAME_FUNC_OFFSET(18322, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB), + NAME_FUNC_OFFSET(18335, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB), + NAME_FUNC_OFFSET(18347, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB), + NAME_FUNC_OFFSET(18360, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB), + NAME_FUNC_OFFSET(18372, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB), + NAME_FUNC_OFFSET(18385, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB), + NAME_FUNC_OFFSET(18397, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB), + NAME_FUNC_OFFSET(18410, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB), + NAME_FUNC_OFFSET(18422, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB), + NAME_FUNC_OFFSET(18435, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB), + NAME_FUNC_OFFSET(18454, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB), + NAME_FUNC_OFFSET(18473, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB), + NAME_FUNC_OFFSET(18492, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB), + NAME_FUNC_OFFSET(18505, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB), + NAME_FUNC_OFFSET(18523, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB), + NAME_FUNC_OFFSET(18544, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB), + NAME_FUNC_OFFSET(18562, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB), + NAME_FUNC_OFFSET(18582, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), + NAME_FUNC_OFFSET(18596, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB), + NAME_FUNC_OFFSET(18613, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, _gloffset_RenderbufferStorageMultisample), + NAME_FUNC_OFFSET(18649, gl_dispatch_stub_586, gl_dispatch_stub_586, NULL, _gloffset_SampleMaskSGIS), + NAME_FUNC_OFFSET(18665, gl_dispatch_stub_587, gl_dispatch_stub_587, NULL, _gloffset_SamplePatternSGIS), + NAME_FUNC_OFFSET(18684, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18702, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18723, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT), + NAME_FUNC_OFFSET(18745, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18764, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18786, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT), + NAME_FUNC_OFFSET(18809, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT), + NAME_FUNC_OFFSET(18828, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT), + NAME_FUNC_OFFSET(18848, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT), + NAME_FUNC_OFFSET(18867, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT), + NAME_FUNC_OFFSET(18887, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT), + NAME_FUNC_OFFSET(18906, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT), + NAME_FUNC_OFFSET(18926, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT), + NAME_FUNC_OFFSET(18945, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT), + NAME_FUNC_OFFSET(18965, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT), + NAME_FUNC_OFFSET(18984, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT), + NAME_FUNC_OFFSET(19004, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT), + NAME_FUNC_OFFSET(19024, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT), + NAME_FUNC_OFFSET(19045, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT), + NAME_FUNC_OFFSET(19065, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT), + NAME_FUNC_OFFSET(19086, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT), + NAME_FUNC_OFFSET(19106, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT), + NAME_FUNC_OFFSET(19127, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT), + NAME_FUNC_OFFSET(19151, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT), + NAME_FUNC_OFFSET(19169, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT), + NAME_FUNC_OFFSET(19189, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT), + NAME_FUNC_OFFSET(19207, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT), + NAME_FUNC_OFFSET(19219, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT), + NAME_FUNC_OFFSET(19232, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT), + NAME_FUNC_OFFSET(19244, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT), + NAME_FUNC_OFFSET(19257, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), + NAME_FUNC_OFFSET(19277, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT), + NAME_FUNC_OFFSET(19301, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), + NAME_FUNC_OFFSET(19315, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA), + NAME_FUNC_OFFSET(19332, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), + NAME_FUNC_OFFSET(19347, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA), + NAME_FUNC_OFFSET(19365, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), + NAME_FUNC_OFFSET(19379, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA), + NAME_FUNC_OFFSET(19396, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), + NAME_FUNC_OFFSET(19411, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA), + NAME_FUNC_OFFSET(19429, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), + NAME_FUNC_OFFSET(19443, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA), + NAME_FUNC_OFFSET(19460, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), + NAME_FUNC_OFFSET(19475, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA), + NAME_FUNC_OFFSET(19493, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), + NAME_FUNC_OFFSET(19507, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA), + NAME_FUNC_OFFSET(19524, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), + NAME_FUNC_OFFSET(19539, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA), + NAME_FUNC_OFFSET(19557, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), + NAME_FUNC_OFFSET(19571, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA), + NAME_FUNC_OFFSET(19588, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), + NAME_FUNC_OFFSET(19603, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA), + NAME_FUNC_OFFSET(19621, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), + NAME_FUNC_OFFSET(19635, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA), + NAME_FUNC_OFFSET(19652, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), + NAME_FUNC_OFFSET(19667, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA), + NAME_FUNC_OFFSET(19685, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), + NAME_FUNC_OFFSET(19699, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA), + NAME_FUNC_OFFSET(19716, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), + NAME_FUNC_OFFSET(19731, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA), + NAME_FUNC_OFFSET(19749, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), + NAME_FUNC_OFFSET(19763, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA), + NAME_FUNC_OFFSET(19780, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), + NAME_FUNC_OFFSET(19795, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA), + NAME_FUNC_OFFSET(19813, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV), + NAME_FUNC_OFFSET(19830, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV), + NAME_FUNC_OFFSET(19850, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV), + NAME_FUNC_OFFSET(19867, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), + NAME_FUNC_OFFSET(19893, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV), + NAME_FUNC_OFFSET(19922, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV), + NAME_FUNC_OFFSET(19937, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV), + NAME_FUNC_OFFSET(19955, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV), + NAME_FUNC_OFFSET(19974, gl_dispatch_stub_757, gl_dispatch_stub_757, NULL, _gloffset_DeleteVertexArraysAPPLE), + NAME_FUNC_OFFSET(19995, gl_dispatch_stub_759, gl_dispatch_stub_759, NULL, _gloffset_IsVertexArrayAPPLE), + NAME_FUNC_OFFSET(20011, gl_dispatch_stub_767, gl_dispatch_stub_767, NULL, _gloffset_BlendEquationSeparateEXT), + NAME_FUNC_OFFSET(20035, gl_dispatch_stub_767, gl_dispatch_stub_767, NULL, _gloffset_BlendEquationSeparateEXT), + NAME_FUNC_OFFSET(20062, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT), + NAME_FUNC_OFFSET(20080, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT), + NAME_FUNC_OFFSET(20099, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT), + NAME_FUNC_OFFSET(20124, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT), + NAME_FUNC_OFFSET(20145, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT), + NAME_FUNC_OFFSET(20167, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT), + NAME_FUNC_OFFSET(20193, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT), + NAME_FUNC_OFFSET(20216, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT), + NAME_FUNC_OFFSET(20239, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT), + NAME_FUNC_OFFSET(20262, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT), + NAME_FUNC_OFFSET(20280, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT), + NAME_FUNC_OFFSET(20299, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT), + NAME_FUNC_OFFSET(20316, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT), + NAME_FUNC_OFFSET(20354, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT), + NAME_FUNC_OFFSET(20383, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT), + NAME_FUNC_OFFSET(20399, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT), + NAME_FUNC_OFFSET(20416, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT), + NAME_FUNC_OFFSET(20438, gl_dispatch_stub_785, gl_dispatch_stub_785, NULL, _gloffset_BlitFramebufferEXT), + NAME_FUNC_OFFSET(20456, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT), + NAME_FUNC_OFFSET(20482, glBeginTransformFeedbackEXT, glBeginTransformFeedbackEXT, NULL, _gloffset_BeginTransformFeedbackEXT), + NAME_FUNC_OFFSET(20507, glBindBufferBaseEXT, glBindBufferBaseEXT, NULL, _gloffset_BindBufferBaseEXT), + NAME_FUNC_OFFSET(20524, glBindBufferRangeEXT, glBindBufferRangeEXT, NULL, _gloffset_BindBufferRangeEXT), + NAME_FUNC_OFFSET(20542, glEndTransformFeedbackEXT, glEndTransformFeedbackEXT, NULL, _gloffset_EndTransformFeedbackEXT), + NAME_FUNC_OFFSET(20565, glGetTransformFeedbackVaryingEXT, glGetTransformFeedbackVaryingEXT, NULL, _gloffset_GetTransformFeedbackVaryingEXT), + NAME_FUNC_OFFSET(20595, glTransformFeedbackVaryingsEXT, glTransformFeedbackVaryingsEXT, NULL, _gloffset_TransformFeedbackVaryingsEXT), + NAME_FUNC_OFFSET(20623, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT), NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0) }; diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h index c13341be98..52edf67b54 100644 --- a/src/mesa/main/remap_helper.h +++ b/src/mesa/main/remap_helper.h @@ -2122,2291 +2122,2303 @@ static const char _mesa_function_pool[] = "iiip\0" "glGetTexLevelParameteriv\0" "\0" - /* _mesa_function_pool[14377]: CombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[14377]: DrawArraysInstanced (will be remapped) */ + "iiii\0" + "glDrawArraysInstanced\0" + "glDrawArraysInstancedARB\0" + "glDrawArraysInstancedEXT\0" + "\0" + /* _mesa_function_pool[14455]: CombinerStageParameterfvNV (dynamic) */ "iip\0" "glCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[14411]: StopInstrumentsSGIX (dynamic) */ + /* _mesa_function_pool[14489]: StopInstrumentsSGIX (dynamic) */ "i\0" "glStopInstrumentsSGIX\0" "\0" - /* _mesa_function_pool[14436]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[14514]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */ "fffffffffffffff\0" "glTexCoord4fColor4fNormal3fVertex4fSUN\0" "\0" - /* _mesa_function_pool[14492]: ClearAccum (offset 204) */ + /* _mesa_function_pool[14570]: ClearAccum (offset 204) */ "ffff\0" "glClearAccum\0" "\0" - /* _mesa_function_pool[14511]: DeformSGIX (dynamic) */ + /* _mesa_function_pool[14589]: DeformSGIX (dynamic) */ "i\0" "glDeformSGIX\0" "\0" - /* _mesa_function_pool[14527]: GetVertexAttribfvARB (will be remapped) */ + /* _mesa_function_pool[14605]: GetVertexAttribfvARB (will be remapped) */ "iip\0" "glGetVertexAttribfv\0" "glGetVertexAttribfvARB\0" "\0" - /* _mesa_function_pool[14575]: SecondaryColor3ivEXT (will be remapped) */ + /* _mesa_function_pool[14653]: SecondaryColor3ivEXT (will be remapped) */ "p\0" "glSecondaryColor3iv\0" "glSecondaryColor3ivEXT\0" "\0" - /* _mesa_function_pool[14621]: TexCoord4iv (offset 123) */ + /* _mesa_function_pool[14699]: TexCoord4iv (offset 123) */ "p\0" "glTexCoord4iv\0" "\0" - /* _mesa_function_pool[14638]: UniformMatrix4x2fv (will be remapped) */ + /* _mesa_function_pool[14716]: UniformMatrix4x2fv (will be remapped) */ "iiip\0" "glUniformMatrix4x2fv\0" "\0" - /* _mesa_function_pool[14665]: GetDetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[14743]: GetDetailTexFuncSGIS (dynamic) */ "ip\0" "glGetDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[14692]: GetCombinerStageParameterfvNV (dynamic) */ + /* _mesa_function_pool[14770]: GetCombinerStageParameterfvNV (dynamic) */ "iip\0" "glGetCombinerStageParameterfvNV\0" "\0" - /* _mesa_function_pool[14729]: PolygonOffset (offset 319) */ + /* _mesa_function_pool[14807]: PolygonOffset (offset 319) */ "ff\0" "glPolygonOffset\0" "\0" - /* _mesa_function_pool[14749]: BindVertexArray (will be remapped) */ + /* _mesa_function_pool[14827]: BindVertexArray (will be remapped) */ "i\0" "glBindVertexArray\0" "\0" - /* _mesa_function_pool[14770]: Color4ubVertex2fvSUN (dynamic) */ + /* _mesa_function_pool[14848]: Color4ubVertex2fvSUN (dynamic) */ "pp\0" "glColor4ubVertex2fvSUN\0" "\0" - /* _mesa_function_pool[14797]: Rectd (offset 86) */ + /* _mesa_function_pool[14875]: Rectd (offset 86) */ "dddd\0" "glRectd\0" "\0" - /* _mesa_function_pool[14811]: TexFilterFuncSGIS (dynamic) */ + /* _mesa_function_pool[14889]: TexFilterFuncSGIS (dynamic) */ "iiip\0" "glTexFilterFuncSGIS\0" "\0" - /* _mesa_function_pool[14837]: SampleMaskSGIS (will be remapped) */ + /* _mesa_function_pool[14915]: SampleMaskSGIS (will be remapped) */ "fi\0" "glSampleMaskSGIS\0" "glSampleMaskEXT\0" "\0" - /* _mesa_function_pool[14874]: GetAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[14952]: GetAttribLocationARB (will be remapped) */ "ip\0" "glGetAttribLocation\0" "glGetAttribLocationARB\0" "\0" - /* _mesa_function_pool[14921]: RasterPos3i (offset 74) */ + /* _mesa_function_pool[14999]: RasterPos3i (offset 74) */ "iii\0" "glRasterPos3i\0" "\0" - /* _mesa_function_pool[14940]: VertexAttrib4ubvARB (will be remapped) */ + /* _mesa_function_pool[15018]: VertexAttrib4ubvARB (will be remapped) */ "ip\0" "glVertexAttrib4ubv\0" "glVertexAttrib4ubvARB\0" "\0" - /* _mesa_function_pool[14985]: DetailTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[15063]: DetailTexFuncSGIS (dynamic) */ "iip\0" "glDetailTexFuncSGIS\0" "\0" - /* _mesa_function_pool[15010]: Normal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[15088]: Normal3fVertex3fSUN (dynamic) */ "ffffff\0" "glNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[15040]: CopyTexImage2D (offset 324) */ + /* _mesa_function_pool[15118]: CopyTexImage2D (offset 324) */ "iiiiiiii\0" "glCopyTexImage2D\0" "glCopyTexImage2DEXT\0" "\0" - /* _mesa_function_pool[15087]: GetBufferPointervARB (will be remapped) */ + /* _mesa_function_pool[15165]: GetBufferPointervARB (will be remapped) */ "iip\0" "glGetBufferPointerv\0" "glGetBufferPointervARB\0" "\0" - /* _mesa_function_pool[15135]: ProgramEnvParameter4fARB (will be remapped) */ + /* _mesa_function_pool[15213]: ProgramEnvParameter4fARB (will be remapped) */ "iiffff\0" "glProgramEnvParameter4fARB\0" "glProgramParameter4fNV\0" "\0" - /* _mesa_function_pool[15193]: Uniform3ivARB (will be remapped) */ + /* _mesa_function_pool[15271]: Uniform3ivARB (will be remapped) */ "iip\0" "glUniform3iv\0" "glUniform3ivARB\0" "\0" - /* _mesa_function_pool[15227]: Lightfv (offset 160) */ + /* _mesa_function_pool[15305]: Lightfv (offset 160) */ "iip\0" "glLightfv\0" "\0" - /* _mesa_function_pool[15242]: ClearDepth (offset 208) */ + /* _mesa_function_pool[15320]: ClearDepth (offset 208) */ "d\0" "glClearDepth\0" "\0" - /* _mesa_function_pool[15258]: GetFenceivNV (will be remapped) */ + /* _mesa_function_pool[15336]: GetFenceivNV (will be remapped) */ "iip\0" "glGetFenceivNV\0" "\0" - /* _mesa_function_pool[15278]: WindowPos4dvMESA (will be remapped) */ + /* _mesa_function_pool[15356]: WindowPos4dvMESA (will be remapped) */ "p\0" "glWindowPos4dvMESA\0" "\0" - /* _mesa_function_pool[15300]: ColorSubTable (offset 346) */ + /* _mesa_function_pool[15378]: ColorSubTable (offset 346) */ "iiiiip\0" "glColorSubTable\0" "glColorSubTableEXT\0" "\0" - /* _mesa_function_pool[15343]: Color4fv (offset 30) */ + /* _mesa_function_pool[15421]: Color4fv (offset 30) */ "p\0" "glColor4fv\0" "\0" - /* _mesa_function_pool[15357]: MultiTexCoord4ivARB (offset 405) */ + /* _mesa_function_pool[15435]: MultiTexCoord4ivARB (offset 405) */ "ip\0" "glMultiTexCoord4iv\0" "glMultiTexCoord4ivARB\0" "\0" - /* _mesa_function_pool[15402]: ProgramLocalParameters4fvEXT (will be remapped) */ - "iiip\0" - "glProgramLocalParameters4fvEXT\0" + /* _mesa_function_pool[15480]: DrawElementsInstanced (will be remapped) */ + "iiipi\0" + "glDrawElementsInstanced\0" + "glDrawElementsInstancedARB\0" + "glDrawElementsInstancedEXT\0" "\0" - /* _mesa_function_pool[15439]: ColorPointer (offset 308) */ + /* _mesa_function_pool[15565]: ColorPointer (offset 308) */ "iiip\0" "glColorPointer\0" "\0" - /* _mesa_function_pool[15460]: Rects (offset 92) */ + /* _mesa_function_pool[15586]: Rects (offset 92) */ "iiii\0" "glRects\0" "\0" - /* _mesa_function_pool[15474]: GetMapAttribParameterfvNV (dynamic) */ + /* _mesa_function_pool[15600]: GetMapAttribParameterfvNV (dynamic) */ "iiip\0" "glGetMapAttribParameterfvNV\0" "\0" - /* _mesa_function_pool[15508]: Lightiv (offset 162) */ + /* _mesa_function_pool[15634]: Lightiv (offset 162) */ "iip\0" "glLightiv\0" "\0" - /* _mesa_function_pool[15523]: VertexAttrib4sARB (will be remapped) */ + /* _mesa_function_pool[15649]: VertexAttrib4sARB (will be remapped) */ "iiiii\0" "glVertexAttrib4s\0" "glVertexAttrib4sARB\0" "\0" - /* _mesa_function_pool[15567]: GetQueryObjectuivARB (will be remapped) */ + /* _mesa_function_pool[15693]: GetQueryObjectuivARB (will be remapped) */ "iip\0" "glGetQueryObjectuiv\0" "glGetQueryObjectuivARB\0" "\0" - /* _mesa_function_pool[15615]: GetTexParameteriv (offset 283) */ + /* _mesa_function_pool[15741]: GetTexParameteriv (offset 283) */ "iip\0" "glGetTexParameteriv\0" "\0" - /* _mesa_function_pool[15640]: MapParameterivNV (dynamic) */ + /* _mesa_function_pool[15766]: MapParameterivNV (dynamic) */ "iip\0" "glMapParameterivNV\0" "\0" - /* _mesa_function_pool[15664]: GenRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[15790]: GenRenderbuffersEXT (will be remapped) */ "ip\0" "glGenRenderbuffers\0" "glGenRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[15709]: VertexAttrib2dvARB (will be remapped) */ + /* _mesa_function_pool[15835]: VertexAttrib2dvARB (will be remapped) */ "ip\0" "glVertexAttrib2dv\0" "glVertexAttrib2dvARB\0" "\0" - /* _mesa_function_pool[15752]: EdgeFlagPointerEXT (will be remapped) */ + /* _mesa_function_pool[15878]: EdgeFlagPointerEXT (will be remapped) */ "iip\0" "glEdgeFlagPointerEXT\0" "\0" - /* _mesa_function_pool[15778]: VertexAttribs2svNV (will be remapped) */ + /* _mesa_function_pool[15904]: VertexAttribs2svNV (will be remapped) */ "iip\0" "glVertexAttribs2svNV\0" "\0" - /* _mesa_function_pool[15804]: WeightbvARB (dynamic) */ + /* _mesa_function_pool[15930]: WeightbvARB (dynamic) */ "ip\0" "glWeightbvARB\0" "\0" - /* _mesa_function_pool[15822]: VertexAttrib2fvARB (will be remapped) */ + /* _mesa_function_pool[15948]: VertexAttrib2fvARB (will be remapped) */ "ip\0" "glVertexAttrib2fv\0" "glVertexAttrib2fvARB\0" "\0" - /* _mesa_function_pool[15865]: GetBufferParameterivARB (will be remapped) */ + /* _mesa_function_pool[15991]: GetBufferParameterivARB (will be remapped) */ "iip\0" "glGetBufferParameteriv\0" "glGetBufferParameterivARB\0" "\0" - /* _mesa_function_pool[15919]: Rectdv (offset 87) */ + /* _mesa_function_pool[16045]: Rectdv (offset 87) */ "pp\0" "glRectdv\0" "\0" - /* _mesa_function_pool[15932]: ListParameteriSGIX (dynamic) */ + /* _mesa_function_pool[16058]: ListParameteriSGIX (dynamic) */ "iii\0" "glListParameteriSGIX\0" "\0" - /* _mesa_function_pool[15958]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[16084]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffff\0" "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[16017]: InstrumentsBufferSGIX (dynamic) */ + /* _mesa_function_pool[16143]: InstrumentsBufferSGIX (dynamic) */ "ip\0" "glInstrumentsBufferSGIX\0" "\0" - /* _mesa_function_pool[16045]: VertexAttrib4NivARB (will be remapped) */ + /* _mesa_function_pool[16171]: VertexAttrib4NivARB (will be remapped) */ "ip\0" "glVertexAttrib4Niv\0" "glVertexAttrib4NivARB\0" "\0" - /* _mesa_function_pool[16090]: GetAttachedShaders (will be remapped) */ + /* _mesa_function_pool[16216]: GetAttachedShaders (will be remapped) */ "iipp\0" "glGetAttachedShaders\0" "\0" - /* _mesa_function_pool[16117]: GenVertexArraysAPPLE (will be remapped) */ + /* _mesa_function_pool[16243]: GenVertexArraysAPPLE (will be remapped) */ "ip\0" "glGenVertexArraysAPPLE\0" "\0" - /* _mesa_function_pool[16144]: Materialiv (offset 172) */ + /* _mesa_function_pool[16270]: Materialiv (offset 172) */ "iip\0" "glMaterialiv\0" "\0" - /* _mesa_function_pool[16162]: PushClientAttrib (offset 335) */ + /* _mesa_function_pool[16288]: PushClientAttrib (offset 335) */ "i\0" "glPushClientAttrib\0" "\0" - /* _mesa_function_pool[16184]: ProgramEnvParameters4fvEXT (will be remapped) */ + /* _mesa_function_pool[16310]: ProgramEnvParameters4fvEXT (will be remapped) */ "iiip\0" "glProgramEnvParameters4fvEXT\0" "\0" - /* _mesa_function_pool[16219]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[16345]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */ "pppp\0" "glTexCoord2fColor4fNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[16265]: WindowPos2iMESA (will be remapped) */ + /* _mesa_function_pool[16391]: WindowPos2iMESA (will be remapped) */ "ii\0" "glWindowPos2i\0" "glWindowPos2iARB\0" "glWindowPos2iMESA\0" "\0" - /* _mesa_function_pool[16318]: SecondaryColor3fvEXT (will be remapped) */ + /* _mesa_function_pool[16444]: SecondaryColor3fvEXT (will be remapped) */ "p\0" "glSecondaryColor3fv\0" "glSecondaryColor3fvEXT\0" "\0" - /* _mesa_function_pool[16364]: PolygonMode (offset 174) */ + /* _mesa_function_pool[16490]: PolygonMode (offset 174) */ "ii\0" "glPolygonMode\0" "\0" - /* _mesa_function_pool[16382]: CompressedTexSubImage1DARB (will be remapped) */ + /* _mesa_function_pool[16508]: CompressedTexSubImage1DARB (will be remapped) */ "iiiiiip\0" "glCompressedTexSubImage1D\0" "glCompressedTexSubImage1DARB\0" "\0" - /* _mesa_function_pool[16446]: GetVertexAttribivNV (will be remapped) */ + /* _mesa_function_pool[16572]: GetVertexAttribivNV (will be remapped) */ "iip\0" "glGetVertexAttribivNV\0" "\0" - /* _mesa_function_pool[16473]: GetProgramStringARB (will be remapped) */ + /* _mesa_function_pool[16599]: GetProgramStringARB (will be remapped) */ "iip\0" "glGetProgramStringARB\0" "\0" - /* _mesa_function_pool[16500]: TexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[16626]: TexBumpParameterfvATI (will be remapped) */ "ip\0" "glTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[16528]: CompileShaderARB (will be remapped) */ + /* _mesa_function_pool[16654]: CompileShaderARB (will be remapped) */ "i\0" "glCompileShader\0" "glCompileShaderARB\0" "\0" - /* _mesa_function_pool[16566]: DeleteShader (will be remapped) */ + /* _mesa_function_pool[16692]: DeleteShader (will be remapped) */ "i\0" "glDeleteShader\0" "\0" - /* _mesa_function_pool[16584]: DisableClientState (offset 309) */ + /* _mesa_function_pool[16710]: DisableClientState (offset 309) */ "i\0" "glDisableClientState\0" "\0" - /* _mesa_function_pool[16608]: TexGeni (offset 192) */ + /* _mesa_function_pool[16734]: TexGeni (offset 192) */ "iii\0" "glTexGeni\0" "\0" - /* _mesa_function_pool[16623]: TexGenf (offset 190) */ + /* _mesa_function_pool[16749]: TexGenf (offset 190) */ "iif\0" "glTexGenf\0" "\0" - /* _mesa_function_pool[16638]: Uniform3fARB (will be remapped) */ + /* _mesa_function_pool[16764]: Uniform3fARB (will be remapped) */ "ifff\0" "glUniform3f\0" "glUniform3fARB\0" "\0" - /* _mesa_function_pool[16671]: TexGend (offset 188) */ + /* _mesa_function_pool[16797]: TexGend (offset 188) */ "iid\0" "glTexGend\0" "\0" - /* _mesa_function_pool[16686]: ListParameterfvSGIX (dynamic) */ + /* _mesa_function_pool[16812]: ListParameterfvSGIX (dynamic) */ "iip\0" "glListParameterfvSGIX\0" "\0" - /* _mesa_function_pool[16713]: GetPolygonStipple (offset 274) */ + /* _mesa_function_pool[16839]: GetPolygonStipple (offset 274) */ "p\0" "glGetPolygonStipple\0" "\0" - /* _mesa_function_pool[16736]: Tangent3dvEXT (dynamic) */ + /* _mesa_function_pool[16862]: Tangent3dvEXT (dynamic) */ "p\0" "glTangent3dvEXT\0" "\0" - /* _mesa_function_pool[16755]: BindBufferOffsetEXT (will be remapped) */ + /* _mesa_function_pool[16881]: BindBufferOffsetEXT (will be remapped) */ "iiii\0" "glBindBufferOffsetEXT\0" "\0" - /* _mesa_function_pool[16783]: WindowPos3sMESA (will be remapped) */ + /* _mesa_function_pool[16909]: WindowPos3sMESA (will be remapped) */ "iii\0" "glWindowPos3s\0" "glWindowPos3sARB\0" "glWindowPos3sMESA\0" "\0" - /* _mesa_function_pool[16837]: VertexAttrib2svNV (will be remapped) */ + /* _mesa_function_pool[16963]: VertexAttrib2svNV (will be remapped) */ "ip\0" "glVertexAttrib2svNV\0" "\0" - /* _mesa_function_pool[16861]: DisableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[16987]: DisableIndexedEXT (will be remapped) */ "ii\0" "glDisableIndexedEXT\0" "\0" - /* _mesa_function_pool[16885]: BindBufferBaseEXT (will be remapped) */ + /* _mesa_function_pool[17011]: BindBufferBaseEXT (will be remapped) */ "iii\0" "glBindBufferBaseEXT\0" "glBindBufferBase\0" "\0" - /* _mesa_function_pool[16927]: TexCoord2fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[17053]: TexCoord2fVertex3fvSUN (dynamic) */ "pp\0" "glTexCoord2fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[16956]: WindowPos4sMESA (will be remapped) */ + /* _mesa_function_pool[17082]: WindowPos4sMESA (will be remapped) */ "iiii\0" "glWindowPos4sMESA\0" "\0" - /* _mesa_function_pool[16980]: VertexAttrib4NuivARB (will be remapped) */ + /* _mesa_function_pool[17106]: VertexAttrib4NuivARB (will be remapped) */ "ip\0" "glVertexAttrib4Nuiv\0" "glVertexAttrib4NuivARB\0" "\0" - /* _mesa_function_pool[17027]: ClientActiveTextureARB (offset 375) */ + /* _mesa_function_pool[17153]: ClientActiveTextureARB (offset 375) */ "i\0" "glClientActiveTexture\0" "glClientActiveTextureARB\0" "\0" - /* _mesa_function_pool[17077]: PixelTexGenSGIX (will be remapped) */ + /* _mesa_function_pool[17203]: PixelTexGenSGIX (will be remapped) */ "i\0" "glPixelTexGenSGIX\0" "\0" - /* _mesa_function_pool[17098]: ReplacementCodeusvSUN (dynamic) */ + /* _mesa_function_pool[17224]: ReplacementCodeusvSUN (dynamic) */ "p\0" "glReplacementCodeusvSUN\0" "\0" - /* _mesa_function_pool[17125]: Uniform4fARB (will be remapped) */ + /* _mesa_function_pool[17251]: Uniform4fARB (will be remapped) */ "iffff\0" "glUniform4f\0" "glUniform4fARB\0" "\0" - /* _mesa_function_pool[17159]: Color4sv (offset 34) */ + /* _mesa_function_pool[17285]: Color4sv (offset 34) */ "p\0" "glColor4sv\0" "\0" - /* _mesa_function_pool[17173]: FlushMappedBufferRange (will be remapped) */ + /* _mesa_function_pool[17299]: FlushMappedBufferRange (will be remapped) */ "iii\0" "glFlushMappedBufferRange\0" "\0" - /* _mesa_function_pool[17203]: IsProgramNV (will be remapped) */ + /* _mesa_function_pool[17329]: IsProgramNV (will be remapped) */ "i\0" "glIsProgramARB\0" "glIsProgramNV\0" "\0" - /* _mesa_function_pool[17235]: FlushMappedBufferRangeAPPLE (will be remapped) */ + /* _mesa_function_pool[17361]: FlushMappedBufferRangeAPPLE (will be remapped) */ "iii\0" "glFlushMappedBufferRangeAPPLE\0" "\0" - /* _mesa_function_pool[17270]: PixelZoom (offset 246) */ + /* _mesa_function_pool[17396]: PixelZoom (offset 246) */ "ff\0" "glPixelZoom\0" "\0" - /* _mesa_function_pool[17286]: ReplacementCodePointerSUN (dynamic) */ + /* _mesa_function_pool[17412]: ReplacementCodePointerSUN (dynamic) */ "iip\0" "glReplacementCodePointerSUN\0" "\0" - /* _mesa_function_pool[17319]: ProgramEnvParameter4dARB (will be remapped) */ + /* _mesa_function_pool[17445]: ProgramEnvParameter4dARB (will be remapped) */ "iidddd\0" "glProgramEnvParameter4dARB\0" "glProgramParameter4dNV\0" "\0" - /* _mesa_function_pool[17377]: ColorTableParameterfv (offset 340) */ + /* _mesa_function_pool[17503]: ColorTableParameterfv (offset 340) */ "iip\0" "glColorTableParameterfv\0" "glColorTableParameterfvSGI\0" "\0" - /* _mesa_function_pool[17433]: FragmentLightModelfSGIX (dynamic) */ + /* _mesa_function_pool[17559]: FragmentLightModelfSGIX (dynamic) */ "if\0" "glFragmentLightModelfSGIX\0" "\0" - /* _mesa_function_pool[17463]: Binormal3bvEXT (dynamic) */ + /* _mesa_function_pool[17589]: Binormal3bvEXT (dynamic) */ "p\0" "glBinormal3bvEXT\0" "\0" - /* _mesa_function_pool[17483]: PixelMapuiv (offset 252) */ + /* _mesa_function_pool[17609]: PixelMapuiv (offset 252) */ "iip\0" "glPixelMapuiv\0" "\0" - /* _mesa_function_pool[17502]: Color3dv (offset 12) */ + /* _mesa_function_pool[17628]: Color3dv (offset 12) */ "p\0" "glColor3dv\0" "\0" - /* _mesa_function_pool[17516]: IsTexture (offset 330) */ + /* _mesa_function_pool[17642]: IsTexture (offset 330) */ "i\0" "glIsTexture\0" "glIsTextureEXT\0" "\0" - /* _mesa_function_pool[17546]: VertexWeightfvEXT (dynamic) */ + /* _mesa_function_pool[17672]: VertexWeightfvEXT (dynamic) */ "p\0" "glVertexWeightfvEXT\0" "\0" - /* _mesa_function_pool[17569]: VertexAttrib1dARB (will be remapped) */ + /* _mesa_function_pool[17695]: VertexAttrib1dARB (will be remapped) */ "id\0" "glVertexAttrib1d\0" "glVertexAttrib1dARB\0" "\0" - /* _mesa_function_pool[17610]: ImageTransformParameterivHP (dynamic) */ + /* _mesa_function_pool[17736]: ImageTransformParameterivHP (dynamic) */ "iip\0" "glImageTransformParameterivHP\0" "\0" - /* _mesa_function_pool[17645]: TexCoord4i (offset 122) */ + /* _mesa_function_pool[17771]: TexCoord4i (offset 122) */ "iiii\0" "glTexCoord4i\0" "\0" - /* _mesa_function_pool[17664]: DeleteQueriesARB (will be remapped) */ + /* _mesa_function_pool[17790]: DeleteQueriesARB (will be remapped) */ "ip\0" "glDeleteQueries\0" "glDeleteQueriesARB\0" "\0" - /* _mesa_function_pool[17703]: Color4ubVertex2fSUN (dynamic) */ + /* _mesa_function_pool[17829]: Color4ubVertex2fSUN (dynamic) */ "iiiiff\0" "glColor4ubVertex2fSUN\0" "\0" - /* _mesa_function_pool[17733]: FragmentColorMaterialSGIX (dynamic) */ + /* _mesa_function_pool[17859]: FragmentColorMaterialSGIX (dynamic) */ "ii\0" "glFragmentColorMaterialSGIX\0" "\0" - /* _mesa_function_pool[17765]: CurrentPaletteMatrixARB (dynamic) */ + /* _mesa_function_pool[17891]: CurrentPaletteMatrixARB (dynamic) */ "i\0" "glCurrentPaletteMatrixARB\0" "\0" - /* _mesa_function_pool[17794]: GetMapdv (offset 266) */ + /* _mesa_function_pool[17920]: GetMapdv (offset 266) */ "iip\0" "glGetMapdv\0" "\0" - /* _mesa_function_pool[17810]: ObjectPurgeableAPPLE (will be remapped) */ + /* _mesa_function_pool[17936]: ObjectPurgeableAPPLE (will be remapped) */ "iii\0" "glObjectPurgeableAPPLE\0" "\0" - /* _mesa_function_pool[17838]: SamplePatternSGIS (will be remapped) */ + /* _mesa_function_pool[17964]: SamplePatternSGIS (will be remapped) */ "i\0" "glSamplePatternSGIS\0" "glSamplePatternEXT\0" "\0" - /* _mesa_function_pool[17880]: PixelStoref (offset 249) */ + /* _mesa_function_pool[18006]: PixelStoref (offset 249) */ "if\0" "glPixelStoref\0" "\0" - /* _mesa_function_pool[17898]: IsQueryARB (will be remapped) */ + /* _mesa_function_pool[18024]: IsQueryARB (will be remapped) */ "i\0" "glIsQuery\0" "glIsQueryARB\0" "\0" - /* _mesa_function_pool[17924]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[18050]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */ "iiiiifff\0" "glReplacementCodeuiColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[17973]: PixelStorei (offset 250) */ + /* _mesa_function_pool[18099]: PixelStorei (offset 250) */ "ii\0" "glPixelStorei\0" "\0" - /* _mesa_function_pool[17991]: VertexAttrib4usvARB (will be remapped) */ + /* _mesa_function_pool[18117]: VertexAttrib4usvARB (will be remapped) */ "ip\0" "glVertexAttrib4usv\0" "glVertexAttrib4usvARB\0" "\0" - /* _mesa_function_pool[18036]: LinkProgramARB (will be remapped) */ + /* _mesa_function_pool[18162]: LinkProgramARB (will be remapped) */ "i\0" "glLinkProgram\0" "glLinkProgramARB\0" "\0" - /* _mesa_function_pool[18070]: VertexAttrib2fNV (will be remapped) */ + /* _mesa_function_pool[18196]: VertexAttrib2fNV (will be remapped) */ "iff\0" "glVertexAttrib2fNV\0" "\0" - /* _mesa_function_pool[18094]: ShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[18220]: ShaderSourceARB (will be remapped) */ "iipp\0" "glShaderSource\0" "glShaderSourceARB\0" "\0" - /* _mesa_function_pool[18133]: FragmentMaterialiSGIX (dynamic) */ + /* _mesa_function_pool[18259]: FragmentMaterialiSGIX (dynamic) */ "iii\0" "glFragmentMaterialiSGIX\0" "\0" - /* _mesa_function_pool[18162]: EvalCoord2dv (offset 233) */ + /* _mesa_function_pool[18288]: EvalCoord2dv (offset 233) */ "p\0" "glEvalCoord2dv\0" "\0" - /* _mesa_function_pool[18180]: VertexAttrib3svARB (will be remapped) */ + /* _mesa_function_pool[18306]: VertexAttrib3svARB (will be remapped) */ "ip\0" "glVertexAttrib3sv\0" "glVertexAttrib3svARB\0" "\0" - /* _mesa_function_pool[18223]: ColorMaterial (offset 151) */ + /* _mesa_function_pool[18349]: ColorMaterial (offset 151) */ "ii\0" "glColorMaterial\0" "\0" - /* _mesa_function_pool[18243]: CompressedTexSubImage3DARB (will be remapped) */ + /* _mesa_function_pool[18369]: CompressedTexSubImage3DARB (will be remapped) */ "iiiiiiiiiip\0" "glCompressedTexSubImage3D\0" "glCompressedTexSubImage3DARB\0" "\0" - /* _mesa_function_pool[18311]: WindowPos2ivMESA (will be remapped) */ + /* _mesa_function_pool[18437]: WindowPos2ivMESA (will be remapped) */ "p\0" "glWindowPos2iv\0" "glWindowPos2ivARB\0" "glWindowPos2ivMESA\0" "\0" - /* _mesa_function_pool[18366]: IsFramebufferEXT (will be remapped) */ + /* _mesa_function_pool[18492]: IsFramebufferEXT (will be remapped) */ "i\0" "glIsFramebuffer\0" "glIsFramebufferEXT\0" "\0" - /* _mesa_function_pool[18404]: Uniform4ivARB (will be remapped) */ + /* _mesa_function_pool[18530]: Uniform4ivARB (will be remapped) */ "iip\0" "glUniform4iv\0" "glUniform4ivARB\0" "\0" - /* _mesa_function_pool[18438]: GetVertexAttribdvARB (will be remapped) */ + /* _mesa_function_pool[18564]: GetVertexAttribdvARB (will be remapped) */ "iip\0" "glGetVertexAttribdv\0" "glGetVertexAttribdvARB\0" "\0" - /* _mesa_function_pool[18486]: TexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[18612]: TexBumpParameterivATI (will be remapped) */ "ip\0" "glTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[18514]: GetSeparableFilter (offset 359) */ + /* _mesa_function_pool[18640]: GetSeparableFilter (offset 359) */ "iiippp\0" "glGetSeparableFilter\0" "glGetSeparableFilterEXT\0" "\0" - /* _mesa_function_pool[18567]: Binormal3dEXT (dynamic) */ + /* _mesa_function_pool[18693]: Binormal3dEXT (dynamic) */ "ddd\0" "glBinormal3dEXT\0" "\0" - /* _mesa_function_pool[18588]: SpriteParameteriSGIX (dynamic) */ + /* _mesa_function_pool[18714]: SpriteParameteriSGIX (dynamic) */ "ii\0" "glSpriteParameteriSGIX\0" "\0" - /* _mesa_function_pool[18615]: RequestResidentProgramsNV (will be remapped) */ + /* _mesa_function_pool[18741]: RequestResidentProgramsNV (will be remapped) */ "ip\0" "glRequestResidentProgramsNV\0" "\0" - /* _mesa_function_pool[18647]: TagSampleBufferSGIX (dynamic) */ + /* _mesa_function_pool[18773]: TagSampleBufferSGIX (dynamic) */ "\0" "glTagSampleBufferSGIX\0" "\0" - /* _mesa_function_pool[18671]: TransformFeedbackVaryingsEXT (will be remapped) */ + /* _mesa_function_pool[18797]: TransformFeedbackVaryingsEXT (will be remapped) */ "iipi\0" "glTransformFeedbackVaryingsEXT\0" "glTransformFeedbackVaryings\0" "\0" - /* _mesa_function_pool[18736]: FeedbackBuffer (offset 194) */ + /* _mesa_function_pool[18862]: FeedbackBuffer (offset 194) */ "iip\0" "glFeedbackBuffer\0" "\0" - /* _mesa_function_pool[18758]: RasterPos2iv (offset 67) */ + /* _mesa_function_pool[18884]: RasterPos2iv (offset 67) */ "p\0" "glRasterPos2iv\0" "\0" - /* _mesa_function_pool[18776]: TexImage1D (offset 182) */ + /* _mesa_function_pool[18902]: TexImage1D (offset 182) */ "iiiiiiip\0" "glTexImage1D\0" "\0" - /* _mesa_function_pool[18799]: ListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[18925]: ListParameterivSGIX (dynamic) */ "iip\0" "glListParameterivSGIX\0" "\0" - /* _mesa_function_pool[18826]: MultiDrawElementsEXT (will be remapped) */ + /* _mesa_function_pool[18952]: MultiDrawElementsEXT (will be remapped) */ "ipipi\0" "glMultiDrawElements\0" "glMultiDrawElementsEXT\0" "\0" - /* _mesa_function_pool[18876]: Color3s (offset 17) */ + /* _mesa_function_pool[19002]: Color3s (offset 17) */ "iii\0" "glColor3s\0" "\0" - /* _mesa_function_pool[18891]: Uniform1ivARB (will be remapped) */ + /* _mesa_function_pool[19017]: Uniform1ivARB (will be remapped) */ "iip\0" "glUniform1iv\0" "glUniform1ivARB\0" "\0" - /* _mesa_function_pool[18925]: WindowPos2sMESA (will be remapped) */ + /* _mesa_function_pool[19051]: WindowPos2sMESA (will be remapped) */ "ii\0" "glWindowPos2s\0" "glWindowPos2sARB\0" "glWindowPos2sMESA\0" "\0" - /* _mesa_function_pool[18978]: WeightusvARB (dynamic) */ + /* _mesa_function_pool[19104]: WeightusvARB (dynamic) */ "ip\0" "glWeightusvARB\0" "\0" - /* _mesa_function_pool[18997]: TexCoordPointer (offset 320) */ + /* _mesa_function_pool[19123]: TexCoordPointer (offset 320) */ "iiip\0" "glTexCoordPointer\0" "\0" - /* _mesa_function_pool[19021]: FogCoordPointerEXT (will be remapped) */ + /* _mesa_function_pool[19147]: FogCoordPointerEXT (will be remapped) */ "iip\0" "glFogCoordPointer\0" "glFogCoordPointerEXT\0" "\0" - /* _mesa_function_pool[19065]: IndexMaterialEXT (dynamic) */ + /* _mesa_function_pool[19191]: IndexMaterialEXT (dynamic) */ "ii\0" "glIndexMaterialEXT\0" "\0" - /* _mesa_function_pool[19088]: Color3i (offset 15) */ + /* _mesa_function_pool[19214]: Color3i (offset 15) */ "iii\0" "glColor3i\0" "\0" - /* _mesa_function_pool[19103]: FrontFace (offset 157) */ + /* _mesa_function_pool[19229]: FrontFace (offset 157) */ "i\0" "glFrontFace\0" "\0" - /* _mesa_function_pool[19118]: EvalCoord2d (offset 232) */ + /* _mesa_function_pool[19244]: EvalCoord2d (offset 232) */ "dd\0" "glEvalCoord2d\0" "\0" - /* _mesa_function_pool[19136]: SecondaryColor3ubvEXT (will be remapped) */ + /* _mesa_function_pool[19262]: SecondaryColor3ubvEXT (will be remapped) */ "p\0" "glSecondaryColor3ubv\0" "glSecondaryColor3ubvEXT\0" "\0" - /* _mesa_function_pool[19184]: EvalCoord2f (offset 234) */ + /* _mesa_function_pool[19310]: EvalCoord2f (offset 234) */ "ff\0" "glEvalCoord2f\0" "\0" - /* _mesa_function_pool[19202]: VertexAttrib4dvARB (will be remapped) */ + /* _mesa_function_pool[19328]: VertexAttrib4dvARB (will be remapped) */ "ip\0" "glVertexAttrib4dv\0" "glVertexAttrib4dvARB\0" "\0" - /* _mesa_function_pool[19245]: BindAttribLocationARB (will be remapped) */ + /* _mesa_function_pool[19371]: BindAttribLocationARB (will be remapped) */ "iip\0" "glBindAttribLocation\0" "glBindAttribLocationARB\0" "\0" - /* _mesa_function_pool[19295]: Color3b (offset 9) */ + /* _mesa_function_pool[19421]: Color3b (offset 9) */ "iii\0" "glColor3b\0" "\0" - /* _mesa_function_pool[19310]: MultiTexCoord2dARB (offset 384) */ + /* _mesa_function_pool[19436]: MultiTexCoord2dARB (offset 384) */ "idd\0" "glMultiTexCoord2d\0" "glMultiTexCoord2dARB\0" "\0" - /* _mesa_function_pool[19354]: ExecuteProgramNV (will be remapped) */ + /* _mesa_function_pool[19480]: ExecuteProgramNV (will be remapped) */ "iip\0" "glExecuteProgramNV\0" "\0" - /* _mesa_function_pool[19378]: Color3f (offset 13) */ + /* _mesa_function_pool[19504]: Color3f (offset 13) */ "fff\0" "glColor3f\0" "\0" - /* _mesa_function_pool[19393]: LightEnviSGIX (dynamic) */ + /* _mesa_function_pool[19519]: LightEnviSGIX (dynamic) */ "ii\0" "glLightEnviSGIX\0" "\0" - /* _mesa_function_pool[19413]: Color3d (offset 11) */ + /* _mesa_function_pool[19539]: Color3d (offset 11) */ "ddd\0" "glColor3d\0" "\0" - /* _mesa_function_pool[19428]: Normal3dv (offset 55) */ + /* _mesa_function_pool[19554]: Normal3dv (offset 55) */ "p\0" "glNormal3dv\0" "\0" - /* _mesa_function_pool[19443]: Lightf (offset 159) */ + /* _mesa_function_pool[19569]: Lightf (offset 159) */ "iif\0" "glLightf\0" "\0" - /* _mesa_function_pool[19457]: ReplacementCodeuiSUN (dynamic) */ + /* _mesa_function_pool[19583]: ReplacementCodeuiSUN (dynamic) */ "i\0" "glReplacementCodeuiSUN\0" "\0" - /* _mesa_function_pool[19483]: MatrixMode (offset 293) */ + /* _mesa_function_pool[19609]: MatrixMode (offset 293) */ "i\0" "glMatrixMode\0" "\0" - /* _mesa_function_pool[19499]: GetPixelMapusv (offset 273) */ + /* _mesa_function_pool[19625]: GetPixelMapusv (offset 273) */ "ip\0" "glGetPixelMapusv\0" "\0" - /* _mesa_function_pool[19520]: Lighti (offset 161) */ + /* _mesa_function_pool[19646]: Lighti (offset 161) */ "iii\0" "glLighti\0" "\0" - /* _mesa_function_pool[19534]: VertexAttribPointerNV (will be remapped) */ + /* _mesa_function_pool[19660]: VertexAttribPointerNV (will be remapped) */ "iiiip\0" "glVertexAttribPointerNV\0" "\0" - /* _mesa_function_pool[19565]: GetBooleanIndexedvEXT (will be remapped) */ + /* _mesa_function_pool[19691]: ProgramLocalParameters4fvEXT (will be remapped) */ + "iiip\0" + "glProgramLocalParameters4fvEXT\0" + "\0" + /* _mesa_function_pool[19728]: GetBooleanIndexedvEXT (will be remapped) */ "iip\0" "glGetBooleanIndexedvEXT\0" "\0" - /* _mesa_function_pool[19594]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ + /* _mesa_function_pool[19757]: GetFramebufferAttachmentParameterivEXT (will be remapped) */ "iiip\0" "glGetFramebufferAttachmentParameteriv\0" "glGetFramebufferAttachmentParameterivEXT\0" "\0" - /* _mesa_function_pool[19679]: PixelTransformParameterfEXT (dynamic) */ + /* _mesa_function_pool[19842]: PixelTransformParameterfEXT (dynamic) */ "iif\0" "glPixelTransformParameterfEXT\0" "\0" - /* _mesa_function_pool[19714]: MultiTexCoord4dvARB (offset 401) */ + /* _mesa_function_pool[19877]: MultiTexCoord4dvARB (offset 401) */ "ip\0" "glMultiTexCoord4dv\0" "glMultiTexCoord4dvARB\0" "\0" - /* _mesa_function_pool[19759]: PixelTransformParameteriEXT (dynamic) */ + /* _mesa_function_pool[19922]: PixelTransformParameteriEXT (dynamic) */ "iii\0" "glPixelTransformParameteriEXT\0" "\0" - /* _mesa_function_pool[19794]: GetDoublev (offset 260) */ + /* _mesa_function_pool[19957]: GetDoublev (offset 260) */ "ip\0" "glGetDoublev\0" "\0" - /* _mesa_function_pool[19811]: MultMatrixd (offset 295) */ + /* _mesa_function_pool[19974]: MultMatrixd (offset 295) */ "p\0" "glMultMatrixd\0" "\0" - /* _mesa_function_pool[19828]: MultMatrixf (offset 294) */ + /* _mesa_function_pool[19991]: MultMatrixf (offset 294) */ "p\0" "glMultMatrixf\0" "\0" - /* _mesa_function_pool[19845]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ + /* _mesa_function_pool[20008]: TexCoord2fColor4ubVertex3fSUN (dynamic) */ "ffiiiifff\0" "glTexCoord2fColor4ubVertex3fSUN\0" "\0" - /* _mesa_function_pool[19888]: Uniform1iARB (will be remapped) */ + /* _mesa_function_pool[20051]: Uniform1iARB (will be remapped) */ "ii\0" "glUniform1i\0" "glUniform1iARB\0" "\0" - /* _mesa_function_pool[19919]: VertexAttribPointerARB (will be remapped) */ + /* _mesa_function_pool[20082]: VertexAttribPointerARB (will be remapped) */ "iiiiip\0" "glVertexAttribPointer\0" "glVertexAttribPointerARB\0" "\0" - /* _mesa_function_pool[19974]: SharpenTexFuncSGIS (dynamic) */ + /* _mesa_function_pool[20137]: SharpenTexFuncSGIS (dynamic) */ "iip\0" "glSharpenTexFuncSGIS\0" "\0" - /* _mesa_function_pool[20000]: MultiTexCoord4fvARB (offset 403) */ + /* _mesa_function_pool[20163]: MultiTexCoord4fvARB (offset 403) */ "ip\0" "glMultiTexCoord4fv\0" "glMultiTexCoord4fvARB\0" "\0" - /* _mesa_function_pool[20045]: UniformMatrix2x3fv (will be remapped) */ + /* _mesa_function_pool[20208]: UniformMatrix2x3fv (will be remapped) */ "iiip\0" "glUniformMatrix2x3fv\0" "\0" - /* _mesa_function_pool[20072]: TrackMatrixNV (will be remapped) */ + /* _mesa_function_pool[20235]: TrackMatrixNV (will be remapped) */ "iiii\0" "glTrackMatrixNV\0" "\0" - /* _mesa_function_pool[20094]: CombinerParameteriNV (will be remapped) */ + /* _mesa_function_pool[20257]: CombinerParameteriNV (will be remapped) */ "ii\0" "glCombinerParameteriNV\0" "\0" - /* _mesa_function_pool[20121]: DeleteAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[20284]: DeleteAsyncMarkersSGIX (dynamic) */ "ii\0" "glDeleteAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[20150]: ReplacementCodeusSUN (dynamic) */ + /* _mesa_function_pool[20313]: ReplacementCodeusSUN (dynamic) */ "i\0" "glReplacementCodeusSUN\0" "\0" - /* _mesa_function_pool[20176]: IsAsyncMarkerSGIX (dynamic) */ + /* _mesa_function_pool[20339]: IsAsyncMarkerSGIX (dynamic) */ "i\0" "glIsAsyncMarkerSGIX\0" "\0" - /* _mesa_function_pool[20199]: FrameZoomSGIX (dynamic) */ + /* _mesa_function_pool[20362]: FrameZoomSGIX (dynamic) */ "i\0" "glFrameZoomSGIX\0" "\0" - /* _mesa_function_pool[20218]: Normal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[20381]: Normal3fVertex3fvSUN (dynamic) */ "pp\0" "glNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[20245]: RasterPos4sv (offset 85) */ + /* _mesa_function_pool[20408]: RasterPos4sv (offset 85) */ "p\0" "glRasterPos4sv\0" "\0" - /* _mesa_function_pool[20263]: VertexAttrib4NsvARB (will be remapped) */ + /* _mesa_function_pool[20426]: VertexAttrib4NsvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nsv\0" "glVertexAttrib4NsvARB\0" "\0" - /* _mesa_function_pool[20308]: VertexAttrib3fvARB (will be remapped) */ + /* _mesa_function_pool[20471]: VertexAttrib3fvARB (will be remapped) */ "ip\0" "glVertexAttrib3fv\0" "glVertexAttrib3fvARB\0" "\0" - /* _mesa_function_pool[20351]: ClearColor (offset 206) */ + /* _mesa_function_pool[20514]: ClearColor (offset 206) */ "ffff\0" "glClearColor\0" "\0" - /* _mesa_function_pool[20370]: GetSynciv (will be remapped) */ + /* _mesa_function_pool[20533]: GetSynciv (will be remapped) */ "iiipp\0" "glGetSynciv\0" "\0" - /* _mesa_function_pool[20389]: DeleteFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[20552]: DeleteFramebuffersEXT (will be remapped) */ "ip\0" "glDeleteFramebuffers\0" "glDeleteFramebuffersEXT\0" "\0" - /* _mesa_function_pool[20438]: GlobalAlphaFactorsSUN (dynamic) */ + /* _mesa_function_pool[20601]: GlobalAlphaFactorsSUN (dynamic) */ "i\0" "glGlobalAlphaFactorsSUN\0" "\0" - /* _mesa_function_pool[20465]: IsEnabledIndexedEXT (will be remapped) */ + /* _mesa_function_pool[20628]: IsEnabledIndexedEXT (will be remapped) */ "ii\0" "glIsEnabledIndexedEXT\0" "\0" - /* _mesa_function_pool[20491]: TexEnviv (offset 187) */ + /* _mesa_function_pool[20654]: TexEnviv (offset 187) */ "iip\0" "glTexEnviv\0" "\0" - /* _mesa_function_pool[20507]: TexSubImage3D (offset 372) */ + /* _mesa_function_pool[20670]: TexSubImage3D (offset 372) */ "iiiiiiiiiip\0" "glTexSubImage3D\0" "glTexSubImage3DEXT\0" "\0" - /* _mesa_function_pool[20555]: Tangent3fEXT (dynamic) */ + /* _mesa_function_pool[20718]: Tangent3fEXT (dynamic) */ "fff\0" "glTangent3fEXT\0" "\0" - /* _mesa_function_pool[20575]: SecondaryColor3uivEXT (will be remapped) */ + /* _mesa_function_pool[20738]: SecondaryColor3uivEXT (will be remapped) */ "p\0" "glSecondaryColor3uiv\0" "glSecondaryColor3uivEXT\0" "\0" - /* _mesa_function_pool[20623]: MatrixIndexubvARB (dynamic) */ + /* _mesa_function_pool[20786]: MatrixIndexubvARB (dynamic) */ "ip\0" "glMatrixIndexubvARB\0" "\0" - /* _mesa_function_pool[20647]: Color4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[20810]: Color4fNormal3fVertex3fSUN (dynamic) */ "ffffffffff\0" "glColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[20688]: PixelTexGenParameterfSGIS (will be remapped) */ + /* _mesa_function_pool[20851]: PixelTexGenParameterfSGIS (will be remapped) */ "if\0" "glPixelTexGenParameterfSGIS\0" "\0" - /* _mesa_function_pool[20720]: CreateShader (will be remapped) */ + /* _mesa_function_pool[20883]: CreateShader (will be remapped) */ "i\0" "glCreateShader\0" "\0" - /* _mesa_function_pool[20738]: GetColorTableParameterfv (offset 344) */ + /* _mesa_function_pool[20901]: GetColorTableParameterfv (offset 344) */ "iip\0" "glGetColorTableParameterfv\0" "glGetColorTableParameterfvSGI\0" "glGetColorTableParameterfvEXT\0" "\0" - /* _mesa_function_pool[20830]: FragmentLightModelfvSGIX (dynamic) */ + /* _mesa_function_pool[20993]: FragmentLightModelfvSGIX (dynamic) */ "ip\0" "glFragmentLightModelfvSGIX\0" "\0" - /* _mesa_function_pool[20861]: Bitmap (offset 8) */ + /* _mesa_function_pool[21024]: Bitmap (offset 8) */ "iiffffp\0" "glBitmap\0" "\0" - /* _mesa_function_pool[20879]: MultiTexCoord3fARB (offset 394) */ + /* _mesa_function_pool[21042]: MultiTexCoord3fARB (offset 394) */ "ifff\0" "glMultiTexCoord3f\0" "glMultiTexCoord3fARB\0" "\0" - /* _mesa_function_pool[20924]: GetTexLevelParameterfv (offset 284) */ + /* _mesa_function_pool[21087]: GetTexLevelParameterfv (offset 284) */ "iiip\0" "glGetTexLevelParameterfv\0" "\0" - /* _mesa_function_pool[20955]: GetPixelTexGenParameterfvSGIS (will be remapped) */ + /* _mesa_function_pool[21118]: GetPixelTexGenParameterfvSGIS (will be remapped) */ "ip\0" "glGetPixelTexGenParameterfvSGIS\0" "\0" - /* _mesa_function_pool[20991]: GenFramebuffersEXT (will be remapped) */ + /* _mesa_function_pool[21154]: GenFramebuffersEXT (will be remapped) */ "ip\0" "glGenFramebuffers\0" "glGenFramebuffersEXT\0" "\0" - /* _mesa_function_pool[21034]: GetProgramParameterdvNV (will be remapped) */ + /* _mesa_function_pool[21197]: GetProgramParameterdvNV (will be remapped) */ "iiip\0" "glGetProgramParameterdvNV\0" "\0" - /* _mesa_function_pool[21066]: Vertex2sv (offset 133) */ + /* _mesa_function_pool[21229]: Vertex2sv (offset 133) */ "p\0" "glVertex2sv\0" "\0" - /* _mesa_function_pool[21081]: GetIntegerv (offset 263) */ + /* _mesa_function_pool[21244]: GetIntegerv (offset 263) */ "ip\0" "glGetIntegerv\0" "\0" - /* _mesa_function_pool[21099]: IsVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[21262]: IsVertexArrayAPPLE (will be remapped) */ "i\0" "glIsVertexArray\0" "glIsVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[21139]: FragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[21302]: FragmentLightfvSGIX (dynamic) */ "iip\0" "glFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[21166]: DetachShader (will be remapped) */ + /* _mesa_function_pool[21329]: DetachShader (will be remapped) */ "ii\0" "glDetachShader\0" "\0" - /* _mesa_function_pool[21185]: VertexAttrib4NubARB (will be remapped) */ + /* _mesa_function_pool[21348]: VertexAttrib4NubARB (will be remapped) */ "iiiii\0" "glVertexAttrib4Nub\0" "glVertexAttrib4NubARB\0" "\0" - /* _mesa_function_pool[21233]: GetProgramEnvParameterfvARB (will be remapped) */ + /* _mesa_function_pool[21396]: GetProgramEnvParameterfvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterfvARB\0" "\0" - /* _mesa_function_pool[21268]: GetTrackMatrixivNV (will be remapped) */ + /* _mesa_function_pool[21431]: GetTrackMatrixivNV (will be remapped) */ "iiip\0" "glGetTrackMatrixivNV\0" "\0" - /* _mesa_function_pool[21295]: VertexAttrib3svNV (will be remapped) */ + /* _mesa_function_pool[21458]: VertexAttrib3svNV (will be remapped) */ "ip\0" "glVertexAttrib3svNV\0" "\0" - /* _mesa_function_pool[21319]: Uniform4fvARB (will be remapped) */ + /* _mesa_function_pool[21482]: Uniform4fvARB (will be remapped) */ "iip\0" "glUniform4fv\0" "glUniform4fvARB\0" "\0" - /* _mesa_function_pool[21353]: MultTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[21516]: MultTransposeMatrixfARB (will be remapped) */ "p\0" "glMultTransposeMatrixf\0" "glMultTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[21405]: GetTexEnviv (offset 277) */ + /* _mesa_function_pool[21568]: GetTexEnviv (offset 277) */ "iip\0" "glGetTexEnviv\0" "\0" - /* _mesa_function_pool[21424]: ColorFragmentOp1ATI (will be remapped) */ + /* _mesa_function_pool[21587]: ColorFragmentOp1ATI (will be remapped) */ "iiiiiii\0" "glColorFragmentOp1ATI\0" "\0" - /* _mesa_function_pool[21455]: GetUniformfvARB (will be remapped) */ + /* _mesa_function_pool[21618]: GetUniformfvARB (will be remapped) */ "iip\0" "glGetUniformfv\0" "glGetUniformfvARB\0" "\0" - /* _mesa_function_pool[21493]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ + /* _mesa_function_pool[21656]: EGLImageTargetRenderbufferStorageOES (will be remapped) */ "ip\0" "glEGLImageTargetRenderbufferStorageOES\0" "\0" - /* _mesa_function_pool[21536]: PopClientAttrib (offset 334) */ + /* _mesa_function_pool[21699]: PopClientAttrib (offset 334) */ "\0" "glPopClientAttrib\0" "\0" - /* _mesa_function_pool[21556]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[21719]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */ "iffffffffffff\0" "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[21627]: DetachObjectARB (will be remapped) */ + /* _mesa_function_pool[21790]: DetachObjectARB (will be remapped) */ "ii\0" "glDetachObjectARB\0" "\0" - /* _mesa_function_pool[21649]: VertexBlendARB (dynamic) */ + /* _mesa_function_pool[21812]: VertexBlendARB (dynamic) */ "i\0" "glVertexBlendARB\0" "\0" - /* _mesa_function_pool[21669]: WindowPos3iMESA (will be remapped) */ + /* _mesa_function_pool[21832]: WindowPos3iMESA (will be remapped) */ "iii\0" "glWindowPos3i\0" "glWindowPos3iARB\0" "glWindowPos3iMESA\0" "\0" - /* _mesa_function_pool[21723]: SeparableFilter2D (offset 360) */ + /* _mesa_function_pool[21886]: SeparableFilter2D (offset 360) */ "iiiiiipp\0" "glSeparableFilter2D\0" "glSeparableFilter2DEXT\0" "\0" - /* _mesa_function_pool[21776]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[21939]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiColor4ubVertex3fvSUN\0" "\0" - /* _mesa_function_pool[21821]: Map1d (offset 220) */ + /* _mesa_function_pool[21984]: Map1d (offset 220) */ "iddiip\0" "glMap1d\0" "\0" - /* _mesa_function_pool[21837]: Map1f (offset 221) */ + /* _mesa_function_pool[22000]: Map1f (offset 221) */ "iffiip\0" "glMap1f\0" "\0" - /* _mesa_function_pool[21853]: CompressedTexImage2DARB (will be remapped) */ + /* _mesa_function_pool[22016]: CompressedTexImage2DARB (will be remapped) */ "iiiiiiip\0" "glCompressedTexImage2D\0" "glCompressedTexImage2DARB\0" "\0" - /* _mesa_function_pool[21912]: ArrayElement (offset 306) */ + /* _mesa_function_pool[22075]: ArrayElement (offset 306) */ "i\0" "glArrayElement\0" "glArrayElementEXT\0" "\0" - /* _mesa_function_pool[21948]: TexImage2D (offset 183) */ + /* _mesa_function_pool[22111]: TexImage2D (offset 183) */ "iiiiiiiip\0" "glTexImage2D\0" "\0" - /* _mesa_function_pool[21972]: DepthBoundsEXT (will be remapped) */ + /* _mesa_function_pool[22135]: DepthBoundsEXT (will be remapped) */ "dd\0" "glDepthBoundsEXT\0" "\0" - /* _mesa_function_pool[21993]: ProgramParameters4fvNV (will be remapped) */ + /* _mesa_function_pool[22156]: ProgramParameters4fvNV (will be remapped) */ "iiip\0" "glProgramParameters4fvNV\0" "\0" - /* _mesa_function_pool[22024]: DeformationMap3fSGIX (dynamic) */ + /* _mesa_function_pool[22187]: DeformationMap3fSGIX (dynamic) */ "iffiiffiiffiip\0" "glDeformationMap3fSGIX\0" "\0" - /* _mesa_function_pool[22063]: GetProgramivNV (will be remapped) */ + /* _mesa_function_pool[22226]: GetProgramivNV (will be remapped) */ "iip\0" "glGetProgramivNV\0" "\0" - /* _mesa_function_pool[22085]: GetMinmaxParameteriv (offset 366) */ + /* _mesa_function_pool[22248]: GetMinmaxParameteriv (offset 366) */ "iip\0" "glGetMinmaxParameteriv\0" "glGetMinmaxParameterivEXT\0" "\0" - /* _mesa_function_pool[22139]: PixelTransferf (offset 247) */ + /* _mesa_function_pool[22302]: PixelTransferf (offset 247) */ "if\0" "glPixelTransferf\0" "\0" - /* _mesa_function_pool[22160]: CopyTexImage1D (offset 323) */ + /* _mesa_function_pool[22323]: CopyTexImage1D (offset 323) */ "iiiiiii\0" "glCopyTexImage1D\0" "glCopyTexImage1DEXT\0" "\0" - /* _mesa_function_pool[22206]: PushMatrix (offset 298) */ + /* _mesa_function_pool[22369]: PushMatrix (offset 298) */ "\0" "glPushMatrix\0" "\0" - /* _mesa_function_pool[22221]: Fogiv (offset 156) */ + /* _mesa_function_pool[22384]: Fogiv (offset 156) */ "ip\0" "glFogiv\0" "\0" - /* _mesa_function_pool[22233]: TexCoord1dv (offset 95) */ + /* _mesa_function_pool[22396]: TexCoord1dv (offset 95) */ "p\0" "glTexCoord1dv\0" "\0" - /* _mesa_function_pool[22250]: AlphaFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[22413]: AlphaFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiii\0" "glAlphaFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[22286]: PixelTransferi (offset 248) */ + /* _mesa_function_pool[22449]: PixelTransferi (offset 248) */ "ii\0" "glPixelTransferi\0" "\0" - /* _mesa_function_pool[22307]: GetVertexAttribdvNV (will be remapped) */ + /* _mesa_function_pool[22470]: GetVertexAttribdvNV (will be remapped) */ "iip\0" "glGetVertexAttribdvNV\0" "\0" - /* _mesa_function_pool[22334]: VertexAttrib3fvNV (will be remapped) */ + /* _mesa_function_pool[22497]: VertexAttrib3fvNV (will be remapped) */ "ip\0" "glVertexAttrib3fvNV\0" "\0" - /* _mesa_function_pool[22358]: Rotatef (offset 300) */ + /* _mesa_function_pool[22521]: Rotatef (offset 300) */ "ffff\0" "glRotatef\0" "\0" - /* _mesa_function_pool[22374]: GetFinalCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[22537]: GetFinalCombinerInputParameterivNV (will be remapped) */ "iip\0" "glGetFinalCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[22416]: Vertex3i (offset 138) */ + /* _mesa_function_pool[22579]: Vertex3i (offset 138) */ "iii\0" "glVertex3i\0" "\0" - /* _mesa_function_pool[22432]: Vertex3f (offset 136) */ + /* _mesa_function_pool[22595]: Vertex3f (offset 136) */ "fff\0" "glVertex3f\0" "\0" - /* _mesa_function_pool[22448]: Clear (offset 203) */ + /* _mesa_function_pool[22611]: Clear (offset 203) */ "i\0" "glClear\0" "\0" - /* _mesa_function_pool[22459]: Vertex3d (offset 134) */ + /* _mesa_function_pool[22622]: Vertex3d (offset 134) */ "ddd\0" "glVertex3d\0" "\0" - /* _mesa_function_pool[22475]: GetMapParameterivNV (dynamic) */ + /* _mesa_function_pool[22638]: GetMapParameterivNV (dynamic) */ "iip\0" "glGetMapParameterivNV\0" "\0" - /* _mesa_function_pool[22502]: Uniform4iARB (will be remapped) */ + /* _mesa_function_pool[22665]: Uniform4iARB (will be remapped) */ "iiiii\0" "glUniform4i\0" "glUniform4iARB\0" "\0" - /* _mesa_function_pool[22536]: ReadBuffer (offset 254) */ + /* _mesa_function_pool[22699]: ReadBuffer (offset 254) */ "i\0" "glReadBuffer\0" "\0" - /* _mesa_function_pool[22552]: ConvolutionParameteri (offset 352) */ + /* _mesa_function_pool[22715]: ConvolutionParameteri (offset 352) */ "iii\0" "glConvolutionParameteri\0" "glConvolutionParameteriEXT\0" "\0" - /* _mesa_function_pool[22608]: Ortho (offset 296) */ + /* _mesa_function_pool[22771]: Ortho (offset 296) */ "dddddd\0" "glOrtho\0" "\0" - /* _mesa_function_pool[22624]: Binormal3sEXT (dynamic) */ + /* _mesa_function_pool[22787]: Binormal3sEXT (dynamic) */ "iii\0" "glBinormal3sEXT\0" "\0" - /* _mesa_function_pool[22645]: ListBase (offset 6) */ + /* _mesa_function_pool[22808]: ListBase (offset 6) */ "i\0" "glListBase\0" "\0" - /* _mesa_function_pool[22659]: Vertex3s (offset 140) */ + /* _mesa_function_pool[22822]: Vertex3s (offset 140) */ "iii\0" "glVertex3s\0" "\0" - /* _mesa_function_pool[22675]: ConvolutionParameterf (offset 350) */ + /* _mesa_function_pool[22838]: ConvolutionParameterf (offset 350) */ "iif\0" "glConvolutionParameterf\0" "glConvolutionParameterfEXT\0" "\0" - /* _mesa_function_pool[22731]: GetColorTableParameteriv (offset 345) */ + /* _mesa_function_pool[22894]: GetColorTableParameteriv (offset 345) */ "iip\0" "glGetColorTableParameteriv\0" "glGetColorTableParameterivSGI\0" "glGetColorTableParameterivEXT\0" "\0" - /* _mesa_function_pool[22823]: ProgramEnvParameter4dvARB (will be remapped) */ + /* _mesa_function_pool[22986]: ProgramEnvParameter4dvARB (will be remapped) */ "iip\0" "glProgramEnvParameter4dvARB\0" "glProgramParameter4dvNV\0" "\0" - /* _mesa_function_pool[22880]: ShadeModel (offset 177) */ + /* _mesa_function_pool[23043]: ShadeModel (offset 177) */ "i\0" "glShadeModel\0" "\0" - /* _mesa_function_pool[22896]: VertexAttribs2fvNV (will be remapped) */ + /* _mesa_function_pool[23059]: VertexAttribs2fvNV (will be remapped) */ "iip\0" "glVertexAttribs2fvNV\0" "\0" - /* _mesa_function_pool[22922]: Rectiv (offset 91) */ + /* _mesa_function_pool[23085]: Rectiv (offset 91) */ "pp\0" "glRectiv\0" "\0" - /* _mesa_function_pool[22935]: UseProgramObjectARB (will be remapped) */ + /* _mesa_function_pool[23098]: UseProgramObjectARB (will be remapped) */ "i\0" "glUseProgram\0" "glUseProgramObjectARB\0" "\0" - /* _mesa_function_pool[22973]: GetMapParameterfvNV (dynamic) */ + /* _mesa_function_pool[23136]: GetMapParameterfvNV (dynamic) */ "iip\0" "glGetMapParameterfvNV\0" "\0" - /* _mesa_function_pool[23000]: EndConditionalRenderNV (will be remapped) */ + /* _mesa_function_pool[23163]: EndConditionalRenderNV (will be remapped) */ "\0" "glEndConditionalRenderNV\0" "\0" - /* _mesa_function_pool[23027]: PassTexCoordATI (will be remapped) */ + /* _mesa_function_pool[23190]: PassTexCoordATI (will be remapped) */ "iii\0" "glPassTexCoordATI\0" "\0" - /* _mesa_function_pool[23050]: DeleteProgram (will be remapped) */ + /* _mesa_function_pool[23213]: DeleteProgram (will be remapped) */ "i\0" "glDeleteProgram\0" "\0" - /* _mesa_function_pool[23069]: Tangent3ivEXT (dynamic) */ + /* _mesa_function_pool[23232]: Tangent3ivEXT (dynamic) */ "p\0" "glTangent3ivEXT\0" "\0" - /* _mesa_function_pool[23088]: Tangent3dEXT (dynamic) */ + /* _mesa_function_pool[23251]: Tangent3dEXT (dynamic) */ "ddd\0" "glTangent3dEXT\0" "\0" - /* _mesa_function_pool[23108]: SecondaryColor3dvEXT (will be remapped) */ + /* _mesa_function_pool[23271]: SecondaryColor3dvEXT (will be remapped) */ "p\0" "glSecondaryColor3dv\0" "glSecondaryColor3dvEXT\0" "\0" - /* _mesa_function_pool[23154]: Vertex2fv (offset 129) */ + /* _mesa_function_pool[23317]: Vertex2fv (offset 129) */ "p\0" "glVertex2fv\0" "\0" - /* _mesa_function_pool[23169]: MultiDrawArraysEXT (will be remapped) */ + /* _mesa_function_pool[23332]: MultiDrawArraysEXT (will be remapped) */ "ippi\0" "glMultiDrawArrays\0" "glMultiDrawArraysEXT\0" "\0" - /* _mesa_function_pool[23214]: BindRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[23377]: BindRenderbufferEXT (will be remapped) */ "ii\0" "glBindRenderbuffer\0" "glBindRenderbufferEXT\0" "\0" - /* _mesa_function_pool[23259]: MultiTexCoord4dARB (offset 400) */ + /* _mesa_function_pool[23422]: MultiTexCoord4dARB (offset 400) */ "idddd\0" "glMultiTexCoord4d\0" "glMultiTexCoord4dARB\0" "\0" - /* _mesa_function_pool[23305]: Vertex3sv (offset 141) */ + /* _mesa_function_pool[23468]: Vertex3sv (offset 141) */ "p\0" "glVertex3sv\0" "\0" - /* _mesa_function_pool[23320]: SecondaryColor3usEXT (will be remapped) */ + /* _mesa_function_pool[23483]: SecondaryColor3usEXT (will be remapped) */ "iii\0" "glSecondaryColor3us\0" "glSecondaryColor3usEXT\0" "\0" - /* _mesa_function_pool[23368]: ProgramLocalParameter4fvARB (will be remapped) */ + /* _mesa_function_pool[23531]: ProgramLocalParameter4fvARB (will be remapped) */ "iip\0" "glProgramLocalParameter4fvARB\0" "\0" - /* _mesa_function_pool[23403]: DeleteProgramsNV (will be remapped) */ + /* _mesa_function_pool[23566]: DeleteProgramsNV (will be remapped) */ "ip\0" "glDeleteProgramsARB\0" "glDeleteProgramsNV\0" "\0" - /* _mesa_function_pool[23446]: EvalMesh1 (offset 236) */ + /* _mesa_function_pool[23609]: EvalMesh1 (offset 236) */ "iii\0" "glEvalMesh1\0" "\0" - /* _mesa_function_pool[23463]: MultiTexCoord1sARB (offset 382) */ + /* _mesa_function_pool[23626]: MultiTexCoord1sARB (offset 382) */ "ii\0" "glMultiTexCoord1s\0" "glMultiTexCoord1sARB\0" "\0" - /* _mesa_function_pool[23506]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ + /* _mesa_function_pool[23669]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */ "iffffff\0" "glReplacementCodeuiColor3fVertex3fSUN\0" "\0" - /* _mesa_function_pool[23553]: GetVertexAttribPointervNV (will be remapped) */ + /* _mesa_function_pool[23716]: GetVertexAttribPointervNV (will be remapped) */ "iip\0" "glGetVertexAttribPointerv\0" "glGetVertexAttribPointervARB\0" "glGetVertexAttribPointervNV\0" "\0" - /* _mesa_function_pool[23641]: VertexAttribs1fvNV (will be remapped) */ + /* _mesa_function_pool[23804]: VertexAttribs1fvNV (will be remapped) */ "iip\0" "glVertexAttribs1fvNV\0" "\0" - /* _mesa_function_pool[23667]: MultiTexCoord1dvARB (offset 377) */ + /* _mesa_function_pool[23830]: MultiTexCoord1dvARB (offset 377) */ "ip\0" "glMultiTexCoord1dv\0" "glMultiTexCoord1dvARB\0" "\0" - /* _mesa_function_pool[23712]: Uniform2iARB (will be remapped) */ + /* _mesa_function_pool[23875]: Uniform2iARB (will be remapped) */ "iii\0" "glUniform2i\0" "glUniform2iARB\0" "\0" - /* _mesa_function_pool[23744]: Vertex2iv (offset 131) */ + /* _mesa_function_pool[23907]: Vertex2iv (offset 131) */ "p\0" "glVertex2iv\0" "\0" - /* _mesa_function_pool[23759]: GetProgramStringNV (will be remapped) */ + /* _mesa_function_pool[23922]: GetProgramStringNV (will be remapped) */ "iip\0" "glGetProgramStringNV\0" "\0" - /* _mesa_function_pool[23785]: ColorPointerEXT (will be remapped) */ + /* _mesa_function_pool[23948]: ColorPointerEXT (will be remapped) */ "iiiip\0" "glColorPointerEXT\0" "\0" - /* _mesa_function_pool[23810]: LineWidth (offset 168) */ + /* _mesa_function_pool[23973]: LineWidth (offset 168) */ "f\0" "glLineWidth\0" "\0" - /* _mesa_function_pool[23825]: MapBufferARB (will be remapped) */ + /* _mesa_function_pool[23988]: MapBufferARB (will be remapped) */ "ii\0" "glMapBuffer\0" "glMapBufferARB\0" "\0" - /* _mesa_function_pool[23856]: MultiDrawElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[24019]: MultiDrawElementsBaseVertex (will be remapped) */ "ipipip\0" "glMultiDrawElementsBaseVertex\0" "\0" - /* _mesa_function_pool[23894]: Binormal3svEXT (dynamic) */ + /* _mesa_function_pool[24057]: Binormal3svEXT (dynamic) */ "p\0" "glBinormal3svEXT\0" "\0" - /* _mesa_function_pool[23914]: ApplyTextureEXT (dynamic) */ + /* _mesa_function_pool[24077]: ApplyTextureEXT (dynamic) */ "i\0" "glApplyTextureEXT\0" "\0" - /* _mesa_function_pool[23935]: TexGendv (offset 189) */ + /* _mesa_function_pool[24098]: TexGendv (offset 189) */ "iip\0" "glTexGendv\0" "\0" - /* _mesa_function_pool[23951]: EnableIndexedEXT (will be remapped) */ + /* _mesa_function_pool[24114]: EnableIndexedEXT (will be remapped) */ "ii\0" "glEnableIndexedEXT\0" "\0" - /* _mesa_function_pool[23974]: TextureMaterialEXT (dynamic) */ + /* _mesa_function_pool[24137]: TextureMaterialEXT (dynamic) */ "ii\0" "glTextureMaterialEXT\0" "\0" - /* _mesa_function_pool[23999]: TextureLightEXT (dynamic) */ + /* _mesa_function_pool[24162]: TextureLightEXT (dynamic) */ "i\0" "glTextureLightEXT\0" "\0" - /* _mesa_function_pool[24020]: ResetMinmax (offset 370) */ + /* _mesa_function_pool[24183]: ResetMinmax (offset 370) */ "i\0" "glResetMinmax\0" "glResetMinmaxEXT\0" "\0" - /* _mesa_function_pool[24054]: SpriteParameterfSGIX (dynamic) */ + /* _mesa_function_pool[24217]: SpriteParameterfSGIX (dynamic) */ "if\0" "glSpriteParameterfSGIX\0" "\0" - /* _mesa_function_pool[24081]: EnableClientState (offset 313) */ + /* _mesa_function_pool[24244]: EnableClientState (offset 313) */ "i\0" "glEnableClientState\0" "\0" - /* _mesa_function_pool[24104]: VertexAttrib4sNV (will be remapped) */ + /* _mesa_function_pool[24267]: VertexAttrib4sNV (will be remapped) */ "iiiii\0" "glVertexAttrib4sNV\0" "\0" - /* _mesa_function_pool[24130]: GetConvolutionParameterfv (offset 357) */ + /* _mesa_function_pool[24293]: GetConvolutionParameterfv (offset 357) */ "iip\0" "glGetConvolutionParameterfv\0" "glGetConvolutionParameterfvEXT\0" "\0" - /* _mesa_function_pool[24194]: VertexAttribs4dvNV (will be remapped) */ + /* _mesa_function_pool[24357]: VertexAttribs4dvNV (will be remapped) */ "iip\0" "glVertexAttribs4dvNV\0" "\0" - /* _mesa_function_pool[24220]: MultiModeDrawArraysIBM (will be remapped) */ + /* _mesa_function_pool[24383]: MultiModeDrawArraysIBM (will be remapped) */ "pppii\0" "glMultiModeDrawArraysIBM\0" "\0" - /* _mesa_function_pool[24252]: VertexAttrib4dARB (will be remapped) */ + /* _mesa_function_pool[24415]: VertexAttrib4dARB (will be remapped) */ "idddd\0" "glVertexAttrib4d\0" "glVertexAttrib4dARB\0" "\0" - /* _mesa_function_pool[24296]: GetTexBumpParameterfvATI (will be remapped) */ + /* _mesa_function_pool[24459]: GetTexBumpParameterfvATI (will be remapped) */ "ip\0" "glGetTexBumpParameterfvATI\0" "\0" - /* _mesa_function_pool[24327]: ProgramNamedParameter4dNV (will be remapped) */ + /* _mesa_function_pool[24490]: ProgramNamedParameter4dNV (will be remapped) */ "iipdddd\0" "glProgramNamedParameter4dNV\0" "\0" - /* _mesa_function_pool[24364]: GetMaterialfv (offset 269) */ + /* _mesa_function_pool[24527]: GetMaterialfv (offset 269) */ "iip\0" "glGetMaterialfv\0" "\0" - /* _mesa_function_pool[24385]: VertexWeightfEXT (dynamic) */ + /* _mesa_function_pool[24548]: VertexWeightfEXT (dynamic) */ "f\0" "glVertexWeightfEXT\0" "\0" - /* _mesa_function_pool[24407]: Binormal3fEXT (dynamic) */ + /* _mesa_function_pool[24570]: Binormal3fEXT (dynamic) */ "fff\0" "glBinormal3fEXT\0" "\0" - /* _mesa_function_pool[24428]: CallList (offset 2) */ + /* _mesa_function_pool[24591]: CallList (offset 2) */ "i\0" "glCallList\0" "\0" - /* _mesa_function_pool[24442]: Materialfv (offset 170) */ + /* _mesa_function_pool[24605]: Materialfv (offset 170) */ "iip\0" "glMaterialfv\0" "\0" - /* _mesa_function_pool[24460]: TexCoord3fv (offset 113) */ + /* _mesa_function_pool[24623]: TexCoord3fv (offset 113) */ "p\0" "glTexCoord3fv\0" "\0" - /* _mesa_function_pool[24477]: FogCoordfvEXT (will be remapped) */ + /* _mesa_function_pool[24640]: FogCoordfvEXT (will be remapped) */ "p\0" "glFogCoordfv\0" "glFogCoordfvEXT\0" "\0" - /* _mesa_function_pool[24509]: MultiTexCoord1ivARB (offset 381) */ + /* _mesa_function_pool[24672]: MultiTexCoord1ivARB (offset 381) */ "ip\0" "glMultiTexCoord1iv\0" "glMultiTexCoord1ivARB\0" "\0" - /* _mesa_function_pool[24554]: SecondaryColor3ubEXT (will be remapped) */ + /* _mesa_function_pool[24717]: SecondaryColor3ubEXT (will be remapped) */ "iii\0" "glSecondaryColor3ub\0" "glSecondaryColor3ubEXT\0" "\0" - /* _mesa_function_pool[24602]: MultiTexCoord2ivARB (offset 389) */ + /* _mesa_function_pool[24765]: MultiTexCoord2ivARB (offset 389) */ "ip\0" "glMultiTexCoord2iv\0" "glMultiTexCoord2ivARB\0" "\0" - /* _mesa_function_pool[24647]: FogFuncSGIS (dynamic) */ + /* _mesa_function_pool[24810]: FogFuncSGIS (dynamic) */ "ip\0" "glFogFuncSGIS\0" "\0" - /* _mesa_function_pool[24665]: CopyTexSubImage2D (offset 326) */ + /* _mesa_function_pool[24828]: CopyTexSubImage2D (offset 326) */ "iiiiiiii\0" "glCopyTexSubImage2D\0" "glCopyTexSubImage2DEXT\0" "\0" - /* _mesa_function_pool[24718]: GetObjectParameterivARB (will be remapped) */ + /* _mesa_function_pool[24881]: GetObjectParameterivARB (will be remapped) */ "iip\0" "glGetObjectParameterivARB\0" "\0" - /* _mesa_function_pool[24749]: Color3iv (offset 16) */ + /* _mesa_function_pool[24912]: Color3iv (offset 16) */ "p\0" "glColor3iv\0" "\0" - /* _mesa_function_pool[24763]: TexCoord4fVertex4fSUN (dynamic) */ + /* _mesa_function_pool[24926]: TexCoord4fVertex4fSUN (dynamic) */ "ffffffff\0" "glTexCoord4fVertex4fSUN\0" "\0" - /* _mesa_function_pool[24797]: DrawElements (offset 311) */ + /* _mesa_function_pool[24960]: DrawElements (offset 311) */ "iiip\0" "glDrawElements\0" "\0" - /* _mesa_function_pool[24818]: BindVertexArrayAPPLE (will be remapped) */ + /* _mesa_function_pool[24981]: BindVertexArrayAPPLE (will be remapped) */ "i\0" "glBindVertexArrayAPPLE\0" "\0" - /* _mesa_function_pool[24844]: GetProgramLocalParameterdvARB (will be remapped) */ + /* _mesa_function_pool[25007]: GetProgramLocalParameterdvARB (will be remapped) */ "iip\0" "glGetProgramLocalParameterdvARB\0" "\0" - /* _mesa_function_pool[24881]: GetHistogramParameteriv (offset 363) */ + /* _mesa_function_pool[25044]: GetHistogramParameteriv (offset 363) */ "iip\0" "glGetHistogramParameteriv\0" "glGetHistogramParameterivEXT\0" "\0" - /* _mesa_function_pool[24941]: MultiTexCoord1iARB (offset 380) */ + /* _mesa_function_pool[25104]: MultiTexCoord1iARB (offset 380) */ "ii\0" "glMultiTexCoord1i\0" "glMultiTexCoord1iARB\0" "\0" - /* _mesa_function_pool[24984]: GetConvolutionFilter (offset 356) */ + /* _mesa_function_pool[25147]: GetConvolutionFilter (offset 356) */ "iiip\0" "glGetConvolutionFilter\0" "glGetConvolutionFilterEXT\0" "\0" - /* _mesa_function_pool[25039]: GetProgramivARB (will be remapped) */ + /* _mesa_function_pool[25202]: GetProgramivARB (will be remapped) */ "iip\0" "glGetProgramivARB\0" "\0" - /* _mesa_function_pool[25062]: BlendFuncSeparateEXT (will be remapped) */ + /* _mesa_function_pool[25225]: BlendFuncSeparateEXT (will be remapped) */ "iiii\0" "glBlendFuncSeparate\0" "glBlendFuncSeparateEXT\0" "glBlendFuncSeparateINGR\0" "\0" - /* _mesa_function_pool[25135]: MapBufferRange (will be remapped) */ + /* _mesa_function_pool[25298]: MapBufferRange (will be remapped) */ "iiii\0" "glMapBufferRange\0" "\0" - /* _mesa_function_pool[25158]: ProgramParameters4dvNV (will be remapped) */ + /* _mesa_function_pool[25321]: ProgramParameters4dvNV (will be remapped) */ "iiip\0" "glProgramParameters4dvNV\0" "\0" - /* _mesa_function_pool[25189]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[25352]: TexCoord2fColor3fVertex3fvSUN (dynamic) */ "ppp\0" "glTexCoord2fColor3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[25226]: EvalPoint2 (offset 239) */ + /* _mesa_function_pool[25389]: EvalPoint2 (offset 239) */ "ii\0" "glEvalPoint2\0" "\0" - /* _mesa_function_pool[25243]: EvalPoint1 (offset 237) */ + /* _mesa_function_pool[25406]: EvalPoint1 (offset 237) */ "i\0" "glEvalPoint1\0" "\0" - /* _mesa_function_pool[25259]: Binormal3dvEXT (dynamic) */ + /* _mesa_function_pool[25422]: Binormal3dvEXT (dynamic) */ "p\0" "glBinormal3dvEXT\0" "\0" - /* _mesa_function_pool[25279]: PopMatrix (offset 297) */ + /* _mesa_function_pool[25442]: PopMatrix (offset 297) */ "\0" "glPopMatrix\0" "\0" - /* _mesa_function_pool[25293]: FinishFenceNV (will be remapped) */ + /* _mesa_function_pool[25456]: FinishFenceNV (will be remapped) */ "i\0" "glFinishFenceNV\0" "\0" - /* _mesa_function_pool[25312]: GetFogFuncSGIS (dynamic) */ + /* _mesa_function_pool[25475]: GetFogFuncSGIS (dynamic) */ "p\0" "glGetFogFuncSGIS\0" "\0" - /* _mesa_function_pool[25332]: GetUniformLocationARB (will be remapped) */ + /* _mesa_function_pool[25495]: GetUniformLocationARB (will be remapped) */ "ip\0" "glGetUniformLocation\0" "glGetUniformLocationARB\0" "\0" - /* _mesa_function_pool[25381]: SecondaryColor3fEXT (will be remapped) */ + /* _mesa_function_pool[25544]: SecondaryColor3fEXT (will be remapped) */ "fff\0" "glSecondaryColor3f\0" "glSecondaryColor3fEXT\0" "\0" - /* _mesa_function_pool[25427]: GetTexGeniv (offset 280) */ + /* _mesa_function_pool[25590]: GetTexGeniv (offset 280) */ "iip\0" "glGetTexGeniv\0" "\0" - /* _mesa_function_pool[25446]: CombinerInputNV (will be remapped) */ + /* _mesa_function_pool[25609]: CombinerInputNV (will be remapped) */ "iiiiii\0" "glCombinerInputNV\0" "\0" - /* _mesa_function_pool[25472]: VertexAttrib3sARB (will be remapped) */ + /* _mesa_function_pool[25635]: VertexAttrib3sARB (will be remapped) */ "iiii\0" "glVertexAttrib3s\0" "glVertexAttrib3sARB\0" "\0" - /* _mesa_function_pool[25515]: ColorMaskIndexedEXT (will be remapped) */ + /* _mesa_function_pool[25678]: ColorMaskIndexedEXT (will be remapped) */ "iiiii\0" "glColorMaskIndexedEXT\0" "\0" - /* _mesa_function_pool[25544]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ + /* _mesa_function_pool[25707]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */ "ppp\0" "glReplacementCodeuiNormal3fVertex3fvSUN\0" "\0" - /* _mesa_function_pool[25589]: Map2d (offset 222) */ + /* _mesa_function_pool[25752]: Map2d (offset 222) */ "iddiiddiip\0" "glMap2d\0" "\0" - /* _mesa_function_pool[25609]: Map2f (offset 223) */ + /* _mesa_function_pool[25772]: Map2f (offset 223) */ "iffiiffiip\0" "glMap2f\0" "\0" - /* _mesa_function_pool[25629]: ProgramStringARB (will be remapped) */ + /* _mesa_function_pool[25792]: ProgramStringARB (will be remapped) */ "iiip\0" "glProgramStringARB\0" "\0" - /* _mesa_function_pool[25654]: Vertex4s (offset 148) */ + /* _mesa_function_pool[25817]: Vertex4s (offset 148) */ "iiii\0" "glVertex4s\0" "\0" - /* _mesa_function_pool[25671]: TexCoord4fVertex4fvSUN (dynamic) */ + /* _mesa_function_pool[25834]: TexCoord4fVertex4fvSUN (dynamic) */ "pp\0" "glTexCoord4fVertex4fvSUN\0" "\0" - /* _mesa_function_pool[25700]: VertexAttrib3sNV (will be remapped) */ + /* _mesa_function_pool[25863]: VertexAttrib3sNV (will be remapped) */ "iiii\0" "glVertexAttrib3sNV\0" "\0" - /* _mesa_function_pool[25725]: VertexAttrib1fNV (will be remapped) */ + /* _mesa_function_pool[25888]: VertexAttrib1fNV (will be remapped) */ "if\0" "glVertexAttrib1fNV\0" "\0" - /* _mesa_function_pool[25748]: Vertex4f (offset 144) */ + /* _mesa_function_pool[25911]: Vertex4f (offset 144) */ "ffff\0" "glVertex4f\0" "\0" - /* _mesa_function_pool[25765]: EvalCoord1d (offset 228) */ + /* _mesa_function_pool[25928]: EvalCoord1d (offset 228) */ "d\0" "glEvalCoord1d\0" "\0" - /* _mesa_function_pool[25782]: Vertex4d (offset 142) */ + /* _mesa_function_pool[25945]: Vertex4d (offset 142) */ "dddd\0" "glVertex4d\0" "\0" - /* _mesa_function_pool[25799]: RasterPos4dv (offset 79) */ + /* _mesa_function_pool[25962]: RasterPos4dv (offset 79) */ "p\0" "glRasterPos4dv\0" "\0" - /* _mesa_function_pool[25817]: FragmentLightfSGIX (dynamic) */ + /* _mesa_function_pool[25980]: FragmentLightfSGIX (dynamic) */ "iif\0" "glFragmentLightfSGIX\0" "\0" - /* _mesa_function_pool[25843]: GetCompressedTexImageARB (will be remapped) */ + /* _mesa_function_pool[26006]: GetCompressedTexImageARB (will be remapped) */ "iip\0" "glGetCompressedTexImage\0" "glGetCompressedTexImageARB\0" "\0" - /* _mesa_function_pool[25899]: GetTexGenfv (offset 279) */ + /* _mesa_function_pool[26062]: GetTexGenfv (offset 279) */ "iip\0" "glGetTexGenfv\0" "\0" - /* _mesa_function_pool[25918]: Vertex4i (offset 146) */ + /* _mesa_function_pool[26081]: Vertex4i (offset 146) */ "iiii\0" "glVertex4i\0" "\0" - /* _mesa_function_pool[25935]: VertexWeightPointerEXT (dynamic) */ + /* _mesa_function_pool[26098]: VertexWeightPointerEXT (dynamic) */ "iiip\0" "glVertexWeightPointerEXT\0" "\0" - /* _mesa_function_pool[25966]: GetHistogram (offset 361) */ + /* _mesa_function_pool[26129]: GetHistogram (offset 361) */ "iiiip\0" "glGetHistogram\0" "glGetHistogramEXT\0" "\0" - /* _mesa_function_pool[26006]: ActiveStencilFaceEXT (will be remapped) */ + /* _mesa_function_pool[26169]: ActiveStencilFaceEXT (will be remapped) */ "i\0" "glActiveStencilFaceEXT\0" "\0" - /* _mesa_function_pool[26032]: StencilFuncSeparateATI (will be remapped) */ + /* _mesa_function_pool[26195]: StencilFuncSeparateATI (will be remapped) */ "iiii\0" "glStencilFuncSeparateATI\0" "\0" - /* _mesa_function_pool[26063]: Materialf (offset 169) */ + /* _mesa_function_pool[26226]: Materialf (offset 169) */ "iif\0" "glMaterialf\0" "\0" - /* _mesa_function_pool[26080]: GetShaderSourceARB (will be remapped) */ + /* _mesa_function_pool[26243]: GetShaderSourceARB (will be remapped) */ "iipp\0" "glGetShaderSource\0" "glGetShaderSourceARB\0" "\0" - /* _mesa_function_pool[26125]: IglooInterfaceSGIX (dynamic) */ + /* _mesa_function_pool[26288]: IglooInterfaceSGIX (dynamic) */ "ip\0" "glIglooInterfaceSGIX\0" "\0" - /* _mesa_function_pool[26150]: Materiali (offset 171) */ + /* _mesa_function_pool[26313]: Materiali (offset 171) */ "iii\0" "glMateriali\0" "\0" - /* _mesa_function_pool[26167]: VertexAttrib4dNV (will be remapped) */ + /* _mesa_function_pool[26330]: VertexAttrib4dNV (will be remapped) */ "idddd\0" "glVertexAttrib4dNV\0" "\0" - /* _mesa_function_pool[26193]: MultiModeDrawElementsIBM (will be remapped) */ + /* _mesa_function_pool[26356]: MultiModeDrawElementsIBM (will be remapped) */ "ppipii\0" "glMultiModeDrawElementsIBM\0" "\0" - /* _mesa_function_pool[26228]: Indexsv (offset 51) */ + /* _mesa_function_pool[26391]: Indexsv (offset 51) */ "p\0" "glIndexsv\0" "\0" - /* _mesa_function_pool[26241]: MultiTexCoord4svARB (offset 407) */ + /* _mesa_function_pool[26404]: MultiTexCoord4svARB (offset 407) */ "ip\0" "glMultiTexCoord4sv\0" "glMultiTexCoord4svARB\0" "\0" - /* _mesa_function_pool[26286]: LightModelfv (offset 164) */ + /* _mesa_function_pool[26449]: LightModelfv (offset 164) */ "ip\0" "glLightModelfv\0" "\0" - /* _mesa_function_pool[26305]: TexCoord2dv (offset 103) */ + /* _mesa_function_pool[26468]: TexCoord2dv (offset 103) */ "p\0" "glTexCoord2dv\0" "\0" - /* _mesa_function_pool[26322]: GenQueriesARB (will be remapped) */ + /* _mesa_function_pool[26485]: GenQueriesARB (will be remapped) */ "ip\0" "glGenQueries\0" "glGenQueriesARB\0" "\0" - /* _mesa_function_pool[26355]: EvalCoord1dv (offset 229) */ + /* _mesa_function_pool[26518]: EvalCoord1dv (offset 229) */ "p\0" "glEvalCoord1dv\0" "\0" - /* _mesa_function_pool[26373]: ReplacementCodeuiVertex3fSUN (dynamic) */ + /* _mesa_function_pool[26536]: ReplacementCodeuiVertex3fSUN (dynamic) */ "ifff\0" "glReplacementCodeuiVertex3fSUN\0" "\0" - /* _mesa_function_pool[26410]: Translated (offset 303) */ + /* _mesa_function_pool[26573]: Translated (offset 303) */ "ddd\0" "glTranslated\0" "\0" - /* _mesa_function_pool[26428]: Translatef (offset 304) */ + /* _mesa_function_pool[26591]: Translatef (offset 304) */ "fff\0" "glTranslatef\0" "\0" - /* _mesa_function_pool[26446]: StencilMask (offset 209) */ + /* _mesa_function_pool[26609]: StencilMask (offset 209) */ "i\0" "glStencilMask\0" "\0" - /* _mesa_function_pool[26463]: Tangent3iEXT (dynamic) */ + /* _mesa_function_pool[26626]: Tangent3iEXT (dynamic) */ "iii\0" "glTangent3iEXT\0" "\0" - /* _mesa_function_pool[26483]: GetLightiv (offset 265) */ + /* _mesa_function_pool[26646]: GetLightiv (offset 265) */ "iip\0" "glGetLightiv\0" "\0" - /* _mesa_function_pool[26501]: DrawMeshArraysSUN (dynamic) */ + /* _mesa_function_pool[26664]: DrawMeshArraysSUN (dynamic) */ "iiii\0" "glDrawMeshArraysSUN\0" "\0" - /* _mesa_function_pool[26527]: IsList (offset 287) */ + /* _mesa_function_pool[26690]: IsList (offset 287) */ "i\0" "glIsList\0" "\0" - /* _mesa_function_pool[26539]: IsSync (will be remapped) */ + /* _mesa_function_pool[26702]: IsSync (will be remapped) */ "i\0" "glIsSync\0" "\0" - /* _mesa_function_pool[26551]: RenderMode (offset 196) */ + /* _mesa_function_pool[26714]: RenderMode (offset 196) */ "i\0" "glRenderMode\0" "\0" - /* _mesa_function_pool[26567]: GetMapControlPointsNV (dynamic) */ + /* _mesa_function_pool[26730]: GetMapControlPointsNV (dynamic) */ "iiiiiip\0" "glGetMapControlPointsNV\0" "\0" - /* _mesa_function_pool[26600]: DrawBuffersARB (will be remapped) */ + /* _mesa_function_pool[26763]: DrawBuffersARB (will be remapped) */ "ip\0" "glDrawBuffers\0" "glDrawBuffersARB\0" "glDrawBuffersATI\0" "\0" - /* _mesa_function_pool[26652]: ProgramLocalParameter4fARB (will be remapped) */ + /* _mesa_function_pool[26815]: ProgramLocalParameter4fARB (will be remapped) */ "iiffff\0" "glProgramLocalParameter4fARB\0" "\0" - /* _mesa_function_pool[26689]: SpriteParameterivSGIX (dynamic) */ + /* _mesa_function_pool[26852]: SpriteParameterivSGIX (dynamic) */ "ip\0" "glSpriteParameterivSGIX\0" "\0" - /* _mesa_function_pool[26717]: ProvokingVertexEXT (will be remapped) */ + /* _mesa_function_pool[26880]: ProvokingVertexEXT (will be remapped) */ "i\0" "glProvokingVertexEXT\0" "glProvokingVertex\0" "\0" - /* _mesa_function_pool[26759]: MultiTexCoord1fARB (offset 378) */ + /* _mesa_function_pool[26922]: MultiTexCoord1fARB (offset 378) */ "if\0" "glMultiTexCoord1f\0" "glMultiTexCoord1fARB\0" "\0" - /* _mesa_function_pool[26802]: LoadName (offset 198) */ + /* _mesa_function_pool[26965]: LoadName (offset 198) */ "i\0" "glLoadName\0" "\0" - /* _mesa_function_pool[26816]: VertexAttribs4ubvNV (will be remapped) */ + /* _mesa_function_pool[26979]: VertexAttribs4ubvNV (will be remapped) */ "iip\0" "glVertexAttribs4ubvNV\0" "\0" - /* _mesa_function_pool[26843]: WeightsvARB (dynamic) */ + /* _mesa_function_pool[27006]: WeightsvARB (dynamic) */ "ip\0" "glWeightsvARB\0" "\0" - /* _mesa_function_pool[26861]: Uniform1fvARB (will be remapped) */ + /* _mesa_function_pool[27024]: Uniform1fvARB (will be remapped) */ "iip\0" "glUniform1fv\0" "glUniform1fvARB\0" "\0" - /* _mesa_function_pool[26895]: CopyTexSubImage1D (offset 325) */ + /* _mesa_function_pool[27058]: CopyTexSubImage1D (offset 325) */ "iiiiii\0" "glCopyTexSubImage1D\0" "glCopyTexSubImage1DEXT\0" "\0" - /* _mesa_function_pool[26946]: CullFace (offset 152) */ + /* _mesa_function_pool[27109]: CullFace (offset 152) */ "i\0" "glCullFace\0" "\0" - /* _mesa_function_pool[26960]: BindTexture (offset 307) */ + /* _mesa_function_pool[27123]: BindTexture (offset 307) */ "ii\0" "glBindTexture\0" "glBindTextureEXT\0" "\0" - /* _mesa_function_pool[26995]: BeginFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[27158]: BeginFragmentShaderATI (will be remapped) */ "\0" "glBeginFragmentShaderATI\0" "\0" - /* _mesa_function_pool[27022]: MultiTexCoord4fARB (offset 402) */ + /* _mesa_function_pool[27185]: MultiTexCoord4fARB (offset 402) */ "iffff\0" "glMultiTexCoord4f\0" "glMultiTexCoord4fARB\0" "\0" - /* _mesa_function_pool[27068]: VertexAttribs3svNV (will be remapped) */ + /* _mesa_function_pool[27231]: VertexAttribs3svNV (will be remapped) */ "iip\0" "glVertexAttribs3svNV\0" "\0" - /* _mesa_function_pool[27094]: StencilFunc (offset 243) */ + /* _mesa_function_pool[27257]: StencilFunc (offset 243) */ "iii\0" "glStencilFunc\0" "\0" - /* _mesa_function_pool[27113]: CopyPixels (offset 255) */ + /* _mesa_function_pool[27276]: CopyPixels (offset 255) */ "iiiii\0" "glCopyPixels\0" "\0" - /* _mesa_function_pool[27133]: Rectsv (offset 93) */ + /* _mesa_function_pool[27296]: Rectsv (offset 93) */ "pp\0" "glRectsv\0" "\0" - /* _mesa_function_pool[27146]: ReplacementCodeuivSUN (dynamic) */ + /* _mesa_function_pool[27309]: ReplacementCodeuivSUN (dynamic) */ "p\0" "glReplacementCodeuivSUN\0" "\0" - /* _mesa_function_pool[27173]: EnableVertexAttribArrayARB (will be remapped) */ + /* _mesa_function_pool[27336]: EnableVertexAttribArrayARB (will be remapped) */ "i\0" "glEnableVertexAttribArray\0" "glEnableVertexAttribArrayARB\0" "\0" - /* _mesa_function_pool[27231]: NormalPointervINTEL (dynamic) */ + /* _mesa_function_pool[27394]: NormalPointervINTEL (dynamic) */ "ip\0" "glNormalPointervINTEL\0" "\0" - /* _mesa_function_pool[27257]: CopyConvolutionFilter2D (offset 355) */ + /* _mesa_function_pool[27420]: CopyConvolutionFilter2D (offset 355) */ "iiiiii\0" "glCopyConvolutionFilter2D\0" "glCopyConvolutionFilter2DEXT\0" "\0" - /* _mesa_function_pool[27320]: WindowPos3ivMESA (will be remapped) */ + /* _mesa_function_pool[27483]: WindowPos3ivMESA (will be remapped) */ "p\0" "glWindowPos3iv\0" "glWindowPos3ivARB\0" "glWindowPos3ivMESA\0" "\0" - /* _mesa_function_pool[27375]: CopyBufferSubData (will be remapped) */ + /* _mesa_function_pool[27538]: CopyBufferSubData (will be remapped) */ "iiiii\0" "glCopyBufferSubData\0" "\0" - /* _mesa_function_pool[27402]: NormalPointer (offset 318) */ + /* _mesa_function_pool[27565]: NormalPointer (offset 318) */ "iip\0" "glNormalPointer\0" "\0" - /* _mesa_function_pool[27423]: TexParameterfv (offset 179) */ + /* _mesa_function_pool[27586]: TexParameterfv (offset 179) */ "iip\0" "glTexParameterfv\0" "\0" - /* _mesa_function_pool[27445]: IsBufferARB (will be remapped) */ + /* _mesa_function_pool[27608]: IsBufferARB (will be remapped) */ "i\0" "glIsBuffer\0" "glIsBufferARB\0" "\0" - /* _mesa_function_pool[27473]: WindowPos4iMESA (will be remapped) */ + /* _mesa_function_pool[27636]: WindowPos4iMESA (will be remapped) */ "iiii\0" "glWindowPos4iMESA\0" "\0" - /* _mesa_function_pool[27497]: VertexAttrib4uivARB (will be remapped) */ + /* _mesa_function_pool[27660]: VertexAttrib4uivARB (will be remapped) */ "ip\0" "glVertexAttrib4uiv\0" "glVertexAttrib4uivARB\0" "\0" - /* _mesa_function_pool[27542]: Tangent3bvEXT (dynamic) */ + /* _mesa_function_pool[27705]: Tangent3bvEXT (dynamic) */ "p\0" "glTangent3bvEXT\0" "\0" - /* _mesa_function_pool[27561]: UniformMatrix3x4fv (will be remapped) */ + /* _mesa_function_pool[27724]: UniformMatrix3x4fv (will be remapped) */ "iiip\0" "glUniformMatrix3x4fv\0" "\0" - /* _mesa_function_pool[27588]: ClipPlane (offset 150) */ + /* _mesa_function_pool[27751]: ClipPlane (offset 150) */ "ip\0" "glClipPlane\0" "\0" - /* _mesa_function_pool[27604]: Recti (offset 90) */ + /* _mesa_function_pool[27767]: Recti (offset 90) */ "iiii\0" "glRecti\0" "\0" - /* _mesa_function_pool[27618]: DrawRangeElementsBaseVertex (will be remapped) */ + /* _mesa_function_pool[27781]: DrawRangeElementsBaseVertex (will be remapped) */ "iiiiipi\0" "glDrawRangeElementsBaseVertex\0" "\0" - /* _mesa_function_pool[27657]: TexCoordPointervINTEL (dynamic) */ + /* _mesa_function_pool[27820]: TexCoordPointervINTEL (dynamic) */ "iip\0" "glTexCoordPointervINTEL\0" "\0" - /* _mesa_function_pool[27686]: DeleteBuffersARB (will be remapped) */ + /* _mesa_function_pool[27849]: DeleteBuffersARB (will be remapped) */ "ip\0" "glDeleteBuffers\0" "glDeleteBuffersARB\0" "\0" - /* _mesa_function_pool[27725]: PixelTransformParameterfvEXT (dynamic) */ + /* _mesa_function_pool[27888]: PixelTransformParameterfvEXT (dynamic) */ "iip\0" "glPixelTransformParameterfvEXT\0" "\0" - /* _mesa_function_pool[27761]: WindowPos4fvMESA (will be remapped) */ + /* _mesa_function_pool[27924]: WindowPos4fvMESA (will be remapped) */ "p\0" "glWindowPos4fvMESA\0" "\0" - /* _mesa_function_pool[27783]: GetPixelMapuiv (offset 272) */ + /* _mesa_function_pool[27946]: GetPixelMapuiv (offset 272) */ "ip\0" "glGetPixelMapuiv\0" "\0" - /* _mesa_function_pool[27804]: Rectf (offset 88) */ + /* _mesa_function_pool[27967]: Rectf (offset 88) */ "ffff\0" "glRectf\0" "\0" - /* _mesa_function_pool[27818]: VertexAttrib1sNV (will be remapped) */ + /* _mesa_function_pool[27981]: VertexAttrib1sNV (will be remapped) */ "ii\0" "glVertexAttrib1sNV\0" "\0" - /* _mesa_function_pool[27841]: Indexfv (offset 47) */ + /* _mesa_function_pool[28004]: Indexfv (offset 47) */ "p\0" "glIndexfv\0" "\0" - /* _mesa_function_pool[27854]: SecondaryColor3svEXT (will be remapped) */ + /* _mesa_function_pool[28017]: SecondaryColor3svEXT (will be remapped) */ "p\0" "glSecondaryColor3sv\0" "glSecondaryColor3svEXT\0" "\0" - /* _mesa_function_pool[27900]: LoadTransposeMatrixfARB (will be remapped) */ + /* _mesa_function_pool[28063]: LoadTransposeMatrixfARB (will be remapped) */ "p\0" "glLoadTransposeMatrixf\0" "glLoadTransposeMatrixfARB\0" "\0" - /* _mesa_function_pool[27952]: GetPointerv (offset 329) */ + /* _mesa_function_pool[28115]: GetPointerv (offset 329) */ "ip\0" "glGetPointerv\0" "glGetPointervEXT\0" "\0" - /* _mesa_function_pool[27987]: Tangent3bEXT (dynamic) */ + /* _mesa_function_pool[28150]: Tangent3bEXT (dynamic) */ "iii\0" "glTangent3bEXT\0" "\0" - /* _mesa_function_pool[28007]: CombinerParameterfNV (will be remapped) */ + /* _mesa_function_pool[28170]: CombinerParameterfNV (will be remapped) */ "if\0" "glCombinerParameterfNV\0" "\0" - /* _mesa_function_pool[28034]: IndexMask (offset 212) */ + /* _mesa_function_pool[28197]: IndexMask (offset 212) */ "i\0" "glIndexMask\0" "\0" - /* _mesa_function_pool[28049]: BindProgramNV (will be remapped) */ + /* _mesa_function_pool[28212]: BindProgramNV (will be remapped) */ "ii\0" "glBindProgramARB\0" "glBindProgramNV\0" "\0" - /* _mesa_function_pool[28086]: VertexAttrib4svARB (will be remapped) */ + /* _mesa_function_pool[28249]: VertexAttrib4svARB (will be remapped) */ "ip\0" "glVertexAttrib4sv\0" "glVertexAttrib4svARB\0" "\0" - /* _mesa_function_pool[28129]: GetFloatv (offset 262) */ + /* _mesa_function_pool[28292]: GetFloatv (offset 262) */ "ip\0" "glGetFloatv\0" "\0" - /* _mesa_function_pool[28145]: CreateDebugObjectMESA (dynamic) */ + /* _mesa_function_pool[28308]: CreateDebugObjectMESA (dynamic) */ "\0" "glCreateDebugObjectMESA\0" "\0" - /* _mesa_function_pool[28171]: GetShaderiv (will be remapped) */ + /* _mesa_function_pool[28334]: GetShaderiv (will be remapped) */ "iip\0" "glGetShaderiv\0" "\0" - /* _mesa_function_pool[28190]: ClientWaitSync (will be remapped) */ + /* _mesa_function_pool[28353]: ClientWaitSync (will be remapped) */ "iii\0" "glClientWaitSync\0" "\0" - /* _mesa_function_pool[28212]: TexCoord4s (offset 124) */ + /* _mesa_function_pool[28375]: TexCoord4s (offset 124) */ "iiii\0" "glTexCoord4s\0" "\0" - /* _mesa_function_pool[28231]: TexCoord3sv (offset 117) */ + /* _mesa_function_pool[28394]: TexCoord3sv (offset 117) */ "p\0" "glTexCoord3sv\0" "\0" - /* _mesa_function_pool[28248]: BindFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[28411]: BindFragmentShaderATI (will be remapped) */ "i\0" "glBindFragmentShaderATI\0" "\0" - /* _mesa_function_pool[28275]: PopAttrib (offset 218) */ + /* _mesa_function_pool[28438]: PopAttrib (offset 218) */ "\0" "glPopAttrib\0" "\0" - /* _mesa_function_pool[28289]: Fogfv (offset 154) */ + /* _mesa_function_pool[28452]: Fogfv (offset 154) */ "ip\0" "glFogfv\0" "\0" - /* _mesa_function_pool[28301]: UnmapBufferARB (will be remapped) */ + /* _mesa_function_pool[28464]: UnmapBufferARB (will be remapped) */ "i\0" "glUnmapBuffer\0" "glUnmapBufferARB\0" "\0" - /* _mesa_function_pool[28335]: InitNames (offset 197) */ + /* _mesa_function_pool[28498]: InitNames (offset 197) */ "\0" "glInitNames\0" "\0" - /* _mesa_function_pool[28349]: Normal3sv (offset 61) */ + /* _mesa_function_pool[28512]: Normal3sv (offset 61) */ "p\0" "glNormal3sv\0" "\0" - /* _mesa_function_pool[28364]: Minmax (offset 368) */ + /* _mesa_function_pool[28527]: Minmax (offset 368) */ "iii\0" "glMinmax\0" "glMinmaxEXT\0" "\0" - /* _mesa_function_pool[28390]: TexCoord4d (offset 118) */ + /* _mesa_function_pool[28553]: TexCoord4d (offset 118) */ "dddd\0" "glTexCoord4d\0" "\0" - /* _mesa_function_pool[28409]: TexCoord4f (offset 120) */ + /* _mesa_function_pool[28572]: TexCoord4f (offset 120) */ "ffff\0" "glTexCoord4f\0" "\0" - /* _mesa_function_pool[28428]: FogCoorddvEXT (will be remapped) */ + /* _mesa_function_pool[28591]: FogCoorddvEXT (will be remapped) */ "p\0" "glFogCoorddv\0" "glFogCoorddvEXT\0" "\0" - /* _mesa_function_pool[28460]: FinishTextureSUNX (dynamic) */ + /* _mesa_function_pool[28623]: FinishTextureSUNX (dynamic) */ "\0" "glFinishTextureSUNX\0" "\0" - /* _mesa_function_pool[28482]: GetFragmentLightfvSGIX (dynamic) */ + /* _mesa_function_pool[28645]: GetFragmentLightfvSGIX (dynamic) */ "iip\0" "glGetFragmentLightfvSGIX\0" "\0" - /* _mesa_function_pool[28512]: Binormal3fvEXT (dynamic) */ + /* _mesa_function_pool[28675]: Binormal3fvEXT (dynamic) */ "p\0" "glBinormal3fvEXT\0" "\0" - /* _mesa_function_pool[28532]: GetBooleanv (offset 258) */ + /* _mesa_function_pool[28695]: GetBooleanv (offset 258) */ "ip\0" "glGetBooleanv\0" "\0" - /* _mesa_function_pool[28550]: ColorFragmentOp3ATI (will be remapped) */ + /* _mesa_function_pool[28713]: ColorFragmentOp3ATI (will be remapped) */ "iiiiiiiiiiiii\0" "glColorFragmentOp3ATI\0" "\0" - /* _mesa_function_pool[28587]: Hint (offset 158) */ + /* _mesa_function_pool[28750]: Hint (offset 158) */ "ii\0" "glHint\0" "\0" - /* _mesa_function_pool[28598]: Color4dv (offset 28) */ + /* _mesa_function_pool[28761]: Color4dv (offset 28) */ "p\0" "glColor4dv\0" "\0" - /* _mesa_function_pool[28612]: VertexAttrib2svARB (will be remapped) */ + /* _mesa_function_pool[28775]: VertexAttrib2svARB (will be remapped) */ "ip\0" "glVertexAttrib2sv\0" "glVertexAttrib2svARB\0" "\0" - /* _mesa_function_pool[28655]: AreProgramsResidentNV (will be remapped) */ + /* _mesa_function_pool[28818]: AreProgramsResidentNV (will be remapped) */ "ipp\0" "glAreProgramsResidentNV\0" "\0" - /* _mesa_function_pool[28684]: WindowPos3svMESA (will be remapped) */ + /* _mesa_function_pool[28847]: WindowPos3svMESA (will be remapped) */ "p\0" "glWindowPos3sv\0" "glWindowPos3svARB\0" "glWindowPos3svMESA\0" "\0" - /* _mesa_function_pool[28739]: CopyColorSubTable (offset 347) */ + /* _mesa_function_pool[28902]: CopyColorSubTable (offset 347) */ "iiiii\0" "glCopyColorSubTable\0" "glCopyColorSubTableEXT\0" "\0" - /* _mesa_function_pool[28789]: WeightdvARB (dynamic) */ + /* _mesa_function_pool[28952]: WeightdvARB (dynamic) */ "ip\0" "glWeightdvARB\0" "\0" - /* _mesa_function_pool[28807]: DeleteRenderbuffersEXT (will be remapped) */ + /* _mesa_function_pool[28970]: DeleteRenderbuffersEXT (will be remapped) */ "ip\0" "glDeleteRenderbuffers\0" "glDeleteRenderbuffersEXT\0" "\0" - /* _mesa_function_pool[28858]: VertexAttrib4NubvARB (will be remapped) */ + /* _mesa_function_pool[29021]: VertexAttrib4NubvARB (will be remapped) */ "ip\0" "glVertexAttrib4Nubv\0" "glVertexAttrib4NubvARB\0" "\0" - /* _mesa_function_pool[28905]: VertexAttrib3dvNV (will be remapped) */ + /* _mesa_function_pool[29068]: VertexAttrib3dvNV (will be remapped) */ "ip\0" "glVertexAttrib3dvNV\0" "\0" - /* _mesa_function_pool[28929]: GetObjectParameterfvARB (will be remapped) */ + /* _mesa_function_pool[29092]: GetObjectParameterfvARB (will be remapped) */ "iip\0" "glGetObjectParameterfvARB\0" "\0" - /* _mesa_function_pool[28960]: Vertex4iv (offset 147) */ + /* _mesa_function_pool[29123]: Vertex4iv (offset 147) */ "p\0" "glVertex4iv\0" "\0" - /* _mesa_function_pool[28975]: GetProgramEnvParameterdvARB (will be remapped) */ + /* _mesa_function_pool[29138]: GetProgramEnvParameterdvARB (will be remapped) */ "iip\0" "glGetProgramEnvParameterdvARB\0" "\0" - /* _mesa_function_pool[29010]: TexCoord4dv (offset 119) */ + /* _mesa_function_pool[29173]: TexCoord4dv (offset 119) */ "p\0" "glTexCoord4dv\0" "\0" - /* _mesa_function_pool[29027]: LockArraysEXT (will be remapped) */ + /* _mesa_function_pool[29190]: LockArraysEXT (will be remapped) */ "ii\0" "glLockArraysEXT\0" "\0" - /* _mesa_function_pool[29047]: Begin (offset 7) */ + /* _mesa_function_pool[29210]: Begin (offset 7) */ "i\0" "glBegin\0" "\0" - /* _mesa_function_pool[29058]: LightModeli (offset 165) */ + /* _mesa_function_pool[29221]: LightModeli (offset 165) */ "ii\0" "glLightModeli\0" "\0" - /* _mesa_function_pool[29076]: Rectfv (offset 89) */ + /* _mesa_function_pool[29239]: Rectfv (offset 89) */ "pp\0" "glRectfv\0" "\0" - /* _mesa_function_pool[29089]: LightModelf (offset 163) */ + /* _mesa_function_pool[29252]: LightModelf (offset 163) */ "if\0" "glLightModelf\0" "\0" - /* _mesa_function_pool[29107]: GetTexParameterfv (offset 282) */ + /* _mesa_function_pool[29270]: GetTexParameterfv (offset 282) */ "iip\0" "glGetTexParameterfv\0" "\0" - /* _mesa_function_pool[29132]: GetLightfv (offset 264) */ + /* _mesa_function_pool[29295]: GetLightfv (offset 264) */ "iip\0" "glGetLightfv\0" "\0" - /* _mesa_function_pool[29150]: PixelTransformParameterivEXT (dynamic) */ + /* _mesa_function_pool[29313]: PixelTransformParameterivEXT (dynamic) */ "iip\0" "glPixelTransformParameterivEXT\0" "\0" - /* _mesa_function_pool[29186]: BinormalPointerEXT (dynamic) */ + /* _mesa_function_pool[29349]: BinormalPointerEXT (dynamic) */ "iip\0" "glBinormalPointerEXT\0" "\0" - /* _mesa_function_pool[29212]: VertexAttrib1dNV (will be remapped) */ + /* _mesa_function_pool[29375]: VertexAttrib1dNV (will be remapped) */ "id\0" "glVertexAttrib1dNV\0" "\0" - /* _mesa_function_pool[29235]: GetCombinerInputParameterivNV (will be remapped) */ + /* _mesa_function_pool[29398]: GetCombinerInputParameterivNV (will be remapped) */ "iiiip\0" "glGetCombinerInputParameterivNV\0" "\0" - /* _mesa_function_pool[29274]: Disable (offset 214) */ + /* _mesa_function_pool[29437]: Disable (offset 214) */ "i\0" "glDisable\0" "\0" - /* _mesa_function_pool[29287]: MultiTexCoord2fvARB (offset 387) */ + /* _mesa_function_pool[29450]: MultiTexCoord2fvARB (offset 387) */ "ip\0" "glMultiTexCoord2fv\0" "glMultiTexCoord2fvARB\0" "\0" - /* _mesa_function_pool[29332]: GetRenderbufferParameterivEXT (will be remapped) */ + /* _mesa_function_pool[29495]: GetRenderbufferParameterivEXT (will be remapped) */ "iip\0" "glGetRenderbufferParameteriv\0" "glGetRenderbufferParameterivEXT\0" "\0" - /* _mesa_function_pool[29398]: CombinerParameterivNV (will be remapped) */ + /* _mesa_function_pool[29561]: CombinerParameterivNV (will be remapped) */ "ip\0" "glCombinerParameterivNV\0" "\0" - /* _mesa_function_pool[29426]: GenFragmentShadersATI (will be remapped) */ + /* _mesa_function_pool[29589]: GenFragmentShadersATI (will be remapped) */ "i\0" "glGenFragmentShadersATI\0" "\0" - /* _mesa_function_pool[29453]: DrawArrays (offset 310) */ + /* _mesa_function_pool[29616]: DrawArrays (offset 310) */ "iii\0" "glDrawArrays\0" "glDrawArraysEXT\0" "\0" - /* _mesa_function_pool[29487]: WeightuivARB (dynamic) */ + /* _mesa_function_pool[29650]: WeightuivARB (dynamic) */ "ip\0" "glWeightuivARB\0" "\0" - /* _mesa_function_pool[29506]: VertexAttrib2sARB (will be remapped) */ + /* _mesa_function_pool[29669]: VertexAttrib2sARB (will be remapped) */ "iii\0" "glVertexAttrib2s\0" "glVertexAttrib2sARB\0" "\0" - /* _mesa_function_pool[29548]: ColorMask (offset 210) */ + /* _mesa_function_pool[29711]: ColorMask (offset 210) */ "iiii\0" "glColorMask\0" "\0" - /* _mesa_function_pool[29566]: GenAsyncMarkersSGIX (dynamic) */ + /* _mesa_function_pool[29729]: GenAsyncMarkersSGIX (dynamic) */ "i\0" "glGenAsyncMarkersSGIX\0" "\0" - /* _mesa_function_pool[29591]: Tangent3svEXT (dynamic) */ + /* _mesa_function_pool[29754]: Tangent3svEXT (dynamic) */ "p\0" "glTangent3svEXT\0" "\0" - /* _mesa_function_pool[29610]: GetListParameterivSGIX (dynamic) */ + /* _mesa_function_pool[29773]: GetListParameterivSGIX (dynamic) */ "iip\0" "glGetListParameterivSGIX\0" "\0" - /* _mesa_function_pool[29640]: BindBufferARB (will be remapped) */ + /* _mesa_function_pool[29803]: BindBufferARB (will be remapped) */ "ii\0" "glBindBuffer\0" "glBindBufferARB\0" "\0" - /* _mesa_function_pool[29673]: GetInfoLogARB (will be remapped) */ + /* _mesa_function_pool[29836]: GetInfoLogARB (will be remapped) */ "iipp\0" "glGetInfoLogARB\0" "\0" - /* _mesa_function_pool[29695]: RasterPos4iv (offset 83) */ + /* _mesa_function_pool[29858]: RasterPos4iv (offset 83) */ "p\0" "glRasterPos4iv\0" "\0" - /* _mesa_function_pool[29713]: Enable (offset 215) */ + /* _mesa_function_pool[29876]: Enable (offset 215) */ "i\0" "glEnable\0" "\0" - /* _mesa_function_pool[29725]: LineStipple (offset 167) */ + /* _mesa_function_pool[29888]: LineStipple (offset 167) */ "ii\0" "glLineStipple\0" "\0" - /* _mesa_function_pool[29743]: VertexAttribs4svNV (will be remapped) */ + /* _mesa_function_pool[29906]: VertexAttribs4svNV (will be remapped) */ "iip\0" "glVertexAttribs4svNV\0" "\0" - /* _mesa_function_pool[29769]: EdgeFlagPointerListIBM (dynamic) */ + /* _mesa_function_pool[29932]: EdgeFlagPointerListIBM (dynamic) */ "ipi\0" "glEdgeFlagPointerListIBM\0" "\0" - /* _mesa_function_pool[29799]: UniformMatrix3x2fv (will be remapped) */ + /* _mesa_function_pool[29962]: UniformMatrix3x2fv (will be remapped) */ "iiip\0" "glUniformMatrix3x2fv\0" "\0" - /* _mesa_function_pool[29826]: GetMinmaxParameterfv (offset 365) */ + /* _mesa_function_pool[29989]: GetMinmaxParameterfv (offset 365) */ "iip\0" "glGetMinmaxParameterfv\0" "glGetMinmaxParameterfvEXT\0" "\0" - /* _mesa_function_pool[29880]: VertexAttrib1fvARB (will be remapped) */ + /* _mesa_function_pool[30043]: VertexAttrib1fvARB (will be remapped) */ "ip\0" "glVertexAttrib1fv\0" "glVertexAttrib1fvARB\0" "\0" - /* _mesa_function_pool[29923]: GenBuffersARB (will be remapped) */ + /* _mesa_function_pool[30086]: GenBuffersARB (will be remapped) */ "ip\0" "glGenBuffers\0" "glGenBuffersARB\0" "\0" - /* _mesa_function_pool[29956]: VertexAttribs1svNV (will be remapped) */ + /* _mesa_function_pool[30119]: VertexAttribs1svNV (will be remapped) */ "iip\0" "glVertexAttribs1svNV\0" "\0" - /* _mesa_function_pool[29982]: Vertex3fv (offset 137) */ + /* _mesa_function_pool[30145]: Vertex3fv (offset 137) */ "p\0" "glVertex3fv\0" "\0" - /* _mesa_function_pool[29997]: GetTexBumpParameterivATI (will be remapped) */ + /* _mesa_function_pool[30160]: GetTexBumpParameterivATI (will be remapped) */ "ip\0" "glGetTexBumpParameterivATI\0" "\0" - /* _mesa_function_pool[30028]: Binormal3bEXT (dynamic) */ + /* _mesa_function_pool[30191]: Binormal3bEXT (dynamic) */ "iii\0" "glBinormal3bEXT\0" "\0" - /* _mesa_function_pool[30049]: FragmentMaterialivSGIX (dynamic) */ + /* _mesa_function_pool[30212]: FragmentMaterialivSGIX (dynamic) */ "iip\0" "glFragmentMaterialivSGIX\0" "\0" - /* _mesa_function_pool[30079]: IsRenderbufferEXT (will be remapped) */ + /* _mesa_function_pool[30242]: IsRenderbufferEXT (will be remapped) */ "i\0" "glIsRenderbuffer\0" "glIsRenderbufferEXT\0" "\0" - /* _mesa_function_pool[30119]: GenProgramsNV (will be remapped) */ + /* _mesa_function_pool[30282]: GenProgramsNV (will be remapped) */ "ip\0" "glGenProgramsARB\0" "glGenProgramsNV\0" "\0" - /* _mesa_function_pool[30156]: VertexAttrib4dvNV (will be remapped) */ + /* _mesa_function_pool[30319]: VertexAttrib4dvNV (will be remapped) */ "ip\0" "glVertexAttrib4dvNV\0" "\0" - /* _mesa_function_pool[30180]: EndFragmentShaderATI (will be remapped) */ + /* _mesa_function_pool[30343]: EndFragmentShaderATI (will be remapped) */ "\0" "glEndFragmentShaderATI\0" "\0" - /* _mesa_function_pool[30205]: Binormal3iEXT (dynamic) */ + /* _mesa_function_pool[30368]: Binormal3iEXT (dynamic) */ "iii\0" "glBinormal3iEXT\0" "\0" - /* _mesa_function_pool[30226]: WindowPos2fMESA (will be remapped) */ + /* _mesa_function_pool[30389]: WindowPos2fMESA (will be remapped) */ "ff\0" "glWindowPos2f\0" "glWindowPos2fARB\0" @@ -4421,410 +4433,412 @@ static const struct { } MESA_remap_table_functions[] = { { 1461, AttachShader_remap_index }, { 8848, CreateProgram_remap_index }, - { 20720, CreateShader_remap_index }, - { 23050, DeleteProgram_remap_index }, - { 16566, DeleteShader_remap_index }, - { 21166, DetachShader_remap_index }, - { 16090, GetAttachedShaders_remap_index }, + { 20883, CreateShader_remap_index }, + { 23213, DeleteProgram_remap_index }, + { 16692, DeleteShader_remap_index }, + { 21329, DetachShader_remap_index }, + { 16216, GetAttachedShaders_remap_index }, { 4275, GetProgramInfoLog_remap_index }, { 361, GetProgramiv_remap_index }, { 5608, GetShaderInfoLog_remap_index }, - { 28171, GetShaderiv_remap_index }, + { 28334, GetShaderiv_remap_index }, { 12054, IsProgram_remap_index }, { 11089, IsShader_remap_index }, { 8952, StencilFuncSeparate_remap_index }, { 3487, StencilMaskSeparate_remap_index }, { 6684, StencilOpSeparate_remap_index }, - { 20045, UniformMatrix2x3fv_remap_index }, + { 20208, UniformMatrix2x3fv_remap_index }, { 2615, UniformMatrix2x4fv_remap_index }, - { 29799, UniformMatrix3x2fv_remap_index }, - { 27561, UniformMatrix3x4fv_remap_index }, - { 14638, UniformMatrix4x2fv_remap_index }, + { 29962, UniformMatrix3x2fv_remap_index }, + { 27724, UniformMatrix3x4fv_remap_index }, + { 14716, UniformMatrix4x2fv_remap_index }, { 2937, UniformMatrix4x3fv_remap_index }, + { 14377, DrawArraysInstanced_remap_index }, + { 15480, DrawElementsInstanced_remap_index }, { 8866, LoadTransposeMatrixdARB_remap_index }, - { 27900, LoadTransposeMatrixfARB_remap_index }, + { 28063, LoadTransposeMatrixfARB_remap_index }, { 4848, MultTransposeMatrixdARB_remap_index }, - { 21353, MultTransposeMatrixfARB_remap_index }, + { 21516, MultTransposeMatrixfARB_remap_index }, { 172, SampleCoverageARB_remap_index }, { 5032, CompressedTexImage1DARB_remap_index }, - { 21853, CompressedTexImage2DARB_remap_index }, + { 22016, CompressedTexImage2DARB_remap_index }, { 3550, CompressedTexImage3DARB_remap_index }, - { 16382, CompressedTexSubImage1DARB_remap_index }, + { 16508, CompressedTexSubImage1DARB_remap_index }, { 1880, CompressedTexSubImage2DARB_remap_index }, - { 18243, CompressedTexSubImage3DARB_remap_index }, - { 25843, GetCompressedTexImageARB_remap_index }, + { 18369, CompressedTexSubImage3DARB_remap_index }, + { 26006, GetCompressedTexImageARB_remap_index }, { 3395, DisableVertexAttribArrayARB_remap_index }, - { 27173, EnableVertexAttribArrayARB_remap_index }, - { 28975, GetProgramEnvParameterdvARB_remap_index }, - { 21233, GetProgramEnvParameterfvARB_remap_index }, - { 24844, GetProgramLocalParameterdvARB_remap_index }, + { 27336, EnableVertexAttribArrayARB_remap_index }, + { 29138, GetProgramEnvParameterdvARB_remap_index }, + { 21396, GetProgramEnvParameterfvARB_remap_index }, + { 25007, GetProgramLocalParameterdvARB_remap_index }, { 7126, GetProgramLocalParameterfvARB_remap_index }, - { 16473, GetProgramStringARB_remap_index }, - { 25039, GetProgramivARB_remap_index }, - { 18438, GetVertexAttribdvARB_remap_index }, - { 14527, GetVertexAttribfvARB_remap_index }, + { 16599, GetProgramStringARB_remap_index }, + { 25202, GetProgramivARB_remap_index }, + { 18564, GetVertexAttribdvARB_remap_index }, + { 14605, GetVertexAttribfvARB_remap_index }, { 8761, GetVertexAttribivARB_remap_index }, - { 17319, ProgramEnvParameter4dARB_remap_index }, - { 22823, ProgramEnvParameter4dvARB_remap_index }, - { 15135, ProgramEnvParameter4fARB_remap_index }, + { 17445, ProgramEnvParameter4dARB_remap_index }, + { 22986, ProgramEnvParameter4dvARB_remap_index }, + { 15213, ProgramEnvParameter4fARB_remap_index }, { 7989, ProgramEnvParameter4fvARB_remap_index }, { 3513, ProgramLocalParameter4dARB_remap_index }, { 11764, ProgramLocalParameter4dvARB_remap_index }, - { 26652, ProgramLocalParameter4fARB_remap_index }, - { 23368, ProgramLocalParameter4fvARB_remap_index }, - { 25629, ProgramStringARB_remap_index }, - { 17569, VertexAttrib1dARB_remap_index }, + { 26815, ProgramLocalParameter4fARB_remap_index }, + { 23531, ProgramLocalParameter4fvARB_remap_index }, + { 25792, ProgramStringARB_remap_index }, + { 17695, VertexAttrib1dARB_remap_index }, { 14181, VertexAttrib1dvARB_remap_index }, { 3688, VertexAttrib1fARB_remap_index }, - { 29880, VertexAttrib1fvARB_remap_index }, + { 30043, VertexAttrib1fvARB_remap_index }, { 6210, VertexAttrib1sARB_remap_index }, { 2054, VertexAttrib1svARB_remap_index }, { 13612, VertexAttrib2dARB_remap_index }, - { 15709, VertexAttrib2dvARB_remap_index }, + { 15835, VertexAttrib2dvARB_remap_index }, { 1480, VertexAttrib2fARB_remap_index }, - { 15822, VertexAttrib2fvARB_remap_index }, - { 29506, VertexAttrib2sARB_remap_index }, - { 28612, VertexAttrib2svARB_remap_index }, + { 15948, VertexAttrib2fvARB_remap_index }, + { 29669, VertexAttrib2sARB_remap_index }, + { 28775, VertexAttrib2svARB_remap_index }, { 10135, VertexAttrib3dARB_remap_index }, { 7692, VertexAttrib3dvARB_remap_index }, { 1567, VertexAttrib3fARB_remap_index }, - { 20308, VertexAttrib3fvARB_remap_index }, - { 25472, VertexAttrib3sARB_remap_index }, - { 18180, VertexAttrib3svARB_remap_index }, + { 20471, VertexAttrib3fvARB_remap_index }, + { 25635, VertexAttrib3sARB_remap_index }, + { 18306, VertexAttrib3svARB_remap_index }, { 4301, VertexAttrib4NbvARB_remap_index }, - { 16045, VertexAttrib4NivARB_remap_index }, - { 20263, VertexAttrib4NsvARB_remap_index }, - { 21185, VertexAttrib4NubARB_remap_index }, - { 28858, VertexAttrib4NubvARB_remap_index }, - { 16980, VertexAttrib4NuivARB_remap_index }, + { 16171, VertexAttrib4NivARB_remap_index }, + { 20426, VertexAttrib4NsvARB_remap_index }, + { 21348, VertexAttrib4NubARB_remap_index }, + { 29021, VertexAttrib4NubvARB_remap_index }, + { 17106, VertexAttrib4NuivARB_remap_index }, { 2810, VertexAttrib4NusvARB_remap_index }, { 9729, VertexAttrib4bvARB_remap_index }, - { 24252, VertexAttrib4dARB_remap_index }, - { 19202, VertexAttrib4dvARB_remap_index }, + { 24415, VertexAttrib4dARB_remap_index }, + { 19328, VertexAttrib4dvARB_remap_index }, { 10242, VertexAttrib4fARB_remap_index }, { 10646, VertexAttrib4fvARB_remap_index }, { 9145, VertexAttrib4ivARB_remap_index }, - { 15523, VertexAttrib4sARB_remap_index }, - { 28086, VertexAttrib4svARB_remap_index }, - { 14940, VertexAttrib4ubvARB_remap_index }, - { 27497, VertexAttrib4uivARB_remap_index }, - { 17991, VertexAttrib4usvARB_remap_index }, - { 19919, VertexAttribPointerARB_remap_index }, - { 29640, BindBufferARB_remap_index }, + { 15649, VertexAttrib4sARB_remap_index }, + { 28249, VertexAttrib4svARB_remap_index }, + { 15018, VertexAttrib4ubvARB_remap_index }, + { 27660, VertexAttrib4uivARB_remap_index }, + { 18117, VertexAttrib4usvARB_remap_index }, + { 20082, VertexAttribPointerARB_remap_index }, + { 29803, BindBufferARB_remap_index }, { 5923, BufferDataARB_remap_index }, { 1382, BufferSubDataARB_remap_index }, - { 27686, DeleteBuffersARB_remap_index }, - { 29923, GenBuffersARB_remap_index }, - { 15865, GetBufferParameterivARB_remap_index }, - { 15087, GetBufferPointervARB_remap_index }, + { 27849, DeleteBuffersARB_remap_index }, + { 30086, GenBuffersARB_remap_index }, + { 15991, GetBufferParameterivARB_remap_index }, + { 15165, GetBufferPointervARB_remap_index }, { 1335, GetBufferSubDataARB_remap_index }, - { 27445, IsBufferARB_remap_index }, - { 23825, MapBufferARB_remap_index }, - { 28301, UnmapBufferARB_remap_index }, + { 27608, IsBufferARB_remap_index }, + { 23988, MapBufferARB_remap_index }, + { 28464, UnmapBufferARB_remap_index }, { 268, BeginQueryARB_remap_index }, - { 17664, DeleteQueriesARB_remap_index }, + { 17790, DeleteQueriesARB_remap_index }, { 10940, EndQueryARB_remap_index }, - { 26322, GenQueriesARB_remap_index }, + { 26485, GenQueriesARB_remap_index }, { 1772, GetQueryObjectivARB_remap_index }, - { 15567, GetQueryObjectuivARB_remap_index }, + { 15693, GetQueryObjectuivARB_remap_index }, { 1624, GetQueryivARB_remap_index }, - { 17898, IsQueryARB_remap_index }, + { 18024, IsQueryARB_remap_index }, { 7302, AttachObjectARB_remap_index }, - { 16528, CompileShaderARB_remap_index }, + { 16654, CompileShaderARB_remap_index }, { 2879, CreateProgramObjectARB_remap_index }, { 5868, CreateShaderObjectARB_remap_index }, { 13029, DeleteObjectARB_remap_index }, - { 21627, DetachObjectARB_remap_index }, + { 21790, DetachObjectARB_remap_index }, { 10718, GetActiveUniformARB_remap_index }, { 8464, GetAttachedObjectsARB_remap_index }, { 8743, GetHandleARB_remap_index }, - { 29673, GetInfoLogARB_remap_index }, - { 28929, GetObjectParameterfvARB_remap_index }, - { 24718, GetObjectParameterivARB_remap_index }, - { 26080, GetShaderSourceARB_remap_index }, - { 25332, GetUniformLocationARB_remap_index }, - { 21455, GetUniformfvARB_remap_index }, + { 29836, GetInfoLogARB_remap_index }, + { 29092, GetObjectParameterfvARB_remap_index }, + { 24881, GetObjectParameterivARB_remap_index }, + { 26243, GetShaderSourceARB_remap_index }, + { 25495, GetUniformLocationARB_remap_index }, + { 21618, GetUniformfvARB_remap_index }, { 11386, GetUniformivARB_remap_index }, - { 18036, LinkProgramARB_remap_index }, - { 18094, ShaderSourceARB_remap_index }, + { 18162, LinkProgramARB_remap_index }, + { 18220, ShaderSourceARB_remap_index }, { 6584, Uniform1fARB_remap_index }, - { 26861, Uniform1fvARB_remap_index }, - { 19888, Uniform1iARB_remap_index }, - { 18891, Uniform1ivARB_remap_index }, + { 27024, Uniform1fvARB_remap_index }, + { 20051, Uniform1iARB_remap_index }, + { 19017, Uniform1ivARB_remap_index }, { 2003, Uniform2fARB_remap_index }, { 12865, Uniform2fvARB_remap_index }, - { 23712, Uniform2iARB_remap_index }, + { 23875, Uniform2iARB_remap_index }, { 2123, Uniform2ivARB_remap_index }, - { 16638, Uniform3fARB_remap_index }, + { 16764, Uniform3fARB_remap_index }, { 8494, Uniform3fvARB_remap_index }, { 5542, Uniform3iARB_remap_index }, - { 15193, Uniform3ivARB_remap_index }, - { 17125, Uniform4fARB_remap_index }, - { 21319, Uniform4fvARB_remap_index }, - { 22502, Uniform4iARB_remap_index }, - { 18404, Uniform4ivARB_remap_index }, + { 15271, Uniform3ivARB_remap_index }, + { 17251, Uniform4fARB_remap_index }, + { 21482, Uniform4fvARB_remap_index }, + { 22665, Uniform4iARB_remap_index }, + { 18530, Uniform4ivARB_remap_index }, { 7354, UniformMatrix2fvARB_remap_index }, { 17, UniformMatrix3fvARB_remap_index }, { 2475, UniformMatrix4fvARB_remap_index }, - { 22935, UseProgramObjectARB_remap_index }, + { 23098, UseProgramObjectARB_remap_index }, { 13300, ValidateProgramARB_remap_index }, - { 19245, BindAttribLocationARB_remap_index }, + { 19371, BindAttribLocationARB_remap_index }, { 4346, GetActiveAttribARB_remap_index }, - { 14874, GetAttribLocationARB_remap_index }, - { 26600, DrawBuffersARB_remap_index }, + { 14952, GetAttribLocationARB_remap_index }, + { 26763, DrawBuffersARB_remap_index }, { 11869, RenderbufferStorageMultisample_remap_index }, - { 17173, FlushMappedBufferRange_remap_index }, - { 25135, MapBufferRange_remap_index }, - { 14749, BindVertexArray_remap_index }, + { 17299, FlushMappedBufferRange_remap_index }, + { 25298, MapBufferRange_remap_index }, + { 14827, BindVertexArray_remap_index }, { 13159, GenVertexArrays_remap_index }, - { 27375, CopyBufferSubData_remap_index }, - { 28190, ClientWaitSync_remap_index }, + { 27538, CopyBufferSubData_remap_index }, + { 28353, ClientWaitSync_remap_index }, { 2394, DeleteSync_remap_index }, { 6251, FenceSync_remap_index }, { 13671, GetInteger64v_remap_index }, - { 20370, GetSynciv_remap_index }, - { 26539, IsSync_remap_index }, + { 20533, GetSynciv_remap_index }, + { 26702, IsSync_remap_index }, { 8412, WaitSync_remap_index }, { 3363, DrawElementsBaseVertex_remap_index }, - { 27618, DrawRangeElementsBaseVertex_remap_index }, - { 23856, MultiDrawElementsBaseVertex_remap_index }, + { 27781, DrawRangeElementsBaseVertex_remap_index }, + { 24019, MultiDrawElementsBaseVertex_remap_index }, { 4711, PolygonOffsetEXT_remap_index }, - { 20955, GetPixelTexGenParameterfvSGIS_remap_index }, + { 21118, GetPixelTexGenParameterfvSGIS_remap_index }, { 3895, GetPixelTexGenParameterivSGIS_remap_index }, - { 20688, PixelTexGenParameterfSGIS_remap_index }, + { 20851, PixelTexGenParameterfSGIS_remap_index }, { 580, PixelTexGenParameterfvSGIS_remap_index }, { 11424, PixelTexGenParameteriSGIS_remap_index }, { 12385, PixelTexGenParameterivSGIS_remap_index }, - { 14837, SampleMaskSGIS_remap_index }, - { 17838, SamplePatternSGIS_remap_index }, - { 23785, ColorPointerEXT_remap_index }, - { 15752, EdgeFlagPointerEXT_remap_index }, + { 14915, SampleMaskSGIS_remap_index }, + { 17964, SamplePatternSGIS_remap_index }, + { 23948, ColorPointerEXT_remap_index }, + { 15878, EdgeFlagPointerEXT_remap_index }, { 5196, IndexPointerEXT_remap_index }, { 5276, NormalPointerEXT_remap_index }, { 14265, TexCoordPointerEXT_remap_index }, { 6046, VertexPointerEXT_remap_index }, { 3165, PointParameterfEXT_remap_index }, { 6891, PointParameterfvEXT_remap_index }, - { 29027, LockArraysEXT_remap_index }, + { 29190, LockArraysEXT_remap_index }, { 13364, UnlockArraysEXT_remap_index }, { 7898, CullParameterdvEXT_remap_index }, { 10513, CullParameterfvEXT_remap_index }, { 1151, SecondaryColor3bEXT_remap_index }, { 7050, SecondaryColor3bvEXT_remap_index }, { 9322, SecondaryColor3dEXT_remap_index }, - { 23108, SecondaryColor3dvEXT_remap_index }, - { 25381, SecondaryColor3fEXT_remap_index }, - { 16318, SecondaryColor3fvEXT_remap_index }, + { 23271, SecondaryColor3dvEXT_remap_index }, + { 25544, SecondaryColor3fEXT_remap_index }, + { 16444, SecondaryColor3fvEXT_remap_index }, { 426, SecondaryColor3iEXT_remap_index }, - { 14575, SecondaryColor3ivEXT_remap_index }, + { 14653, SecondaryColor3ivEXT_remap_index }, { 8980, SecondaryColor3sEXT_remap_index }, - { 27854, SecondaryColor3svEXT_remap_index }, - { 24554, SecondaryColor3ubEXT_remap_index }, - { 19136, SecondaryColor3ubvEXT_remap_index }, + { 28017, SecondaryColor3svEXT_remap_index }, + { 24717, SecondaryColor3ubEXT_remap_index }, + { 19262, SecondaryColor3ubvEXT_remap_index }, { 11619, SecondaryColor3uiEXT_remap_index }, - { 20575, SecondaryColor3uivEXT_remap_index }, - { 23320, SecondaryColor3usEXT_remap_index }, + { 20738, SecondaryColor3uivEXT_remap_index }, + { 23483, SecondaryColor3usEXT_remap_index }, { 11692, SecondaryColor3usvEXT_remap_index }, { 10589, SecondaryColorPointerEXT_remap_index }, - { 23169, MultiDrawArraysEXT_remap_index }, - { 18826, MultiDrawElementsEXT_remap_index }, - { 19021, FogCoordPointerEXT_remap_index }, + { 23332, MultiDrawArraysEXT_remap_index }, + { 18952, MultiDrawElementsEXT_remap_index }, + { 19147, FogCoordPointerEXT_remap_index }, { 4044, FogCoorddEXT_remap_index }, - { 28428, FogCoorddvEXT_remap_index }, + { 28591, FogCoorddvEXT_remap_index }, { 4136, FogCoordfEXT_remap_index }, - { 24477, FogCoordfvEXT_remap_index }, - { 17077, PixelTexGenSGIX_remap_index }, - { 25062, BlendFuncSeparateEXT_remap_index }, + { 24640, FogCoordfvEXT_remap_index }, + { 17203, PixelTexGenSGIX_remap_index }, + { 25225, BlendFuncSeparateEXT_remap_index }, { 5958, FlushVertexArrayRangeNV_remap_index }, { 4660, VertexArrayRangeNV_remap_index }, - { 25446, CombinerInputNV_remap_index }, + { 25609, CombinerInputNV_remap_index }, { 1946, CombinerOutputNV_remap_index }, - { 28007, CombinerParameterfNV_remap_index }, + { 28170, CombinerParameterfNV_remap_index }, { 4580, CombinerParameterfvNV_remap_index }, - { 20094, CombinerParameteriNV_remap_index }, - { 29398, CombinerParameterivNV_remap_index }, + { 20257, CombinerParameteriNV_remap_index }, + { 29561, CombinerParameterivNV_remap_index }, { 6328, FinalCombinerInputNV_remap_index }, { 8809, GetCombinerInputParameterfvNV_remap_index }, - { 29235, GetCombinerInputParameterivNV_remap_index }, + { 29398, GetCombinerInputParameterivNV_remap_index }, { 6127, GetCombinerOutputParameterfvNV_remap_index }, { 12346, GetCombinerOutputParameterivNV_remap_index }, { 5703, GetFinalCombinerInputParameterfvNV_remap_index }, - { 22374, GetFinalCombinerInputParameterivNV_remap_index }, + { 22537, GetFinalCombinerInputParameterivNV_remap_index }, { 11364, ResizeBuffersMESA_remap_index }, { 9962, WindowPos2dMESA_remap_index }, { 944, WindowPos2dvMESA_remap_index }, - { 30226, WindowPos2fMESA_remap_index }, + { 30389, WindowPos2fMESA_remap_index }, { 6995, WindowPos2fvMESA_remap_index }, - { 16265, WindowPos2iMESA_remap_index }, - { 18311, WindowPos2ivMESA_remap_index }, - { 18925, WindowPos2sMESA_remap_index }, + { 16391, WindowPos2iMESA_remap_index }, + { 18437, WindowPos2ivMESA_remap_index }, + { 19051, WindowPos2sMESA_remap_index }, { 4946, WindowPos2svMESA_remap_index }, { 6820, WindowPos3dMESA_remap_index }, { 12593, WindowPos3dvMESA_remap_index }, { 472, WindowPos3fMESA_remap_index }, { 13425, WindowPos3fvMESA_remap_index }, - { 21669, WindowPos3iMESA_remap_index }, - { 27320, WindowPos3ivMESA_remap_index }, - { 16783, WindowPos3sMESA_remap_index }, - { 28684, WindowPos3svMESA_remap_index }, + { 21832, WindowPos3iMESA_remap_index }, + { 27483, WindowPos3ivMESA_remap_index }, + { 16909, WindowPos3sMESA_remap_index }, + { 28847, WindowPos3svMESA_remap_index }, { 9913, WindowPos4dMESA_remap_index }, - { 15278, WindowPos4dvMESA_remap_index }, + { 15356, WindowPos4dvMESA_remap_index }, { 12552, WindowPos4fMESA_remap_index }, - { 27761, WindowPos4fvMESA_remap_index }, - { 27473, WindowPos4iMESA_remap_index }, + { 27924, WindowPos4fvMESA_remap_index }, + { 27636, WindowPos4iMESA_remap_index }, { 11203, WindowPos4ivMESA_remap_index }, - { 16956, WindowPos4sMESA_remap_index }, + { 17082, WindowPos4sMESA_remap_index }, { 2857, WindowPos4svMESA_remap_index }, - { 24220, MultiModeDrawArraysIBM_remap_index }, - { 26193, MultiModeDrawElementsIBM_remap_index }, + { 24383, MultiModeDrawArraysIBM_remap_index }, + { 26356, MultiModeDrawElementsIBM_remap_index }, { 10968, DeleteFencesNV_remap_index }, - { 25293, FinishFenceNV_remap_index }, + { 25456, FinishFenceNV_remap_index }, { 3287, GenFencesNV_remap_index }, - { 15258, GetFenceivNV_remap_index }, + { 15336, GetFenceivNV_remap_index }, { 7287, IsFenceNV_remap_index }, { 12273, SetFenceNV_remap_index }, { 3744, TestFenceNV_remap_index }, - { 28655, AreProgramsResidentNV_remap_index }, - { 28049, BindProgramNV_remap_index }, - { 23403, DeleteProgramsNV_remap_index }, - { 19354, ExecuteProgramNV_remap_index }, - { 30119, GenProgramsNV_remap_index }, - { 21034, GetProgramParameterdvNV_remap_index }, + { 28818, AreProgramsResidentNV_remap_index }, + { 28212, BindProgramNV_remap_index }, + { 23566, DeleteProgramsNV_remap_index }, + { 19480, ExecuteProgramNV_remap_index }, + { 30282, GenProgramsNV_remap_index }, + { 21197, GetProgramParameterdvNV_remap_index }, { 9384, GetProgramParameterfvNV_remap_index }, - { 23759, GetProgramStringNV_remap_index }, - { 22063, GetProgramivNV_remap_index }, - { 21268, GetTrackMatrixivNV_remap_index }, - { 23553, GetVertexAttribPointervNV_remap_index }, - { 22307, GetVertexAttribdvNV_remap_index }, + { 23922, GetProgramStringNV_remap_index }, + { 22226, GetProgramivNV_remap_index }, + { 21431, GetTrackMatrixivNV_remap_index }, + { 23716, GetVertexAttribPointervNV_remap_index }, + { 22470, GetVertexAttribdvNV_remap_index }, { 8307, GetVertexAttribfvNV_remap_index }, - { 16446, GetVertexAttribivNV_remap_index }, - { 17203, IsProgramNV_remap_index }, + { 16572, GetVertexAttribivNV_remap_index }, + { 17329, IsProgramNV_remap_index }, { 8390, LoadProgramNV_remap_index }, - { 25158, ProgramParameters4dvNV_remap_index }, - { 21993, ProgramParameters4fvNV_remap_index }, - { 18615, RequestResidentProgramsNV_remap_index }, - { 20072, TrackMatrixNV_remap_index }, - { 29212, VertexAttrib1dNV_remap_index }, + { 25321, ProgramParameters4dvNV_remap_index }, + { 22156, ProgramParameters4fvNV_remap_index }, + { 18741, RequestResidentProgramsNV_remap_index }, + { 20235, TrackMatrixNV_remap_index }, + { 29375, VertexAttrib1dNV_remap_index }, { 12214, VertexAttrib1dvNV_remap_index }, - { 25725, VertexAttrib1fNV_remap_index }, + { 25888, VertexAttrib1fNV_remap_index }, { 2245, VertexAttrib1fvNV_remap_index }, - { 27818, VertexAttrib1sNV_remap_index }, + { 27981, VertexAttrib1sNV_remap_index }, { 13498, VertexAttrib1svNV_remap_index }, { 4251, VertexAttrib2dNV_remap_index }, { 12129, VertexAttrib2dvNV_remap_index }, - { 18070, VertexAttrib2fNV_remap_index }, + { 18196, VertexAttrib2fNV_remap_index }, { 11740, VertexAttrib2fvNV_remap_index }, { 5106, VertexAttrib2sNV_remap_index }, - { 16837, VertexAttrib2svNV_remap_index }, + { 16963, VertexAttrib2svNV_remap_index }, { 10110, VertexAttrib3dNV_remap_index }, - { 28905, VertexAttrib3dvNV_remap_index }, + { 29068, VertexAttrib3dvNV_remap_index }, { 9196, VertexAttrib3fNV_remap_index }, - { 22334, VertexAttrib3fvNV_remap_index }, - { 25700, VertexAttrib3sNV_remap_index }, - { 21295, VertexAttrib3svNV_remap_index }, - { 26167, VertexAttrib4dNV_remap_index }, - { 30156, VertexAttrib4dvNV_remap_index }, + { 22497, VertexAttrib3fvNV_remap_index }, + { 25863, VertexAttrib3sNV_remap_index }, + { 21458, VertexAttrib3svNV_remap_index }, + { 26330, VertexAttrib4dNV_remap_index }, + { 30319, VertexAttrib4dvNV_remap_index }, { 3945, VertexAttrib4fNV_remap_index }, { 8440, VertexAttrib4fvNV_remap_index }, - { 24104, VertexAttrib4sNV_remap_index }, + { 24267, VertexAttrib4sNV_remap_index }, { 1293, VertexAttrib4svNV_remap_index }, { 4409, VertexAttrib4ubNV_remap_index }, { 734, VertexAttrib4ubvNV_remap_index }, - { 19534, VertexAttribPointerNV_remap_index }, + { 19660, VertexAttribPointerNV_remap_index }, { 2097, VertexAttribs1dvNV_remap_index }, - { 23641, VertexAttribs1fvNV_remap_index }, - { 29956, VertexAttribs1svNV_remap_index }, + { 23804, VertexAttribs1fvNV_remap_index }, + { 30119, VertexAttribs1svNV_remap_index }, { 9221, VertexAttribs2dvNV_remap_index }, - { 22896, VertexAttribs2fvNV_remap_index }, - { 15778, VertexAttribs2svNV_remap_index }, + { 23059, VertexAttribs2fvNV_remap_index }, + { 15904, VertexAttribs2svNV_remap_index }, { 4608, VertexAttribs3dvNV_remap_index }, { 1977, VertexAttribs3fvNV_remap_index }, - { 27068, VertexAttribs3svNV_remap_index }, - { 24194, VertexAttribs4dvNV_remap_index }, + { 27231, VertexAttribs3svNV_remap_index }, + { 24357, VertexAttribs4dvNV_remap_index }, { 4634, VertexAttribs4fvNV_remap_index }, - { 29743, VertexAttribs4svNV_remap_index }, - { 26816, VertexAttribs4ubvNV_remap_index }, - { 24296, GetTexBumpParameterfvATI_remap_index }, - { 29997, GetTexBumpParameterivATI_remap_index }, - { 16500, TexBumpParameterfvATI_remap_index }, - { 18486, TexBumpParameterivATI_remap_index }, + { 29906, VertexAttribs4svNV_remap_index }, + { 26979, VertexAttribs4ubvNV_remap_index }, + { 24459, GetTexBumpParameterfvATI_remap_index }, + { 30160, GetTexBumpParameterivATI_remap_index }, + { 16626, TexBumpParameterfvATI_remap_index }, + { 18612, TexBumpParameterivATI_remap_index }, { 14044, AlphaFragmentOp1ATI_remap_index }, { 9772, AlphaFragmentOp2ATI_remap_index }, - { 22250, AlphaFragmentOp3ATI_remap_index }, - { 26995, BeginFragmentShaderATI_remap_index }, - { 28248, BindFragmentShaderATI_remap_index }, - { 21424, ColorFragmentOp1ATI_remap_index }, + { 22413, AlphaFragmentOp3ATI_remap_index }, + { 27158, BeginFragmentShaderATI_remap_index }, + { 28411, BindFragmentShaderATI_remap_index }, + { 21587, ColorFragmentOp1ATI_remap_index }, { 3823, ColorFragmentOp2ATI_remap_index }, - { 28550, ColorFragmentOp3ATI_remap_index }, + { 28713, ColorFragmentOp3ATI_remap_index }, { 4753, DeleteFragmentShaderATI_remap_index }, - { 30180, EndFragmentShaderATI_remap_index }, - { 29426, GenFragmentShadersATI_remap_index }, - { 23027, PassTexCoordATI_remap_index }, + { 30343, EndFragmentShaderATI_remap_index }, + { 29589, GenFragmentShadersATI_remap_index }, + { 23190, PassTexCoordATI_remap_index }, { 6026, SampleMapATI_remap_index }, { 5799, SetFragmentShaderConstantATI_remap_index }, { 319, PointParameteriNV_remap_index }, { 12754, PointParameterivNV_remap_index }, - { 26006, ActiveStencilFaceEXT_remap_index }, - { 24818, BindVertexArrayAPPLE_remap_index }, + { 26169, ActiveStencilFaceEXT_remap_index }, + { 24981, BindVertexArrayAPPLE_remap_index }, { 2522, DeleteVertexArraysAPPLE_remap_index }, - { 16117, GenVertexArraysAPPLE_remap_index }, - { 21099, IsVertexArrayAPPLE_remap_index }, + { 16243, GenVertexArraysAPPLE_remap_index }, + { 21262, IsVertexArrayAPPLE_remap_index }, { 775, GetProgramNamedParameterdvNV_remap_index }, { 3128, GetProgramNamedParameterfvNV_remap_index }, - { 24327, ProgramNamedParameter4dNV_remap_index }, + { 24490, ProgramNamedParameter4dNV_remap_index }, { 13080, ProgramNamedParameter4dvNV_remap_index }, { 7923, ProgramNamedParameter4fNV_remap_index }, { 10554, ProgramNamedParameter4fvNV_remap_index }, - { 21972, DepthBoundsEXT_remap_index }, + { 22135, DepthBoundsEXT_remap_index }, { 1043, BlendEquationSeparateEXT_remap_index }, { 13199, BindFramebufferEXT_remap_index }, - { 23214, BindRenderbufferEXT_remap_index }, + { 23377, BindRenderbufferEXT_remap_index }, { 8659, CheckFramebufferStatusEXT_remap_index }, - { 20389, DeleteFramebuffersEXT_remap_index }, - { 28807, DeleteRenderbuffersEXT_remap_index }, + { 20552, DeleteFramebuffersEXT_remap_index }, + { 28970, DeleteRenderbuffersEXT_remap_index }, { 12153, FramebufferRenderbufferEXT_remap_index }, { 12290, FramebufferTexture1DEXT_remap_index }, { 10348, FramebufferTexture2DEXT_remap_index }, { 10015, FramebufferTexture3DEXT_remap_index }, - { 20991, GenFramebuffersEXT_remap_index }, - { 15664, GenRenderbuffersEXT_remap_index }, + { 21154, GenFramebuffersEXT_remap_index }, + { 15790, GenRenderbuffersEXT_remap_index }, { 5745, GenerateMipmapEXT_remap_index }, - { 19594, GetFramebufferAttachmentParameterivEXT_remap_index }, - { 29332, GetRenderbufferParameterivEXT_remap_index }, - { 18366, IsFramebufferEXT_remap_index }, - { 30079, IsRenderbufferEXT_remap_index }, + { 19757, GetFramebufferAttachmentParameterivEXT_remap_index }, + { 29495, GetRenderbufferParameterivEXT_remap_index }, + { 18492, IsFramebufferEXT_remap_index }, + { 30242, IsRenderbufferEXT_remap_index }, { 7234, RenderbufferStorageEXT_remap_index }, { 651, BlitFramebufferEXT_remap_index }, { 12899, BufferParameteriAPPLE_remap_index }, - { 17235, FlushMappedBufferRangeAPPLE_remap_index }, + { 17361, FlushMappedBufferRangeAPPLE_remap_index }, { 2701, FramebufferTextureLayerEXT_remap_index }, - { 25515, ColorMaskIndexedEXT_remap_index }, - { 16861, DisableIndexedEXT_remap_index }, - { 23951, EnableIndexedEXT_remap_index }, - { 19565, GetBooleanIndexedvEXT_remap_index }, + { 25678, ColorMaskIndexedEXT_remap_index }, + { 16987, DisableIndexedEXT_remap_index }, + { 24114, EnableIndexedEXT_remap_index }, + { 19728, GetBooleanIndexedvEXT_remap_index }, { 9805, GetIntegerIndexedvEXT_remap_index }, - { 20465, IsEnabledIndexedEXT_remap_index }, + { 20628, IsEnabledIndexedEXT_remap_index }, { 4074, BeginConditionalRenderNV_remap_index }, - { 23000, EndConditionalRenderNV_remap_index }, + { 23163, EndConditionalRenderNV_remap_index }, { 8334, BeginTransformFeedbackEXT_remap_index }, - { 16885, BindBufferBaseEXT_remap_index }, - { 16755, BindBufferOffsetEXT_remap_index }, + { 17011, BindBufferBaseEXT_remap_index }, + { 16881, BindBufferOffsetEXT_remap_index }, { 11028, BindBufferRangeEXT_remap_index }, { 12814, EndTransformFeedbackEXT_remap_index }, { 9657, GetTransformFeedbackVaryingEXT_remap_index }, - { 18671, TransformFeedbackVaryingsEXT_remap_index }, - { 26717, ProvokingVertexEXT_remap_index }, + { 18797, TransformFeedbackVaryingsEXT_remap_index }, + { 26880, ProvokingVertexEXT_remap_index }, { 9605, GetTexParameterPointervAPPLE_remap_index }, { 4436, TextureRangeAPPLE_remap_index }, { 10420, GetObjectParameterivAPPLE_remap_index }, - { 17810, ObjectPurgeableAPPLE_remap_index }, + { 17936, ObjectPurgeableAPPLE_remap_index }, { 4900, ObjectUnpurgeableAPPLE_remap_index }, - { 26032, StencilFuncSeparateATI_remap_index }, - { 16184, ProgramEnvParameters4fvEXT_remap_index }, - { 15402, ProgramLocalParameters4fvEXT_remap_index }, + { 26195, StencilFuncSeparateATI_remap_index }, + { 16310, ProgramEnvParameters4fvEXT_remap_index }, + { 19691, ProgramLocalParameters4fvEXT_remap_index }, { 12682, GetQueryObjecti64vEXT_remap_index }, { 9247, GetQueryObjectui64vEXT_remap_index }, - { 21493, EGLImageTargetRenderbufferStorageOES_remap_index }, + { 21656, EGLImageTargetRenderbufferStorageOES_remap_index }, { 10907, EGLImageTargetTexture2DOES_remap_index }, { -1, -1 } }; @@ -4836,8 +4850,8 @@ static const struct gl_function_remap MESA_alt_functions[] = { /* from GL_EXT_blend_minmax */ { 10072, _gloffset_BlendEquation }, /* from GL_EXT_color_subtable */ - { 15300, _gloffset_ColorSubTable }, - { 28739, _gloffset_CopyColorSubTable }, + { 15378, _gloffset_ColorSubTable }, + { 28902, _gloffset_CopyColorSubTable }, /* from GL_EXT_convolution */ { 213, _gloffset_ConvolutionFilter1D }, { 2284, _gloffset_CopyConvolutionFilter1D }, @@ -4845,19 +4859,19 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 7583, _gloffset_ConvolutionFilter2D }, { 7749, _gloffset_ConvolutionParameteriv }, { 8209, _gloffset_ConvolutionParameterfv }, - { 18514, _gloffset_GetSeparableFilter }, - { 21723, _gloffset_SeparableFilter2D }, - { 22552, _gloffset_ConvolutionParameteri }, - { 22675, _gloffset_ConvolutionParameterf }, - { 24130, _gloffset_GetConvolutionParameterfv }, - { 24984, _gloffset_GetConvolutionFilter }, - { 27257, _gloffset_CopyConvolutionFilter2D }, + { 18640, _gloffset_GetSeparableFilter }, + { 21886, _gloffset_SeparableFilter2D }, + { 22715, _gloffset_ConvolutionParameteri }, + { 22838, _gloffset_ConvolutionParameterf }, + { 24293, _gloffset_GetConvolutionParameterfv }, + { 25147, _gloffset_GetConvolutionFilter }, + { 27420, _gloffset_CopyConvolutionFilter2D }, /* from GL_EXT_copy_texture */ { 13558, _gloffset_CopyTexSubImage3D }, - { 15040, _gloffset_CopyTexImage2D }, - { 22160, _gloffset_CopyTexImage1D }, - { 24665, _gloffset_CopyTexSubImage2D }, - { 26895, _gloffset_CopyTexSubImage1D }, + { 15118, _gloffset_CopyTexImage2D }, + { 22323, _gloffset_CopyTexImage1D }, + { 24828, _gloffset_CopyTexSubImage2D }, + { 27058, _gloffset_CopyTexSubImage1D }, /* from GL_EXT_draw_range_elements */ { 8546, _gloffset_DrawRangeElements }, /* from GL_EXT_histogram */ @@ -4865,42 +4879,42 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 3088, _gloffset_ResetHistogram }, { 8918, _gloffset_GetMinmax }, { 13892, _gloffset_GetHistogramParameterfv }, - { 22085, _gloffset_GetMinmaxParameteriv }, - { 24020, _gloffset_ResetMinmax }, - { 24881, _gloffset_GetHistogramParameteriv }, - { 25966, _gloffset_GetHistogram }, - { 28364, _gloffset_Minmax }, - { 29826, _gloffset_GetMinmaxParameterfv }, + { 22248, _gloffset_GetMinmaxParameteriv }, + { 24183, _gloffset_ResetMinmax }, + { 25044, _gloffset_GetHistogramParameteriv }, + { 26129, _gloffset_GetHistogram }, + { 28527, _gloffset_Minmax }, + { 29989, _gloffset_GetMinmaxParameterfv }, /* from GL_EXT_paletted_texture */ { 7445, _gloffset_ColorTable }, { 13738, _gloffset_GetColorTable }, - { 20738, _gloffset_GetColorTableParameterfv }, - { 22731, _gloffset_GetColorTableParameteriv }, + { 20901, _gloffset_GetColorTableParameterfv }, + { 22894, _gloffset_GetColorTableParameteriv }, /* from GL_EXT_subtexture */ { 6166, _gloffset_TexSubImage1D }, { 9532, _gloffset_TexSubImage2D }, /* from GL_EXT_texture3D */ { 1658, _gloffset_TexImage3D }, - { 20507, _gloffset_TexSubImage3D }, + { 20670, _gloffset_TexSubImage3D }, /* from GL_EXT_texture_object */ { 2964, _gloffset_PrioritizeTextures }, { 6615, _gloffset_AreTexturesResident }, { 12238, _gloffset_GenTextures }, { 14224, _gloffset_DeleteTextures }, - { 17516, _gloffset_IsTexture }, - { 26960, _gloffset_BindTexture }, + { 17642, _gloffset_IsTexture }, + { 27123, _gloffset_BindTexture }, /* from GL_EXT_vertex_array */ - { 21912, _gloffset_ArrayElement }, - { 27952, _gloffset_GetPointerv }, - { 29453, _gloffset_DrawArrays }, + { 22075, _gloffset_ArrayElement }, + { 28115, _gloffset_GetPointerv }, + { 29616, _gloffset_DrawArrays }, /* from GL_SGI_color_table */ { 6733, _gloffset_ColorTableParameteriv }, { 7445, _gloffset_ColorTable }, { 13738, _gloffset_GetColorTable }, { 13848, _gloffset_CopyColorTable }, - { 17377, _gloffset_ColorTableParameterfv }, - { 20738, _gloffset_GetColorTableParameterfv }, - { 22731, _gloffset_GetColorTableParameteriv }, + { 17503, _gloffset_ColorTableParameterfv }, + { 20901, _gloffset_GetColorTableParameterfv }, + { 22894, _gloffset_GetColorTableParameteriv }, /* from GL_VERSION_1_3 */ { 381, _gloffset_MultiTexCoord3sARB }, { 613, _gloffset_ActiveTextureARB }, @@ -4920,22 +4934,22 @@ static const struct gl_function_remap MESA_alt_functions[] = { { 12928, _gloffset_MultiTexCoord3dvARB }, { 14092, _gloffset_MultiTexCoord3ivARB }, { 14137, _gloffset_MultiTexCoord2sARB }, - { 15357, _gloffset_MultiTexCoord4ivARB }, - { 17027, _gloffset_ClientActiveTextureARB }, - { 19310, _gloffset_MultiTexCoord2dARB }, - { 19714, _gloffset_MultiTexCoord4dvARB }, - { 20000, _gloffset_MultiTexCoord4fvARB }, - { 20879, _gloffset_MultiTexCoord3fARB }, - { 23259, _gloffset_MultiTexCoord4dARB }, - { 23463, _gloffset_MultiTexCoord1sARB }, - { 23667, _gloffset_MultiTexCoord1dvARB }, - { 24509, _gloffset_MultiTexCoord1ivARB }, - { 24602, _gloffset_MultiTexCoord2ivARB }, - { 24941, _gloffset_MultiTexCoord1iARB }, - { 26241, _gloffset_MultiTexCoord4svARB }, - { 26759, _gloffset_MultiTexCoord1fARB }, - { 27022, _gloffset_MultiTexCoord4fARB }, - { 29287, _gloffset_MultiTexCoord2fvARB }, + { 15435, _gloffset_MultiTexCoord4ivARB }, + { 17153, _gloffset_ClientActiveTextureARB }, + { 19436, _gloffset_MultiTexCoord2dARB }, + { 19877, _gloffset_MultiTexCoord4dvARB }, + { 20163, _gloffset_MultiTexCoord4fvARB }, + { 21042, _gloffset_MultiTexCoord3fARB }, + { 23422, _gloffset_MultiTexCoord4dARB }, + { 23626, _gloffset_MultiTexCoord1sARB }, + { 23830, _gloffset_MultiTexCoord1dvARB }, + { 24672, _gloffset_MultiTexCoord1ivARB }, + { 24765, _gloffset_MultiTexCoord2ivARB }, + { 25104, _gloffset_MultiTexCoord1iARB }, + { 26404, _gloffset_MultiTexCoord4svARB }, + { 26922, _gloffset_MultiTexCoord1fARB }, + { 27185, _gloffset_MultiTexCoord4fARB }, + { 29450, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; @@ -4997,6 +5011,13 @@ static const struct gl_function_remap GL_ARB_draw_elements_base_vertex_functions }; #endif +#if defined(need_GL_ARB_draw_instanced) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_ARB_draw_instanced_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_ARB_framebuffer_object) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_ARB_framebuffer_object_functions[] = { @@ -5016,8 +5037,8 @@ static const struct gl_function_remap GL_ARB_matrix_palette_functions[] = { { 3339, -1 }, /* MatrixIndexusvARB */ { 11830, -1 }, /* MatrixIndexuivARB */ { 13050, -1 }, /* MatrixIndexPointerARB */ - { 17765, -1 }, /* CurrentPaletteMatrixARB */ - { 20623, -1 }, /* MatrixIndexubvARB */ + { 17891, -1 }, /* CurrentPaletteMatrixARB */ + { 20786, -1 }, /* MatrixIndexubvARB */ { -1, -1 } }; #endif @@ -5091,12 +5112,12 @@ static const struct gl_function_remap GL_ARB_vertex_blend_functions[] = { { 5633, -1 }, /* WeightivARB */ { 9937, -1 }, /* WeightPointerARB */ { 12468, -1 }, /* WeightfvARB */ - { 15804, -1 }, /* WeightbvARB */ - { 18978, -1 }, /* WeightusvARB */ - { 21649, -1 }, /* VertexBlendARB */ - { 26843, -1 }, /* WeightsvARB */ - { 28789, -1 }, /* WeightdvARB */ - { 29487, -1 }, /* WeightuivARB */ + { 15930, -1 }, /* WeightbvARB */ + { 19104, -1 }, /* WeightusvARB */ + { 21812, -1 }, /* VertexBlendARB */ + { 27006, -1 }, /* WeightsvARB */ + { 28952, -1 }, /* WeightdvARB */ + { 29650, -1 }, /* WeightuivARB */ { -1, -1 } }; #endif @@ -5194,8 +5215,8 @@ static const struct gl_function_remap GL_EXT_blend_minmax_functions[] = { #if defined(need_GL_EXT_color_subtable) static const struct gl_function_remap GL_EXT_color_subtable_functions[] = { - { 15300, _gloffset_ColorSubTable }, - { 28739, _gloffset_CopyColorSubTable }, + { 15378, _gloffset_ColorSubTable }, + { 28902, _gloffset_CopyColorSubTable }, { -1, -1 } }; #endif @@ -5215,13 +5236,13 @@ static const struct gl_function_remap GL_EXT_convolution_functions[] = { { 7583, _gloffset_ConvolutionFilter2D }, { 7749, _gloffset_ConvolutionParameteriv }, { 8209, _gloffset_ConvolutionParameterfv }, - { 18514, _gloffset_GetSeparableFilter }, - { 21723, _gloffset_SeparableFilter2D }, - { 22552, _gloffset_ConvolutionParameteri }, - { 22675, _gloffset_ConvolutionParameterf }, - { 24130, _gloffset_GetConvolutionParameterfv }, - { 24984, _gloffset_GetConvolutionFilter }, - { 27257, _gloffset_CopyConvolutionFilter2D }, + { 18640, _gloffset_GetSeparableFilter }, + { 21886, _gloffset_SeparableFilter2D }, + { 22715, _gloffset_ConvolutionParameteri }, + { 22838, _gloffset_ConvolutionParameterf }, + { 24293, _gloffset_GetConvolutionParameterfv }, + { 25147, _gloffset_GetConvolutionFilter }, + { 27420, _gloffset_CopyConvolutionFilter2D }, { -1, -1 } }; #endif @@ -5232,24 +5253,24 @@ static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { { 11344, -1 }, /* Binormal3ivEXT */ { 11962, -1 }, /* Tangent3sEXT */ { 13115, -1 }, /* Tangent3fvEXT */ - { 16736, -1 }, /* Tangent3dvEXT */ - { 17463, -1 }, /* Binormal3bvEXT */ - { 18567, -1 }, /* Binormal3dEXT */ - { 20555, -1 }, /* Tangent3fEXT */ - { 22624, -1 }, /* Binormal3sEXT */ - { 23069, -1 }, /* Tangent3ivEXT */ - { 23088, -1 }, /* Tangent3dEXT */ - { 23894, -1 }, /* Binormal3svEXT */ - { 24407, -1 }, /* Binormal3fEXT */ - { 25259, -1 }, /* Binormal3dvEXT */ - { 26463, -1 }, /* Tangent3iEXT */ - { 27542, -1 }, /* Tangent3bvEXT */ - { 27987, -1 }, /* Tangent3bEXT */ - { 28512, -1 }, /* Binormal3fvEXT */ - { 29186, -1 }, /* BinormalPointerEXT */ - { 29591, -1 }, /* Tangent3svEXT */ - { 30028, -1 }, /* Binormal3bEXT */ - { 30205, -1 }, /* Binormal3iEXT */ + { 16862, -1 }, /* Tangent3dvEXT */ + { 17589, -1 }, /* Binormal3bvEXT */ + { 18693, -1 }, /* Binormal3dEXT */ + { 20718, -1 }, /* Tangent3fEXT */ + { 22787, -1 }, /* Binormal3sEXT */ + { 23232, -1 }, /* Tangent3ivEXT */ + { 23251, -1 }, /* Tangent3dEXT */ + { 24057, -1 }, /* Binormal3svEXT */ + { 24570, -1 }, /* Binormal3fEXT */ + { 25422, -1 }, /* Binormal3dvEXT */ + { 26626, -1 }, /* Tangent3iEXT */ + { 27705, -1 }, /* Tangent3bvEXT */ + { 28150, -1 }, /* Tangent3bEXT */ + { 28675, -1 }, /* Binormal3fvEXT */ + { 29349, -1 }, /* BinormalPointerEXT */ + { 29754, -1 }, /* Tangent3svEXT */ + { 30191, -1 }, /* Binormal3bEXT */ + { 30368, -1 }, /* Binormal3iEXT */ { -1, -1 } }; #endif @@ -5257,10 +5278,10 @@ static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = { #if defined(need_GL_EXT_copy_texture) static const struct gl_function_remap GL_EXT_copy_texture_functions[] = { { 13558, _gloffset_CopyTexSubImage3D }, - { 15040, _gloffset_CopyTexImage2D }, - { 22160, _gloffset_CopyTexImage1D }, - { 24665, _gloffset_CopyTexSubImage2D }, - { 26895, _gloffset_CopyTexSubImage1D }, + { 15118, _gloffset_CopyTexImage2D }, + { 22323, _gloffset_CopyTexImage1D }, + { 24828, _gloffset_CopyTexSubImage2D }, + { 27058, _gloffset_CopyTexSubImage1D }, { -1, -1 } }; #endif @@ -5286,6 +5307,13 @@ static const struct gl_function_remap GL_EXT_draw_buffers2_functions[] = { }; #endif +#if defined(need_GL_EXT_draw_instanced) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_EXT_draw_instanced_functions[] = { + { -1, -1 } +}; +#endif + #if defined(need_GL_EXT_draw_range_elements) static const struct gl_function_remap GL_EXT_draw_range_elements_functions[] = { { 8546, _gloffset_DrawRangeElements }, @@ -5334,12 +5362,12 @@ static const struct gl_function_remap GL_EXT_histogram_functions[] = { { 3088, _gloffset_ResetHistogram }, { 8918, _gloffset_GetMinmax }, { 13892, _gloffset_GetHistogramParameterfv }, - { 22085, _gloffset_GetMinmaxParameteriv }, - { 24020, _gloffset_ResetMinmax }, - { 24881, _gloffset_GetHistogramParameteriv }, - { 25966, _gloffset_GetHistogram }, - { 28364, _gloffset_Minmax }, - { 29826, _gloffset_GetMinmaxParameterfv }, + { 22248, _gloffset_GetMinmaxParameteriv }, + { 24183, _gloffset_ResetMinmax }, + { 25044, _gloffset_GetHistogramParameteriv }, + { 26129, _gloffset_GetHistogram }, + { 28527, _gloffset_Minmax }, + { 29989, _gloffset_GetMinmaxParameterfv }, { -1, -1 } }; #endif @@ -5353,16 +5381,16 @@ static const struct gl_function_remap GL_EXT_index_func_functions[] = { #if defined(need_GL_EXT_index_material) static const struct gl_function_remap GL_EXT_index_material_functions[] = { - { 19065, -1 }, /* IndexMaterialEXT */ + { 19191, -1 }, /* IndexMaterialEXT */ { -1, -1 } }; #endif #if defined(need_GL_EXT_light_texture) static const struct gl_function_remap GL_EXT_light_texture_functions[] = { - { 23914, -1 }, /* ApplyTextureEXT */ - { 23974, -1 }, /* TextureMaterialEXT */ - { 23999, -1 }, /* TextureLightEXT */ + { 24077, -1 }, /* ApplyTextureEXT */ + { 24137, -1 }, /* TextureMaterialEXT */ + { 24162, -1 }, /* TextureLightEXT */ { -1, -1 } }; #endif @@ -5385,18 +5413,18 @@ static const struct gl_function_remap GL_EXT_multisample_functions[] = { static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = { { 7445, _gloffset_ColorTable }, { 13738, _gloffset_GetColorTable }, - { 20738, _gloffset_GetColorTableParameterfv }, - { 22731, _gloffset_GetColorTableParameteriv }, + { 20901, _gloffset_GetColorTableParameterfv }, + { 22894, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_EXT_pixel_transform) static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = { - { 19679, -1 }, /* PixelTransformParameterfEXT */ - { 19759, -1 }, /* PixelTransformParameteriEXT */ - { 27725, -1 }, /* PixelTransformParameterfvEXT */ - { 29150, -1 }, /* PixelTransformParameterivEXT */ + { 19842, -1 }, /* PixelTransformParameterfEXT */ + { 19922, -1 }, /* PixelTransformParameteriEXT */ + { 27888, -1 }, /* PixelTransformParameterfvEXT */ + { 29313, -1 }, /* PixelTransformParameterivEXT */ { -1, -1 } }; #endif @@ -5447,7 +5475,7 @@ static const struct gl_function_remap GL_EXT_subtexture_functions[] = { #if defined(need_GL_EXT_texture3D) static const struct gl_function_remap GL_EXT_texture3D_functions[] = { { 1658, _gloffset_TexImage3D }, - { 20507, _gloffset_TexSubImage3D }, + { 20670, _gloffset_TexSubImage3D }, { -1, -1 } }; #endif @@ -5465,8 +5493,8 @@ static const struct gl_function_remap GL_EXT_texture_object_functions[] = { { 6615, _gloffset_AreTexturesResident }, { 12238, _gloffset_GenTextures }, { 14224, _gloffset_DeleteTextures }, - { 17516, _gloffset_IsTexture }, - { 26960, _gloffset_BindTexture }, + { 17642, _gloffset_IsTexture }, + { 27123, _gloffset_BindTexture }, { -1, -1 } }; #endif @@ -5495,18 +5523,18 @@ static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = { #if defined(need_GL_EXT_vertex_array) /* functions defined in MESA_remap_table_functions are excluded */ static const struct gl_function_remap GL_EXT_vertex_array_functions[] = { - { 21912, _gloffset_ArrayElement }, - { 27952, _gloffset_GetPointerv }, - { 29453, _gloffset_DrawArrays }, + { 22075, _gloffset_ArrayElement }, + { 28115, _gloffset_GetPointerv }, + { 29616, _gloffset_DrawArrays }, { -1, -1 } }; #endif #if defined(need_GL_EXT_vertex_weighting) static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = { - { 17546, -1 }, /* VertexWeightfvEXT */ - { 24385, -1 }, /* VertexWeightfEXT */ - { 25935, -1 }, /* VertexWeightPointerEXT */ + { 17672, -1 }, /* VertexWeightfvEXT */ + { 24548, -1 }, /* VertexWeightfEXT */ + { 26098, -1 }, /* VertexWeightPointerEXT */ { -1, -1 } }; #endif @@ -5518,7 +5546,7 @@ static const struct gl_function_remap GL_HP_image_transform_functions[] = { { 9110, -1 }, /* ImageTransformParameterfvHP */ { 10768, -1 }, /* ImageTransformParameteriHP */ { 11115, -1 }, /* GetImageTransformParameterivHP */ - { 17610, -1 }, /* ImageTransformParameterivHP */ + { 17736, -1 }, /* ImageTransformParameterivHP */ { -1, -1 } }; #endif @@ -5539,7 +5567,7 @@ static const struct gl_function_remap GL_IBM_vertex_array_lists_functions[] = { { 10689, -1 }, /* ColorPointerListIBM */ { 12069, -1 }, /* TexCoordPointerListIBM */ { 12440, -1 }, /* IndexPointerListIBM */ - { 29769, -1 }, /* EdgeFlagPointerListIBM */ + { 29932, -1 }, /* EdgeFlagPointerListIBM */ { -1, -1 } }; #endif @@ -5555,8 +5583,8 @@ static const struct gl_function_remap GL_INGR_blend_func_separate_functions[] = static const struct gl_function_remap GL_INTEL_parallel_arrays_functions[] = { { 11456, -1 }, /* VertexPointervINTEL */ { 13985, -1 }, /* ColorPointervINTEL */ - { 27231, -1 }, /* NormalPointervINTEL */ - { 27657, -1 }, /* TexCoordPointervINTEL */ + { 27394, -1 }, /* NormalPointervINTEL */ + { 27820, -1 }, /* TexCoordPointervINTEL */ { -1, -1 } }; #endif @@ -5573,7 +5601,7 @@ static const struct gl_function_remap GL_MESA_shader_debug_functions[] = { { 1522, -1 }, /* GetDebugLogLengthMESA */ { 3063, -1 }, /* ClearDebugLogMESA */ { 4018, -1 }, /* GetDebugLogMESA */ - { 28145, -1 }, /* CreateDebugObjectMESA */ + { 28308, -1 }, /* CreateDebugObjectMESA */ { -1, -1 } }; #endif @@ -5598,11 +5626,11 @@ static const struct gl_function_remap GL_NV_evaluators_functions[] = { { 7551, -1 }, /* MapControlPointsNV */ { 7650, -1 }, /* MapParameterfvNV */ { 9515, -1 }, /* EvalMapsNV */ - { 15474, -1 }, /* GetMapAttribParameterfvNV */ - { 15640, -1 }, /* MapParameterivNV */ - { 22475, -1 }, /* GetMapParameterivNV */ - { 22973, -1 }, /* GetMapParameterfvNV */ - { 26567, -1 }, /* GetMapControlPointsNV */ + { 15600, -1 }, /* GetMapAttribParameterfvNV */ + { 15766, -1 }, /* MapParameterivNV */ + { 22638, -1 }, /* GetMapParameterivNV */ + { 23136, -1 }, /* GetMapParameterfvNV */ + { 26730, -1 }, /* GetMapControlPointsNV */ { -1, -1 } }; #endif @@ -5637,8 +5665,8 @@ static const struct gl_function_remap GL_NV_register_combiners_functions[] = { #if defined(need_GL_NV_register_combiners2) static const struct gl_function_remap GL_NV_register_combiners2_functions[] = { - { 14377, -1 }, /* CombinerStageParameterfvNV */ - { 14692, -1 }, /* GetCombinerStageParameterfvNV */ + { 14455, -1 }, /* CombinerStageParameterfvNV */ + { 14770, -1 }, /* GetCombinerStageParameterfvNV */ { -1, -1 } }; #endif @@ -5673,16 +5701,16 @@ static const struct gl_function_remap GL_PGI_misc_hints_functions[] = { #if defined(need_GL_SGIS_detail_texture) static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = { - { 14665, -1 }, /* GetDetailTexFuncSGIS */ - { 14985, -1 }, /* DetailTexFuncSGIS */ + { 14743, -1 }, /* GetDetailTexFuncSGIS */ + { 15063, -1 }, /* DetailTexFuncSGIS */ { -1, -1 } }; #endif #if defined(need_GL_SGIS_fog_function) static const struct gl_function_remap GL_SGIS_fog_function_functions[] = { - { 24647, -1 }, /* FogFuncSGIS */ - { 25312, -1 }, /* GetFogFuncSGIS */ + { 24810, -1 }, /* FogFuncSGIS */ + { 25475, -1 }, /* GetFogFuncSGIS */ { -1, -1 } }; #endif @@ -5711,7 +5739,7 @@ static const struct gl_function_remap GL_SGIS_point_parameters_functions[] = { #if defined(need_GL_SGIS_sharpen_texture) static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = { { 5895, -1 }, /* GetSharpenTexFuncSGIS */ - { 19974, -1 }, /* SharpenTexFuncSGIS */ + { 20137, -1 }, /* SharpenTexFuncSGIS */ { -1, -1 } }; #endif @@ -5734,7 +5762,7 @@ static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = { #if defined(need_GL_SGIS_texture_filter4) static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = { { 6072, -1 }, /* GetTexFilterFuncSGIS */ - { 14811, -1 }, /* TexFilterFuncSGIS */ + { 14889, -1 }, /* TexFilterFuncSGIS */ { -1, -1 } }; #endif @@ -5744,9 +5772,9 @@ static const struct gl_function_remap GL_SGIX_async_functions[] = { { 3014, -1 }, /* AsyncMarkerSGIX */ { 3997, -1 }, /* FinishAsyncSGIX */ { 4734, -1 }, /* PollAsyncSGIX */ - { 20121, -1 }, /* DeleteAsyncMarkersSGIX */ - { 20176, -1 }, /* IsAsyncMarkerSGIX */ - { 29566, -1 }, /* GenAsyncMarkersSGIX */ + { 20284, -1 }, /* DeleteAsyncMarkersSGIX */ + { 20339, -1 }, /* IsAsyncMarkerSGIX */ + { 29729, -1 }, /* GenAsyncMarkersSGIX */ { -1, -1 } }; #endif @@ -5769,29 +5797,29 @@ static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = { { 8161, -1 }, /* FragmentLightModeliSGIX */ { 9578, -1 }, /* FragmentLightivSGIX */ { 9880, -1 }, /* GetFragmentMaterialivSGIX */ - { 17433, -1 }, /* FragmentLightModelfSGIX */ - { 17733, -1 }, /* FragmentColorMaterialSGIX */ - { 18133, -1 }, /* FragmentMaterialiSGIX */ - { 19393, -1 }, /* LightEnviSGIX */ - { 20830, -1 }, /* FragmentLightModelfvSGIX */ - { 21139, -1 }, /* FragmentLightfvSGIX */ - { 25817, -1 }, /* FragmentLightfSGIX */ - { 28482, -1 }, /* GetFragmentLightfvSGIX */ - { 30049, -1 }, /* FragmentMaterialivSGIX */ + { 17559, -1 }, /* FragmentLightModelfSGIX */ + { 17859, -1 }, /* FragmentColorMaterialSGIX */ + { 18259, -1 }, /* FragmentMaterialiSGIX */ + { 19519, -1 }, /* LightEnviSGIX */ + { 20993, -1 }, /* FragmentLightModelfvSGIX */ + { 21302, -1 }, /* FragmentLightfvSGIX */ + { 25980, -1 }, /* FragmentLightfSGIX */ + { 28645, -1 }, /* GetFragmentLightfvSGIX */ + { 30212, -1 }, /* FragmentMaterialivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_framezoom) static const struct gl_function_remap GL_SGIX_framezoom_functions[] = { - { 20199, -1 }, /* FrameZoomSGIX */ + { 20362, -1 }, /* FrameZoomSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_igloo_interface) static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = { - { 26125, -1 }, /* IglooInterfaceSGIX */ + { 26288, -1 }, /* IglooInterfaceSGIX */ { -1, -1 } }; #endif @@ -5802,8 +5830,8 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { { 5651, -1 }, /* PollInstrumentsSGIX */ { 9476, -1 }, /* GetInstrumentsSGIX */ { 11667, -1 }, /* StartInstrumentsSGIX */ - { 14411, -1 }, /* StopInstrumentsSGIX */ - { 16017, -1 }, /* InstrumentsBufferSGIX */ + { 14489, -1 }, /* StopInstrumentsSGIX */ + { 16143, -1 }, /* InstrumentsBufferSGIX */ { -1, -1 } }; #endif @@ -5812,10 +5840,10 @@ static const struct gl_function_remap GL_SGIX_instruments_functions[] = { static const struct gl_function_remap GL_SGIX_list_priority_functions[] = { { 1125, -1 }, /* ListParameterfSGIX */ { 2763, -1 }, /* GetListParameterfvSGIX */ - { 15932, -1 }, /* ListParameteriSGIX */ - { 16686, -1 }, /* ListParameterfvSGIX */ - { 18799, -1 }, /* ListParameterivSGIX */ - { 29610, -1 }, /* GetListParameterivSGIX */ + { 16058, -1 }, /* ListParameteriSGIX */ + { 16812, -1 }, /* ListParameterfvSGIX */ + { 18925, -1 }, /* ListParameterivSGIX */ + { 29773, -1 }, /* GetListParameterivSGIX */ { -1, -1 } }; #endif @@ -5831,8 +5859,8 @@ static const struct gl_function_remap GL_SGIX_pixel_texture_functions[] = { static const struct gl_function_remap GL_SGIX_polynomial_ffd_functions[] = { { 3251, -1 }, /* LoadIdentityDeformationMapSGIX */ { 10989, -1 }, /* DeformationMap3dSGIX */ - { 14511, -1 }, /* DeformSGIX */ - { 22024, -1 }, /* DeformationMap3fSGIX */ + { 14589, -1 }, /* DeformSGIX */ + { 22187, -1 }, /* DeformationMap3fSGIX */ { -1, -1 } }; #endif @@ -5847,16 +5875,16 @@ static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = { #if defined(need_GL_SGIX_sprite) static const struct gl_function_remap GL_SGIX_sprite_functions[] = { { 8631, -1 }, /* SpriteParameterfvSGIX */ - { 18588, -1 }, /* SpriteParameteriSGIX */ - { 24054, -1 }, /* SpriteParameterfSGIX */ - { 26689, -1 }, /* SpriteParameterivSGIX */ + { 18714, -1 }, /* SpriteParameteriSGIX */ + { 24217, -1 }, /* SpriteParameterfSGIX */ + { 26852, -1 }, /* SpriteParameterivSGIX */ { -1, -1 } }; #endif #if defined(need_GL_SGIX_tag_sample_buffer) static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = { - { 18647, -1 }, /* TagSampleBufferSGIX */ + { 18773, -1 }, /* TagSampleBufferSGIX */ { -1, -1 } }; #endif @@ -5867,16 +5895,16 @@ static const struct gl_function_remap GL_SGI_color_table_functions[] = { { 7445, _gloffset_ColorTable }, { 13738, _gloffset_GetColorTable }, { 13848, _gloffset_CopyColorTable }, - { 17377, _gloffset_ColorTableParameterfv }, - { 20738, _gloffset_GetColorTableParameterfv }, - { 22731, _gloffset_GetColorTableParameteriv }, + { 17503, _gloffset_ColorTableParameterfv }, + { 20901, _gloffset_GetColorTableParameterfv }, + { 22894, _gloffset_GetColorTableParameteriv }, { -1, -1 } }; #endif #if defined(need_GL_SUNX_constant_data) static const struct gl_function_remap GL_SUNX_constant_data_functions[] = { - { 28460, -1 }, /* FinishTextureSUNX */ + { 28623, -1 }, /* FinishTextureSUNX */ { -1, -1 } }; #endif @@ -5890,14 +5918,14 @@ static const struct gl_function_remap GL_SUN_global_alpha_functions[] = { { 9067, -1 }, /* GlobalAlphaFactorbSUN */ { 11982, -1 }, /* GlobalAlphaFactorfSUN */ { 12101, -1 }, /* GlobalAlphaFactorusSUN */ - { 20438, -1 }, /* GlobalAlphaFactorsSUN */ + { 20601, -1 }, /* GlobalAlphaFactorsSUN */ { -1, -1 } }; #endif #if defined(need_GL_SUN_mesh_array) static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { - { 26501, -1 }, /* DrawMeshArraysSUN */ + { 26664, -1 }, /* DrawMeshArraysSUN */ { -1, -1 } }; #endif @@ -5906,11 +5934,11 @@ static const struct gl_function_remap GL_SUN_mesh_array_functions[] = { static const struct gl_function_remap GL_SUN_triangle_list_functions[] = { { 3971, -1 }, /* ReplacementCodeubSUN */ { 5515, -1 }, /* ReplacementCodeubvSUN */ - { 17098, -1 }, /* ReplacementCodeusvSUN */ - { 17286, -1 }, /* ReplacementCodePointerSUN */ - { 19457, -1 }, /* ReplacementCodeuiSUN */ - { 20150, -1 }, /* ReplacementCodeusSUN */ - { 27146, -1 }, /* ReplacementCodeuivSUN */ + { 17224, -1 }, /* ReplacementCodeusvSUN */ + { 17412, -1 }, /* ReplacementCodePointerSUN */ + { 19583, -1 }, /* ReplacementCodeuiSUN */ + { 20313, -1 }, /* ReplacementCodeusSUN */ + { 27309, -1 }, /* ReplacementCodeuivSUN */ { -1, -1 } }; #endif @@ -5938,25 +5966,25 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = { { 11530, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */ { 12973, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */ { 13384, -1 }, /* TexCoord2fColor3fVertex3fSUN */ - { 14436, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ - { 14770, -1 }, /* Color4ubVertex2fvSUN */ - { 15010, -1 }, /* Normal3fVertex3fSUN */ - { 15958, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ - { 16219, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ - { 16927, -1 }, /* TexCoord2fVertex3fvSUN */ - { 17703, -1 }, /* Color4ubVertex2fSUN */ - { 17924, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ - { 19845, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ - { 20218, -1 }, /* Normal3fVertex3fvSUN */ - { 20647, -1 }, /* Color4fNormal3fVertex3fSUN */ - { 21556, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ - { 21776, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ - { 23506, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ - { 24763, -1 }, /* TexCoord4fVertex4fSUN */ - { 25189, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ - { 25544, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ - { 25671, -1 }, /* TexCoord4fVertex4fvSUN */ - { 26373, -1 }, /* ReplacementCodeuiVertex3fSUN */ + { 14514, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */ + { 14848, -1 }, /* Color4ubVertex2fvSUN */ + { 15088, -1 }, /* Normal3fVertex3fSUN */ + { 16084, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */ + { 16345, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */ + { 17053, -1 }, /* TexCoord2fVertex3fvSUN */ + { 17829, -1 }, /* Color4ubVertex2fSUN */ + { 18050, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */ + { 20008, -1 }, /* TexCoord2fColor4ubVertex3fSUN */ + { 20381, -1 }, /* Normal3fVertex3fvSUN */ + { 20810, -1 }, /* Color4fNormal3fVertex3fSUN */ + { 21719, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */ + { 21939, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */ + { 23669, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */ + { 24926, -1 }, /* TexCoord4fVertex4fSUN */ + { 25352, -1 }, /* TexCoord2fColor3fVertex3fvSUN */ + { 25707, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */ + { 25834, -1 }, /* TexCoord4fVertex4fvSUN */ + { 26536, -1 }, /* ReplacementCodeuiVertex3fSUN */ { -1, -1 } }; #endif @@ -5982,22 +6010,22 @@ static const struct gl_function_remap GL_VERSION_1_3_functions[] = { { 12928, _gloffset_MultiTexCoord3dvARB }, { 14092, _gloffset_MultiTexCoord3ivARB }, { 14137, _gloffset_MultiTexCoord2sARB }, - { 15357, _gloffset_MultiTexCoord4ivARB }, - { 17027, _gloffset_ClientActiveTextureARB }, - { 19310, _gloffset_MultiTexCoord2dARB }, - { 19714, _gloffset_MultiTexCoord4dvARB }, - { 20000, _gloffset_MultiTexCoord4fvARB }, - { 20879, _gloffset_MultiTexCoord3fARB }, - { 23259, _gloffset_MultiTexCoord4dARB }, - { 23463, _gloffset_MultiTexCoord1sARB }, - { 23667, _gloffset_MultiTexCoord1dvARB }, - { 24509, _gloffset_MultiTexCoord1ivARB }, - { 24602, _gloffset_MultiTexCoord2ivARB }, - { 24941, _gloffset_MultiTexCoord1iARB }, - { 26241, _gloffset_MultiTexCoord4svARB }, - { 26759, _gloffset_MultiTexCoord1fARB }, - { 27022, _gloffset_MultiTexCoord4fARB }, - { 29287, _gloffset_MultiTexCoord2fvARB }, + { 15435, _gloffset_MultiTexCoord4ivARB }, + { 17153, _gloffset_ClientActiveTextureARB }, + { 19436, _gloffset_MultiTexCoord2dARB }, + { 19877, _gloffset_MultiTexCoord4dvARB }, + { 20163, _gloffset_MultiTexCoord4fvARB }, + { 21042, _gloffset_MultiTexCoord3fARB }, + { 23422, _gloffset_MultiTexCoord4dARB }, + { 23626, _gloffset_MultiTexCoord1sARB }, + { 23830, _gloffset_MultiTexCoord1dvARB }, + { 24672, _gloffset_MultiTexCoord1ivARB }, + { 24765, _gloffset_MultiTexCoord2ivARB }, + { 25104, _gloffset_MultiTexCoord1iARB }, + { 26404, _gloffset_MultiTexCoord4svARB }, + { 26922, _gloffset_MultiTexCoord1fARB }, + { 27185, _gloffset_MultiTexCoord4fARB }, + { 29450, _gloffset_MultiTexCoord2fvARB }, { -1, -1 } }; #endif @@ -6037,3 +6065,10 @@ static const struct gl_function_remap GL_VERSION_3_0_functions[] = { }; #endif +#if defined(need_GL_VERSION_3_1) +/* functions defined in MESA_remap_table_functions are excluded */ +static const struct gl_function_remap GL_VERSION_3_1_functions[] = { + { -1, -1 } +}; +#endif + diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S index f256803894..e9f887b78f 100644 --- a/src/mesa/sparc/glapi_sparc.S +++ b/src/mesa/sparc/glapi_sparc.S @@ -627,6 +627,8 @@ gl_dispatch_functions_start: GL_STUB(glUniformMatrix3x4fv, _gloffset_UniformMatrix3x4fv) GL_STUB(glUniformMatrix4x2fv, _gloffset_UniformMatrix4x2fv) GL_STUB(glUniformMatrix4x3fv, _gloffset_UniformMatrix4x3fv) + GL_STUB(glDrawArraysInstanced, _gloffset_DrawArraysInstanced) + GL_STUB(glDrawElementsInstanced, _gloffset_DrawElementsInstanced) GL_STUB(glLoadTransposeMatrixdARB, _gloffset_LoadTransposeMatrixdARB) GL_STUB(glLoadTransposeMatrixfARB, _gloffset_LoadTransposeMatrixfARB) GL_STUB(glMultTransposeMatrixdARB, _gloffset_MultTransposeMatrixdARB) @@ -775,22 +777,22 @@ gl_dispatch_functions_start: GL_STUB(glDrawRangeElementsBaseVertex, _gloffset_DrawRangeElementsBaseVertex) GL_STUB(glMultiDrawElementsBaseVertex, _gloffset_MultiDrawElementsBaseVertex) GL_STUB(glPolygonOffsetEXT, _gloffset_PolygonOffsetEXT) - GL_STUB(gl_dispatch_stub_578, _gloffset_GetPixelTexGenParameterfvSGIS) - HIDDEN(gl_dispatch_stub_578) - GL_STUB(gl_dispatch_stub_579, _gloffset_GetPixelTexGenParameterivSGIS) - HIDDEN(gl_dispatch_stub_579) - GL_STUB(gl_dispatch_stub_580, _gloffset_PixelTexGenParameterfSGIS) + GL_STUB(gl_dispatch_stub_580, _gloffset_GetPixelTexGenParameterfvSGIS) HIDDEN(gl_dispatch_stub_580) - GL_STUB(gl_dispatch_stub_581, _gloffset_PixelTexGenParameterfvSGIS) + GL_STUB(gl_dispatch_stub_581, _gloffset_GetPixelTexGenParameterivSGIS) HIDDEN(gl_dispatch_stub_581) - GL_STUB(gl_dispatch_stub_582, _gloffset_PixelTexGenParameteriSGIS) + GL_STUB(gl_dispatch_stub_582, _gloffset_PixelTexGenParameterfSGIS) HIDDEN(gl_dispatch_stub_582) - GL_STUB(gl_dispatch_stub_583, _gloffset_PixelTexGenParameterivSGIS) + GL_STUB(gl_dispatch_stub_583, _gloffset_PixelTexGenParameterfvSGIS) HIDDEN(gl_dispatch_stub_583) - GL_STUB(gl_dispatch_stub_584, _gloffset_SampleMaskSGIS) + GL_STUB(gl_dispatch_stub_584, _gloffset_PixelTexGenParameteriSGIS) HIDDEN(gl_dispatch_stub_584) - GL_STUB(gl_dispatch_stub_585, _gloffset_SamplePatternSGIS) + GL_STUB(gl_dispatch_stub_585, _gloffset_PixelTexGenParameterivSGIS) HIDDEN(gl_dispatch_stub_585) + GL_STUB(gl_dispatch_stub_586, _gloffset_SampleMaskSGIS) + HIDDEN(gl_dispatch_stub_586) + GL_STUB(gl_dispatch_stub_587, _gloffset_SamplePatternSGIS) + HIDDEN(gl_dispatch_stub_587) GL_STUB(glColorPointerEXT, _gloffset_ColorPointerEXT) GL_STUB(glEdgeFlagPointerEXT, _gloffset_EdgeFlagPointerEXT) GL_STUB(glIndexPointerEXT, _gloffset_IndexPointerEXT) @@ -801,10 +803,10 @@ gl_dispatch_functions_start: GL_STUB(glPointParameterfvEXT, _gloffset_PointParameterfvEXT) GL_STUB(glLockArraysEXT, _gloffset_LockArraysEXT) GL_STUB(glUnlockArraysEXT, _gloffset_UnlockArraysEXT) - GL_STUB(gl_dispatch_stub_596, _gloffset_CullParameterdvEXT) - HIDDEN(gl_dispatch_stub_596) - GL_STUB(gl_dispatch_stub_597, _gloffset_CullParameterfvEXT) - HIDDEN(gl_dispatch_stub_597) + GL_STUB(gl_dispatch_stub_598, _gloffset_CullParameterdvEXT) + HIDDEN(gl_dispatch_stub_598) + GL_STUB(gl_dispatch_stub_599, _gloffset_CullParameterfvEXT) + HIDDEN(gl_dispatch_stub_599) GL_STUB(glSecondaryColor3bEXT, _gloffset_SecondaryColor3bEXT) GL_STUB(glSecondaryColor3bvEXT, _gloffset_SecondaryColor3bvEXT) GL_STUB(glSecondaryColor3dEXT, _gloffset_SecondaryColor3dEXT) @@ -829,8 +831,8 @@ gl_dispatch_functions_start: GL_STUB(glFogCoorddvEXT, _gloffset_FogCoorddvEXT) GL_STUB(glFogCoordfEXT, _gloffset_FogCoordfEXT) GL_STUB(glFogCoordfvEXT, _gloffset_FogCoordfvEXT) - GL_STUB(gl_dispatch_stub_622, _gloffset_PixelTexGenSGIX) - HIDDEN(gl_dispatch_stub_622) + GL_STUB(gl_dispatch_stub_624, _gloffset_PixelTexGenSGIX) + HIDDEN(gl_dispatch_stub_624) GL_STUB(glBlendFuncSeparateEXT, _gloffset_BlendFuncSeparateEXT) GL_STUB(glFlushVertexArrayRangeNV, _gloffset_FlushVertexArrayRangeNV) GL_STUB(glVertexArrayRangeNV, _gloffset_VertexArrayRangeNV) @@ -872,24 +874,24 @@ gl_dispatch_functions_start: GL_STUB(glWindowPos4ivMESA, _gloffset_WindowPos4ivMESA) GL_STUB(glWindowPos4sMESA, _gloffset_WindowPos4sMESA) GL_STUB(glWindowPos4svMESA, _gloffset_WindowPos4svMESA) - GL_STUB(gl_dispatch_stub_664, _gloffset_MultiModeDrawArraysIBM) - HIDDEN(gl_dispatch_stub_664) - GL_STUB(gl_dispatch_stub_665, _gloffset_MultiModeDrawElementsIBM) - HIDDEN(gl_dispatch_stub_665) - GL_STUB(gl_dispatch_stub_666, _gloffset_DeleteFencesNV) + GL_STUB(gl_dispatch_stub_666, _gloffset_MultiModeDrawArraysIBM) HIDDEN(gl_dispatch_stub_666) - GL_STUB(gl_dispatch_stub_667, _gloffset_FinishFenceNV) + GL_STUB(gl_dispatch_stub_667, _gloffset_MultiModeDrawElementsIBM) HIDDEN(gl_dispatch_stub_667) - GL_STUB(gl_dispatch_stub_668, _gloffset_GenFencesNV) + GL_STUB(gl_dispatch_stub_668, _gloffset_DeleteFencesNV) HIDDEN(gl_dispatch_stub_668) - GL_STUB(gl_dispatch_stub_669, _gloffset_GetFenceivNV) + GL_STUB(gl_dispatch_stub_669, _gloffset_FinishFenceNV) HIDDEN(gl_dispatch_stub_669) - GL_STUB(gl_dispatch_stub_670, _gloffset_IsFenceNV) + GL_STUB(gl_dispatch_stub_670, _gloffset_GenFencesNV) HIDDEN(gl_dispatch_stub_670) - GL_STUB(gl_dispatch_stub_671, _gloffset_SetFenceNV) + GL_STUB(gl_dispatch_stub_671, _gloffset_GetFenceivNV) HIDDEN(gl_dispatch_stub_671) - GL_STUB(gl_dispatch_stub_672, _gloffset_TestFenceNV) + GL_STUB(gl_dispatch_stub_672, _gloffset_IsFenceNV) HIDDEN(gl_dispatch_stub_672) + GL_STUB(gl_dispatch_stub_673, _gloffset_SetFenceNV) + HIDDEN(gl_dispatch_stub_673) + GL_STUB(gl_dispatch_stub_674, _gloffset_TestFenceNV) + HIDDEN(gl_dispatch_stub_674) GL_STUB(glAreProgramsResidentNV, _gloffset_AreProgramsResidentNV) GL_STUB(glBindProgramNV, _gloffset_BindProgramNV) GL_STUB(glDeleteProgramsNV, _gloffset_DeleteProgramsNV) @@ -970,26 +972,26 @@ gl_dispatch_functions_start: GL_STUB(glSetFragmentShaderConstantATI, _gloffset_SetFragmentShaderConstantATI) GL_STUB(glPointParameteriNV, _gloffset_PointParameteriNV) GL_STUB(glPointParameterivNV, _gloffset_PointParameterivNV) - GL_STUB(gl_dispatch_stub_753, _gloffset_ActiveStencilFaceEXT) - HIDDEN(gl_dispatch_stub_753) - GL_STUB(gl_dispatch_stub_754, _gloffset_BindVertexArrayAPPLE) - HIDDEN(gl_dispatch_stub_754) - GL_STUB(gl_dispatch_stub_755, _gloffset_DeleteVertexArraysAPPLE) + GL_STUB(gl_dispatch_stub_755, _gloffset_ActiveStencilFaceEXT) HIDDEN(gl_dispatch_stub_755) - GL_STUB(gl_dispatch_stub_756, _gloffset_GenVertexArraysAPPLE) + GL_STUB(gl_dispatch_stub_756, _gloffset_BindVertexArrayAPPLE) HIDDEN(gl_dispatch_stub_756) - GL_STUB(gl_dispatch_stub_757, _gloffset_IsVertexArrayAPPLE) + GL_STUB(gl_dispatch_stub_757, _gloffset_DeleteVertexArraysAPPLE) HIDDEN(gl_dispatch_stub_757) + GL_STUB(gl_dispatch_stub_758, _gloffset_GenVertexArraysAPPLE) + HIDDEN(gl_dispatch_stub_758) + GL_STUB(gl_dispatch_stub_759, _gloffset_IsVertexArrayAPPLE) + HIDDEN(gl_dispatch_stub_759) GL_STUB(glGetProgramNamedParameterdvNV, _gloffset_GetProgramNamedParameterdvNV) GL_STUB(glGetProgramNamedParameterfvNV, _gloffset_GetProgramNamedParameterfvNV) GL_STUB(glProgramNamedParameter4dNV, _gloffset_ProgramNamedParameter4dNV) GL_STUB(glProgramNamedParameter4dvNV, _gloffset_ProgramNamedParameter4dvNV) GL_STUB(glProgramNamedParameter4fNV, _gloffset_ProgramNamedParameter4fNV) GL_STUB(glProgramNamedParameter4fvNV, _gloffset_ProgramNamedParameter4fvNV) - GL_STUB(gl_dispatch_stub_764, _gloffset_DepthBoundsEXT) - HIDDEN(gl_dispatch_stub_764) - GL_STUB(gl_dispatch_stub_765, _gloffset_BlendEquationSeparateEXT) - HIDDEN(gl_dispatch_stub_765) + GL_STUB(gl_dispatch_stub_766, _gloffset_DepthBoundsEXT) + HIDDEN(gl_dispatch_stub_766) + GL_STUB(gl_dispatch_stub_767, _gloffset_BlendEquationSeparateEXT) + HIDDEN(gl_dispatch_stub_767) GL_STUB(glBindFramebufferEXT, _gloffset_BindFramebufferEXT) GL_STUB(glBindRenderbufferEXT, _gloffset_BindRenderbufferEXT) GL_STUB(glCheckFramebufferStatusEXT, _gloffset_CheckFramebufferStatusEXT) @@ -1007,12 +1009,12 @@ gl_dispatch_functions_start: GL_STUB(glIsFramebufferEXT, _gloffset_IsFramebufferEXT) GL_STUB(glIsRenderbufferEXT, _gloffset_IsRenderbufferEXT) GL_STUB(glRenderbufferStorageEXT, _gloffset_RenderbufferStorageEXT) - GL_STUB(gl_dispatch_stub_783, _gloffset_BlitFramebufferEXT) - HIDDEN(gl_dispatch_stub_783) - GL_STUB(gl_dispatch_stub_784, _gloffset_BufferParameteriAPPLE) - HIDDEN(gl_dispatch_stub_784) - GL_STUB(gl_dispatch_stub_785, _gloffset_FlushMappedBufferRangeAPPLE) + GL_STUB(gl_dispatch_stub_785, _gloffset_BlitFramebufferEXT) HIDDEN(gl_dispatch_stub_785) + GL_STUB(gl_dispatch_stub_786, _gloffset_BufferParameteriAPPLE) + HIDDEN(gl_dispatch_stub_786) + GL_STUB(gl_dispatch_stub_787, _gloffset_FlushMappedBufferRangeAPPLE) + HIDDEN(gl_dispatch_stub_787) GL_STUB(glFramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT) GL_STUB(glColorMaskIndexedEXT, _gloffset_ColorMaskIndexedEXT) GL_STUB(glDisableIndexedEXT, _gloffset_DisableIndexedEXT) @@ -1030,23 +1032,23 @@ gl_dispatch_functions_start: GL_STUB(glGetTransformFeedbackVaryingEXT, _gloffset_GetTransformFeedbackVaryingEXT) GL_STUB(glTransformFeedbackVaryingsEXT, _gloffset_TransformFeedbackVaryingsEXT) GL_STUB(glProvokingVertexEXT, _gloffset_ProvokingVertexEXT) - GL_STUB(gl_dispatch_stub_803, _gloffset_GetTexParameterPointervAPPLE) - HIDDEN(gl_dispatch_stub_803) - GL_STUB(gl_dispatch_stub_804, _gloffset_TextureRangeAPPLE) - HIDDEN(gl_dispatch_stub_804) + GL_STUB(gl_dispatch_stub_805, _gloffset_GetTexParameterPointervAPPLE) + HIDDEN(gl_dispatch_stub_805) + GL_STUB(gl_dispatch_stub_806, _gloffset_TextureRangeAPPLE) + HIDDEN(gl_dispatch_stub_806) GL_STUB(glGetObjectParameterivAPPLE, _gloffset_GetObjectParameterivAPPLE) GL_STUB(glObjectPurgeableAPPLE, _gloffset_ObjectPurgeableAPPLE) GL_STUB(glObjectUnpurgeableAPPLE, _gloffset_ObjectUnpurgeableAPPLE) - GL_STUB(gl_dispatch_stub_808, _gloffset_StencilFuncSeparateATI) - HIDDEN(gl_dispatch_stub_808) - GL_STUB(gl_dispatch_stub_809, _gloffset_ProgramEnvParameters4fvEXT) - HIDDEN(gl_dispatch_stub_809) - GL_STUB(gl_dispatch_stub_810, _gloffset_ProgramLocalParameters4fvEXT) + GL_STUB(gl_dispatch_stub_810, _gloffset_StencilFuncSeparateATI) HIDDEN(gl_dispatch_stub_810) - GL_STUB(gl_dispatch_stub_811, _gloffset_GetQueryObjecti64vEXT) + GL_STUB(gl_dispatch_stub_811, _gloffset_ProgramEnvParameters4fvEXT) HIDDEN(gl_dispatch_stub_811) - GL_STUB(gl_dispatch_stub_812, _gloffset_GetQueryObjectui64vEXT) + GL_STUB(gl_dispatch_stub_812, _gloffset_ProgramLocalParameters4fvEXT) HIDDEN(gl_dispatch_stub_812) + GL_STUB(gl_dispatch_stub_813, _gloffset_GetQueryObjecti64vEXT) + HIDDEN(gl_dispatch_stub_813) + GL_STUB(gl_dispatch_stub_814, _gloffset_GetQueryObjectui64vEXT) + HIDDEN(gl_dispatch_stub_814) GL_STUB(glEGLImageTargetRenderbufferStorageOES, _gloffset_EGLImageTargetRenderbufferStorageOES) GL_STUB(glEGLImageTargetTexture2DOES, _gloffset_EGLImageTargetTexture2DOES) GL_STUB_ALIAS(glArrayElementEXT, glArrayElement) @@ -1181,6 +1183,10 @@ gl_dispatch_functions_start: GL_STUB_ALIAS(glMultiTexCoord4s, glMultiTexCoord4sARB) GL_STUB_ALIAS(glMultiTexCoord4sv, glMultiTexCoord4svARB) GL_STUB_ALIAS(glStencilOpSeparateATI, glStencilOpSeparate) + GL_STUB_ALIAS(glDrawArraysInstancedARB, glDrawArraysInstanced) + GL_STUB_ALIAS(glDrawArraysInstancedEXT, glDrawArraysInstanced) + GL_STUB_ALIAS(glDrawElementsInstancedARB, glDrawElementsInstanced) + GL_STUB_ALIAS(glDrawElementsInstancedEXT, glDrawElementsInstanced) GL_STUB_ALIAS(glLoadTransposeMatrixd, glLoadTransposeMatrixdARB) GL_STUB_ALIAS(glLoadTransposeMatrixf, glLoadTransposeMatrixfARB) GL_STUB_ALIAS(glMultTransposeMatrixd, glMultTransposeMatrixdARB) diff --git a/src/mesa/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S index 3124606757..9693016217 100644 --- a/src/mesa/x86-64/glapi_x86-64.S +++ b/src/mesa/x86-64/glapi_x86-64.S @@ -16001,16 +16001,24 @@ GL_PREFIX(UniformMatrix4x3fv): .size GL_PREFIX(UniformMatrix4x3fv), .-GL_PREFIX(UniformMatrix4x3fv) .p2align 4,,15 - .globl GL_PREFIX(LoadTransposeMatrixdARB) - .type GL_PREFIX(LoadTransposeMatrixdARB), @function -GL_PREFIX(LoadTransposeMatrixdARB): + .globl GL_PREFIX(DrawArraysInstanced) + .type GL_PREFIX(DrawArraysInstanced), @function +GL_PREFIX(DrawArraysInstanced): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 3440(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %rbp call _x86_64_get_dispatch@PLT + popq %rbp + popq %rcx + popq %rdx + popq %rsi popq %rdi movq 3440(%rax), %r11 jmp *%r11 @@ -16022,24 +16030,40 @@ GL_PREFIX(LoadTransposeMatrixdARB): jmp *%r11 1: pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %rbp call _glapi_get_dispatch + popq %rbp + popq %rcx + popq %rdx + popq %rsi popq %rdi movq 3440(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(LoadTransposeMatrixdARB), .-GL_PREFIX(LoadTransposeMatrixdARB) + .size GL_PREFIX(DrawArraysInstanced), .-GL_PREFIX(DrawArraysInstanced) .p2align 4,,15 - .globl GL_PREFIX(LoadTransposeMatrixfARB) - .type GL_PREFIX(LoadTransposeMatrixfARB), @function -GL_PREFIX(LoadTransposeMatrixfARB): + .globl GL_PREFIX(DrawElementsInstanced) + .type GL_PREFIX(DrawElementsInstanced), @function +GL_PREFIX(DrawElementsInstanced): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 3448(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 call _x86_64_get_dispatch@PLT + popq %r8 + popq %rcx + popq %rdx + popq %rsi popq %rdi movq 3448(%rax), %r11 jmp *%r11 @@ -16051,17 +16075,25 @@ GL_PREFIX(LoadTransposeMatrixfARB): jmp *%r11 1: pushq %rdi + pushq %rsi + pushq %rdx + pushq %rcx + pushq %r8 call _glapi_get_dispatch + popq %r8 + popq %rcx + popq %rdx + popq %rsi popq %rdi movq 3448(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(LoadTransposeMatrixfARB), .-GL_PREFIX(LoadTransposeMatrixfARB) + .size GL_PREFIX(DrawElementsInstanced), .-GL_PREFIX(DrawElementsInstanced) .p2align 4,,15 - .globl GL_PREFIX(MultTransposeMatrixdARB) - .type GL_PREFIX(MultTransposeMatrixdARB), @function -GL_PREFIX(MultTransposeMatrixdARB): + .globl GL_PREFIX(LoadTransposeMatrixdARB) + .type GL_PREFIX(LoadTransposeMatrixdARB), @function +GL_PREFIX(LoadTransposeMatrixdARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 3456(%rax), %r11 @@ -16085,12 +16117,12 @@ GL_PREFIX(MultTransposeMatrixdARB): movq 3456(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(MultTransposeMatrixdARB), .-GL_PREFIX(MultTransposeMatrixdARB) + .size GL_PREFIX(LoadTransposeMatrixdARB), .-GL_PREFIX(LoadTransposeMatrixdARB) .p2align 4,,15 - .globl GL_PREFIX(MultTransposeMatrixfARB) - .type GL_PREFIX(MultTransposeMatrixfARB), @function -GL_PREFIX(MultTransposeMatrixfARB): + .globl GL_PREFIX(LoadTransposeMatrixfARB) + .type GL_PREFIX(LoadTransposeMatrixfARB), @function +GL_PREFIX(LoadTransposeMatrixfARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT movq 3464(%rax), %r11 @@ -16113,6 +16145,64 @@ GL_PREFIX(MultTransposeMatrixfARB): popq %rdi movq 3464(%rax), %r11 jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(LoadTransposeMatrixfARB), .-GL_PREFIX(LoadTransposeMatrixfARB) + + .p2align 4,,15 + .globl GL_PREFIX(MultTransposeMatrixdARB) + .type GL_PREFIX(MultTransposeMatrixdARB), @function +GL_PREFIX(MultTransposeMatrixdARB): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 3472(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + call _x86_64_get_dispatch@PLT + popq %rdi + movq 3472(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 3472(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + call _glapi_get_dispatch + popq %rdi + movq 3472(%rax), %r11 + jmp *%r11 +#endif /* defined(GLX_USE_TLS) */ + .size GL_PREFIX(MultTransposeMatrixdARB), .-GL_PREFIX(MultTransposeMatrixdARB) + + .p2align 4,,15 + .globl GL_PREFIX(MultTransposeMatrixfARB) + .type GL_PREFIX(MultTransposeMatrixfARB), @function +GL_PREFIX(MultTransposeMatrixfARB): +#if defined(GLX_USE_TLS) + call _x86_64_get_dispatch@PLT + movq 3480(%rax), %r11 + jmp *%r11 +#elif defined(PTHREADS) + pushq %rdi + call _x86_64_get_dispatch@PLT + popq %rdi + movq 3480(%rax), %r11 + jmp *%r11 +#else + movq _glapi_Dispatch(%rip), %rax + testq %rax, %rax + je 1f + movq 3480(%rax), %r11 + jmp *%r11 +1: + pushq %rdi + call _glapi_get_dispatch + popq %rdi + movq 3480(%rax), %r11 + jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MultTransposeMatrixfARB), .-GL_PREFIX(MultTransposeMatrixfARB) @@ -16122,7 +16212,7 @@ GL_PREFIX(MultTransposeMatrixfARB): GL_PREFIX(SampleCoverageARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3472(%rax), %r11 + movq 3488(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16132,13 +16222,13 @@ GL_PREFIX(SampleCoverageARB): popq %rbp popq %rsi popq %rdi - movq 3472(%rax), %r11 + movq 3488(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3472(%rax), %r11 + movq 3488(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16148,7 +16238,7 @@ GL_PREFIX(SampleCoverageARB): popq %rbp popq %rsi popq %rdi - movq 3472(%rax), %r11 + movq 3488(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SampleCoverageARB), .-GL_PREFIX(SampleCoverageARB) @@ -16159,7 +16249,7 @@ GL_PREFIX(SampleCoverageARB): GL_PREFIX(CompressedTexImage1DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3480(%rax), %r11 + movq 3496(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16177,13 +16267,13 @@ GL_PREFIX(CompressedTexImage1DARB): popq %rdx popq %rsi popq %rdi - movq 3480(%rax), %r11 + movq 3496(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3480(%rax), %r11 + movq 3496(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16201,7 +16291,7 @@ GL_PREFIX(CompressedTexImage1DARB): popq %rdx popq %rsi popq %rdi - movq 3480(%rax), %r11 + movq 3496(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexImage1DARB), .-GL_PREFIX(CompressedTexImage1DARB) @@ -16212,7 +16302,7 @@ GL_PREFIX(CompressedTexImage1DARB): GL_PREFIX(CompressedTexImage2DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3488(%rax), %r11 + movq 3504(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16230,13 +16320,13 @@ GL_PREFIX(CompressedTexImage2DARB): popq %rdx popq %rsi popq %rdi - movq 3488(%rax), %r11 + movq 3504(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3488(%rax), %r11 + movq 3504(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16254,7 +16344,7 @@ GL_PREFIX(CompressedTexImage2DARB): popq %rdx popq %rsi popq %rdi - movq 3488(%rax), %r11 + movq 3504(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexImage2DARB), .-GL_PREFIX(CompressedTexImage2DARB) @@ -16265,7 +16355,7 @@ GL_PREFIX(CompressedTexImage2DARB): GL_PREFIX(CompressedTexImage3DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3496(%rax), %r11 + movq 3512(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16283,13 +16373,13 @@ GL_PREFIX(CompressedTexImage3DARB): popq %rdx popq %rsi popq %rdi - movq 3496(%rax), %r11 + movq 3512(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3496(%rax), %r11 + movq 3512(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16307,7 +16397,7 @@ GL_PREFIX(CompressedTexImage3DARB): popq %rdx popq %rsi popq %rdi - movq 3496(%rax), %r11 + movq 3512(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexImage3DARB), .-GL_PREFIX(CompressedTexImage3DARB) @@ -16318,7 +16408,7 @@ GL_PREFIX(CompressedTexImage3DARB): GL_PREFIX(CompressedTexSubImage1DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3504(%rax), %r11 + movq 3520(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16336,13 +16426,13 @@ GL_PREFIX(CompressedTexSubImage1DARB): popq %rdx popq %rsi popq %rdi - movq 3504(%rax), %r11 + movq 3520(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3504(%rax), %r11 + movq 3520(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16360,7 +16450,7 @@ GL_PREFIX(CompressedTexSubImage1DARB): popq %rdx popq %rsi popq %rdi - movq 3504(%rax), %r11 + movq 3520(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexSubImage1DARB), .-GL_PREFIX(CompressedTexSubImage1DARB) @@ -16371,7 +16461,7 @@ GL_PREFIX(CompressedTexSubImage1DARB): GL_PREFIX(CompressedTexSubImage2DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3512(%rax), %r11 + movq 3528(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16389,13 +16479,13 @@ GL_PREFIX(CompressedTexSubImage2DARB): popq %rdx popq %rsi popq %rdi - movq 3512(%rax), %r11 + movq 3528(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3512(%rax), %r11 + movq 3528(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16413,7 +16503,7 @@ GL_PREFIX(CompressedTexSubImage2DARB): popq %rdx popq %rsi popq %rdi - movq 3512(%rax), %r11 + movq 3528(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexSubImage2DARB), .-GL_PREFIX(CompressedTexSubImage2DARB) @@ -16424,7 +16514,7 @@ GL_PREFIX(CompressedTexSubImage2DARB): GL_PREFIX(CompressedTexSubImage3DARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3520(%rax), %r11 + movq 3536(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16442,13 +16532,13 @@ GL_PREFIX(CompressedTexSubImage3DARB): popq %rdx popq %rsi popq %rdi - movq 3520(%rax), %r11 + movq 3536(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3520(%rax), %r11 + movq 3536(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16466,7 +16556,7 @@ GL_PREFIX(CompressedTexSubImage3DARB): popq %rdx popq %rsi popq %rdi - movq 3520(%rax), %r11 + movq 3536(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompressedTexSubImage3DARB), .-GL_PREFIX(CompressedTexSubImage3DARB) @@ -16477,7 +16567,7 @@ GL_PREFIX(CompressedTexSubImage3DARB): GL_PREFIX(GetCompressedTexImageARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3528(%rax), %r11 + movq 3544(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16487,13 +16577,13 @@ GL_PREFIX(GetCompressedTexImageARB): popq %rdx popq %rsi popq %rdi - movq 3528(%rax), %r11 + movq 3544(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3528(%rax), %r11 + movq 3544(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16503,7 +16593,7 @@ GL_PREFIX(GetCompressedTexImageARB): popq %rdx popq %rsi popq %rdi - movq 3528(%rax), %r11 + movq 3544(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetCompressedTexImageARB), .-GL_PREFIX(GetCompressedTexImageARB) @@ -16514,25 +16604,25 @@ GL_PREFIX(GetCompressedTexImageARB): GL_PREFIX(DisableVertexAttribArrayARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3536(%rax), %r11 + movq 3552(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 3536(%rax), %r11 + movq 3552(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3536(%rax), %r11 + movq 3552(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 3536(%rax), %r11 + movq 3552(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DisableVertexAttribArrayARB), .-GL_PREFIX(DisableVertexAttribArrayARB) @@ -16543,25 +16633,25 @@ GL_PREFIX(DisableVertexAttribArrayARB): GL_PREFIX(EnableVertexAttribArrayARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3544(%rax), %r11 + movq 3560(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 3544(%rax), %r11 + movq 3560(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3544(%rax), %r11 + movq 3560(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 3544(%rax), %r11 + movq 3560(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EnableVertexAttribArrayARB), .-GL_PREFIX(EnableVertexAttribArrayARB) @@ -16572,7 +16662,7 @@ GL_PREFIX(EnableVertexAttribArrayARB): GL_PREFIX(GetProgramEnvParameterdvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3552(%rax), %r11 + movq 3568(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16582,13 +16672,13 @@ GL_PREFIX(GetProgramEnvParameterdvARB): popq %rdx popq %rsi popq %rdi - movq 3552(%rax), %r11 + movq 3568(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3552(%rax), %r11 + movq 3568(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16598,7 +16688,7 @@ GL_PREFIX(GetProgramEnvParameterdvARB): popq %rdx popq %rsi popq %rdi - movq 3552(%rax), %r11 + movq 3568(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramEnvParameterdvARB), .-GL_PREFIX(GetProgramEnvParameterdvARB) @@ -16609,7 +16699,7 @@ GL_PREFIX(GetProgramEnvParameterdvARB): GL_PREFIX(GetProgramEnvParameterfvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3560(%rax), %r11 + movq 3576(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16619,13 +16709,13 @@ GL_PREFIX(GetProgramEnvParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 3560(%rax), %r11 + movq 3576(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3560(%rax), %r11 + movq 3576(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16635,7 +16725,7 @@ GL_PREFIX(GetProgramEnvParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 3560(%rax), %r11 + movq 3576(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramEnvParameterfvARB), .-GL_PREFIX(GetProgramEnvParameterfvARB) @@ -16646,7 +16736,7 @@ GL_PREFIX(GetProgramEnvParameterfvARB): GL_PREFIX(GetProgramLocalParameterdvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3568(%rax), %r11 + movq 3584(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16656,13 +16746,13 @@ GL_PREFIX(GetProgramLocalParameterdvARB): popq %rdx popq %rsi popq %rdi - movq 3568(%rax), %r11 + movq 3584(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3568(%rax), %r11 + movq 3584(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16672,7 +16762,7 @@ GL_PREFIX(GetProgramLocalParameterdvARB): popq %rdx popq %rsi popq %rdi - movq 3568(%rax), %r11 + movq 3584(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramLocalParameterdvARB), .-GL_PREFIX(GetProgramLocalParameterdvARB) @@ -16683,7 +16773,7 @@ GL_PREFIX(GetProgramLocalParameterdvARB): GL_PREFIX(GetProgramLocalParameterfvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3576(%rax), %r11 + movq 3592(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16693,13 +16783,13 @@ GL_PREFIX(GetProgramLocalParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 3576(%rax), %r11 + movq 3592(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3576(%rax), %r11 + movq 3592(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16709,7 +16799,7 @@ GL_PREFIX(GetProgramLocalParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 3576(%rax), %r11 + movq 3592(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramLocalParameterfvARB), .-GL_PREFIX(GetProgramLocalParameterfvARB) @@ -16720,7 +16810,7 @@ GL_PREFIX(GetProgramLocalParameterfvARB): GL_PREFIX(GetProgramStringARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3584(%rax), %r11 + movq 3600(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16730,13 +16820,13 @@ GL_PREFIX(GetProgramStringARB): popq %rdx popq %rsi popq %rdi - movq 3584(%rax), %r11 + movq 3600(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3584(%rax), %r11 + movq 3600(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16746,7 +16836,7 @@ GL_PREFIX(GetProgramStringARB): popq %rdx popq %rsi popq %rdi - movq 3584(%rax), %r11 + movq 3600(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramStringARB), .-GL_PREFIX(GetProgramStringARB) @@ -16757,7 +16847,7 @@ GL_PREFIX(GetProgramStringARB): GL_PREFIX(GetProgramivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3592(%rax), %r11 + movq 3608(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16767,13 +16857,13 @@ GL_PREFIX(GetProgramivARB): popq %rdx popq %rsi popq %rdi - movq 3592(%rax), %r11 + movq 3608(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3592(%rax), %r11 + movq 3608(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16783,7 +16873,7 @@ GL_PREFIX(GetProgramivARB): popq %rdx popq %rsi popq %rdi - movq 3592(%rax), %r11 + movq 3608(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramivARB), .-GL_PREFIX(GetProgramivARB) @@ -16794,7 +16884,7 @@ GL_PREFIX(GetProgramivARB): GL_PREFIX(GetVertexAttribdvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3600(%rax), %r11 + movq 3616(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16804,13 +16894,13 @@ GL_PREFIX(GetVertexAttribdvARB): popq %rdx popq %rsi popq %rdi - movq 3600(%rax), %r11 + movq 3616(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3600(%rax), %r11 + movq 3616(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16820,7 +16910,7 @@ GL_PREFIX(GetVertexAttribdvARB): popq %rdx popq %rsi popq %rdi - movq 3600(%rax), %r11 + movq 3616(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribdvARB), .-GL_PREFIX(GetVertexAttribdvARB) @@ -16831,7 +16921,7 @@ GL_PREFIX(GetVertexAttribdvARB): GL_PREFIX(GetVertexAttribfvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3608(%rax), %r11 + movq 3624(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16841,13 +16931,13 @@ GL_PREFIX(GetVertexAttribfvARB): popq %rdx popq %rsi popq %rdi - movq 3608(%rax), %r11 + movq 3624(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3608(%rax), %r11 + movq 3624(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16857,7 +16947,7 @@ GL_PREFIX(GetVertexAttribfvARB): popq %rdx popq %rsi popq %rdi - movq 3608(%rax), %r11 + movq 3624(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribfvARB), .-GL_PREFIX(GetVertexAttribfvARB) @@ -16868,7 +16958,7 @@ GL_PREFIX(GetVertexAttribfvARB): GL_PREFIX(GetVertexAttribivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3616(%rax), %r11 + movq 3632(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16878,13 +16968,13 @@ GL_PREFIX(GetVertexAttribivARB): popq %rdx popq %rsi popq %rdi - movq 3616(%rax), %r11 + movq 3632(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3616(%rax), %r11 + movq 3632(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16894,7 +16984,7 @@ GL_PREFIX(GetVertexAttribivARB): popq %rdx popq %rsi popq %rdi - movq 3616(%rax), %r11 + movq 3632(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribivARB), .-GL_PREFIX(GetVertexAttribivARB) @@ -16905,7 +16995,7 @@ GL_PREFIX(GetVertexAttribivARB): GL_PREFIX(ProgramEnvParameter4dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3624(%rax), %r11 + movq 3640(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -16923,13 +17013,13 @@ GL_PREFIX(ProgramEnvParameter4dARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3624(%rax), %r11 + movq 3640(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3624(%rax), %r11 + movq 3640(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -16947,7 +17037,7 @@ GL_PREFIX(ProgramEnvParameter4dARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3624(%rax), %r11 + movq 3640(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramEnvParameter4dARB), .-GL_PREFIX(ProgramEnvParameter4dARB) @@ -16958,7 +17048,7 @@ GL_PREFIX(ProgramEnvParameter4dARB): GL_PREFIX(ProgramEnvParameter4dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3632(%rax), %r11 + movq 3648(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -16968,13 +17058,13 @@ GL_PREFIX(ProgramEnvParameter4dvARB): popq %rdx popq %rsi popq %rdi - movq 3632(%rax), %r11 + movq 3648(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3632(%rax), %r11 + movq 3648(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -16984,7 +17074,7 @@ GL_PREFIX(ProgramEnvParameter4dvARB): popq %rdx popq %rsi popq %rdi - movq 3632(%rax), %r11 + movq 3648(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramEnvParameter4dvARB), .-GL_PREFIX(ProgramEnvParameter4dvARB) @@ -16995,7 +17085,7 @@ GL_PREFIX(ProgramEnvParameter4dvARB): GL_PREFIX(ProgramEnvParameter4fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3640(%rax), %r11 + movq 3656(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -17013,13 +17103,13 @@ GL_PREFIX(ProgramEnvParameter4fARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3640(%rax), %r11 + movq 3656(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3640(%rax), %r11 + movq 3656(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -17037,7 +17127,7 @@ GL_PREFIX(ProgramEnvParameter4fARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3640(%rax), %r11 + movq 3656(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramEnvParameter4fARB), .-GL_PREFIX(ProgramEnvParameter4fARB) @@ -17048,7 +17138,7 @@ GL_PREFIX(ProgramEnvParameter4fARB): GL_PREFIX(ProgramEnvParameter4fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3648(%rax), %r11 + movq 3664(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17058,13 +17148,13 @@ GL_PREFIX(ProgramEnvParameter4fvARB): popq %rdx popq %rsi popq %rdi - movq 3648(%rax), %r11 + movq 3664(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3648(%rax), %r11 + movq 3664(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17074,7 +17164,7 @@ GL_PREFIX(ProgramEnvParameter4fvARB): popq %rdx popq %rsi popq %rdi - movq 3648(%rax), %r11 + movq 3664(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramEnvParameter4fvARB), .-GL_PREFIX(ProgramEnvParameter4fvARB) @@ -17085,7 +17175,7 @@ GL_PREFIX(ProgramEnvParameter4fvARB): GL_PREFIX(ProgramLocalParameter4dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3656(%rax), %r11 + movq 3672(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -17103,13 +17193,13 @@ GL_PREFIX(ProgramLocalParameter4dARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3656(%rax), %r11 + movq 3672(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3656(%rax), %r11 + movq 3672(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -17127,7 +17217,7 @@ GL_PREFIX(ProgramLocalParameter4dARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3656(%rax), %r11 + movq 3672(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramLocalParameter4dARB), .-GL_PREFIX(ProgramLocalParameter4dARB) @@ -17138,7 +17228,7 @@ GL_PREFIX(ProgramLocalParameter4dARB): GL_PREFIX(ProgramLocalParameter4dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3664(%rax), %r11 + movq 3680(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17148,13 +17238,13 @@ GL_PREFIX(ProgramLocalParameter4dvARB): popq %rdx popq %rsi popq %rdi - movq 3664(%rax), %r11 + movq 3680(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3664(%rax), %r11 + movq 3680(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17164,7 +17254,7 @@ GL_PREFIX(ProgramLocalParameter4dvARB): popq %rdx popq %rsi popq %rdi - movq 3664(%rax), %r11 + movq 3680(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramLocalParameter4dvARB), .-GL_PREFIX(ProgramLocalParameter4dvARB) @@ -17175,7 +17265,7 @@ GL_PREFIX(ProgramLocalParameter4dvARB): GL_PREFIX(ProgramLocalParameter4fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3672(%rax), %r11 + movq 3688(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -17193,13 +17283,13 @@ GL_PREFIX(ProgramLocalParameter4fARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3672(%rax), %r11 + movq 3688(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3672(%rax), %r11 + movq 3688(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -17217,7 +17307,7 @@ GL_PREFIX(ProgramLocalParameter4fARB): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 3672(%rax), %r11 + movq 3688(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramLocalParameter4fARB), .-GL_PREFIX(ProgramLocalParameter4fARB) @@ -17228,7 +17318,7 @@ GL_PREFIX(ProgramLocalParameter4fARB): GL_PREFIX(ProgramLocalParameter4fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3680(%rax), %r11 + movq 3696(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17238,13 +17328,13 @@ GL_PREFIX(ProgramLocalParameter4fvARB): popq %rdx popq %rsi popq %rdi - movq 3680(%rax), %r11 + movq 3696(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3680(%rax), %r11 + movq 3696(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17254,7 +17344,7 @@ GL_PREFIX(ProgramLocalParameter4fvARB): popq %rdx popq %rsi popq %rdi - movq 3680(%rax), %r11 + movq 3696(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramLocalParameter4fvARB), .-GL_PREFIX(ProgramLocalParameter4fvARB) @@ -17265,7 +17355,7 @@ GL_PREFIX(ProgramLocalParameter4fvARB): GL_PREFIX(ProgramStringARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3688(%rax), %r11 + movq 3704(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17279,13 +17369,13 @@ GL_PREFIX(ProgramStringARB): popq %rdx popq %rsi popq %rdi - movq 3688(%rax), %r11 + movq 3704(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3688(%rax), %r11 + movq 3704(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17299,7 +17389,7 @@ GL_PREFIX(ProgramStringARB): popq %rdx popq %rsi popq %rdi - movq 3688(%rax), %r11 + movq 3704(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramStringARB), .-GL_PREFIX(ProgramStringARB) @@ -17310,7 +17400,7 @@ GL_PREFIX(ProgramStringARB): GL_PREFIX(VertexAttrib1dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3696(%rax), %r11 + movq 3712(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -17320,13 +17410,13 @@ GL_PREFIX(VertexAttrib1dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3696(%rax), %r11 + movq 3712(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3696(%rax), %r11 + movq 3712(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -17336,7 +17426,7 @@ GL_PREFIX(VertexAttrib1dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3696(%rax), %r11 + movq 3712(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1dARB), .-GL_PREFIX(VertexAttrib1dARB) @@ -17347,7 +17437,7 @@ GL_PREFIX(VertexAttrib1dARB): GL_PREFIX(VertexAttrib1dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3704(%rax), %r11 + movq 3720(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17357,13 +17447,13 @@ GL_PREFIX(VertexAttrib1dvARB): popq %rbp popq %rsi popq %rdi - movq 3704(%rax), %r11 + movq 3720(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3704(%rax), %r11 + movq 3720(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17373,7 +17463,7 @@ GL_PREFIX(VertexAttrib1dvARB): popq %rbp popq %rsi popq %rdi - movq 3704(%rax), %r11 + movq 3720(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1dvARB), .-GL_PREFIX(VertexAttrib1dvARB) @@ -17384,7 +17474,7 @@ GL_PREFIX(VertexAttrib1dvARB): GL_PREFIX(VertexAttrib1fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3712(%rax), %r11 + movq 3728(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -17394,13 +17484,13 @@ GL_PREFIX(VertexAttrib1fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3712(%rax), %r11 + movq 3728(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3712(%rax), %r11 + movq 3728(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -17410,7 +17500,7 @@ GL_PREFIX(VertexAttrib1fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3712(%rax), %r11 + movq 3728(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1fARB), .-GL_PREFIX(VertexAttrib1fARB) @@ -17421,7 +17511,7 @@ GL_PREFIX(VertexAttrib1fARB): GL_PREFIX(VertexAttrib1fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3720(%rax), %r11 + movq 3736(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17431,13 +17521,13 @@ GL_PREFIX(VertexAttrib1fvARB): popq %rbp popq %rsi popq %rdi - movq 3720(%rax), %r11 + movq 3736(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3720(%rax), %r11 + movq 3736(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17447,7 +17537,7 @@ GL_PREFIX(VertexAttrib1fvARB): popq %rbp popq %rsi popq %rdi - movq 3720(%rax), %r11 + movq 3736(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1fvARB), .-GL_PREFIX(VertexAttrib1fvARB) @@ -17458,7 +17548,7 @@ GL_PREFIX(VertexAttrib1fvARB): GL_PREFIX(VertexAttrib1sARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3728(%rax), %r11 + movq 3744(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17468,13 +17558,13 @@ GL_PREFIX(VertexAttrib1sARB): popq %rbp popq %rsi popq %rdi - movq 3728(%rax), %r11 + movq 3744(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3728(%rax), %r11 + movq 3744(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17484,7 +17574,7 @@ GL_PREFIX(VertexAttrib1sARB): popq %rbp popq %rsi popq %rdi - movq 3728(%rax), %r11 + movq 3744(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1sARB), .-GL_PREFIX(VertexAttrib1sARB) @@ -17495,7 +17585,7 @@ GL_PREFIX(VertexAttrib1sARB): GL_PREFIX(VertexAttrib1svARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3736(%rax), %r11 + movq 3752(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17505,13 +17595,13 @@ GL_PREFIX(VertexAttrib1svARB): popq %rbp popq %rsi popq %rdi - movq 3736(%rax), %r11 + movq 3752(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3736(%rax), %r11 + movq 3752(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17521,7 +17611,7 @@ GL_PREFIX(VertexAttrib1svARB): popq %rbp popq %rsi popq %rdi - movq 3736(%rax), %r11 + movq 3752(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1svARB), .-GL_PREFIX(VertexAttrib1svARB) @@ -17532,7 +17622,7 @@ GL_PREFIX(VertexAttrib1svARB): GL_PREFIX(VertexAttrib2dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3744(%rax), %r11 + movq 3760(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -17544,13 +17634,13 @@ GL_PREFIX(VertexAttrib2dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3744(%rax), %r11 + movq 3760(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3744(%rax), %r11 + movq 3760(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -17562,7 +17652,7 @@ GL_PREFIX(VertexAttrib2dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3744(%rax), %r11 + movq 3760(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2dARB), .-GL_PREFIX(VertexAttrib2dARB) @@ -17573,7 +17663,7 @@ GL_PREFIX(VertexAttrib2dARB): GL_PREFIX(VertexAttrib2dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3752(%rax), %r11 + movq 3768(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17583,13 +17673,13 @@ GL_PREFIX(VertexAttrib2dvARB): popq %rbp popq %rsi popq %rdi - movq 3752(%rax), %r11 + movq 3768(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3752(%rax), %r11 + movq 3768(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17599,7 +17689,7 @@ GL_PREFIX(VertexAttrib2dvARB): popq %rbp popq %rsi popq %rdi - movq 3752(%rax), %r11 + movq 3768(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2dvARB), .-GL_PREFIX(VertexAttrib2dvARB) @@ -17610,7 +17700,7 @@ GL_PREFIX(VertexAttrib2dvARB): GL_PREFIX(VertexAttrib2fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3760(%rax), %r11 + movq 3776(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -17622,13 +17712,13 @@ GL_PREFIX(VertexAttrib2fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3760(%rax), %r11 + movq 3776(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3760(%rax), %r11 + movq 3776(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -17640,7 +17730,7 @@ GL_PREFIX(VertexAttrib2fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 3760(%rax), %r11 + movq 3776(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2fARB), .-GL_PREFIX(VertexAttrib2fARB) @@ -17651,7 +17741,7 @@ GL_PREFIX(VertexAttrib2fARB): GL_PREFIX(VertexAttrib2fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3768(%rax), %r11 + movq 3784(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17661,13 +17751,13 @@ GL_PREFIX(VertexAttrib2fvARB): popq %rbp popq %rsi popq %rdi - movq 3768(%rax), %r11 + movq 3784(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3768(%rax), %r11 + movq 3784(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17677,7 +17767,7 @@ GL_PREFIX(VertexAttrib2fvARB): popq %rbp popq %rsi popq %rdi - movq 3768(%rax), %r11 + movq 3784(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2fvARB), .-GL_PREFIX(VertexAttrib2fvARB) @@ -17688,7 +17778,7 @@ GL_PREFIX(VertexAttrib2fvARB): GL_PREFIX(VertexAttrib2sARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3776(%rax), %r11 + movq 3792(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17698,13 +17788,13 @@ GL_PREFIX(VertexAttrib2sARB): popq %rdx popq %rsi popq %rdi - movq 3776(%rax), %r11 + movq 3792(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3776(%rax), %r11 + movq 3792(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17714,7 +17804,7 @@ GL_PREFIX(VertexAttrib2sARB): popq %rdx popq %rsi popq %rdi - movq 3776(%rax), %r11 + movq 3792(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2sARB), .-GL_PREFIX(VertexAttrib2sARB) @@ -17725,7 +17815,7 @@ GL_PREFIX(VertexAttrib2sARB): GL_PREFIX(VertexAttrib2svARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3784(%rax), %r11 + movq 3800(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17735,13 +17825,13 @@ GL_PREFIX(VertexAttrib2svARB): popq %rbp popq %rsi popq %rdi - movq 3784(%rax), %r11 + movq 3800(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3784(%rax), %r11 + movq 3800(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17751,7 +17841,7 @@ GL_PREFIX(VertexAttrib2svARB): popq %rbp popq %rsi popq %rdi - movq 3784(%rax), %r11 + movq 3800(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2svARB), .-GL_PREFIX(VertexAttrib2svARB) @@ -17762,7 +17852,7 @@ GL_PREFIX(VertexAttrib2svARB): GL_PREFIX(VertexAttrib3dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3792(%rax), %r11 + movq 3808(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -17776,13 +17866,13 @@ GL_PREFIX(VertexAttrib3dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3792(%rax), %r11 + movq 3808(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3792(%rax), %r11 + movq 3808(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -17796,7 +17886,7 @@ GL_PREFIX(VertexAttrib3dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3792(%rax), %r11 + movq 3808(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3dARB), .-GL_PREFIX(VertexAttrib3dARB) @@ -17807,7 +17897,7 @@ GL_PREFIX(VertexAttrib3dARB): GL_PREFIX(VertexAttrib3dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3800(%rax), %r11 + movq 3816(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17817,13 +17907,13 @@ GL_PREFIX(VertexAttrib3dvARB): popq %rbp popq %rsi popq %rdi - movq 3800(%rax), %r11 + movq 3816(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3800(%rax), %r11 + movq 3816(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17833,7 +17923,7 @@ GL_PREFIX(VertexAttrib3dvARB): popq %rbp popq %rsi popq %rdi - movq 3800(%rax), %r11 + movq 3816(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3dvARB), .-GL_PREFIX(VertexAttrib3dvARB) @@ -17844,7 +17934,7 @@ GL_PREFIX(VertexAttrib3dvARB): GL_PREFIX(VertexAttrib3fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3808(%rax), %r11 + movq 3824(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -17858,13 +17948,13 @@ GL_PREFIX(VertexAttrib3fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3808(%rax), %r11 + movq 3824(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3808(%rax), %r11 + movq 3824(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -17878,7 +17968,7 @@ GL_PREFIX(VertexAttrib3fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3808(%rax), %r11 + movq 3824(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3fARB), .-GL_PREFIX(VertexAttrib3fARB) @@ -17889,7 +17979,7 @@ GL_PREFIX(VertexAttrib3fARB): GL_PREFIX(VertexAttrib3fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3816(%rax), %r11 + movq 3832(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17899,13 +17989,13 @@ GL_PREFIX(VertexAttrib3fvARB): popq %rbp popq %rsi popq %rdi - movq 3816(%rax), %r11 + movq 3832(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3816(%rax), %r11 + movq 3832(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17915,7 +18005,7 @@ GL_PREFIX(VertexAttrib3fvARB): popq %rbp popq %rsi popq %rdi - movq 3816(%rax), %r11 + movq 3832(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3fvARB), .-GL_PREFIX(VertexAttrib3fvARB) @@ -17926,7 +18016,7 @@ GL_PREFIX(VertexAttrib3fvARB): GL_PREFIX(VertexAttrib3sARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3824(%rax), %r11 + movq 3840(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17940,13 +18030,13 @@ GL_PREFIX(VertexAttrib3sARB): popq %rdx popq %rsi popq %rdi - movq 3824(%rax), %r11 + movq 3840(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3824(%rax), %r11 + movq 3840(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17960,7 +18050,7 @@ GL_PREFIX(VertexAttrib3sARB): popq %rdx popq %rsi popq %rdi - movq 3824(%rax), %r11 + movq 3840(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3sARB), .-GL_PREFIX(VertexAttrib3sARB) @@ -17971,7 +18061,7 @@ GL_PREFIX(VertexAttrib3sARB): GL_PREFIX(VertexAttrib3svARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3832(%rax), %r11 + movq 3848(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -17981,13 +18071,13 @@ GL_PREFIX(VertexAttrib3svARB): popq %rbp popq %rsi popq %rdi - movq 3832(%rax), %r11 + movq 3848(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3832(%rax), %r11 + movq 3848(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -17997,7 +18087,7 @@ GL_PREFIX(VertexAttrib3svARB): popq %rbp popq %rsi popq %rdi - movq 3832(%rax), %r11 + movq 3848(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3svARB), .-GL_PREFIX(VertexAttrib3svARB) @@ -18008,7 +18098,7 @@ GL_PREFIX(VertexAttrib3svARB): GL_PREFIX(VertexAttrib4NbvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3840(%rax), %r11 + movq 3856(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18018,13 +18108,13 @@ GL_PREFIX(VertexAttrib4NbvARB): popq %rbp popq %rsi popq %rdi - movq 3840(%rax), %r11 + movq 3856(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3840(%rax), %r11 + movq 3856(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18034,7 +18124,7 @@ GL_PREFIX(VertexAttrib4NbvARB): popq %rbp popq %rsi popq %rdi - movq 3840(%rax), %r11 + movq 3856(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NbvARB), .-GL_PREFIX(VertexAttrib4NbvARB) @@ -18045,7 +18135,7 @@ GL_PREFIX(VertexAttrib4NbvARB): GL_PREFIX(VertexAttrib4NivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3848(%rax), %r11 + movq 3864(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18055,13 +18145,13 @@ GL_PREFIX(VertexAttrib4NivARB): popq %rbp popq %rsi popq %rdi - movq 3848(%rax), %r11 + movq 3864(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3848(%rax), %r11 + movq 3864(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18071,7 +18161,7 @@ GL_PREFIX(VertexAttrib4NivARB): popq %rbp popq %rsi popq %rdi - movq 3848(%rax), %r11 + movq 3864(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NivARB), .-GL_PREFIX(VertexAttrib4NivARB) @@ -18082,7 +18172,7 @@ GL_PREFIX(VertexAttrib4NivARB): GL_PREFIX(VertexAttrib4NsvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3856(%rax), %r11 + movq 3872(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18092,13 +18182,13 @@ GL_PREFIX(VertexAttrib4NsvARB): popq %rbp popq %rsi popq %rdi - movq 3856(%rax), %r11 + movq 3872(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3856(%rax), %r11 + movq 3872(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18108,7 +18198,7 @@ GL_PREFIX(VertexAttrib4NsvARB): popq %rbp popq %rsi popq %rdi - movq 3856(%rax), %r11 + movq 3872(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NsvARB), .-GL_PREFIX(VertexAttrib4NsvARB) @@ -18119,7 +18209,7 @@ GL_PREFIX(VertexAttrib4NsvARB): GL_PREFIX(VertexAttrib4NubARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3864(%rax), %r11 + movq 3880(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18133,13 +18223,13 @@ GL_PREFIX(VertexAttrib4NubARB): popq %rdx popq %rsi popq %rdi - movq 3864(%rax), %r11 + movq 3880(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3864(%rax), %r11 + movq 3880(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18153,7 +18243,7 @@ GL_PREFIX(VertexAttrib4NubARB): popq %rdx popq %rsi popq %rdi - movq 3864(%rax), %r11 + movq 3880(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NubARB), .-GL_PREFIX(VertexAttrib4NubARB) @@ -18164,7 +18254,7 @@ GL_PREFIX(VertexAttrib4NubARB): GL_PREFIX(VertexAttrib4NubvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3872(%rax), %r11 + movq 3888(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18174,13 +18264,13 @@ GL_PREFIX(VertexAttrib4NubvARB): popq %rbp popq %rsi popq %rdi - movq 3872(%rax), %r11 + movq 3888(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3872(%rax), %r11 + movq 3888(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18190,7 +18280,7 @@ GL_PREFIX(VertexAttrib4NubvARB): popq %rbp popq %rsi popq %rdi - movq 3872(%rax), %r11 + movq 3888(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NubvARB), .-GL_PREFIX(VertexAttrib4NubvARB) @@ -18201,7 +18291,7 @@ GL_PREFIX(VertexAttrib4NubvARB): GL_PREFIX(VertexAttrib4NuivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3880(%rax), %r11 + movq 3896(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18211,13 +18301,13 @@ GL_PREFIX(VertexAttrib4NuivARB): popq %rbp popq %rsi popq %rdi - movq 3880(%rax), %r11 + movq 3896(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3880(%rax), %r11 + movq 3896(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18227,7 +18317,7 @@ GL_PREFIX(VertexAttrib4NuivARB): popq %rbp popq %rsi popq %rdi - movq 3880(%rax), %r11 + movq 3896(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NuivARB), .-GL_PREFIX(VertexAttrib4NuivARB) @@ -18238,7 +18328,7 @@ GL_PREFIX(VertexAttrib4NuivARB): GL_PREFIX(VertexAttrib4NusvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3888(%rax), %r11 + movq 3904(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18248,13 +18338,13 @@ GL_PREFIX(VertexAttrib4NusvARB): popq %rbp popq %rsi popq %rdi - movq 3888(%rax), %r11 + movq 3904(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3888(%rax), %r11 + movq 3904(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18264,7 +18354,7 @@ GL_PREFIX(VertexAttrib4NusvARB): popq %rbp popq %rsi popq %rdi - movq 3888(%rax), %r11 + movq 3904(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4NusvARB), .-GL_PREFIX(VertexAttrib4NusvARB) @@ -18275,7 +18365,7 @@ GL_PREFIX(VertexAttrib4NusvARB): GL_PREFIX(VertexAttrib4bvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3896(%rax), %r11 + movq 3912(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18285,13 +18375,13 @@ GL_PREFIX(VertexAttrib4bvARB): popq %rbp popq %rsi popq %rdi - movq 3896(%rax), %r11 + movq 3912(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3896(%rax), %r11 + movq 3912(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18301,7 +18391,7 @@ GL_PREFIX(VertexAttrib4bvARB): popq %rbp popq %rsi popq %rdi - movq 3896(%rax), %r11 + movq 3912(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4bvARB), .-GL_PREFIX(VertexAttrib4bvARB) @@ -18312,7 +18402,7 @@ GL_PREFIX(VertexAttrib4bvARB): GL_PREFIX(VertexAttrib4dARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3904(%rax), %r11 + movq 3920(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -18328,13 +18418,13 @@ GL_PREFIX(VertexAttrib4dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3904(%rax), %r11 + movq 3920(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3904(%rax), %r11 + movq 3920(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -18350,7 +18440,7 @@ GL_PREFIX(VertexAttrib4dARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3904(%rax), %r11 + movq 3920(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4dARB), .-GL_PREFIX(VertexAttrib4dARB) @@ -18361,7 +18451,7 @@ GL_PREFIX(VertexAttrib4dARB): GL_PREFIX(VertexAttrib4dvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3912(%rax), %r11 + movq 3928(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18371,13 +18461,13 @@ GL_PREFIX(VertexAttrib4dvARB): popq %rbp popq %rsi popq %rdi - movq 3912(%rax), %r11 + movq 3928(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3912(%rax), %r11 + movq 3928(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18387,7 +18477,7 @@ GL_PREFIX(VertexAttrib4dvARB): popq %rbp popq %rsi popq %rdi - movq 3912(%rax), %r11 + movq 3928(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4dvARB), .-GL_PREFIX(VertexAttrib4dvARB) @@ -18398,7 +18488,7 @@ GL_PREFIX(VertexAttrib4dvARB): GL_PREFIX(VertexAttrib4fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3920(%rax), %r11 + movq 3936(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -18414,13 +18504,13 @@ GL_PREFIX(VertexAttrib4fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3920(%rax), %r11 + movq 3936(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3920(%rax), %r11 + movq 3936(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -18436,7 +18526,7 @@ GL_PREFIX(VertexAttrib4fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 3920(%rax), %r11 + movq 3936(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4fARB), .-GL_PREFIX(VertexAttrib4fARB) @@ -18447,7 +18537,7 @@ GL_PREFIX(VertexAttrib4fARB): GL_PREFIX(VertexAttrib4fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3928(%rax), %r11 + movq 3944(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18457,13 +18547,13 @@ GL_PREFIX(VertexAttrib4fvARB): popq %rbp popq %rsi popq %rdi - movq 3928(%rax), %r11 + movq 3944(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3928(%rax), %r11 + movq 3944(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18473,7 +18563,7 @@ GL_PREFIX(VertexAttrib4fvARB): popq %rbp popq %rsi popq %rdi - movq 3928(%rax), %r11 + movq 3944(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4fvARB), .-GL_PREFIX(VertexAttrib4fvARB) @@ -18484,7 +18574,7 @@ GL_PREFIX(VertexAttrib4fvARB): GL_PREFIX(VertexAttrib4ivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3936(%rax), %r11 + movq 3952(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18494,13 +18584,13 @@ GL_PREFIX(VertexAttrib4ivARB): popq %rbp popq %rsi popq %rdi - movq 3936(%rax), %r11 + movq 3952(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3936(%rax), %r11 + movq 3952(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18510,7 +18600,7 @@ GL_PREFIX(VertexAttrib4ivARB): popq %rbp popq %rsi popq %rdi - movq 3936(%rax), %r11 + movq 3952(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4ivARB), .-GL_PREFIX(VertexAttrib4ivARB) @@ -18521,7 +18611,7 @@ GL_PREFIX(VertexAttrib4ivARB): GL_PREFIX(VertexAttrib4sARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3944(%rax), %r11 + movq 3960(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18535,13 +18625,13 @@ GL_PREFIX(VertexAttrib4sARB): popq %rdx popq %rsi popq %rdi - movq 3944(%rax), %r11 + movq 3960(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3944(%rax), %r11 + movq 3960(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18555,7 +18645,7 @@ GL_PREFIX(VertexAttrib4sARB): popq %rdx popq %rsi popq %rdi - movq 3944(%rax), %r11 + movq 3960(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4sARB), .-GL_PREFIX(VertexAttrib4sARB) @@ -18566,7 +18656,7 @@ GL_PREFIX(VertexAttrib4sARB): GL_PREFIX(VertexAttrib4svARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3952(%rax), %r11 + movq 3968(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18576,13 +18666,13 @@ GL_PREFIX(VertexAttrib4svARB): popq %rbp popq %rsi popq %rdi - movq 3952(%rax), %r11 + movq 3968(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3952(%rax), %r11 + movq 3968(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18592,7 +18682,7 @@ GL_PREFIX(VertexAttrib4svARB): popq %rbp popq %rsi popq %rdi - movq 3952(%rax), %r11 + movq 3968(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4svARB), .-GL_PREFIX(VertexAttrib4svARB) @@ -18603,7 +18693,7 @@ GL_PREFIX(VertexAttrib4svARB): GL_PREFIX(VertexAttrib4ubvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3960(%rax), %r11 + movq 3976(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18613,13 +18703,13 @@ GL_PREFIX(VertexAttrib4ubvARB): popq %rbp popq %rsi popq %rdi - movq 3960(%rax), %r11 + movq 3976(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3960(%rax), %r11 + movq 3976(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18629,7 +18719,7 @@ GL_PREFIX(VertexAttrib4ubvARB): popq %rbp popq %rsi popq %rdi - movq 3960(%rax), %r11 + movq 3976(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4ubvARB), .-GL_PREFIX(VertexAttrib4ubvARB) @@ -18640,7 +18730,7 @@ GL_PREFIX(VertexAttrib4ubvARB): GL_PREFIX(VertexAttrib4uivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3968(%rax), %r11 + movq 3984(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18650,13 +18740,13 @@ GL_PREFIX(VertexAttrib4uivARB): popq %rbp popq %rsi popq %rdi - movq 3968(%rax), %r11 + movq 3984(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3968(%rax), %r11 + movq 3984(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18666,7 +18756,7 @@ GL_PREFIX(VertexAttrib4uivARB): popq %rbp popq %rsi popq %rdi - movq 3968(%rax), %r11 + movq 3984(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4uivARB), .-GL_PREFIX(VertexAttrib4uivARB) @@ -18677,7 +18767,7 @@ GL_PREFIX(VertexAttrib4uivARB): GL_PREFIX(VertexAttrib4usvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3976(%rax), %r11 + movq 3992(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18687,13 +18777,13 @@ GL_PREFIX(VertexAttrib4usvARB): popq %rbp popq %rsi popq %rdi - movq 3976(%rax), %r11 + movq 3992(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3976(%rax), %r11 + movq 3992(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18703,7 +18793,7 @@ GL_PREFIX(VertexAttrib4usvARB): popq %rbp popq %rsi popq %rdi - movq 3976(%rax), %r11 + movq 3992(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4usvARB), .-GL_PREFIX(VertexAttrib4usvARB) @@ -18714,7 +18804,7 @@ GL_PREFIX(VertexAttrib4usvARB): GL_PREFIX(VertexAttribPointerARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3984(%rax), %r11 + movq 4000(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18732,13 +18822,13 @@ GL_PREFIX(VertexAttribPointerARB): popq %rdx popq %rsi popq %rdi - movq 3984(%rax), %r11 + movq 4000(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3984(%rax), %r11 + movq 4000(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18756,7 +18846,7 @@ GL_PREFIX(VertexAttribPointerARB): popq %rdx popq %rsi popq %rdi - movq 3984(%rax), %r11 + movq 4000(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribPointerARB), .-GL_PREFIX(VertexAttribPointerARB) @@ -18767,7 +18857,7 @@ GL_PREFIX(VertexAttribPointerARB): GL_PREFIX(BindBufferARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 3992(%rax), %r11 + movq 4008(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18777,13 +18867,13 @@ GL_PREFIX(BindBufferARB): popq %rbp popq %rsi popq %rdi - movq 3992(%rax), %r11 + movq 4008(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 3992(%rax), %r11 + movq 4008(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18793,7 +18883,7 @@ GL_PREFIX(BindBufferARB): popq %rbp popq %rsi popq %rdi - movq 3992(%rax), %r11 + movq 4008(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindBufferARB), .-GL_PREFIX(BindBufferARB) @@ -18804,7 +18894,7 @@ GL_PREFIX(BindBufferARB): GL_PREFIX(BufferDataARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4000(%rax), %r11 + movq 4016(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18818,13 +18908,13 @@ GL_PREFIX(BufferDataARB): popq %rdx popq %rsi popq %rdi - movq 4000(%rax), %r11 + movq 4016(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4000(%rax), %r11 + movq 4016(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18838,7 +18928,7 @@ GL_PREFIX(BufferDataARB): popq %rdx popq %rsi popq %rdi - movq 4000(%rax), %r11 + movq 4016(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BufferDataARB), .-GL_PREFIX(BufferDataARB) @@ -18849,7 +18939,7 @@ GL_PREFIX(BufferDataARB): GL_PREFIX(BufferSubDataARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4008(%rax), %r11 + movq 4024(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18863,13 +18953,13 @@ GL_PREFIX(BufferSubDataARB): popq %rdx popq %rsi popq %rdi - movq 4008(%rax), %r11 + movq 4024(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4008(%rax), %r11 + movq 4024(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18883,7 +18973,7 @@ GL_PREFIX(BufferSubDataARB): popq %rdx popq %rsi popq %rdi - movq 4008(%rax), %r11 + movq 4024(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BufferSubDataARB), .-GL_PREFIX(BufferSubDataARB) @@ -18894,7 +18984,7 @@ GL_PREFIX(BufferSubDataARB): GL_PREFIX(DeleteBuffersARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4016(%rax), %r11 + movq 4032(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18904,13 +18994,13 @@ GL_PREFIX(DeleteBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4016(%rax), %r11 + movq 4032(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4016(%rax), %r11 + movq 4032(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18920,7 +19010,7 @@ GL_PREFIX(DeleteBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4016(%rax), %r11 + movq 4032(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteBuffersARB), .-GL_PREFIX(DeleteBuffersARB) @@ -18931,7 +19021,7 @@ GL_PREFIX(DeleteBuffersARB): GL_PREFIX(GenBuffersARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4024(%rax), %r11 + movq 4040(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18941,13 +19031,13 @@ GL_PREFIX(GenBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4024(%rax), %r11 + movq 4040(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4024(%rax), %r11 + movq 4040(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18957,7 +19047,7 @@ GL_PREFIX(GenBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4024(%rax), %r11 + movq 4040(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenBuffersARB), .-GL_PREFIX(GenBuffersARB) @@ -18968,7 +19058,7 @@ GL_PREFIX(GenBuffersARB): GL_PREFIX(GetBufferParameterivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4032(%rax), %r11 + movq 4048(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -18978,13 +19068,13 @@ GL_PREFIX(GetBufferParameterivARB): popq %rdx popq %rsi popq %rdi - movq 4032(%rax), %r11 + movq 4048(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4032(%rax), %r11 + movq 4048(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -18994,7 +19084,7 @@ GL_PREFIX(GetBufferParameterivARB): popq %rdx popq %rsi popq %rdi - movq 4032(%rax), %r11 + movq 4048(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetBufferParameterivARB), .-GL_PREFIX(GetBufferParameterivARB) @@ -19005,7 +19095,7 @@ GL_PREFIX(GetBufferParameterivARB): GL_PREFIX(GetBufferPointervARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4040(%rax), %r11 + movq 4056(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19015,13 +19105,13 @@ GL_PREFIX(GetBufferPointervARB): popq %rdx popq %rsi popq %rdi - movq 4040(%rax), %r11 + movq 4056(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4040(%rax), %r11 + movq 4056(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19031,7 +19121,7 @@ GL_PREFIX(GetBufferPointervARB): popq %rdx popq %rsi popq %rdi - movq 4040(%rax), %r11 + movq 4056(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetBufferPointervARB), .-GL_PREFIX(GetBufferPointervARB) @@ -19042,7 +19132,7 @@ GL_PREFIX(GetBufferPointervARB): GL_PREFIX(GetBufferSubDataARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4048(%rax), %r11 + movq 4064(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19056,13 +19146,13 @@ GL_PREFIX(GetBufferSubDataARB): popq %rdx popq %rsi popq %rdi - movq 4048(%rax), %r11 + movq 4064(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4048(%rax), %r11 + movq 4064(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19076,7 +19166,7 @@ GL_PREFIX(GetBufferSubDataARB): popq %rdx popq %rsi popq %rdi - movq 4048(%rax), %r11 + movq 4064(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetBufferSubDataARB), .-GL_PREFIX(GetBufferSubDataARB) @@ -19087,25 +19177,25 @@ GL_PREFIX(GetBufferSubDataARB): GL_PREFIX(IsBufferARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4056(%rax), %r11 + movq 4072(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4056(%rax), %r11 + movq 4072(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4056(%rax), %r11 + movq 4072(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4056(%rax), %r11 + movq 4072(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsBufferARB), .-GL_PREFIX(IsBufferARB) @@ -19116,7 +19206,7 @@ GL_PREFIX(IsBufferARB): GL_PREFIX(MapBufferARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4064(%rax), %r11 + movq 4080(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19126,13 +19216,13 @@ GL_PREFIX(MapBufferARB): popq %rbp popq %rsi popq %rdi - movq 4064(%rax), %r11 + movq 4080(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4064(%rax), %r11 + movq 4080(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19142,7 +19232,7 @@ GL_PREFIX(MapBufferARB): popq %rbp popq %rsi popq %rdi - movq 4064(%rax), %r11 + movq 4080(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MapBufferARB), .-GL_PREFIX(MapBufferARB) @@ -19153,25 +19243,25 @@ GL_PREFIX(MapBufferARB): GL_PREFIX(UnmapBufferARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4072(%rax), %r11 + movq 4088(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4072(%rax), %r11 + movq 4088(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4072(%rax), %r11 + movq 4088(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4072(%rax), %r11 + movq 4088(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UnmapBufferARB), .-GL_PREFIX(UnmapBufferARB) @@ -19182,7 +19272,7 @@ GL_PREFIX(UnmapBufferARB): GL_PREFIX(BeginQueryARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4080(%rax), %r11 + movq 4096(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19192,13 +19282,13 @@ GL_PREFIX(BeginQueryARB): popq %rbp popq %rsi popq %rdi - movq 4080(%rax), %r11 + movq 4096(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4080(%rax), %r11 + movq 4096(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19208,7 +19298,7 @@ GL_PREFIX(BeginQueryARB): popq %rbp popq %rsi popq %rdi - movq 4080(%rax), %r11 + movq 4096(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BeginQueryARB), .-GL_PREFIX(BeginQueryARB) @@ -19219,7 +19309,7 @@ GL_PREFIX(BeginQueryARB): GL_PREFIX(DeleteQueriesARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4088(%rax), %r11 + movq 4104(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19229,13 +19319,13 @@ GL_PREFIX(DeleteQueriesARB): popq %rbp popq %rsi popq %rdi - movq 4088(%rax), %r11 + movq 4104(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4088(%rax), %r11 + movq 4104(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19245,7 +19335,7 @@ GL_PREFIX(DeleteQueriesARB): popq %rbp popq %rsi popq %rdi - movq 4088(%rax), %r11 + movq 4104(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteQueriesARB), .-GL_PREFIX(DeleteQueriesARB) @@ -19256,25 +19346,25 @@ GL_PREFIX(DeleteQueriesARB): GL_PREFIX(EndQueryARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4096(%rax), %r11 + movq 4112(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4096(%rax), %r11 + movq 4112(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4096(%rax), %r11 + movq 4112(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4096(%rax), %r11 + movq 4112(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EndQueryARB), .-GL_PREFIX(EndQueryARB) @@ -19285,7 +19375,7 @@ GL_PREFIX(EndQueryARB): GL_PREFIX(GenQueriesARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4104(%rax), %r11 + movq 4120(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19295,13 +19385,13 @@ GL_PREFIX(GenQueriesARB): popq %rbp popq %rsi popq %rdi - movq 4104(%rax), %r11 + movq 4120(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4104(%rax), %r11 + movq 4120(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19311,7 +19401,7 @@ GL_PREFIX(GenQueriesARB): popq %rbp popq %rsi popq %rdi - movq 4104(%rax), %r11 + movq 4120(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenQueriesARB), .-GL_PREFIX(GenQueriesARB) @@ -19322,7 +19412,7 @@ GL_PREFIX(GenQueriesARB): GL_PREFIX(GetQueryObjectivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4112(%rax), %r11 + movq 4128(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19332,13 +19422,13 @@ GL_PREFIX(GetQueryObjectivARB): popq %rdx popq %rsi popq %rdi - movq 4112(%rax), %r11 + movq 4128(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4112(%rax), %r11 + movq 4128(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19348,7 +19438,7 @@ GL_PREFIX(GetQueryObjectivARB): popq %rdx popq %rsi popq %rdi - movq 4112(%rax), %r11 + movq 4128(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetQueryObjectivARB), .-GL_PREFIX(GetQueryObjectivARB) @@ -19359,7 +19449,7 @@ GL_PREFIX(GetQueryObjectivARB): GL_PREFIX(GetQueryObjectuivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4120(%rax), %r11 + movq 4136(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19369,13 +19459,13 @@ GL_PREFIX(GetQueryObjectuivARB): popq %rdx popq %rsi popq %rdi - movq 4120(%rax), %r11 + movq 4136(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4120(%rax), %r11 + movq 4136(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19385,7 +19475,7 @@ GL_PREFIX(GetQueryObjectuivARB): popq %rdx popq %rsi popq %rdi - movq 4120(%rax), %r11 + movq 4136(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetQueryObjectuivARB), .-GL_PREFIX(GetQueryObjectuivARB) @@ -19396,7 +19486,7 @@ GL_PREFIX(GetQueryObjectuivARB): GL_PREFIX(GetQueryivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4128(%rax), %r11 + movq 4144(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19406,13 +19496,13 @@ GL_PREFIX(GetQueryivARB): popq %rdx popq %rsi popq %rdi - movq 4128(%rax), %r11 + movq 4144(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4128(%rax), %r11 + movq 4144(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19422,7 +19512,7 @@ GL_PREFIX(GetQueryivARB): popq %rdx popq %rsi popq %rdi - movq 4128(%rax), %r11 + movq 4144(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetQueryivARB), .-GL_PREFIX(GetQueryivARB) @@ -19433,25 +19523,25 @@ GL_PREFIX(GetQueryivARB): GL_PREFIX(IsQueryARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4136(%rax), %r11 + movq 4152(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4136(%rax), %r11 + movq 4152(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4136(%rax), %r11 + movq 4152(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4136(%rax), %r11 + movq 4152(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsQueryARB), .-GL_PREFIX(IsQueryARB) @@ -19462,7 +19552,7 @@ GL_PREFIX(IsQueryARB): GL_PREFIX(AttachObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4144(%rax), %r11 + movq 4160(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19472,13 +19562,13 @@ GL_PREFIX(AttachObjectARB): popq %rbp popq %rsi popq %rdi - movq 4144(%rax), %r11 + movq 4160(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4144(%rax), %r11 + movq 4160(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19488,7 +19578,7 @@ GL_PREFIX(AttachObjectARB): popq %rbp popq %rsi popq %rdi - movq 4144(%rax), %r11 + movq 4160(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(AttachObjectARB), .-GL_PREFIX(AttachObjectARB) @@ -19499,25 +19589,25 @@ GL_PREFIX(AttachObjectARB): GL_PREFIX(CompileShaderARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4152(%rax), %r11 + movq 4168(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4152(%rax), %r11 + movq 4168(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4152(%rax), %r11 + movq 4168(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4152(%rax), %r11 + movq 4168(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CompileShaderARB), .-GL_PREFIX(CompileShaderARB) @@ -19528,25 +19618,25 @@ GL_PREFIX(CompileShaderARB): GL_PREFIX(CreateProgramObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4160(%rax), %r11 + movq 4176(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 4160(%rax), %r11 + movq 4176(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4160(%rax), %r11 + movq 4176(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 4160(%rax), %r11 + movq 4176(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CreateProgramObjectARB), .-GL_PREFIX(CreateProgramObjectARB) @@ -19557,25 +19647,25 @@ GL_PREFIX(CreateProgramObjectARB): GL_PREFIX(CreateShaderObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4168(%rax), %r11 + movq 4184(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4168(%rax), %r11 + movq 4184(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4168(%rax), %r11 + movq 4184(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4168(%rax), %r11 + movq 4184(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CreateShaderObjectARB), .-GL_PREFIX(CreateShaderObjectARB) @@ -19586,25 +19676,25 @@ GL_PREFIX(CreateShaderObjectARB): GL_PREFIX(DeleteObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4176(%rax), %r11 + movq 4192(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4176(%rax), %r11 + movq 4192(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4176(%rax), %r11 + movq 4192(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4176(%rax), %r11 + movq 4192(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteObjectARB), .-GL_PREFIX(DeleteObjectARB) @@ -19615,7 +19705,7 @@ GL_PREFIX(DeleteObjectARB): GL_PREFIX(DetachObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4184(%rax), %r11 + movq 4200(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19625,13 +19715,13 @@ GL_PREFIX(DetachObjectARB): popq %rbp popq %rsi popq %rdi - movq 4184(%rax), %r11 + movq 4200(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4184(%rax), %r11 + movq 4200(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19641,7 +19731,7 @@ GL_PREFIX(DetachObjectARB): popq %rbp popq %rsi popq %rdi - movq 4184(%rax), %r11 + movq 4200(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DetachObjectARB), .-GL_PREFIX(DetachObjectARB) @@ -19652,7 +19742,7 @@ GL_PREFIX(DetachObjectARB): GL_PREFIX(GetActiveUniformARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4192(%rax), %r11 + movq 4208(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19670,13 +19760,13 @@ GL_PREFIX(GetActiveUniformARB): popq %rdx popq %rsi popq %rdi - movq 4192(%rax), %r11 + movq 4208(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4192(%rax), %r11 + movq 4208(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19694,7 +19784,7 @@ GL_PREFIX(GetActiveUniformARB): popq %rdx popq %rsi popq %rdi - movq 4192(%rax), %r11 + movq 4208(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetActiveUniformARB), .-GL_PREFIX(GetActiveUniformARB) @@ -19705,7 +19795,7 @@ GL_PREFIX(GetActiveUniformARB): GL_PREFIX(GetAttachedObjectsARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4200(%rax), %r11 + movq 4216(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19719,13 +19809,13 @@ GL_PREFIX(GetAttachedObjectsARB): popq %rdx popq %rsi popq %rdi - movq 4200(%rax), %r11 + movq 4216(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4200(%rax), %r11 + movq 4216(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19739,7 +19829,7 @@ GL_PREFIX(GetAttachedObjectsARB): popq %rdx popq %rsi popq %rdi - movq 4200(%rax), %r11 + movq 4216(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetAttachedObjectsARB), .-GL_PREFIX(GetAttachedObjectsARB) @@ -19750,25 +19840,25 @@ GL_PREFIX(GetAttachedObjectsARB): GL_PREFIX(GetHandleARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4208(%rax), %r11 + movq 4224(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4208(%rax), %r11 + movq 4224(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4208(%rax), %r11 + movq 4224(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4208(%rax), %r11 + movq 4224(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetHandleARB), .-GL_PREFIX(GetHandleARB) @@ -19779,7 +19869,7 @@ GL_PREFIX(GetHandleARB): GL_PREFIX(GetInfoLogARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4216(%rax), %r11 + movq 4232(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19793,13 +19883,13 @@ GL_PREFIX(GetInfoLogARB): popq %rdx popq %rsi popq %rdi - movq 4216(%rax), %r11 + movq 4232(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4216(%rax), %r11 + movq 4232(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19813,7 +19903,7 @@ GL_PREFIX(GetInfoLogARB): popq %rdx popq %rsi popq %rdi - movq 4216(%rax), %r11 + movq 4232(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetInfoLogARB), .-GL_PREFIX(GetInfoLogARB) @@ -19824,7 +19914,7 @@ GL_PREFIX(GetInfoLogARB): GL_PREFIX(GetObjectParameterfvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4224(%rax), %r11 + movq 4240(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19834,13 +19924,13 @@ GL_PREFIX(GetObjectParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 4224(%rax), %r11 + movq 4240(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4224(%rax), %r11 + movq 4240(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19850,7 +19940,7 @@ GL_PREFIX(GetObjectParameterfvARB): popq %rdx popq %rsi popq %rdi - movq 4224(%rax), %r11 + movq 4240(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetObjectParameterfvARB), .-GL_PREFIX(GetObjectParameterfvARB) @@ -19861,7 +19951,7 @@ GL_PREFIX(GetObjectParameterfvARB): GL_PREFIX(GetObjectParameterivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4232(%rax), %r11 + movq 4248(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19871,13 +19961,13 @@ GL_PREFIX(GetObjectParameterivARB): popq %rdx popq %rsi popq %rdi - movq 4232(%rax), %r11 + movq 4248(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4232(%rax), %r11 + movq 4248(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19887,7 +19977,7 @@ GL_PREFIX(GetObjectParameterivARB): popq %rdx popq %rsi popq %rdi - movq 4232(%rax), %r11 + movq 4248(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetObjectParameterivARB), .-GL_PREFIX(GetObjectParameterivARB) @@ -19898,7 +19988,7 @@ GL_PREFIX(GetObjectParameterivARB): GL_PREFIX(GetShaderSourceARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4240(%rax), %r11 + movq 4256(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19912,13 +20002,13 @@ GL_PREFIX(GetShaderSourceARB): popq %rdx popq %rsi popq %rdi - movq 4240(%rax), %r11 + movq 4256(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4240(%rax), %r11 + movq 4256(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19932,7 +20022,7 @@ GL_PREFIX(GetShaderSourceARB): popq %rdx popq %rsi popq %rdi - movq 4240(%rax), %r11 + movq 4256(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetShaderSourceARB), .-GL_PREFIX(GetShaderSourceARB) @@ -19943,7 +20033,7 @@ GL_PREFIX(GetShaderSourceARB): GL_PREFIX(GetUniformLocationARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4248(%rax), %r11 + movq 4264(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19953,13 +20043,13 @@ GL_PREFIX(GetUniformLocationARB): popq %rbp popq %rsi popq %rdi - movq 4248(%rax), %r11 + movq 4264(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4248(%rax), %r11 + movq 4264(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -19969,7 +20059,7 @@ GL_PREFIX(GetUniformLocationARB): popq %rbp popq %rsi popq %rdi - movq 4248(%rax), %r11 + movq 4264(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetUniformLocationARB), .-GL_PREFIX(GetUniformLocationARB) @@ -19980,7 +20070,7 @@ GL_PREFIX(GetUniformLocationARB): GL_PREFIX(GetUniformfvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4256(%rax), %r11 + movq 4272(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -19990,13 +20080,13 @@ GL_PREFIX(GetUniformfvARB): popq %rdx popq %rsi popq %rdi - movq 4256(%rax), %r11 + movq 4272(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4256(%rax), %r11 + movq 4272(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20006,7 +20096,7 @@ GL_PREFIX(GetUniformfvARB): popq %rdx popq %rsi popq %rdi - movq 4256(%rax), %r11 + movq 4272(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetUniformfvARB), .-GL_PREFIX(GetUniformfvARB) @@ -20017,7 +20107,7 @@ GL_PREFIX(GetUniformfvARB): GL_PREFIX(GetUniformivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4264(%rax), %r11 + movq 4280(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20027,13 +20117,13 @@ GL_PREFIX(GetUniformivARB): popq %rdx popq %rsi popq %rdi - movq 4264(%rax), %r11 + movq 4280(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4264(%rax), %r11 + movq 4280(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20043,7 +20133,7 @@ GL_PREFIX(GetUniformivARB): popq %rdx popq %rsi popq %rdi - movq 4264(%rax), %r11 + movq 4280(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetUniformivARB), .-GL_PREFIX(GetUniformivARB) @@ -20054,25 +20144,25 @@ GL_PREFIX(GetUniformivARB): GL_PREFIX(LinkProgramARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4272(%rax), %r11 + movq 4288(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4272(%rax), %r11 + movq 4288(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4272(%rax), %r11 + movq 4288(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4272(%rax), %r11 + movq 4288(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(LinkProgramARB), .-GL_PREFIX(LinkProgramARB) @@ -20083,7 +20173,7 @@ GL_PREFIX(LinkProgramARB): GL_PREFIX(ShaderSourceARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4280(%rax), %r11 + movq 4296(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20097,13 +20187,13 @@ GL_PREFIX(ShaderSourceARB): popq %rdx popq %rsi popq %rdi - movq 4280(%rax), %r11 + movq 4296(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4280(%rax), %r11 + movq 4296(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20117,7 +20207,7 @@ GL_PREFIX(ShaderSourceARB): popq %rdx popq %rsi popq %rdi - movq 4280(%rax), %r11 + movq 4296(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ShaderSourceARB), .-GL_PREFIX(ShaderSourceARB) @@ -20128,7 +20218,7 @@ GL_PREFIX(ShaderSourceARB): GL_PREFIX(Uniform1fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4288(%rax), %r11 + movq 4304(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -20138,13 +20228,13 @@ GL_PREFIX(Uniform1fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4288(%rax), %r11 + movq 4304(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4288(%rax), %r11 + movq 4304(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -20154,7 +20244,7 @@ GL_PREFIX(Uniform1fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4288(%rax), %r11 + movq 4304(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform1fARB), .-GL_PREFIX(Uniform1fARB) @@ -20165,7 +20255,7 @@ GL_PREFIX(Uniform1fARB): GL_PREFIX(Uniform1fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4296(%rax), %r11 + movq 4312(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20175,13 +20265,13 @@ GL_PREFIX(Uniform1fvARB): popq %rdx popq %rsi popq %rdi - movq 4296(%rax), %r11 + movq 4312(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4296(%rax), %r11 + movq 4312(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20191,7 +20281,7 @@ GL_PREFIX(Uniform1fvARB): popq %rdx popq %rsi popq %rdi - movq 4296(%rax), %r11 + movq 4312(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform1fvARB), .-GL_PREFIX(Uniform1fvARB) @@ -20202,7 +20292,7 @@ GL_PREFIX(Uniform1fvARB): GL_PREFIX(Uniform1iARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4304(%rax), %r11 + movq 4320(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20212,13 +20302,13 @@ GL_PREFIX(Uniform1iARB): popq %rbp popq %rsi popq %rdi - movq 4304(%rax), %r11 + movq 4320(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4304(%rax), %r11 + movq 4320(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20228,7 +20318,7 @@ GL_PREFIX(Uniform1iARB): popq %rbp popq %rsi popq %rdi - movq 4304(%rax), %r11 + movq 4320(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform1iARB), .-GL_PREFIX(Uniform1iARB) @@ -20239,7 +20329,7 @@ GL_PREFIX(Uniform1iARB): GL_PREFIX(Uniform1ivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4312(%rax), %r11 + movq 4328(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20249,13 +20339,13 @@ GL_PREFIX(Uniform1ivARB): popq %rdx popq %rsi popq %rdi - movq 4312(%rax), %r11 + movq 4328(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4312(%rax), %r11 + movq 4328(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20265,7 +20355,7 @@ GL_PREFIX(Uniform1ivARB): popq %rdx popq %rsi popq %rdi - movq 4312(%rax), %r11 + movq 4328(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform1ivARB), .-GL_PREFIX(Uniform1ivARB) @@ -20276,7 +20366,7 @@ GL_PREFIX(Uniform1ivARB): GL_PREFIX(Uniform2fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4320(%rax), %r11 + movq 4336(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -20288,13 +20378,13 @@ GL_PREFIX(Uniform2fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4320(%rax), %r11 + movq 4336(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4320(%rax), %r11 + movq 4336(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -20306,7 +20396,7 @@ GL_PREFIX(Uniform2fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4320(%rax), %r11 + movq 4336(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform2fARB), .-GL_PREFIX(Uniform2fARB) @@ -20317,7 +20407,7 @@ GL_PREFIX(Uniform2fARB): GL_PREFIX(Uniform2fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4328(%rax), %r11 + movq 4344(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20327,13 +20417,13 @@ GL_PREFIX(Uniform2fvARB): popq %rdx popq %rsi popq %rdi - movq 4328(%rax), %r11 + movq 4344(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4328(%rax), %r11 + movq 4344(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20343,7 +20433,7 @@ GL_PREFIX(Uniform2fvARB): popq %rdx popq %rsi popq %rdi - movq 4328(%rax), %r11 + movq 4344(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform2fvARB), .-GL_PREFIX(Uniform2fvARB) @@ -20354,7 +20444,7 @@ GL_PREFIX(Uniform2fvARB): GL_PREFIX(Uniform2iARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4336(%rax), %r11 + movq 4352(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20364,13 +20454,13 @@ GL_PREFIX(Uniform2iARB): popq %rdx popq %rsi popq %rdi - movq 4336(%rax), %r11 + movq 4352(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4336(%rax), %r11 + movq 4352(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20380,7 +20470,7 @@ GL_PREFIX(Uniform2iARB): popq %rdx popq %rsi popq %rdi - movq 4336(%rax), %r11 + movq 4352(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform2iARB), .-GL_PREFIX(Uniform2iARB) @@ -20391,7 +20481,7 @@ GL_PREFIX(Uniform2iARB): GL_PREFIX(Uniform2ivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4344(%rax), %r11 + movq 4360(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20401,13 +20491,13 @@ GL_PREFIX(Uniform2ivARB): popq %rdx popq %rsi popq %rdi - movq 4344(%rax), %r11 + movq 4360(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4344(%rax), %r11 + movq 4360(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20417,7 +20507,7 @@ GL_PREFIX(Uniform2ivARB): popq %rdx popq %rsi popq %rdi - movq 4344(%rax), %r11 + movq 4360(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform2ivARB), .-GL_PREFIX(Uniform2ivARB) @@ -20428,7 +20518,7 @@ GL_PREFIX(Uniform2ivARB): GL_PREFIX(Uniform3fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4352(%rax), %r11 + movq 4368(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -20442,13 +20532,13 @@ GL_PREFIX(Uniform3fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 4352(%rax), %r11 + movq 4368(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4352(%rax), %r11 + movq 4368(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -20462,7 +20552,7 @@ GL_PREFIX(Uniform3fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 4352(%rax), %r11 + movq 4368(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform3fARB), .-GL_PREFIX(Uniform3fARB) @@ -20473,7 +20563,7 @@ GL_PREFIX(Uniform3fARB): GL_PREFIX(Uniform3fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4360(%rax), %r11 + movq 4376(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20483,13 +20573,13 @@ GL_PREFIX(Uniform3fvARB): popq %rdx popq %rsi popq %rdi - movq 4360(%rax), %r11 + movq 4376(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4360(%rax), %r11 + movq 4376(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20499,7 +20589,7 @@ GL_PREFIX(Uniform3fvARB): popq %rdx popq %rsi popq %rdi - movq 4360(%rax), %r11 + movq 4376(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform3fvARB), .-GL_PREFIX(Uniform3fvARB) @@ -20510,7 +20600,7 @@ GL_PREFIX(Uniform3fvARB): GL_PREFIX(Uniform3iARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4368(%rax), %r11 + movq 4384(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20524,13 +20614,13 @@ GL_PREFIX(Uniform3iARB): popq %rdx popq %rsi popq %rdi - movq 4368(%rax), %r11 + movq 4384(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4368(%rax), %r11 + movq 4384(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20544,7 +20634,7 @@ GL_PREFIX(Uniform3iARB): popq %rdx popq %rsi popq %rdi - movq 4368(%rax), %r11 + movq 4384(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform3iARB), .-GL_PREFIX(Uniform3iARB) @@ -20555,7 +20645,7 @@ GL_PREFIX(Uniform3iARB): GL_PREFIX(Uniform3ivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4376(%rax), %r11 + movq 4392(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20565,13 +20655,13 @@ GL_PREFIX(Uniform3ivARB): popq %rdx popq %rsi popq %rdi - movq 4376(%rax), %r11 + movq 4392(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4376(%rax), %r11 + movq 4392(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20581,7 +20671,7 @@ GL_PREFIX(Uniform3ivARB): popq %rdx popq %rsi popq %rdi - movq 4376(%rax), %r11 + movq 4392(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform3ivARB), .-GL_PREFIX(Uniform3ivARB) @@ -20592,7 +20682,7 @@ GL_PREFIX(Uniform3ivARB): GL_PREFIX(Uniform4fARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4384(%rax), %r11 + movq 4400(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -20608,13 +20698,13 @@ GL_PREFIX(Uniform4fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 4384(%rax), %r11 + movq 4400(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4384(%rax), %r11 + movq 4400(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -20630,7 +20720,7 @@ GL_PREFIX(Uniform4fARB): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 4384(%rax), %r11 + movq 4400(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform4fARB), .-GL_PREFIX(Uniform4fARB) @@ -20641,7 +20731,7 @@ GL_PREFIX(Uniform4fARB): GL_PREFIX(Uniform4fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4392(%rax), %r11 + movq 4408(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20651,13 +20741,13 @@ GL_PREFIX(Uniform4fvARB): popq %rdx popq %rsi popq %rdi - movq 4392(%rax), %r11 + movq 4408(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4392(%rax), %r11 + movq 4408(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20667,7 +20757,7 @@ GL_PREFIX(Uniform4fvARB): popq %rdx popq %rsi popq %rdi - movq 4392(%rax), %r11 + movq 4408(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform4fvARB), .-GL_PREFIX(Uniform4fvARB) @@ -20678,7 +20768,7 @@ GL_PREFIX(Uniform4fvARB): GL_PREFIX(Uniform4iARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4400(%rax), %r11 + movq 4416(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20692,13 +20782,13 @@ GL_PREFIX(Uniform4iARB): popq %rdx popq %rsi popq %rdi - movq 4400(%rax), %r11 + movq 4416(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4400(%rax), %r11 + movq 4416(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20712,7 +20802,7 @@ GL_PREFIX(Uniform4iARB): popq %rdx popq %rsi popq %rdi - movq 4400(%rax), %r11 + movq 4416(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform4iARB), .-GL_PREFIX(Uniform4iARB) @@ -20723,7 +20813,7 @@ GL_PREFIX(Uniform4iARB): GL_PREFIX(Uniform4ivARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4408(%rax), %r11 + movq 4424(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20733,13 +20823,13 @@ GL_PREFIX(Uniform4ivARB): popq %rdx popq %rsi popq %rdi - movq 4408(%rax), %r11 + movq 4424(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4408(%rax), %r11 + movq 4424(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20749,7 +20839,7 @@ GL_PREFIX(Uniform4ivARB): popq %rdx popq %rsi popq %rdi - movq 4408(%rax), %r11 + movq 4424(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(Uniform4ivARB), .-GL_PREFIX(Uniform4ivARB) @@ -20760,7 +20850,7 @@ GL_PREFIX(Uniform4ivARB): GL_PREFIX(UniformMatrix2fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4416(%rax), %r11 + movq 4432(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20774,13 +20864,13 @@ GL_PREFIX(UniformMatrix2fvARB): popq %rdx popq %rsi popq %rdi - movq 4416(%rax), %r11 + movq 4432(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4416(%rax), %r11 + movq 4432(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20794,7 +20884,7 @@ GL_PREFIX(UniformMatrix2fvARB): popq %rdx popq %rsi popq %rdi - movq 4416(%rax), %r11 + movq 4432(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UniformMatrix2fvARB), .-GL_PREFIX(UniformMatrix2fvARB) @@ -20805,7 +20895,7 @@ GL_PREFIX(UniformMatrix2fvARB): GL_PREFIX(UniformMatrix3fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4424(%rax), %r11 + movq 4440(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20819,13 +20909,13 @@ GL_PREFIX(UniformMatrix3fvARB): popq %rdx popq %rsi popq %rdi - movq 4424(%rax), %r11 + movq 4440(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4424(%rax), %r11 + movq 4440(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20839,7 +20929,7 @@ GL_PREFIX(UniformMatrix3fvARB): popq %rdx popq %rsi popq %rdi - movq 4424(%rax), %r11 + movq 4440(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UniformMatrix3fvARB), .-GL_PREFIX(UniformMatrix3fvARB) @@ -20850,7 +20940,7 @@ GL_PREFIX(UniformMatrix3fvARB): GL_PREFIX(UniformMatrix4fvARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4432(%rax), %r11 + movq 4448(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20864,13 +20954,13 @@ GL_PREFIX(UniformMatrix4fvARB): popq %rdx popq %rsi popq %rdi - movq 4432(%rax), %r11 + movq 4448(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4432(%rax), %r11 + movq 4448(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20884,7 +20974,7 @@ GL_PREFIX(UniformMatrix4fvARB): popq %rdx popq %rsi popq %rdi - movq 4432(%rax), %r11 + movq 4448(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UniformMatrix4fvARB), .-GL_PREFIX(UniformMatrix4fvARB) @@ -20895,25 +20985,25 @@ GL_PREFIX(UniformMatrix4fvARB): GL_PREFIX(UseProgramObjectARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4440(%rax), %r11 + movq 4456(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4440(%rax), %r11 + movq 4456(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4440(%rax), %r11 + movq 4456(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4440(%rax), %r11 + movq 4456(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UseProgramObjectARB), .-GL_PREFIX(UseProgramObjectARB) @@ -20924,25 +21014,25 @@ GL_PREFIX(UseProgramObjectARB): GL_PREFIX(ValidateProgramARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4448(%rax), %r11 + movq 4464(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4448(%rax), %r11 + movq 4464(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4448(%rax), %r11 + movq 4464(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4448(%rax), %r11 + movq 4464(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ValidateProgramARB), .-GL_PREFIX(ValidateProgramARB) @@ -20953,7 +21043,7 @@ GL_PREFIX(ValidateProgramARB): GL_PREFIX(BindAttribLocationARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4456(%rax), %r11 + movq 4472(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -20963,13 +21053,13 @@ GL_PREFIX(BindAttribLocationARB): popq %rdx popq %rsi popq %rdi - movq 4456(%rax), %r11 + movq 4472(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4456(%rax), %r11 + movq 4472(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -20979,7 +21069,7 @@ GL_PREFIX(BindAttribLocationARB): popq %rdx popq %rsi popq %rdi - movq 4456(%rax), %r11 + movq 4472(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindAttribLocationARB), .-GL_PREFIX(BindAttribLocationARB) @@ -20990,7 +21080,7 @@ GL_PREFIX(BindAttribLocationARB): GL_PREFIX(GetActiveAttribARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4464(%rax), %r11 + movq 4480(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21008,13 +21098,13 @@ GL_PREFIX(GetActiveAttribARB): popq %rdx popq %rsi popq %rdi - movq 4464(%rax), %r11 + movq 4480(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4464(%rax), %r11 + movq 4480(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21032,7 +21122,7 @@ GL_PREFIX(GetActiveAttribARB): popq %rdx popq %rsi popq %rdi - movq 4464(%rax), %r11 + movq 4480(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetActiveAttribARB), .-GL_PREFIX(GetActiveAttribARB) @@ -21043,7 +21133,7 @@ GL_PREFIX(GetActiveAttribARB): GL_PREFIX(GetAttribLocationARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4472(%rax), %r11 + movq 4488(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21053,13 +21143,13 @@ GL_PREFIX(GetAttribLocationARB): popq %rbp popq %rsi popq %rdi - movq 4472(%rax), %r11 + movq 4488(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4472(%rax), %r11 + movq 4488(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21069,7 +21159,7 @@ GL_PREFIX(GetAttribLocationARB): popq %rbp popq %rsi popq %rdi - movq 4472(%rax), %r11 + movq 4488(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetAttribLocationARB), .-GL_PREFIX(GetAttribLocationARB) @@ -21080,7 +21170,7 @@ GL_PREFIX(GetAttribLocationARB): GL_PREFIX(DrawBuffersARB): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4480(%rax), %r11 + movq 4496(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21090,13 +21180,13 @@ GL_PREFIX(DrawBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4480(%rax), %r11 + movq 4496(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4480(%rax), %r11 + movq 4496(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21106,7 +21196,7 @@ GL_PREFIX(DrawBuffersARB): popq %rbp popq %rsi popq %rdi - movq 4480(%rax), %r11 + movq 4496(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DrawBuffersARB), .-GL_PREFIX(DrawBuffersARB) @@ -21117,7 +21207,7 @@ GL_PREFIX(DrawBuffersARB): GL_PREFIX(RenderbufferStorageMultisample): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4488(%rax), %r11 + movq 4504(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21131,13 +21221,13 @@ GL_PREFIX(RenderbufferStorageMultisample): popq %rdx popq %rsi popq %rdi - movq 4488(%rax), %r11 + movq 4504(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4488(%rax), %r11 + movq 4504(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21151,7 +21241,7 @@ GL_PREFIX(RenderbufferStorageMultisample): popq %rdx popq %rsi popq %rdi - movq 4488(%rax), %r11 + movq 4504(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(RenderbufferStorageMultisample), .-GL_PREFIX(RenderbufferStorageMultisample) @@ -21162,7 +21252,7 @@ GL_PREFIX(RenderbufferStorageMultisample): GL_PREFIX(FlushMappedBufferRange): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4496(%rax), %r11 + movq 4512(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21172,13 +21262,13 @@ GL_PREFIX(FlushMappedBufferRange): popq %rdx popq %rsi popq %rdi - movq 4496(%rax), %r11 + movq 4512(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4496(%rax), %r11 + movq 4512(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21188,7 +21278,7 @@ GL_PREFIX(FlushMappedBufferRange): popq %rdx popq %rsi popq %rdi - movq 4496(%rax), %r11 + movq 4512(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FlushMappedBufferRange), .-GL_PREFIX(FlushMappedBufferRange) @@ -21199,7 +21289,7 @@ GL_PREFIX(FlushMappedBufferRange): GL_PREFIX(MapBufferRange): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4504(%rax), %r11 + movq 4520(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21213,13 +21303,13 @@ GL_PREFIX(MapBufferRange): popq %rdx popq %rsi popq %rdi - movq 4504(%rax), %r11 + movq 4520(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4504(%rax), %r11 + movq 4520(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21233,7 +21323,7 @@ GL_PREFIX(MapBufferRange): popq %rdx popq %rsi popq %rdi - movq 4504(%rax), %r11 + movq 4520(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MapBufferRange), .-GL_PREFIX(MapBufferRange) @@ -21244,25 +21334,25 @@ GL_PREFIX(MapBufferRange): GL_PREFIX(BindVertexArray): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4512(%rax), %r11 + movq 4528(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4512(%rax), %r11 + movq 4528(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4512(%rax), %r11 + movq 4528(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4512(%rax), %r11 + movq 4528(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindVertexArray), .-GL_PREFIX(BindVertexArray) @@ -21273,7 +21363,7 @@ GL_PREFIX(BindVertexArray): GL_PREFIX(GenVertexArrays): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4520(%rax), %r11 + movq 4536(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21283,13 +21373,13 @@ GL_PREFIX(GenVertexArrays): popq %rbp popq %rsi popq %rdi - movq 4520(%rax), %r11 + movq 4536(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4520(%rax), %r11 + movq 4536(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21299,7 +21389,7 @@ GL_PREFIX(GenVertexArrays): popq %rbp popq %rsi popq %rdi - movq 4520(%rax), %r11 + movq 4536(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenVertexArrays), .-GL_PREFIX(GenVertexArrays) @@ -21310,7 +21400,7 @@ GL_PREFIX(GenVertexArrays): GL_PREFIX(CopyBufferSubData): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4528(%rax), %r11 + movq 4544(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21324,13 +21414,13 @@ GL_PREFIX(CopyBufferSubData): popq %rdx popq %rsi popq %rdi - movq 4528(%rax), %r11 + movq 4544(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4528(%rax), %r11 + movq 4544(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21344,7 +21434,7 @@ GL_PREFIX(CopyBufferSubData): popq %rdx popq %rsi popq %rdi - movq 4528(%rax), %r11 + movq 4544(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CopyBufferSubData), .-GL_PREFIX(CopyBufferSubData) @@ -21355,7 +21445,7 @@ GL_PREFIX(CopyBufferSubData): GL_PREFIX(ClientWaitSync): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4536(%rax), %r11 + movq 4552(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21365,13 +21455,13 @@ GL_PREFIX(ClientWaitSync): popq %rdx popq %rsi popq %rdi - movq 4536(%rax), %r11 + movq 4552(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4536(%rax), %r11 + movq 4552(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21381,7 +21471,7 @@ GL_PREFIX(ClientWaitSync): popq %rdx popq %rsi popq %rdi - movq 4536(%rax), %r11 + movq 4552(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ClientWaitSync), .-GL_PREFIX(ClientWaitSync) @@ -21392,25 +21482,25 @@ GL_PREFIX(ClientWaitSync): GL_PREFIX(DeleteSync): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4544(%rax), %r11 + movq 4560(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4544(%rax), %r11 + movq 4560(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4544(%rax), %r11 + movq 4560(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4544(%rax), %r11 + movq 4560(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteSync), .-GL_PREFIX(DeleteSync) @@ -21421,7 +21511,7 @@ GL_PREFIX(DeleteSync): GL_PREFIX(FenceSync): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4552(%rax), %r11 + movq 4568(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21431,13 +21521,13 @@ GL_PREFIX(FenceSync): popq %rbp popq %rsi popq %rdi - movq 4552(%rax), %r11 + movq 4568(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4552(%rax), %r11 + movq 4568(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21447,7 +21537,7 @@ GL_PREFIX(FenceSync): popq %rbp popq %rsi popq %rdi - movq 4552(%rax), %r11 + movq 4568(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FenceSync), .-GL_PREFIX(FenceSync) @@ -21458,7 +21548,7 @@ GL_PREFIX(FenceSync): GL_PREFIX(GetInteger64v): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4560(%rax), %r11 + movq 4576(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21468,13 +21558,13 @@ GL_PREFIX(GetInteger64v): popq %rbp popq %rsi popq %rdi - movq 4560(%rax), %r11 + movq 4576(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4560(%rax), %r11 + movq 4576(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21484,7 +21574,7 @@ GL_PREFIX(GetInteger64v): popq %rbp popq %rsi popq %rdi - movq 4560(%rax), %r11 + movq 4576(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetInteger64v), .-GL_PREFIX(GetInteger64v) @@ -21495,7 +21585,7 @@ GL_PREFIX(GetInteger64v): GL_PREFIX(GetSynciv): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4568(%rax), %r11 + movq 4584(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21509,13 +21599,13 @@ GL_PREFIX(GetSynciv): popq %rdx popq %rsi popq %rdi - movq 4568(%rax), %r11 + movq 4584(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4568(%rax), %r11 + movq 4584(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21529,7 +21619,7 @@ GL_PREFIX(GetSynciv): popq %rdx popq %rsi popq %rdi - movq 4568(%rax), %r11 + movq 4584(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetSynciv), .-GL_PREFIX(GetSynciv) @@ -21540,25 +21630,25 @@ GL_PREFIX(GetSynciv): GL_PREFIX(IsSync): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4576(%rax), %r11 + movq 4592(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4576(%rax), %r11 + movq 4592(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4576(%rax), %r11 + movq 4592(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4576(%rax), %r11 + movq 4592(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsSync), .-GL_PREFIX(IsSync) @@ -21569,7 +21659,7 @@ GL_PREFIX(IsSync): GL_PREFIX(WaitSync): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4584(%rax), %r11 + movq 4600(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21579,13 +21669,13 @@ GL_PREFIX(WaitSync): popq %rdx popq %rsi popq %rdi - movq 4584(%rax), %r11 + movq 4600(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4584(%rax), %r11 + movq 4600(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21595,7 +21685,7 @@ GL_PREFIX(WaitSync): popq %rdx popq %rsi popq %rdi - movq 4584(%rax), %r11 + movq 4600(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WaitSync), .-GL_PREFIX(WaitSync) @@ -21606,7 +21696,7 @@ GL_PREFIX(WaitSync): GL_PREFIX(DrawElementsBaseVertex): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4592(%rax), %r11 + movq 4608(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21620,13 +21710,13 @@ GL_PREFIX(DrawElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4592(%rax), %r11 + movq 4608(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4592(%rax), %r11 + movq 4608(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21640,7 +21730,7 @@ GL_PREFIX(DrawElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4592(%rax), %r11 + movq 4608(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DrawElementsBaseVertex), .-GL_PREFIX(DrawElementsBaseVertex) @@ -21651,7 +21741,7 @@ GL_PREFIX(DrawElementsBaseVertex): GL_PREFIX(DrawRangeElementsBaseVertex): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4600(%rax), %r11 + movq 4616(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21669,13 +21759,13 @@ GL_PREFIX(DrawRangeElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4600(%rax), %r11 + movq 4616(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4600(%rax), %r11 + movq 4616(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21693,7 +21783,7 @@ GL_PREFIX(DrawRangeElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4600(%rax), %r11 + movq 4616(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DrawRangeElementsBaseVertex), .-GL_PREFIX(DrawRangeElementsBaseVertex) @@ -21704,7 +21794,7 @@ GL_PREFIX(DrawRangeElementsBaseVertex): GL_PREFIX(MultiDrawElementsBaseVertex): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4608(%rax), %r11 + movq 4624(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21722,13 +21812,13 @@ GL_PREFIX(MultiDrawElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4608(%rax), %r11 + movq 4624(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4608(%rax), %r11 + movq 4624(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21746,7 +21836,7 @@ GL_PREFIX(MultiDrawElementsBaseVertex): popq %rdx popq %rsi popq %rdi - movq 4608(%rax), %r11 + movq 4624(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MultiDrawElementsBaseVertex), .-GL_PREFIX(MultiDrawElementsBaseVertex) @@ -21757,7 +21847,7 @@ GL_PREFIX(MultiDrawElementsBaseVertex): GL_PREFIX(PolygonOffsetEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4616(%rax), %r11 + movq 4632(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -21767,13 +21857,13 @@ GL_PREFIX(PolygonOffsetEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4616(%rax), %r11 + movq 4632(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4616(%rax), %r11 + movq 4632(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -21783,19 +21873,19 @@ GL_PREFIX(PolygonOffsetEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4616(%rax), %r11 + movq 4632(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PolygonOffsetEXT), .-GL_PREFIX(PolygonOffsetEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_578) - .type GL_PREFIX(_dispatch_stub_578), @function - HIDDEN(GL_PREFIX(_dispatch_stub_578)) -GL_PREFIX(_dispatch_stub_578): + .globl GL_PREFIX(_dispatch_stub_580) + .type GL_PREFIX(_dispatch_stub_580), @function + HIDDEN(GL_PREFIX(_dispatch_stub_580)) +GL_PREFIX(_dispatch_stub_580): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4624(%rax), %r11 + movq 4640(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21805,13 +21895,13 @@ GL_PREFIX(_dispatch_stub_578): popq %rbp popq %rsi popq %rdi - movq 4624(%rax), %r11 + movq 4640(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4624(%rax), %r11 + movq 4640(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21821,19 +21911,19 @@ GL_PREFIX(_dispatch_stub_578): popq %rbp popq %rsi popq %rdi - movq 4624(%rax), %r11 + movq 4640(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_578), .-GL_PREFIX(_dispatch_stub_578) + .size GL_PREFIX(_dispatch_stub_580), .-GL_PREFIX(_dispatch_stub_580) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_579) - .type GL_PREFIX(_dispatch_stub_579), @function - HIDDEN(GL_PREFIX(_dispatch_stub_579)) -GL_PREFIX(_dispatch_stub_579): + .globl GL_PREFIX(_dispatch_stub_581) + .type GL_PREFIX(_dispatch_stub_581), @function + HIDDEN(GL_PREFIX(_dispatch_stub_581)) +GL_PREFIX(_dispatch_stub_581): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4632(%rax), %r11 + movq 4648(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21843,13 +21933,13 @@ GL_PREFIX(_dispatch_stub_579): popq %rbp popq %rsi popq %rdi - movq 4632(%rax), %r11 + movq 4648(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4632(%rax), %r11 + movq 4648(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21859,19 +21949,19 @@ GL_PREFIX(_dispatch_stub_579): popq %rbp popq %rsi popq %rdi - movq 4632(%rax), %r11 + movq 4648(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_579), .-GL_PREFIX(_dispatch_stub_579) + .size GL_PREFIX(_dispatch_stub_581), .-GL_PREFIX(_dispatch_stub_581) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_580) - .type GL_PREFIX(_dispatch_stub_580), @function - HIDDEN(GL_PREFIX(_dispatch_stub_580)) -GL_PREFIX(_dispatch_stub_580): + .globl GL_PREFIX(_dispatch_stub_582) + .type GL_PREFIX(_dispatch_stub_582), @function + HIDDEN(GL_PREFIX(_dispatch_stub_582)) +GL_PREFIX(_dispatch_stub_582): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4640(%rax), %r11 + movq 4656(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -21881,13 +21971,13 @@ GL_PREFIX(_dispatch_stub_580): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4640(%rax), %r11 + movq 4656(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4640(%rax), %r11 + movq 4656(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -21897,19 +21987,19 @@ GL_PREFIX(_dispatch_stub_580): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4640(%rax), %r11 + movq 4656(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_580), .-GL_PREFIX(_dispatch_stub_580) + .size GL_PREFIX(_dispatch_stub_582), .-GL_PREFIX(_dispatch_stub_582) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_581) - .type GL_PREFIX(_dispatch_stub_581), @function - HIDDEN(GL_PREFIX(_dispatch_stub_581)) -GL_PREFIX(_dispatch_stub_581): + .globl GL_PREFIX(_dispatch_stub_583) + .type GL_PREFIX(_dispatch_stub_583), @function + HIDDEN(GL_PREFIX(_dispatch_stub_583)) +GL_PREFIX(_dispatch_stub_583): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4648(%rax), %r11 + movq 4664(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21919,13 +22009,13 @@ GL_PREFIX(_dispatch_stub_581): popq %rbp popq %rsi popq %rdi - movq 4648(%rax), %r11 + movq 4664(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4648(%rax), %r11 + movq 4664(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21935,19 +22025,19 @@ GL_PREFIX(_dispatch_stub_581): popq %rbp popq %rsi popq %rdi - movq 4648(%rax), %r11 + movq 4664(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_581), .-GL_PREFIX(_dispatch_stub_581) + .size GL_PREFIX(_dispatch_stub_583), .-GL_PREFIX(_dispatch_stub_583) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_582) - .type GL_PREFIX(_dispatch_stub_582), @function - HIDDEN(GL_PREFIX(_dispatch_stub_582)) -GL_PREFIX(_dispatch_stub_582): + .globl GL_PREFIX(_dispatch_stub_584) + .type GL_PREFIX(_dispatch_stub_584), @function + HIDDEN(GL_PREFIX(_dispatch_stub_584)) +GL_PREFIX(_dispatch_stub_584): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4656(%rax), %r11 + movq 4672(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21957,13 +22047,13 @@ GL_PREFIX(_dispatch_stub_582): popq %rbp popq %rsi popq %rdi - movq 4656(%rax), %r11 + movq 4672(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4656(%rax), %r11 + movq 4672(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -21973,19 +22063,19 @@ GL_PREFIX(_dispatch_stub_582): popq %rbp popq %rsi popq %rdi - movq 4656(%rax), %r11 + movq 4672(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_582), .-GL_PREFIX(_dispatch_stub_582) + .size GL_PREFIX(_dispatch_stub_584), .-GL_PREFIX(_dispatch_stub_584) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_583) - .type GL_PREFIX(_dispatch_stub_583), @function - HIDDEN(GL_PREFIX(_dispatch_stub_583)) -GL_PREFIX(_dispatch_stub_583): + .globl GL_PREFIX(_dispatch_stub_585) + .type GL_PREFIX(_dispatch_stub_585), @function + HIDDEN(GL_PREFIX(_dispatch_stub_585)) +GL_PREFIX(_dispatch_stub_585): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4664(%rax), %r11 + movq 4680(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -21995,13 +22085,13 @@ GL_PREFIX(_dispatch_stub_583): popq %rbp popq %rsi popq %rdi - movq 4664(%rax), %r11 + movq 4680(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4664(%rax), %r11 + movq 4680(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22011,19 +22101,19 @@ GL_PREFIX(_dispatch_stub_583): popq %rbp popq %rsi popq %rdi - movq 4664(%rax), %r11 + movq 4680(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_583), .-GL_PREFIX(_dispatch_stub_583) + .size GL_PREFIX(_dispatch_stub_585), .-GL_PREFIX(_dispatch_stub_585) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_584) - .type GL_PREFIX(_dispatch_stub_584), @function - HIDDEN(GL_PREFIX(_dispatch_stub_584)) -GL_PREFIX(_dispatch_stub_584): + .globl GL_PREFIX(_dispatch_stub_586) + .type GL_PREFIX(_dispatch_stub_586), @function + HIDDEN(GL_PREFIX(_dispatch_stub_586)) +GL_PREFIX(_dispatch_stub_586): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4672(%rax), %r11 + movq 4688(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22033,13 +22123,13 @@ GL_PREFIX(_dispatch_stub_584): popq %rbp popq %rsi popq %rdi - movq 4672(%rax), %r11 + movq 4688(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4672(%rax), %r11 + movq 4688(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22049,40 +22139,40 @@ GL_PREFIX(_dispatch_stub_584): popq %rbp popq %rsi popq %rdi - movq 4672(%rax), %r11 + movq 4688(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_584), .-GL_PREFIX(_dispatch_stub_584) + .size GL_PREFIX(_dispatch_stub_586), .-GL_PREFIX(_dispatch_stub_586) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_585) - .type GL_PREFIX(_dispatch_stub_585), @function - HIDDEN(GL_PREFIX(_dispatch_stub_585)) -GL_PREFIX(_dispatch_stub_585): + .globl GL_PREFIX(_dispatch_stub_587) + .type GL_PREFIX(_dispatch_stub_587), @function + HIDDEN(GL_PREFIX(_dispatch_stub_587)) +GL_PREFIX(_dispatch_stub_587): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4680(%rax), %r11 + movq 4696(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4680(%rax), %r11 + movq 4696(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4680(%rax), %r11 + movq 4696(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4680(%rax), %r11 + movq 4696(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_585), .-GL_PREFIX(_dispatch_stub_585) + .size GL_PREFIX(_dispatch_stub_587), .-GL_PREFIX(_dispatch_stub_587) .p2align 4,,15 .globl GL_PREFIX(ColorPointerEXT) @@ -22090,7 +22180,7 @@ GL_PREFIX(_dispatch_stub_585): GL_PREFIX(ColorPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4688(%rax), %r11 + movq 4704(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22104,13 +22194,13 @@ GL_PREFIX(ColorPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4688(%rax), %r11 + movq 4704(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4688(%rax), %r11 + movq 4704(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22124,7 +22214,7 @@ GL_PREFIX(ColorPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4688(%rax), %r11 + movq 4704(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ColorPointerEXT), .-GL_PREFIX(ColorPointerEXT) @@ -22135,7 +22225,7 @@ GL_PREFIX(ColorPointerEXT): GL_PREFIX(EdgeFlagPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4696(%rax), %r11 + movq 4712(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22145,13 +22235,13 @@ GL_PREFIX(EdgeFlagPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4696(%rax), %r11 + movq 4712(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4696(%rax), %r11 + movq 4712(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22161,7 +22251,7 @@ GL_PREFIX(EdgeFlagPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4696(%rax), %r11 + movq 4712(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EdgeFlagPointerEXT), .-GL_PREFIX(EdgeFlagPointerEXT) @@ -22172,7 +22262,7 @@ GL_PREFIX(EdgeFlagPointerEXT): GL_PREFIX(IndexPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4704(%rax), %r11 + movq 4720(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22186,13 +22276,13 @@ GL_PREFIX(IndexPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4704(%rax), %r11 + movq 4720(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4704(%rax), %r11 + movq 4720(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22206,7 +22296,7 @@ GL_PREFIX(IndexPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4704(%rax), %r11 + movq 4720(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IndexPointerEXT), .-GL_PREFIX(IndexPointerEXT) @@ -22217,7 +22307,7 @@ GL_PREFIX(IndexPointerEXT): GL_PREFIX(NormalPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4712(%rax), %r11 + movq 4728(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22231,13 +22321,13 @@ GL_PREFIX(NormalPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4712(%rax), %r11 + movq 4728(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4712(%rax), %r11 + movq 4728(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22251,7 +22341,7 @@ GL_PREFIX(NormalPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4712(%rax), %r11 + movq 4728(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(NormalPointerEXT), .-GL_PREFIX(NormalPointerEXT) @@ -22262,7 +22352,7 @@ GL_PREFIX(NormalPointerEXT): GL_PREFIX(TexCoordPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4720(%rax), %r11 + movq 4736(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22276,13 +22366,13 @@ GL_PREFIX(TexCoordPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4720(%rax), %r11 + movq 4736(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4720(%rax), %r11 + movq 4736(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22296,7 +22386,7 @@ GL_PREFIX(TexCoordPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4720(%rax), %r11 + movq 4736(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(TexCoordPointerEXT), .-GL_PREFIX(TexCoordPointerEXT) @@ -22307,7 +22397,7 @@ GL_PREFIX(TexCoordPointerEXT): GL_PREFIX(VertexPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4728(%rax), %r11 + movq 4744(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22321,13 +22411,13 @@ GL_PREFIX(VertexPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4728(%rax), %r11 + movq 4744(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4728(%rax), %r11 + movq 4744(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22341,7 +22431,7 @@ GL_PREFIX(VertexPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4728(%rax), %r11 + movq 4744(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexPointerEXT), .-GL_PREFIX(VertexPointerEXT) @@ -22352,7 +22442,7 @@ GL_PREFIX(VertexPointerEXT): GL_PREFIX(PointParameterfEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4736(%rax), %r11 + movq 4752(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -22362,13 +22452,13 @@ GL_PREFIX(PointParameterfEXT): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4736(%rax), %r11 + movq 4752(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4736(%rax), %r11 + movq 4752(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -22378,7 +22468,7 @@ GL_PREFIX(PointParameterfEXT): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 4736(%rax), %r11 + movq 4752(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PointParameterfEXT), .-GL_PREFIX(PointParameterfEXT) @@ -22389,7 +22479,7 @@ GL_PREFIX(PointParameterfEXT): GL_PREFIX(PointParameterfvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4744(%rax), %r11 + movq 4760(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22399,13 +22489,13 @@ GL_PREFIX(PointParameterfvEXT): popq %rbp popq %rsi popq %rdi - movq 4744(%rax), %r11 + movq 4760(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4744(%rax), %r11 + movq 4760(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22415,7 +22505,7 @@ GL_PREFIX(PointParameterfvEXT): popq %rbp popq %rsi popq %rdi - movq 4744(%rax), %r11 + movq 4760(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PointParameterfvEXT), .-GL_PREFIX(PointParameterfvEXT) @@ -22426,7 +22516,7 @@ GL_PREFIX(PointParameterfvEXT): GL_PREFIX(LockArraysEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4752(%rax), %r11 + movq 4768(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22436,13 +22526,13 @@ GL_PREFIX(LockArraysEXT): popq %rbp popq %rsi popq %rdi - movq 4752(%rax), %r11 + movq 4768(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4752(%rax), %r11 + movq 4768(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22452,7 +22542,7 @@ GL_PREFIX(LockArraysEXT): popq %rbp popq %rsi popq %rdi - movq 4752(%rax), %r11 + movq 4768(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(LockArraysEXT), .-GL_PREFIX(LockArraysEXT) @@ -22463,37 +22553,37 @@ GL_PREFIX(LockArraysEXT): GL_PREFIX(UnlockArraysEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4760(%rax), %r11 + movq 4776(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 4760(%rax), %r11 + movq 4776(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4760(%rax), %r11 + movq 4776(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 4760(%rax), %r11 + movq 4776(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(UnlockArraysEXT), .-GL_PREFIX(UnlockArraysEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_596) - .type GL_PREFIX(_dispatch_stub_596), @function - HIDDEN(GL_PREFIX(_dispatch_stub_596)) -GL_PREFIX(_dispatch_stub_596): + .globl GL_PREFIX(_dispatch_stub_598) + .type GL_PREFIX(_dispatch_stub_598), @function + HIDDEN(GL_PREFIX(_dispatch_stub_598)) +GL_PREFIX(_dispatch_stub_598): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4768(%rax), %r11 + movq 4784(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22503,13 +22593,13 @@ GL_PREFIX(_dispatch_stub_596): popq %rbp popq %rsi popq %rdi - movq 4768(%rax), %r11 + movq 4784(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4768(%rax), %r11 + movq 4784(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22519,19 +22609,19 @@ GL_PREFIX(_dispatch_stub_596): popq %rbp popq %rsi popq %rdi - movq 4768(%rax), %r11 + movq 4784(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_596), .-GL_PREFIX(_dispatch_stub_596) + .size GL_PREFIX(_dispatch_stub_598), .-GL_PREFIX(_dispatch_stub_598) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_597) - .type GL_PREFIX(_dispatch_stub_597), @function - HIDDEN(GL_PREFIX(_dispatch_stub_597)) -GL_PREFIX(_dispatch_stub_597): + .globl GL_PREFIX(_dispatch_stub_599) + .type GL_PREFIX(_dispatch_stub_599), @function + HIDDEN(GL_PREFIX(_dispatch_stub_599)) +GL_PREFIX(_dispatch_stub_599): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4776(%rax), %r11 + movq 4792(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22541,13 +22631,13 @@ GL_PREFIX(_dispatch_stub_597): popq %rbp popq %rsi popq %rdi - movq 4776(%rax), %r11 + movq 4792(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4776(%rax), %r11 + movq 4792(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22557,10 +22647,10 @@ GL_PREFIX(_dispatch_stub_597): popq %rbp popq %rsi popq %rdi - movq 4776(%rax), %r11 + movq 4792(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_597), .-GL_PREFIX(_dispatch_stub_597) + .size GL_PREFIX(_dispatch_stub_599), .-GL_PREFIX(_dispatch_stub_599) .p2align 4,,15 .globl GL_PREFIX(SecondaryColor3bEXT) @@ -22568,7 +22658,7 @@ GL_PREFIX(_dispatch_stub_597): GL_PREFIX(SecondaryColor3bEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4784(%rax), %r11 + movq 4800(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22578,13 +22668,13 @@ GL_PREFIX(SecondaryColor3bEXT): popq %rdx popq %rsi popq %rdi - movq 4784(%rax), %r11 + movq 4800(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4784(%rax), %r11 + movq 4800(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22594,7 +22684,7 @@ GL_PREFIX(SecondaryColor3bEXT): popq %rdx popq %rsi popq %rdi - movq 4784(%rax), %r11 + movq 4800(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3bEXT), .-GL_PREFIX(SecondaryColor3bEXT) @@ -22605,25 +22695,25 @@ GL_PREFIX(SecondaryColor3bEXT): GL_PREFIX(SecondaryColor3bvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4792(%rax), %r11 + movq 4808(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4792(%rax), %r11 + movq 4808(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4792(%rax), %r11 + movq 4808(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4792(%rax), %r11 + movq 4808(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3bvEXT), .-GL_PREFIX(SecondaryColor3bvEXT) @@ -22634,7 +22724,7 @@ GL_PREFIX(SecondaryColor3bvEXT): GL_PREFIX(SecondaryColor3dEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4800(%rax), %r11 + movq 4816(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -22646,13 +22736,13 @@ GL_PREFIX(SecondaryColor3dEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4800(%rax), %r11 + movq 4816(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4800(%rax), %r11 + movq 4816(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -22664,7 +22754,7 @@ GL_PREFIX(SecondaryColor3dEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4800(%rax), %r11 + movq 4816(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3dEXT), .-GL_PREFIX(SecondaryColor3dEXT) @@ -22675,25 +22765,25 @@ GL_PREFIX(SecondaryColor3dEXT): GL_PREFIX(SecondaryColor3dvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4808(%rax), %r11 + movq 4824(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4808(%rax), %r11 + movq 4824(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4808(%rax), %r11 + movq 4824(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4808(%rax), %r11 + movq 4824(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3dvEXT), .-GL_PREFIX(SecondaryColor3dvEXT) @@ -22704,7 +22794,7 @@ GL_PREFIX(SecondaryColor3dvEXT): GL_PREFIX(SecondaryColor3fEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4816(%rax), %r11 + movq 4832(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -22716,13 +22806,13 @@ GL_PREFIX(SecondaryColor3fEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4816(%rax), %r11 + movq 4832(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4816(%rax), %r11 + movq 4832(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -22734,7 +22824,7 @@ GL_PREFIX(SecondaryColor3fEXT): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 4816(%rax), %r11 + movq 4832(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3fEXT), .-GL_PREFIX(SecondaryColor3fEXT) @@ -22745,25 +22835,25 @@ GL_PREFIX(SecondaryColor3fEXT): GL_PREFIX(SecondaryColor3fvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4824(%rax), %r11 + movq 4840(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4824(%rax), %r11 + movq 4840(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4824(%rax), %r11 + movq 4840(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4824(%rax), %r11 + movq 4840(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3fvEXT), .-GL_PREFIX(SecondaryColor3fvEXT) @@ -22774,7 +22864,7 @@ GL_PREFIX(SecondaryColor3fvEXT): GL_PREFIX(SecondaryColor3iEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4832(%rax), %r11 + movq 4848(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22784,13 +22874,13 @@ GL_PREFIX(SecondaryColor3iEXT): popq %rdx popq %rsi popq %rdi - movq 4832(%rax), %r11 + movq 4848(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4832(%rax), %r11 + movq 4848(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22800,7 +22890,7 @@ GL_PREFIX(SecondaryColor3iEXT): popq %rdx popq %rsi popq %rdi - movq 4832(%rax), %r11 + movq 4848(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3iEXT), .-GL_PREFIX(SecondaryColor3iEXT) @@ -22811,25 +22901,25 @@ GL_PREFIX(SecondaryColor3iEXT): GL_PREFIX(SecondaryColor3ivEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4840(%rax), %r11 + movq 4856(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4840(%rax), %r11 + movq 4856(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4840(%rax), %r11 + movq 4856(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4840(%rax), %r11 + movq 4856(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3ivEXT), .-GL_PREFIX(SecondaryColor3ivEXT) @@ -22840,7 +22930,7 @@ GL_PREFIX(SecondaryColor3ivEXT): GL_PREFIX(SecondaryColor3sEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4848(%rax), %r11 + movq 4864(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22850,13 +22940,13 @@ GL_PREFIX(SecondaryColor3sEXT): popq %rdx popq %rsi popq %rdi - movq 4848(%rax), %r11 + movq 4864(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4848(%rax), %r11 + movq 4864(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22866,7 +22956,7 @@ GL_PREFIX(SecondaryColor3sEXT): popq %rdx popq %rsi popq %rdi - movq 4848(%rax), %r11 + movq 4864(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3sEXT), .-GL_PREFIX(SecondaryColor3sEXT) @@ -22877,25 +22967,25 @@ GL_PREFIX(SecondaryColor3sEXT): GL_PREFIX(SecondaryColor3svEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4856(%rax), %r11 + movq 4872(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4856(%rax), %r11 + movq 4872(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4856(%rax), %r11 + movq 4872(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4856(%rax), %r11 + movq 4872(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3svEXT), .-GL_PREFIX(SecondaryColor3svEXT) @@ -22906,7 +22996,7 @@ GL_PREFIX(SecondaryColor3svEXT): GL_PREFIX(SecondaryColor3ubEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4864(%rax), %r11 + movq 4880(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22916,13 +23006,13 @@ GL_PREFIX(SecondaryColor3ubEXT): popq %rdx popq %rsi popq %rdi - movq 4864(%rax), %r11 + movq 4880(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4864(%rax), %r11 + movq 4880(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22932,7 +23022,7 @@ GL_PREFIX(SecondaryColor3ubEXT): popq %rdx popq %rsi popq %rdi - movq 4864(%rax), %r11 + movq 4880(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3ubEXT), .-GL_PREFIX(SecondaryColor3ubEXT) @@ -22943,25 +23033,25 @@ GL_PREFIX(SecondaryColor3ubEXT): GL_PREFIX(SecondaryColor3ubvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4872(%rax), %r11 + movq 4888(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4872(%rax), %r11 + movq 4888(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4872(%rax), %r11 + movq 4888(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4872(%rax), %r11 + movq 4888(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3ubvEXT), .-GL_PREFIX(SecondaryColor3ubvEXT) @@ -22972,7 +23062,7 @@ GL_PREFIX(SecondaryColor3ubvEXT): GL_PREFIX(SecondaryColor3uiEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4880(%rax), %r11 + movq 4896(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -22982,13 +23072,13 @@ GL_PREFIX(SecondaryColor3uiEXT): popq %rdx popq %rsi popq %rdi - movq 4880(%rax), %r11 + movq 4896(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4880(%rax), %r11 + movq 4896(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -22998,7 +23088,7 @@ GL_PREFIX(SecondaryColor3uiEXT): popq %rdx popq %rsi popq %rdi - movq 4880(%rax), %r11 + movq 4896(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3uiEXT), .-GL_PREFIX(SecondaryColor3uiEXT) @@ -23009,25 +23099,25 @@ GL_PREFIX(SecondaryColor3uiEXT): GL_PREFIX(SecondaryColor3uivEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4888(%rax), %r11 + movq 4904(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4888(%rax), %r11 + movq 4904(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4888(%rax), %r11 + movq 4904(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4888(%rax), %r11 + movq 4904(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3uivEXT), .-GL_PREFIX(SecondaryColor3uivEXT) @@ -23038,7 +23128,7 @@ GL_PREFIX(SecondaryColor3uivEXT): GL_PREFIX(SecondaryColor3usEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4896(%rax), %r11 + movq 4912(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23048,13 +23138,13 @@ GL_PREFIX(SecondaryColor3usEXT): popq %rdx popq %rsi popq %rdi - movq 4896(%rax), %r11 + movq 4912(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4896(%rax), %r11 + movq 4912(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23064,7 +23154,7 @@ GL_PREFIX(SecondaryColor3usEXT): popq %rdx popq %rsi popq %rdi - movq 4896(%rax), %r11 + movq 4912(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3usEXT), .-GL_PREFIX(SecondaryColor3usEXT) @@ -23075,25 +23165,25 @@ GL_PREFIX(SecondaryColor3usEXT): GL_PREFIX(SecondaryColor3usvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4904(%rax), %r11 + movq 4920(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4904(%rax), %r11 + movq 4920(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4904(%rax), %r11 + movq 4920(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4904(%rax), %r11 + movq 4920(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColor3usvEXT), .-GL_PREFIX(SecondaryColor3usvEXT) @@ -23104,7 +23194,7 @@ GL_PREFIX(SecondaryColor3usvEXT): GL_PREFIX(SecondaryColorPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4912(%rax), %r11 + movq 4928(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23118,13 +23208,13 @@ GL_PREFIX(SecondaryColorPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4912(%rax), %r11 + movq 4928(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4912(%rax), %r11 + movq 4928(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23138,7 +23228,7 @@ GL_PREFIX(SecondaryColorPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4912(%rax), %r11 + movq 4928(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SecondaryColorPointerEXT), .-GL_PREFIX(SecondaryColorPointerEXT) @@ -23149,7 +23239,7 @@ GL_PREFIX(SecondaryColorPointerEXT): GL_PREFIX(MultiDrawArraysEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4920(%rax), %r11 + movq 4936(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23163,13 +23253,13 @@ GL_PREFIX(MultiDrawArraysEXT): popq %rdx popq %rsi popq %rdi - movq 4920(%rax), %r11 + movq 4936(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4920(%rax), %r11 + movq 4936(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23183,7 +23273,7 @@ GL_PREFIX(MultiDrawArraysEXT): popq %rdx popq %rsi popq %rdi - movq 4920(%rax), %r11 + movq 4936(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MultiDrawArraysEXT), .-GL_PREFIX(MultiDrawArraysEXT) @@ -23194,7 +23284,7 @@ GL_PREFIX(MultiDrawArraysEXT): GL_PREFIX(MultiDrawElementsEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4928(%rax), %r11 + movq 4944(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23208,13 +23298,13 @@ GL_PREFIX(MultiDrawElementsEXT): popq %rdx popq %rsi popq %rdi - movq 4928(%rax), %r11 + movq 4944(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4928(%rax), %r11 + movq 4944(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23228,7 +23318,7 @@ GL_PREFIX(MultiDrawElementsEXT): popq %rdx popq %rsi popq %rdi - movq 4928(%rax), %r11 + movq 4944(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(MultiDrawElementsEXT), .-GL_PREFIX(MultiDrawElementsEXT) @@ -23239,7 +23329,7 @@ GL_PREFIX(MultiDrawElementsEXT): GL_PREFIX(FogCoordPointerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4936(%rax), %r11 + movq 4952(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23249,13 +23339,13 @@ GL_PREFIX(FogCoordPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4936(%rax), %r11 + movq 4952(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4936(%rax), %r11 + movq 4952(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23265,7 +23355,7 @@ GL_PREFIX(FogCoordPointerEXT): popq %rdx popq %rsi popq %rdi - movq 4936(%rax), %r11 + movq 4952(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FogCoordPointerEXT), .-GL_PREFIX(FogCoordPointerEXT) @@ -23276,7 +23366,7 @@ GL_PREFIX(FogCoordPointerEXT): GL_PREFIX(FogCoorddEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4944(%rax), %r11 + movq 4960(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $8, %rsp @@ -23284,13 +23374,13 @@ GL_PREFIX(FogCoorddEXT): call _x86_64_get_dispatch@PLT movq (%rsp), %xmm0 addq $8, %rsp - movq 4944(%rax), %r11 + movq 4960(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4944(%rax), %r11 + movq 4960(%rax), %r11 jmp *%r11 1: subq $8, %rsp @@ -23298,7 +23388,7 @@ GL_PREFIX(FogCoorddEXT): call _glapi_get_dispatch movq (%rsp), %xmm0 addq $8, %rsp - movq 4944(%rax), %r11 + movq 4960(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FogCoorddEXT), .-GL_PREFIX(FogCoorddEXT) @@ -23309,25 +23399,25 @@ GL_PREFIX(FogCoorddEXT): GL_PREFIX(FogCoorddvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4952(%rax), %r11 + movq 4968(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4952(%rax), %r11 + movq 4968(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4952(%rax), %r11 + movq 4968(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4952(%rax), %r11 + movq 4968(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FogCoorddvEXT), .-GL_PREFIX(FogCoorddvEXT) @@ -23338,7 +23428,7 @@ GL_PREFIX(FogCoorddvEXT): GL_PREFIX(FogCoordfEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4960(%rax), %r11 + movq 4976(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $8, %rsp @@ -23346,13 +23436,13 @@ GL_PREFIX(FogCoordfEXT): call _x86_64_get_dispatch@PLT movq (%rsp), %xmm0 addq $8, %rsp - movq 4960(%rax), %r11 + movq 4976(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4960(%rax), %r11 + movq 4976(%rax), %r11 jmp *%r11 1: subq $8, %rsp @@ -23360,7 +23450,7 @@ GL_PREFIX(FogCoordfEXT): call _glapi_get_dispatch movq (%rsp), %xmm0 addq $8, %rsp - movq 4960(%rax), %r11 + movq 4976(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FogCoordfEXT), .-GL_PREFIX(FogCoordfEXT) @@ -23371,58 +23461,58 @@ GL_PREFIX(FogCoordfEXT): GL_PREFIX(FogCoordfvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4968(%rax), %r11 + movq 4984(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4968(%rax), %r11 + movq 4984(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4968(%rax), %r11 + movq 4984(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4968(%rax), %r11 + movq 4984(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FogCoordfvEXT), .-GL_PREFIX(FogCoordfvEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_622) - .type GL_PREFIX(_dispatch_stub_622), @function - HIDDEN(GL_PREFIX(_dispatch_stub_622)) -GL_PREFIX(_dispatch_stub_622): + .globl GL_PREFIX(_dispatch_stub_624) + .type GL_PREFIX(_dispatch_stub_624), @function + HIDDEN(GL_PREFIX(_dispatch_stub_624)) +GL_PREFIX(_dispatch_stub_624): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4976(%rax), %r11 + movq 4992(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 4976(%rax), %r11 + movq 4992(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4976(%rax), %r11 + movq 4992(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 4976(%rax), %r11 + movq 4992(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_622), .-GL_PREFIX(_dispatch_stub_622) + .size GL_PREFIX(_dispatch_stub_624), .-GL_PREFIX(_dispatch_stub_624) .p2align 4,,15 .globl GL_PREFIX(BlendFuncSeparateEXT) @@ -23430,7 +23520,7 @@ GL_PREFIX(_dispatch_stub_622): GL_PREFIX(BlendFuncSeparateEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4984(%rax), %r11 + movq 5000(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23444,13 +23534,13 @@ GL_PREFIX(BlendFuncSeparateEXT): popq %rdx popq %rsi popq %rdi - movq 4984(%rax), %r11 + movq 5000(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4984(%rax), %r11 + movq 5000(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23464,7 +23554,7 @@ GL_PREFIX(BlendFuncSeparateEXT): popq %rdx popq %rsi popq %rdi - movq 4984(%rax), %r11 + movq 5000(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BlendFuncSeparateEXT), .-GL_PREFIX(BlendFuncSeparateEXT) @@ -23475,25 +23565,25 @@ GL_PREFIX(BlendFuncSeparateEXT): GL_PREFIX(FlushVertexArrayRangeNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 4992(%rax), %r11 + movq 5008(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 4992(%rax), %r11 + movq 5008(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 4992(%rax), %r11 + movq 5008(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 4992(%rax), %r11 + movq 5008(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FlushVertexArrayRangeNV), .-GL_PREFIX(FlushVertexArrayRangeNV) @@ -23504,7 +23594,7 @@ GL_PREFIX(FlushVertexArrayRangeNV): GL_PREFIX(VertexArrayRangeNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5000(%rax), %r11 + movq 5016(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23514,13 +23604,13 @@ GL_PREFIX(VertexArrayRangeNV): popq %rbp popq %rsi popq %rdi - movq 5000(%rax), %r11 + movq 5016(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5000(%rax), %r11 + movq 5016(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23530,7 +23620,7 @@ GL_PREFIX(VertexArrayRangeNV): popq %rbp popq %rsi popq %rdi - movq 5000(%rax), %r11 + movq 5016(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexArrayRangeNV), .-GL_PREFIX(VertexArrayRangeNV) @@ -23541,7 +23631,7 @@ GL_PREFIX(VertexArrayRangeNV): GL_PREFIX(CombinerInputNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5008(%rax), %r11 + movq 5024(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23559,13 +23649,13 @@ GL_PREFIX(CombinerInputNV): popq %rdx popq %rsi popq %rdi - movq 5008(%rax), %r11 + movq 5024(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5008(%rax), %r11 + movq 5024(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23583,7 +23673,7 @@ GL_PREFIX(CombinerInputNV): popq %rdx popq %rsi popq %rdi - movq 5008(%rax), %r11 + movq 5024(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerInputNV), .-GL_PREFIX(CombinerInputNV) @@ -23594,7 +23684,7 @@ GL_PREFIX(CombinerInputNV): GL_PREFIX(CombinerOutputNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5016(%rax), %r11 + movq 5032(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23612,13 +23702,13 @@ GL_PREFIX(CombinerOutputNV): popq %rdx popq %rsi popq %rdi - movq 5016(%rax), %r11 + movq 5032(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5016(%rax), %r11 + movq 5032(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23636,7 +23726,7 @@ GL_PREFIX(CombinerOutputNV): popq %rdx popq %rsi popq %rdi - movq 5016(%rax), %r11 + movq 5032(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerOutputNV), .-GL_PREFIX(CombinerOutputNV) @@ -23647,7 +23737,7 @@ GL_PREFIX(CombinerOutputNV): GL_PREFIX(CombinerParameterfNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5024(%rax), %r11 + movq 5040(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -23657,13 +23747,13 @@ GL_PREFIX(CombinerParameterfNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5024(%rax), %r11 + movq 5040(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5024(%rax), %r11 + movq 5040(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -23673,7 +23763,7 @@ GL_PREFIX(CombinerParameterfNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5024(%rax), %r11 + movq 5040(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerParameterfNV), .-GL_PREFIX(CombinerParameterfNV) @@ -23684,7 +23774,7 @@ GL_PREFIX(CombinerParameterfNV): GL_PREFIX(CombinerParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5032(%rax), %r11 + movq 5048(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23694,13 +23784,13 @@ GL_PREFIX(CombinerParameterfvNV): popq %rbp popq %rsi popq %rdi - movq 5032(%rax), %r11 + movq 5048(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5032(%rax), %r11 + movq 5048(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23710,7 +23800,7 @@ GL_PREFIX(CombinerParameterfvNV): popq %rbp popq %rsi popq %rdi - movq 5032(%rax), %r11 + movq 5048(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerParameterfvNV), .-GL_PREFIX(CombinerParameterfvNV) @@ -23721,7 +23811,7 @@ GL_PREFIX(CombinerParameterfvNV): GL_PREFIX(CombinerParameteriNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5040(%rax), %r11 + movq 5056(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23731,13 +23821,13 @@ GL_PREFIX(CombinerParameteriNV): popq %rbp popq %rsi popq %rdi - movq 5040(%rax), %r11 + movq 5056(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5040(%rax), %r11 + movq 5056(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23747,7 +23837,7 @@ GL_PREFIX(CombinerParameteriNV): popq %rbp popq %rsi popq %rdi - movq 5040(%rax), %r11 + movq 5056(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerParameteriNV), .-GL_PREFIX(CombinerParameteriNV) @@ -23758,7 +23848,7 @@ GL_PREFIX(CombinerParameteriNV): GL_PREFIX(CombinerParameterivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5048(%rax), %r11 + movq 5064(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23768,13 +23858,13 @@ GL_PREFIX(CombinerParameterivNV): popq %rbp popq %rsi popq %rdi - movq 5048(%rax), %r11 + movq 5064(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5048(%rax), %r11 + movq 5064(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23784,7 +23874,7 @@ GL_PREFIX(CombinerParameterivNV): popq %rbp popq %rsi popq %rdi - movq 5048(%rax), %r11 + movq 5064(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CombinerParameterivNV), .-GL_PREFIX(CombinerParameterivNV) @@ -23795,7 +23885,7 @@ GL_PREFIX(CombinerParameterivNV): GL_PREFIX(FinalCombinerInputNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5056(%rax), %r11 + movq 5072(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23809,13 +23899,13 @@ GL_PREFIX(FinalCombinerInputNV): popq %rdx popq %rsi popq %rdi - movq 5056(%rax), %r11 + movq 5072(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5056(%rax), %r11 + movq 5072(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23829,7 +23919,7 @@ GL_PREFIX(FinalCombinerInputNV): popq %rdx popq %rsi popq %rdi - movq 5056(%rax), %r11 + movq 5072(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FinalCombinerInputNV), .-GL_PREFIX(FinalCombinerInputNV) @@ -23840,7 +23930,7 @@ GL_PREFIX(FinalCombinerInputNV): GL_PREFIX(GetCombinerInputParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5064(%rax), %r11 + movq 5080(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23854,13 +23944,13 @@ GL_PREFIX(GetCombinerInputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5064(%rax), %r11 + movq 5080(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5064(%rax), %r11 + movq 5080(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23874,7 +23964,7 @@ GL_PREFIX(GetCombinerInputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5064(%rax), %r11 + movq 5080(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetCombinerInputParameterfvNV), .-GL_PREFIX(GetCombinerInputParameterfvNV) @@ -23885,7 +23975,7 @@ GL_PREFIX(GetCombinerInputParameterfvNV): GL_PREFIX(GetCombinerInputParameterivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5072(%rax), %r11 + movq 5088(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23899,13 +23989,13 @@ GL_PREFIX(GetCombinerInputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5072(%rax), %r11 + movq 5088(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5072(%rax), %r11 + movq 5088(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23919,7 +24009,7 @@ GL_PREFIX(GetCombinerInputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5072(%rax), %r11 + movq 5088(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetCombinerInputParameterivNV), .-GL_PREFIX(GetCombinerInputParameterivNV) @@ -23930,7 +24020,7 @@ GL_PREFIX(GetCombinerInputParameterivNV): GL_PREFIX(GetCombinerOutputParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5080(%rax), %r11 + movq 5096(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23944,13 +24034,13 @@ GL_PREFIX(GetCombinerOutputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5080(%rax), %r11 + movq 5096(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5080(%rax), %r11 + movq 5096(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -23964,7 +24054,7 @@ GL_PREFIX(GetCombinerOutputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5080(%rax), %r11 + movq 5096(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetCombinerOutputParameterfvNV), .-GL_PREFIX(GetCombinerOutputParameterfvNV) @@ -23975,7 +24065,7 @@ GL_PREFIX(GetCombinerOutputParameterfvNV): GL_PREFIX(GetCombinerOutputParameterivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5088(%rax), %r11 + movq 5104(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -23989,13 +24079,13 @@ GL_PREFIX(GetCombinerOutputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5088(%rax), %r11 + movq 5104(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5088(%rax), %r11 + movq 5104(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24009,7 +24099,7 @@ GL_PREFIX(GetCombinerOutputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5088(%rax), %r11 + movq 5104(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetCombinerOutputParameterivNV), .-GL_PREFIX(GetCombinerOutputParameterivNV) @@ -24020,7 +24110,7 @@ GL_PREFIX(GetCombinerOutputParameterivNV): GL_PREFIX(GetFinalCombinerInputParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5096(%rax), %r11 + movq 5112(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24030,13 +24120,13 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5096(%rax), %r11 + movq 5112(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5096(%rax), %r11 + movq 5112(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24046,7 +24136,7 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5096(%rax), %r11 + movq 5112(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetFinalCombinerInputParameterfvNV), .-GL_PREFIX(GetFinalCombinerInputParameterfvNV) @@ -24057,7 +24147,7 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV): GL_PREFIX(GetFinalCombinerInputParameterivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5104(%rax), %r11 + movq 5120(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24067,13 +24157,13 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5104(%rax), %r11 + movq 5120(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5104(%rax), %r11 + movq 5120(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24083,7 +24173,7 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV): popq %rdx popq %rsi popq %rdi - movq 5104(%rax), %r11 + movq 5120(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetFinalCombinerInputParameterivNV), .-GL_PREFIX(GetFinalCombinerInputParameterivNV) @@ -24094,25 +24184,25 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV): GL_PREFIX(ResizeBuffersMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5112(%rax), %r11 + movq 5128(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 5112(%rax), %r11 + movq 5128(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5112(%rax), %r11 + movq 5128(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 5112(%rax), %r11 + movq 5128(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ResizeBuffersMESA), .-GL_PREFIX(ResizeBuffersMESA) @@ -24123,7 +24213,7 @@ GL_PREFIX(ResizeBuffersMESA): GL_PREFIX(WindowPos2dMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5120(%rax), %r11 + movq 5136(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -24133,13 +24223,13 @@ GL_PREFIX(WindowPos2dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5120(%rax), %r11 + movq 5136(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5120(%rax), %r11 + movq 5136(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -24149,7 +24239,7 @@ GL_PREFIX(WindowPos2dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5120(%rax), %r11 + movq 5136(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2dMESA), .-GL_PREFIX(WindowPos2dMESA) @@ -24160,25 +24250,25 @@ GL_PREFIX(WindowPos2dMESA): GL_PREFIX(WindowPos2dvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5128(%rax), %r11 + movq 5144(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5128(%rax), %r11 + movq 5144(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5128(%rax), %r11 + movq 5144(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5128(%rax), %r11 + movq 5144(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2dvMESA), .-GL_PREFIX(WindowPos2dvMESA) @@ -24189,7 +24279,7 @@ GL_PREFIX(WindowPos2dvMESA): GL_PREFIX(WindowPos2fMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5136(%rax), %r11 + movq 5152(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -24199,13 +24289,13 @@ GL_PREFIX(WindowPos2fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5136(%rax), %r11 + movq 5152(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5136(%rax), %r11 + movq 5152(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -24215,7 +24305,7 @@ GL_PREFIX(WindowPos2fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5136(%rax), %r11 + movq 5152(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2fMESA), .-GL_PREFIX(WindowPos2fMESA) @@ -24226,25 +24316,25 @@ GL_PREFIX(WindowPos2fMESA): GL_PREFIX(WindowPos2fvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5144(%rax), %r11 + movq 5160(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5144(%rax), %r11 + movq 5160(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5144(%rax), %r11 + movq 5160(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5144(%rax), %r11 + movq 5160(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2fvMESA), .-GL_PREFIX(WindowPos2fvMESA) @@ -24255,7 +24345,7 @@ GL_PREFIX(WindowPos2fvMESA): GL_PREFIX(WindowPos2iMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5152(%rax), %r11 + movq 5168(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24265,13 +24355,13 @@ GL_PREFIX(WindowPos2iMESA): popq %rbp popq %rsi popq %rdi - movq 5152(%rax), %r11 + movq 5168(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5152(%rax), %r11 + movq 5168(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24281,7 +24371,7 @@ GL_PREFIX(WindowPos2iMESA): popq %rbp popq %rsi popq %rdi - movq 5152(%rax), %r11 + movq 5168(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2iMESA), .-GL_PREFIX(WindowPos2iMESA) @@ -24292,25 +24382,25 @@ GL_PREFIX(WindowPos2iMESA): GL_PREFIX(WindowPos2ivMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5160(%rax), %r11 + movq 5176(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5160(%rax), %r11 + movq 5176(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5160(%rax), %r11 + movq 5176(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5160(%rax), %r11 + movq 5176(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2ivMESA), .-GL_PREFIX(WindowPos2ivMESA) @@ -24321,7 +24411,7 @@ GL_PREFIX(WindowPos2ivMESA): GL_PREFIX(WindowPos2sMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5168(%rax), %r11 + movq 5184(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24331,13 +24421,13 @@ GL_PREFIX(WindowPos2sMESA): popq %rbp popq %rsi popq %rdi - movq 5168(%rax), %r11 + movq 5184(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5168(%rax), %r11 + movq 5184(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24347,7 +24437,7 @@ GL_PREFIX(WindowPos2sMESA): popq %rbp popq %rsi popq %rdi - movq 5168(%rax), %r11 + movq 5184(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2sMESA), .-GL_PREFIX(WindowPos2sMESA) @@ -24358,25 +24448,25 @@ GL_PREFIX(WindowPos2sMESA): GL_PREFIX(WindowPos2svMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5176(%rax), %r11 + movq 5192(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5176(%rax), %r11 + movq 5192(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5176(%rax), %r11 + movq 5192(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5176(%rax), %r11 + movq 5192(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos2svMESA), .-GL_PREFIX(WindowPos2svMESA) @@ -24387,7 +24477,7 @@ GL_PREFIX(WindowPos2svMESA): GL_PREFIX(WindowPos3dMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5184(%rax), %r11 + movq 5200(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -24399,13 +24489,13 @@ GL_PREFIX(WindowPos3dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5184(%rax), %r11 + movq 5200(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5184(%rax), %r11 + movq 5200(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -24417,7 +24507,7 @@ GL_PREFIX(WindowPos3dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5184(%rax), %r11 + movq 5200(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3dMESA), .-GL_PREFIX(WindowPos3dMESA) @@ -24428,25 +24518,25 @@ GL_PREFIX(WindowPos3dMESA): GL_PREFIX(WindowPos3dvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5192(%rax), %r11 + movq 5208(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5192(%rax), %r11 + movq 5208(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5192(%rax), %r11 + movq 5208(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5192(%rax), %r11 + movq 5208(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3dvMESA), .-GL_PREFIX(WindowPos3dvMESA) @@ -24457,7 +24547,7 @@ GL_PREFIX(WindowPos3dvMESA): GL_PREFIX(WindowPos3fMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5200(%rax), %r11 + movq 5216(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -24469,13 +24559,13 @@ GL_PREFIX(WindowPos3fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5200(%rax), %r11 + movq 5216(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5200(%rax), %r11 + movq 5216(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -24487,7 +24577,7 @@ GL_PREFIX(WindowPos3fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $24, %rsp - movq 5200(%rax), %r11 + movq 5216(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3fMESA), .-GL_PREFIX(WindowPos3fMESA) @@ -24498,25 +24588,25 @@ GL_PREFIX(WindowPos3fMESA): GL_PREFIX(WindowPos3fvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5208(%rax), %r11 + movq 5224(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5208(%rax), %r11 + movq 5224(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5208(%rax), %r11 + movq 5224(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5208(%rax), %r11 + movq 5224(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3fvMESA), .-GL_PREFIX(WindowPos3fvMESA) @@ -24527,7 +24617,7 @@ GL_PREFIX(WindowPos3fvMESA): GL_PREFIX(WindowPos3iMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5216(%rax), %r11 + movq 5232(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24537,13 +24627,13 @@ GL_PREFIX(WindowPos3iMESA): popq %rdx popq %rsi popq %rdi - movq 5216(%rax), %r11 + movq 5232(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5216(%rax), %r11 + movq 5232(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24553,7 +24643,7 @@ GL_PREFIX(WindowPos3iMESA): popq %rdx popq %rsi popq %rdi - movq 5216(%rax), %r11 + movq 5232(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3iMESA), .-GL_PREFIX(WindowPos3iMESA) @@ -24564,25 +24654,25 @@ GL_PREFIX(WindowPos3iMESA): GL_PREFIX(WindowPos3ivMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5224(%rax), %r11 + movq 5240(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5224(%rax), %r11 + movq 5240(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5224(%rax), %r11 + movq 5240(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5224(%rax), %r11 + movq 5240(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3ivMESA), .-GL_PREFIX(WindowPos3ivMESA) @@ -24593,7 +24683,7 @@ GL_PREFIX(WindowPos3ivMESA): GL_PREFIX(WindowPos3sMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5232(%rax), %r11 + movq 5248(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24603,13 +24693,13 @@ GL_PREFIX(WindowPos3sMESA): popq %rdx popq %rsi popq %rdi - movq 5232(%rax), %r11 + movq 5248(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5232(%rax), %r11 + movq 5248(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24619,7 +24709,7 @@ GL_PREFIX(WindowPos3sMESA): popq %rdx popq %rsi popq %rdi - movq 5232(%rax), %r11 + movq 5248(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3sMESA), .-GL_PREFIX(WindowPos3sMESA) @@ -24630,25 +24720,25 @@ GL_PREFIX(WindowPos3sMESA): GL_PREFIX(WindowPos3svMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5240(%rax), %r11 + movq 5256(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5240(%rax), %r11 + movq 5256(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5240(%rax), %r11 + movq 5256(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5240(%rax), %r11 + movq 5256(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos3svMESA), .-GL_PREFIX(WindowPos3svMESA) @@ -24659,7 +24749,7 @@ GL_PREFIX(WindowPos3svMESA): GL_PREFIX(WindowPos4dMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5248(%rax), %r11 + movq 5264(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -24673,13 +24763,13 @@ GL_PREFIX(WindowPos4dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $40, %rsp - movq 5248(%rax), %r11 + movq 5264(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5248(%rax), %r11 + movq 5264(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -24693,7 +24783,7 @@ GL_PREFIX(WindowPos4dMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $40, %rsp - movq 5248(%rax), %r11 + movq 5264(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4dMESA), .-GL_PREFIX(WindowPos4dMESA) @@ -24704,25 +24794,25 @@ GL_PREFIX(WindowPos4dMESA): GL_PREFIX(WindowPos4dvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5256(%rax), %r11 + movq 5272(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5256(%rax), %r11 + movq 5272(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5256(%rax), %r11 + movq 5272(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5256(%rax), %r11 + movq 5272(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4dvMESA), .-GL_PREFIX(WindowPos4dvMESA) @@ -24733,7 +24823,7 @@ GL_PREFIX(WindowPos4dvMESA): GL_PREFIX(WindowPos4fMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5264(%rax), %r11 + movq 5280(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -24747,13 +24837,13 @@ GL_PREFIX(WindowPos4fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $40, %rsp - movq 5264(%rax), %r11 + movq 5280(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5264(%rax), %r11 + movq 5280(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -24767,7 +24857,7 @@ GL_PREFIX(WindowPos4fMESA): movq 8(%rsp), %xmm1 movq (%rsp), %xmm0 addq $40, %rsp - movq 5264(%rax), %r11 + movq 5280(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4fMESA), .-GL_PREFIX(WindowPos4fMESA) @@ -24778,25 +24868,25 @@ GL_PREFIX(WindowPos4fMESA): GL_PREFIX(WindowPos4fvMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5272(%rax), %r11 + movq 5288(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5272(%rax), %r11 + movq 5288(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5272(%rax), %r11 + movq 5288(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5272(%rax), %r11 + movq 5288(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4fvMESA), .-GL_PREFIX(WindowPos4fvMESA) @@ -24807,7 +24897,7 @@ GL_PREFIX(WindowPos4fvMESA): GL_PREFIX(WindowPos4iMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5280(%rax), %r11 + movq 5296(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24821,13 +24911,13 @@ GL_PREFIX(WindowPos4iMESA): popq %rdx popq %rsi popq %rdi - movq 5280(%rax), %r11 + movq 5296(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5280(%rax), %r11 + movq 5296(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24841,7 +24931,7 @@ GL_PREFIX(WindowPos4iMESA): popq %rdx popq %rsi popq %rdi - movq 5280(%rax), %r11 + movq 5296(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4iMESA), .-GL_PREFIX(WindowPos4iMESA) @@ -24852,25 +24942,25 @@ GL_PREFIX(WindowPos4iMESA): GL_PREFIX(WindowPos4ivMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5288(%rax), %r11 + movq 5304(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5288(%rax), %r11 + movq 5304(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5288(%rax), %r11 + movq 5304(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5288(%rax), %r11 + movq 5304(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4ivMESA), .-GL_PREFIX(WindowPos4ivMESA) @@ -24881,7 +24971,7 @@ GL_PREFIX(WindowPos4ivMESA): GL_PREFIX(WindowPos4sMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5296(%rax), %r11 + movq 5312(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24895,13 +24985,13 @@ GL_PREFIX(WindowPos4sMESA): popq %rdx popq %rsi popq %rdi - movq 5296(%rax), %r11 + movq 5312(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5296(%rax), %r11 + movq 5312(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24915,7 +25005,7 @@ GL_PREFIX(WindowPos4sMESA): popq %rdx popq %rsi popq %rdi - movq 5296(%rax), %r11 + movq 5312(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4sMESA), .-GL_PREFIX(WindowPos4sMESA) @@ -24926,37 +25016,37 @@ GL_PREFIX(WindowPos4sMESA): GL_PREFIX(WindowPos4svMESA): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5304(%rax), %r11 + movq 5320(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5304(%rax), %r11 + movq 5320(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5304(%rax), %r11 + movq 5320(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5304(%rax), %r11 + movq 5320(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(WindowPos4svMESA), .-GL_PREFIX(WindowPos4svMESA) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_664) - .type GL_PREFIX(_dispatch_stub_664), @function - HIDDEN(GL_PREFIX(_dispatch_stub_664)) -GL_PREFIX(_dispatch_stub_664): + .globl GL_PREFIX(_dispatch_stub_666) + .type GL_PREFIX(_dispatch_stub_666), @function + HIDDEN(GL_PREFIX(_dispatch_stub_666)) +GL_PREFIX(_dispatch_stub_666): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5312(%rax), %r11 + movq 5328(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -24970,13 +25060,13 @@ GL_PREFIX(_dispatch_stub_664): popq %rdx popq %rsi popq %rdi - movq 5312(%rax), %r11 + movq 5328(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5312(%rax), %r11 + movq 5328(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -24990,19 +25080,19 @@ GL_PREFIX(_dispatch_stub_664): popq %rdx popq %rsi popq %rdi - movq 5312(%rax), %r11 + movq 5328(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_664), .-GL_PREFIX(_dispatch_stub_664) + .size GL_PREFIX(_dispatch_stub_666), .-GL_PREFIX(_dispatch_stub_666) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_665) - .type GL_PREFIX(_dispatch_stub_665), @function - HIDDEN(GL_PREFIX(_dispatch_stub_665)) -GL_PREFIX(_dispatch_stub_665): + .globl GL_PREFIX(_dispatch_stub_667) + .type GL_PREFIX(_dispatch_stub_667), @function + HIDDEN(GL_PREFIX(_dispatch_stub_667)) +GL_PREFIX(_dispatch_stub_667): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5320(%rax), %r11 + movq 5336(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25020,13 +25110,13 @@ GL_PREFIX(_dispatch_stub_665): popq %rdx popq %rsi popq %rdi - movq 5320(%rax), %r11 + movq 5336(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5320(%rax), %r11 + movq 5336(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25044,19 +25134,19 @@ GL_PREFIX(_dispatch_stub_665): popq %rdx popq %rsi popq %rdi - movq 5320(%rax), %r11 + movq 5336(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_665), .-GL_PREFIX(_dispatch_stub_665) + .size GL_PREFIX(_dispatch_stub_667), .-GL_PREFIX(_dispatch_stub_667) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_666) - .type GL_PREFIX(_dispatch_stub_666), @function - HIDDEN(GL_PREFIX(_dispatch_stub_666)) -GL_PREFIX(_dispatch_stub_666): + .globl GL_PREFIX(_dispatch_stub_668) + .type GL_PREFIX(_dispatch_stub_668), @function + HIDDEN(GL_PREFIX(_dispatch_stub_668)) +GL_PREFIX(_dispatch_stub_668): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5328(%rax), %r11 + movq 5344(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25066,13 +25156,13 @@ GL_PREFIX(_dispatch_stub_666): popq %rbp popq %rsi popq %rdi - movq 5328(%rax), %r11 + movq 5344(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5328(%rax), %r11 + movq 5344(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25082,49 +25172,49 @@ GL_PREFIX(_dispatch_stub_666): popq %rbp popq %rsi popq %rdi - movq 5328(%rax), %r11 + movq 5344(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_666), .-GL_PREFIX(_dispatch_stub_666) + .size GL_PREFIX(_dispatch_stub_668), .-GL_PREFIX(_dispatch_stub_668) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_667) - .type GL_PREFIX(_dispatch_stub_667), @function - HIDDEN(GL_PREFIX(_dispatch_stub_667)) -GL_PREFIX(_dispatch_stub_667): + .globl GL_PREFIX(_dispatch_stub_669) + .type GL_PREFIX(_dispatch_stub_669), @function + HIDDEN(GL_PREFIX(_dispatch_stub_669)) +GL_PREFIX(_dispatch_stub_669): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5336(%rax), %r11 + movq 5352(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5336(%rax), %r11 + movq 5352(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5336(%rax), %r11 + movq 5352(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5336(%rax), %r11 + movq 5352(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_667), .-GL_PREFIX(_dispatch_stub_667) - - .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_668) - .type GL_PREFIX(_dispatch_stub_668), @function - HIDDEN(GL_PREFIX(_dispatch_stub_668)) -GL_PREFIX(_dispatch_stub_668): + .size GL_PREFIX(_dispatch_stub_669), .-GL_PREFIX(_dispatch_stub_669) + + .p2align 4,,15 + .globl GL_PREFIX(_dispatch_stub_670) + .type GL_PREFIX(_dispatch_stub_670), @function + HIDDEN(GL_PREFIX(_dispatch_stub_670)) +GL_PREFIX(_dispatch_stub_670): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5344(%rax), %r11 + movq 5360(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25134,13 +25224,13 @@ GL_PREFIX(_dispatch_stub_668): popq %rbp popq %rsi popq %rdi - movq 5344(%rax), %r11 + movq 5360(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5344(%rax), %r11 + movq 5360(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25150,19 +25240,19 @@ GL_PREFIX(_dispatch_stub_668): popq %rbp popq %rsi popq %rdi - movq 5344(%rax), %r11 + movq 5360(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_668), .-GL_PREFIX(_dispatch_stub_668) + .size GL_PREFIX(_dispatch_stub_670), .-GL_PREFIX(_dispatch_stub_670) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_669) - .type GL_PREFIX(_dispatch_stub_669), @function - HIDDEN(GL_PREFIX(_dispatch_stub_669)) -GL_PREFIX(_dispatch_stub_669): + .globl GL_PREFIX(_dispatch_stub_671) + .type GL_PREFIX(_dispatch_stub_671), @function + HIDDEN(GL_PREFIX(_dispatch_stub_671)) +GL_PREFIX(_dispatch_stub_671): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5352(%rax), %r11 + movq 5368(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25172,13 +25262,13 @@ GL_PREFIX(_dispatch_stub_669): popq %rdx popq %rsi popq %rdi - movq 5352(%rax), %r11 + movq 5368(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5352(%rax), %r11 + movq 5368(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25188,49 +25278,49 @@ GL_PREFIX(_dispatch_stub_669): popq %rdx popq %rsi popq %rdi - movq 5352(%rax), %r11 + movq 5368(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_669), .-GL_PREFIX(_dispatch_stub_669) + .size GL_PREFIX(_dispatch_stub_671), .-GL_PREFIX(_dispatch_stub_671) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_670) - .type GL_PREFIX(_dispatch_stub_670), @function - HIDDEN(GL_PREFIX(_dispatch_stub_670)) -GL_PREFIX(_dispatch_stub_670): + .globl GL_PREFIX(_dispatch_stub_672) + .type GL_PREFIX(_dispatch_stub_672), @function + HIDDEN(GL_PREFIX(_dispatch_stub_672)) +GL_PREFIX(_dispatch_stub_672): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5360(%rax), %r11 + movq 5376(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5360(%rax), %r11 + movq 5376(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5360(%rax), %r11 + movq 5376(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5360(%rax), %r11 + movq 5376(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_670), .-GL_PREFIX(_dispatch_stub_670) + .size GL_PREFIX(_dispatch_stub_672), .-GL_PREFIX(_dispatch_stub_672) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_671) - .type GL_PREFIX(_dispatch_stub_671), @function - HIDDEN(GL_PREFIX(_dispatch_stub_671)) -GL_PREFIX(_dispatch_stub_671): + .globl GL_PREFIX(_dispatch_stub_673) + .type GL_PREFIX(_dispatch_stub_673), @function + HIDDEN(GL_PREFIX(_dispatch_stub_673)) +GL_PREFIX(_dispatch_stub_673): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5368(%rax), %r11 + movq 5384(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25240,13 +25330,13 @@ GL_PREFIX(_dispatch_stub_671): popq %rbp popq %rsi popq %rdi - movq 5368(%rax), %r11 + movq 5384(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5368(%rax), %r11 + movq 5384(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25256,40 +25346,40 @@ GL_PREFIX(_dispatch_stub_671): popq %rbp popq %rsi popq %rdi - movq 5368(%rax), %r11 + movq 5384(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_671), .-GL_PREFIX(_dispatch_stub_671) + .size GL_PREFIX(_dispatch_stub_673), .-GL_PREFIX(_dispatch_stub_673) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_672) - .type GL_PREFIX(_dispatch_stub_672), @function - HIDDEN(GL_PREFIX(_dispatch_stub_672)) -GL_PREFIX(_dispatch_stub_672): + .globl GL_PREFIX(_dispatch_stub_674) + .type GL_PREFIX(_dispatch_stub_674), @function + HIDDEN(GL_PREFIX(_dispatch_stub_674)) +GL_PREFIX(_dispatch_stub_674): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5376(%rax), %r11 + movq 5392(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5376(%rax), %r11 + movq 5392(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5376(%rax), %r11 + movq 5392(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5376(%rax), %r11 + movq 5392(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_672), .-GL_PREFIX(_dispatch_stub_672) + .size GL_PREFIX(_dispatch_stub_674), .-GL_PREFIX(_dispatch_stub_674) .p2align 4,,15 .globl GL_PREFIX(AreProgramsResidentNV) @@ -25297,7 +25387,7 @@ GL_PREFIX(_dispatch_stub_672): GL_PREFIX(AreProgramsResidentNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5384(%rax), %r11 + movq 5400(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25307,13 +25397,13 @@ GL_PREFIX(AreProgramsResidentNV): popq %rdx popq %rsi popq %rdi - movq 5384(%rax), %r11 + movq 5400(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5384(%rax), %r11 + movq 5400(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25323,7 +25413,7 @@ GL_PREFIX(AreProgramsResidentNV): popq %rdx popq %rsi popq %rdi - movq 5384(%rax), %r11 + movq 5400(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(AreProgramsResidentNV), .-GL_PREFIX(AreProgramsResidentNV) @@ -25334,7 +25424,7 @@ GL_PREFIX(AreProgramsResidentNV): GL_PREFIX(BindProgramNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5392(%rax), %r11 + movq 5408(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25344,13 +25434,13 @@ GL_PREFIX(BindProgramNV): popq %rbp popq %rsi popq %rdi - movq 5392(%rax), %r11 + movq 5408(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5392(%rax), %r11 + movq 5408(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25360,7 +25450,7 @@ GL_PREFIX(BindProgramNV): popq %rbp popq %rsi popq %rdi - movq 5392(%rax), %r11 + movq 5408(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindProgramNV), .-GL_PREFIX(BindProgramNV) @@ -25371,7 +25461,7 @@ GL_PREFIX(BindProgramNV): GL_PREFIX(DeleteProgramsNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5400(%rax), %r11 + movq 5416(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25381,13 +25471,13 @@ GL_PREFIX(DeleteProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5400(%rax), %r11 + movq 5416(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5400(%rax), %r11 + movq 5416(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25397,7 +25487,7 @@ GL_PREFIX(DeleteProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5400(%rax), %r11 + movq 5416(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteProgramsNV), .-GL_PREFIX(DeleteProgramsNV) @@ -25408,7 +25498,7 @@ GL_PREFIX(DeleteProgramsNV): GL_PREFIX(ExecuteProgramNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5408(%rax), %r11 + movq 5424(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25418,13 +25508,13 @@ GL_PREFIX(ExecuteProgramNV): popq %rdx popq %rsi popq %rdi - movq 5408(%rax), %r11 + movq 5424(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5408(%rax), %r11 + movq 5424(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25434,7 +25524,7 @@ GL_PREFIX(ExecuteProgramNV): popq %rdx popq %rsi popq %rdi - movq 5408(%rax), %r11 + movq 5424(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ExecuteProgramNV), .-GL_PREFIX(ExecuteProgramNV) @@ -25445,7 +25535,7 @@ GL_PREFIX(ExecuteProgramNV): GL_PREFIX(GenProgramsNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5416(%rax), %r11 + movq 5432(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25455,13 +25545,13 @@ GL_PREFIX(GenProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5416(%rax), %r11 + movq 5432(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5416(%rax), %r11 + movq 5432(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25471,7 +25561,7 @@ GL_PREFIX(GenProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5416(%rax), %r11 + movq 5432(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenProgramsNV), .-GL_PREFIX(GenProgramsNV) @@ -25482,7 +25572,7 @@ GL_PREFIX(GenProgramsNV): GL_PREFIX(GetProgramParameterdvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5424(%rax), %r11 + movq 5440(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25496,13 +25586,13 @@ GL_PREFIX(GetProgramParameterdvNV): popq %rdx popq %rsi popq %rdi - movq 5424(%rax), %r11 + movq 5440(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5424(%rax), %r11 + movq 5440(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25516,7 +25606,7 @@ GL_PREFIX(GetProgramParameterdvNV): popq %rdx popq %rsi popq %rdi - movq 5424(%rax), %r11 + movq 5440(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramParameterdvNV), .-GL_PREFIX(GetProgramParameterdvNV) @@ -25527,7 +25617,7 @@ GL_PREFIX(GetProgramParameterdvNV): GL_PREFIX(GetProgramParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5432(%rax), %r11 + movq 5448(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25541,13 +25631,13 @@ GL_PREFIX(GetProgramParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5432(%rax), %r11 + movq 5448(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5432(%rax), %r11 + movq 5448(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25561,7 +25651,7 @@ GL_PREFIX(GetProgramParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 5432(%rax), %r11 + movq 5448(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramParameterfvNV), .-GL_PREFIX(GetProgramParameterfvNV) @@ -25572,7 +25662,7 @@ GL_PREFIX(GetProgramParameterfvNV): GL_PREFIX(GetProgramStringNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5440(%rax), %r11 + movq 5456(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25582,13 +25672,13 @@ GL_PREFIX(GetProgramStringNV): popq %rdx popq %rsi popq %rdi - movq 5440(%rax), %r11 + movq 5456(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5440(%rax), %r11 + movq 5456(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25598,7 +25688,7 @@ GL_PREFIX(GetProgramStringNV): popq %rdx popq %rsi popq %rdi - movq 5440(%rax), %r11 + movq 5456(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramStringNV), .-GL_PREFIX(GetProgramStringNV) @@ -25609,7 +25699,7 @@ GL_PREFIX(GetProgramStringNV): GL_PREFIX(GetProgramivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5448(%rax), %r11 + movq 5464(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25619,13 +25709,13 @@ GL_PREFIX(GetProgramivNV): popq %rdx popq %rsi popq %rdi - movq 5448(%rax), %r11 + movq 5464(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5448(%rax), %r11 + movq 5464(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25635,7 +25725,7 @@ GL_PREFIX(GetProgramivNV): popq %rdx popq %rsi popq %rdi - movq 5448(%rax), %r11 + movq 5464(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramivNV), .-GL_PREFIX(GetProgramivNV) @@ -25646,7 +25736,7 @@ GL_PREFIX(GetProgramivNV): GL_PREFIX(GetTrackMatrixivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5456(%rax), %r11 + movq 5472(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25660,13 +25750,13 @@ GL_PREFIX(GetTrackMatrixivNV): popq %rdx popq %rsi popq %rdi - movq 5456(%rax), %r11 + movq 5472(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5456(%rax), %r11 + movq 5472(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25680,7 +25770,7 @@ GL_PREFIX(GetTrackMatrixivNV): popq %rdx popq %rsi popq %rdi - movq 5456(%rax), %r11 + movq 5472(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetTrackMatrixivNV), .-GL_PREFIX(GetTrackMatrixivNV) @@ -25691,7 +25781,7 @@ GL_PREFIX(GetTrackMatrixivNV): GL_PREFIX(GetVertexAttribPointervNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5464(%rax), %r11 + movq 5480(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25701,13 +25791,13 @@ GL_PREFIX(GetVertexAttribPointervNV): popq %rdx popq %rsi popq %rdi - movq 5464(%rax), %r11 + movq 5480(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5464(%rax), %r11 + movq 5480(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25717,7 +25807,7 @@ GL_PREFIX(GetVertexAttribPointervNV): popq %rdx popq %rsi popq %rdi - movq 5464(%rax), %r11 + movq 5480(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribPointervNV), .-GL_PREFIX(GetVertexAttribPointervNV) @@ -25728,7 +25818,7 @@ GL_PREFIX(GetVertexAttribPointervNV): GL_PREFIX(GetVertexAttribdvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5472(%rax), %r11 + movq 5488(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25738,13 +25828,13 @@ GL_PREFIX(GetVertexAttribdvNV): popq %rdx popq %rsi popq %rdi - movq 5472(%rax), %r11 + movq 5488(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5472(%rax), %r11 + movq 5488(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25754,7 +25844,7 @@ GL_PREFIX(GetVertexAttribdvNV): popq %rdx popq %rsi popq %rdi - movq 5472(%rax), %r11 + movq 5488(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribdvNV), .-GL_PREFIX(GetVertexAttribdvNV) @@ -25765,7 +25855,7 @@ GL_PREFIX(GetVertexAttribdvNV): GL_PREFIX(GetVertexAttribfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5480(%rax), %r11 + movq 5496(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25775,13 +25865,13 @@ GL_PREFIX(GetVertexAttribfvNV): popq %rdx popq %rsi popq %rdi - movq 5480(%rax), %r11 + movq 5496(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5480(%rax), %r11 + movq 5496(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25791,7 +25881,7 @@ GL_PREFIX(GetVertexAttribfvNV): popq %rdx popq %rsi popq %rdi - movq 5480(%rax), %r11 + movq 5496(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribfvNV), .-GL_PREFIX(GetVertexAttribfvNV) @@ -25802,7 +25892,7 @@ GL_PREFIX(GetVertexAttribfvNV): GL_PREFIX(GetVertexAttribivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5488(%rax), %r11 + movq 5504(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25812,13 +25902,13 @@ GL_PREFIX(GetVertexAttribivNV): popq %rdx popq %rsi popq %rdi - movq 5488(%rax), %r11 + movq 5504(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5488(%rax), %r11 + movq 5504(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25828,7 +25918,7 @@ GL_PREFIX(GetVertexAttribivNV): popq %rdx popq %rsi popq %rdi - movq 5488(%rax), %r11 + movq 5504(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetVertexAttribivNV), .-GL_PREFIX(GetVertexAttribivNV) @@ -25839,25 +25929,25 @@ GL_PREFIX(GetVertexAttribivNV): GL_PREFIX(IsProgramNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5496(%rax), %r11 + movq 5512(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5496(%rax), %r11 + movq 5512(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5496(%rax), %r11 + movq 5512(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5496(%rax), %r11 + movq 5512(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsProgramNV), .-GL_PREFIX(IsProgramNV) @@ -25868,7 +25958,7 @@ GL_PREFIX(IsProgramNV): GL_PREFIX(LoadProgramNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5504(%rax), %r11 + movq 5520(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25882,13 +25972,13 @@ GL_PREFIX(LoadProgramNV): popq %rdx popq %rsi popq %rdi - movq 5504(%rax), %r11 + movq 5520(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5504(%rax), %r11 + movq 5520(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25902,7 +25992,7 @@ GL_PREFIX(LoadProgramNV): popq %rdx popq %rsi popq %rdi - movq 5504(%rax), %r11 + movq 5520(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(LoadProgramNV), .-GL_PREFIX(LoadProgramNV) @@ -25913,7 +26003,7 @@ GL_PREFIX(LoadProgramNV): GL_PREFIX(ProgramParameters4dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5512(%rax), %r11 + movq 5528(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25927,13 +26017,13 @@ GL_PREFIX(ProgramParameters4dvNV): popq %rdx popq %rsi popq %rdi - movq 5512(%rax), %r11 + movq 5528(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5512(%rax), %r11 + movq 5528(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25947,7 +26037,7 @@ GL_PREFIX(ProgramParameters4dvNV): popq %rdx popq %rsi popq %rdi - movq 5512(%rax), %r11 + movq 5528(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramParameters4dvNV), .-GL_PREFIX(ProgramParameters4dvNV) @@ -25958,7 +26048,7 @@ GL_PREFIX(ProgramParameters4dvNV): GL_PREFIX(ProgramParameters4fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5520(%rax), %r11 + movq 5536(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -25972,13 +26062,13 @@ GL_PREFIX(ProgramParameters4fvNV): popq %rdx popq %rsi popq %rdi - movq 5520(%rax), %r11 + movq 5536(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5520(%rax), %r11 + movq 5536(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -25992,7 +26082,7 @@ GL_PREFIX(ProgramParameters4fvNV): popq %rdx popq %rsi popq %rdi - movq 5520(%rax), %r11 + movq 5536(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramParameters4fvNV), .-GL_PREFIX(ProgramParameters4fvNV) @@ -26003,7 +26093,7 @@ GL_PREFIX(ProgramParameters4fvNV): GL_PREFIX(RequestResidentProgramsNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5528(%rax), %r11 + movq 5544(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26013,13 +26103,13 @@ GL_PREFIX(RequestResidentProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5528(%rax), %r11 + movq 5544(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5528(%rax), %r11 + movq 5544(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26029,7 +26119,7 @@ GL_PREFIX(RequestResidentProgramsNV): popq %rbp popq %rsi popq %rdi - movq 5528(%rax), %r11 + movq 5544(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(RequestResidentProgramsNV), .-GL_PREFIX(RequestResidentProgramsNV) @@ -26040,7 +26130,7 @@ GL_PREFIX(RequestResidentProgramsNV): GL_PREFIX(TrackMatrixNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5536(%rax), %r11 + movq 5552(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26054,13 +26144,13 @@ GL_PREFIX(TrackMatrixNV): popq %rdx popq %rsi popq %rdi - movq 5536(%rax), %r11 + movq 5552(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5536(%rax), %r11 + movq 5552(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26074,7 +26164,7 @@ GL_PREFIX(TrackMatrixNV): popq %rdx popq %rsi popq %rdi - movq 5536(%rax), %r11 + movq 5552(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(TrackMatrixNV), .-GL_PREFIX(TrackMatrixNV) @@ -26085,7 +26175,7 @@ GL_PREFIX(TrackMatrixNV): GL_PREFIX(VertexAttrib1dNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5544(%rax), %r11 + movq 5560(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -26095,13 +26185,13 @@ GL_PREFIX(VertexAttrib1dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5544(%rax), %r11 + movq 5560(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5544(%rax), %r11 + movq 5560(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -26111,7 +26201,7 @@ GL_PREFIX(VertexAttrib1dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5544(%rax), %r11 + movq 5560(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1dNV), .-GL_PREFIX(VertexAttrib1dNV) @@ -26122,7 +26212,7 @@ GL_PREFIX(VertexAttrib1dNV): GL_PREFIX(VertexAttrib1dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5552(%rax), %r11 + movq 5568(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26132,13 +26222,13 @@ GL_PREFIX(VertexAttrib1dvNV): popq %rbp popq %rsi popq %rdi - movq 5552(%rax), %r11 + movq 5568(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5552(%rax), %r11 + movq 5568(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26148,7 +26238,7 @@ GL_PREFIX(VertexAttrib1dvNV): popq %rbp popq %rsi popq %rdi - movq 5552(%rax), %r11 + movq 5568(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1dvNV), .-GL_PREFIX(VertexAttrib1dvNV) @@ -26159,7 +26249,7 @@ GL_PREFIX(VertexAttrib1dvNV): GL_PREFIX(VertexAttrib1fNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5560(%rax), %r11 + movq 5576(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -26169,13 +26259,13 @@ GL_PREFIX(VertexAttrib1fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5560(%rax), %r11 + movq 5576(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5560(%rax), %r11 + movq 5576(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -26185,7 +26275,7 @@ GL_PREFIX(VertexAttrib1fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5560(%rax), %r11 + movq 5576(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1fNV), .-GL_PREFIX(VertexAttrib1fNV) @@ -26196,7 +26286,7 @@ GL_PREFIX(VertexAttrib1fNV): GL_PREFIX(VertexAttrib1fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5568(%rax), %r11 + movq 5584(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26206,13 +26296,13 @@ GL_PREFIX(VertexAttrib1fvNV): popq %rbp popq %rsi popq %rdi - movq 5568(%rax), %r11 + movq 5584(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5568(%rax), %r11 + movq 5584(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26222,7 +26312,7 @@ GL_PREFIX(VertexAttrib1fvNV): popq %rbp popq %rsi popq %rdi - movq 5568(%rax), %r11 + movq 5584(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1fvNV), .-GL_PREFIX(VertexAttrib1fvNV) @@ -26233,7 +26323,7 @@ GL_PREFIX(VertexAttrib1fvNV): GL_PREFIX(VertexAttrib1sNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5576(%rax), %r11 + movq 5592(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26243,13 +26333,13 @@ GL_PREFIX(VertexAttrib1sNV): popq %rbp popq %rsi popq %rdi - movq 5576(%rax), %r11 + movq 5592(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5576(%rax), %r11 + movq 5592(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26259,7 +26349,7 @@ GL_PREFIX(VertexAttrib1sNV): popq %rbp popq %rsi popq %rdi - movq 5576(%rax), %r11 + movq 5592(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1sNV), .-GL_PREFIX(VertexAttrib1sNV) @@ -26270,7 +26360,7 @@ GL_PREFIX(VertexAttrib1sNV): GL_PREFIX(VertexAttrib1svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5584(%rax), %r11 + movq 5600(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26280,13 +26370,13 @@ GL_PREFIX(VertexAttrib1svNV): popq %rbp popq %rsi popq %rdi - movq 5584(%rax), %r11 + movq 5600(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5584(%rax), %r11 + movq 5600(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26296,7 +26386,7 @@ GL_PREFIX(VertexAttrib1svNV): popq %rbp popq %rsi popq %rdi - movq 5584(%rax), %r11 + movq 5600(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib1svNV), .-GL_PREFIX(VertexAttrib1svNV) @@ -26307,7 +26397,7 @@ GL_PREFIX(VertexAttrib1svNV): GL_PREFIX(VertexAttrib2dNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5592(%rax), %r11 + movq 5608(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -26319,13 +26409,13 @@ GL_PREFIX(VertexAttrib2dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5592(%rax), %r11 + movq 5608(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5592(%rax), %r11 + movq 5608(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -26337,7 +26427,7 @@ GL_PREFIX(VertexAttrib2dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5592(%rax), %r11 + movq 5608(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2dNV), .-GL_PREFIX(VertexAttrib2dNV) @@ -26348,7 +26438,7 @@ GL_PREFIX(VertexAttrib2dNV): GL_PREFIX(VertexAttrib2dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5600(%rax), %r11 + movq 5616(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26358,13 +26448,13 @@ GL_PREFIX(VertexAttrib2dvNV): popq %rbp popq %rsi popq %rdi - movq 5600(%rax), %r11 + movq 5616(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5600(%rax), %r11 + movq 5616(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26374,7 +26464,7 @@ GL_PREFIX(VertexAttrib2dvNV): popq %rbp popq %rsi popq %rdi - movq 5600(%rax), %r11 + movq 5616(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2dvNV), .-GL_PREFIX(VertexAttrib2dvNV) @@ -26385,7 +26475,7 @@ GL_PREFIX(VertexAttrib2dvNV): GL_PREFIX(VertexAttrib2fNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5608(%rax), %r11 + movq 5624(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $24, %rsp @@ -26397,13 +26487,13 @@ GL_PREFIX(VertexAttrib2fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5608(%rax), %r11 + movq 5624(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5608(%rax), %r11 + movq 5624(%rax), %r11 jmp *%r11 1: subq $24, %rsp @@ -26415,7 +26505,7 @@ GL_PREFIX(VertexAttrib2fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $24, %rsp - movq 5608(%rax), %r11 + movq 5624(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2fNV), .-GL_PREFIX(VertexAttrib2fNV) @@ -26426,7 +26516,7 @@ GL_PREFIX(VertexAttrib2fNV): GL_PREFIX(VertexAttrib2fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5616(%rax), %r11 + movq 5632(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26436,13 +26526,13 @@ GL_PREFIX(VertexAttrib2fvNV): popq %rbp popq %rsi popq %rdi - movq 5616(%rax), %r11 + movq 5632(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5616(%rax), %r11 + movq 5632(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26452,7 +26542,7 @@ GL_PREFIX(VertexAttrib2fvNV): popq %rbp popq %rsi popq %rdi - movq 5616(%rax), %r11 + movq 5632(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2fvNV), .-GL_PREFIX(VertexAttrib2fvNV) @@ -26463,7 +26553,7 @@ GL_PREFIX(VertexAttrib2fvNV): GL_PREFIX(VertexAttrib2sNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5624(%rax), %r11 + movq 5640(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26473,13 +26563,13 @@ GL_PREFIX(VertexAttrib2sNV): popq %rdx popq %rsi popq %rdi - movq 5624(%rax), %r11 + movq 5640(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5624(%rax), %r11 + movq 5640(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26489,7 +26579,7 @@ GL_PREFIX(VertexAttrib2sNV): popq %rdx popq %rsi popq %rdi - movq 5624(%rax), %r11 + movq 5640(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2sNV), .-GL_PREFIX(VertexAttrib2sNV) @@ -26500,7 +26590,7 @@ GL_PREFIX(VertexAttrib2sNV): GL_PREFIX(VertexAttrib2svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5632(%rax), %r11 + movq 5648(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26510,13 +26600,13 @@ GL_PREFIX(VertexAttrib2svNV): popq %rbp popq %rsi popq %rdi - movq 5632(%rax), %r11 + movq 5648(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5632(%rax), %r11 + movq 5648(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26526,7 +26616,7 @@ GL_PREFIX(VertexAttrib2svNV): popq %rbp popq %rsi popq %rdi - movq 5632(%rax), %r11 + movq 5648(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib2svNV), .-GL_PREFIX(VertexAttrib2svNV) @@ -26537,7 +26627,7 @@ GL_PREFIX(VertexAttrib2svNV): GL_PREFIX(VertexAttrib3dNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5640(%rax), %r11 + movq 5656(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -26551,13 +26641,13 @@ GL_PREFIX(VertexAttrib3dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5640(%rax), %r11 + movq 5656(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5640(%rax), %r11 + movq 5656(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -26571,7 +26661,7 @@ GL_PREFIX(VertexAttrib3dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5640(%rax), %r11 + movq 5656(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3dNV), .-GL_PREFIX(VertexAttrib3dNV) @@ -26582,7 +26672,7 @@ GL_PREFIX(VertexAttrib3dNV): GL_PREFIX(VertexAttrib3dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5648(%rax), %r11 + movq 5664(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26592,13 +26682,13 @@ GL_PREFIX(VertexAttrib3dvNV): popq %rbp popq %rsi popq %rdi - movq 5648(%rax), %r11 + movq 5664(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5648(%rax), %r11 + movq 5664(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26608,7 +26698,7 @@ GL_PREFIX(VertexAttrib3dvNV): popq %rbp popq %rsi popq %rdi - movq 5648(%rax), %r11 + movq 5664(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3dvNV), .-GL_PREFIX(VertexAttrib3dvNV) @@ -26619,7 +26709,7 @@ GL_PREFIX(VertexAttrib3dvNV): GL_PREFIX(VertexAttrib3fNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5656(%rax), %r11 + movq 5672(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -26633,13 +26723,13 @@ GL_PREFIX(VertexAttrib3fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5656(%rax), %r11 + movq 5672(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5656(%rax), %r11 + movq 5672(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -26653,7 +26743,7 @@ GL_PREFIX(VertexAttrib3fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5656(%rax), %r11 + movq 5672(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3fNV), .-GL_PREFIX(VertexAttrib3fNV) @@ -26664,7 +26754,7 @@ GL_PREFIX(VertexAttrib3fNV): GL_PREFIX(VertexAttrib3fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5664(%rax), %r11 + movq 5680(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26674,13 +26764,13 @@ GL_PREFIX(VertexAttrib3fvNV): popq %rbp popq %rsi popq %rdi - movq 5664(%rax), %r11 + movq 5680(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5664(%rax), %r11 + movq 5680(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26690,7 +26780,7 @@ GL_PREFIX(VertexAttrib3fvNV): popq %rbp popq %rsi popq %rdi - movq 5664(%rax), %r11 + movq 5680(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3fvNV), .-GL_PREFIX(VertexAttrib3fvNV) @@ -26701,7 +26791,7 @@ GL_PREFIX(VertexAttrib3fvNV): GL_PREFIX(VertexAttrib3sNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5672(%rax), %r11 + movq 5688(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26715,13 +26805,13 @@ GL_PREFIX(VertexAttrib3sNV): popq %rdx popq %rsi popq %rdi - movq 5672(%rax), %r11 + movq 5688(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5672(%rax), %r11 + movq 5688(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26735,7 +26825,7 @@ GL_PREFIX(VertexAttrib3sNV): popq %rdx popq %rsi popq %rdi - movq 5672(%rax), %r11 + movq 5688(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3sNV), .-GL_PREFIX(VertexAttrib3sNV) @@ -26746,7 +26836,7 @@ GL_PREFIX(VertexAttrib3sNV): GL_PREFIX(VertexAttrib3svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5680(%rax), %r11 + movq 5696(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26756,13 +26846,13 @@ GL_PREFIX(VertexAttrib3svNV): popq %rbp popq %rsi popq %rdi - movq 5680(%rax), %r11 + movq 5696(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5680(%rax), %r11 + movq 5696(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26772,7 +26862,7 @@ GL_PREFIX(VertexAttrib3svNV): popq %rbp popq %rsi popq %rdi - movq 5680(%rax), %r11 + movq 5696(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib3svNV), .-GL_PREFIX(VertexAttrib3svNV) @@ -26783,7 +26873,7 @@ GL_PREFIX(VertexAttrib3svNV): GL_PREFIX(VertexAttrib4dNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5688(%rax), %r11 + movq 5704(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -26799,13 +26889,13 @@ GL_PREFIX(VertexAttrib4dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5688(%rax), %r11 + movq 5704(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5688(%rax), %r11 + movq 5704(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -26821,7 +26911,7 @@ GL_PREFIX(VertexAttrib4dNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5688(%rax), %r11 + movq 5704(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4dNV), .-GL_PREFIX(VertexAttrib4dNV) @@ -26832,7 +26922,7 @@ GL_PREFIX(VertexAttrib4dNV): GL_PREFIX(VertexAttrib4dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5696(%rax), %r11 + movq 5712(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26842,13 +26932,13 @@ GL_PREFIX(VertexAttrib4dvNV): popq %rbp popq %rsi popq %rdi - movq 5696(%rax), %r11 + movq 5712(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5696(%rax), %r11 + movq 5712(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26858,7 +26948,7 @@ GL_PREFIX(VertexAttrib4dvNV): popq %rbp popq %rsi popq %rdi - movq 5696(%rax), %r11 + movq 5712(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4dvNV), .-GL_PREFIX(VertexAttrib4dvNV) @@ -26869,7 +26959,7 @@ GL_PREFIX(VertexAttrib4dvNV): GL_PREFIX(VertexAttrib4fNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5704(%rax), %r11 + movq 5720(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $40, %rsp @@ -26885,13 +26975,13 @@ GL_PREFIX(VertexAttrib4fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5704(%rax), %r11 + movq 5720(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5704(%rax), %r11 + movq 5720(%rax), %r11 jmp *%r11 1: subq $40, %rsp @@ -26907,7 +26997,7 @@ GL_PREFIX(VertexAttrib4fNV): movq 8(%rsp), %xmm0 movq (%rsp), %rdi addq $40, %rsp - movq 5704(%rax), %r11 + movq 5720(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4fNV), .-GL_PREFIX(VertexAttrib4fNV) @@ -26918,7 +27008,7 @@ GL_PREFIX(VertexAttrib4fNV): GL_PREFIX(VertexAttrib4fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5712(%rax), %r11 + movq 5728(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26928,13 +27018,13 @@ GL_PREFIX(VertexAttrib4fvNV): popq %rbp popq %rsi popq %rdi - movq 5712(%rax), %r11 + movq 5728(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5712(%rax), %r11 + movq 5728(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26944,7 +27034,7 @@ GL_PREFIX(VertexAttrib4fvNV): popq %rbp popq %rsi popq %rdi - movq 5712(%rax), %r11 + movq 5728(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4fvNV), .-GL_PREFIX(VertexAttrib4fvNV) @@ -26955,7 +27045,7 @@ GL_PREFIX(VertexAttrib4fvNV): GL_PREFIX(VertexAttrib4sNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5720(%rax), %r11 + movq 5736(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -26969,13 +27059,13 @@ GL_PREFIX(VertexAttrib4sNV): popq %rdx popq %rsi popq %rdi - movq 5720(%rax), %r11 + movq 5736(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5720(%rax), %r11 + movq 5736(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -26989,7 +27079,7 @@ GL_PREFIX(VertexAttrib4sNV): popq %rdx popq %rsi popq %rdi - movq 5720(%rax), %r11 + movq 5736(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4sNV), .-GL_PREFIX(VertexAttrib4sNV) @@ -27000,7 +27090,7 @@ GL_PREFIX(VertexAttrib4sNV): GL_PREFIX(VertexAttrib4svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5728(%rax), %r11 + movq 5744(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27010,13 +27100,13 @@ GL_PREFIX(VertexAttrib4svNV): popq %rbp popq %rsi popq %rdi - movq 5728(%rax), %r11 + movq 5744(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5728(%rax), %r11 + movq 5744(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27026,7 +27116,7 @@ GL_PREFIX(VertexAttrib4svNV): popq %rbp popq %rsi popq %rdi - movq 5728(%rax), %r11 + movq 5744(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4svNV), .-GL_PREFIX(VertexAttrib4svNV) @@ -27037,7 +27127,7 @@ GL_PREFIX(VertexAttrib4svNV): GL_PREFIX(VertexAttrib4ubNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5736(%rax), %r11 + movq 5752(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27051,13 +27141,13 @@ GL_PREFIX(VertexAttrib4ubNV): popq %rdx popq %rsi popq %rdi - movq 5736(%rax), %r11 + movq 5752(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5736(%rax), %r11 + movq 5752(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27071,7 +27161,7 @@ GL_PREFIX(VertexAttrib4ubNV): popq %rdx popq %rsi popq %rdi - movq 5736(%rax), %r11 + movq 5752(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4ubNV), .-GL_PREFIX(VertexAttrib4ubNV) @@ -27082,7 +27172,7 @@ GL_PREFIX(VertexAttrib4ubNV): GL_PREFIX(VertexAttrib4ubvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5744(%rax), %r11 + movq 5760(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27092,13 +27182,13 @@ GL_PREFIX(VertexAttrib4ubvNV): popq %rbp popq %rsi popq %rdi - movq 5744(%rax), %r11 + movq 5760(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5744(%rax), %r11 + movq 5760(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27108,7 +27198,7 @@ GL_PREFIX(VertexAttrib4ubvNV): popq %rbp popq %rsi popq %rdi - movq 5744(%rax), %r11 + movq 5760(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttrib4ubvNV), .-GL_PREFIX(VertexAttrib4ubvNV) @@ -27119,7 +27209,7 @@ GL_PREFIX(VertexAttrib4ubvNV): GL_PREFIX(VertexAttribPointerNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5752(%rax), %r11 + movq 5768(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27133,13 +27223,13 @@ GL_PREFIX(VertexAttribPointerNV): popq %rdx popq %rsi popq %rdi - movq 5752(%rax), %r11 + movq 5768(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5752(%rax), %r11 + movq 5768(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27153,7 +27243,7 @@ GL_PREFIX(VertexAttribPointerNV): popq %rdx popq %rsi popq %rdi - movq 5752(%rax), %r11 + movq 5768(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribPointerNV), .-GL_PREFIX(VertexAttribPointerNV) @@ -27164,7 +27254,7 @@ GL_PREFIX(VertexAttribPointerNV): GL_PREFIX(VertexAttribs1dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5760(%rax), %r11 + movq 5776(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27174,13 +27264,13 @@ GL_PREFIX(VertexAttribs1dvNV): popq %rdx popq %rsi popq %rdi - movq 5760(%rax), %r11 + movq 5776(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5760(%rax), %r11 + movq 5776(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27190,7 +27280,7 @@ GL_PREFIX(VertexAttribs1dvNV): popq %rdx popq %rsi popq %rdi - movq 5760(%rax), %r11 + movq 5776(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs1dvNV), .-GL_PREFIX(VertexAttribs1dvNV) @@ -27201,7 +27291,7 @@ GL_PREFIX(VertexAttribs1dvNV): GL_PREFIX(VertexAttribs1fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5768(%rax), %r11 + movq 5784(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27211,13 +27301,13 @@ GL_PREFIX(VertexAttribs1fvNV): popq %rdx popq %rsi popq %rdi - movq 5768(%rax), %r11 + movq 5784(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5768(%rax), %r11 + movq 5784(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27227,7 +27317,7 @@ GL_PREFIX(VertexAttribs1fvNV): popq %rdx popq %rsi popq %rdi - movq 5768(%rax), %r11 + movq 5784(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs1fvNV), .-GL_PREFIX(VertexAttribs1fvNV) @@ -27238,7 +27328,7 @@ GL_PREFIX(VertexAttribs1fvNV): GL_PREFIX(VertexAttribs1svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5776(%rax), %r11 + movq 5792(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27248,13 +27338,13 @@ GL_PREFIX(VertexAttribs1svNV): popq %rdx popq %rsi popq %rdi - movq 5776(%rax), %r11 + movq 5792(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5776(%rax), %r11 + movq 5792(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27264,7 +27354,7 @@ GL_PREFIX(VertexAttribs1svNV): popq %rdx popq %rsi popq %rdi - movq 5776(%rax), %r11 + movq 5792(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs1svNV), .-GL_PREFIX(VertexAttribs1svNV) @@ -27275,7 +27365,7 @@ GL_PREFIX(VertexAttribs1svNV): GL_PREFIX(VertexAttribs2dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5784(%rax), %r11 + movq 5800(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27285,13 +27375,13 @@ GL_PREFIX(VertexAttribs2dvNV): popq %rdx popq %rsi popq %rdi - movq 5784(%rax), %r11 + movq 5800(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5784(%rax), %r11 + movq 5800(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27301,7 +27391,7 @@ GL_PREFIX(VertexAttribs2dvNV): popq %rdx popq %rsi popq %rdi - movq 5784(%rax), %r11 + movq 5800(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs2dvNV), .-GL_PREFIX(VertexAttribs2dvNV) @@ -27312,7 +27402,7 @@ GL_PREFIX(VertexAttribs2dvNV): GL_PREFIX(VertexAttribs2fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5792(%rax), %r11 + movq 5808(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27322,13 +27412,13 @@ GL_PREFIX(VertexAttribs2fvNV): popq %rdx popq %rsi popq %rdi - movq 5792(%rax), %r11 + movq 5808(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5792(%rax), %r11 + movq 5808(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27338,7 +27428,7 @@ GL_PREFIX(VertexAttribs2fvNV): popq %rdx popq %rsi popq %rdi - movq 5792(%rax), %r11 + movq 5808(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs2fvNV), .-GL_PREFIX(VertexAttribs2fvNV) @@ -27349,7 +27439,7 @@ GL_PREFIX(VertexAttribs2fvNV): GL_PREFIX(VertexAttribs2svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5800(%rax), %r11 + movq 5816(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27359,13 +27449,13 @@ GL_PREFIX(VertexAttribs2svNV): popq %rdx popq %rsi popq %rdi - movq 5800(%rax), %r11 + movq 5816(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5800(%rax), %r11 + movq 5816(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27375,7 +27465,7 @@ GL_PREFIX(VertexAttribs2svNV): popq %rdx popq %rsi popq %rdi - movq 5800(%rax), %r11 + movq 5816(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs2svNV), .-GL_PREFIX(VertexAttribs2svNV) @@ -27386,7 +27476,7 @@ GL_PREFIX(VertexAttribs2svNV): GL_PREFIX(VertexAttribs3dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5808(%rax), %r11 + movq 5824(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27396,13 +27486,13 @@ GL_PREFIX(VertexAttribs3dvNV): popq %rdx popq %rsi popq %rdi - movq 5808(%rax), %r11 + movq 5824(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5808(%rax), %r11 + movq 5824(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27412,7 +27502,7 @@ GL_PREFIX(VertexAttribs3dvNV): popq %rdx popq %rsi popq %rdi - movq 5808(%rax), %r11 + movq 5824(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs3dvNV), .-GL_PREFIX(VertexAttribs3dvNV) @@ -27423,7 +27513,7 @@ GL_PREFIX(VertexAttribs3dvNV): GL_PREFIX(VertexAttribs3fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5816(%rax), %r11 + movq 5832(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27433,13 +27523,13 @@ GL_PREFIX(VertexAttribs3fvNV): popq %rdx popq %rsi popq %rdi - movq 5816(%rax), %r11 + movq 5832(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5816(%rax), %r11 + movq 5832(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27449,7 +27539,7 @@ GL_PREFIX(VertexAttribs3fvNV): popq %rdx popq %rsi popq %rdi - movq 5816(%rax), %r11 + movq 5832(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs3fvNV), .-GL_PREFIX(VertexAttribs3fvNV) @@ -27460,7 +27550,7 @@ GL_PREFIX(VertexAttribs3fvNV): GL_PREFIX(VertexAttribs3svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5824(%rax), %r11 + movq 5840(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27470,13 +27560,13 @@ GL_PREFIX(VertexAttribs3svNV): popq %rdx popq %rsi popq %rdi - movq 5824(%rax), %r11 + movq 5840(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5824(%rax), %r11 + movq 5840(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27486,7 +27576,7 @@ GL_PREFIX(VertexAttribs3svNV): popq %rdx popq %rsi popq %rdi - movq 5824(%rax), %r11 + movq 5840(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs3svNV), .-GL_PREFIX(VertexAttribs3svNV) @@ -27497,7 +27587,7 @@ GL_PREFIX(VertexAttribs3svNV): GL_PREFIX(VertexAttribs4dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5832(%rax), %r11 + movq 5848(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27507,13 +27597,13 @@ GL_PREFIX(VertexAttribs4dvNV): popq %rdx popq %rsi popq %rdi - movq 5832(%rax), %r11 + movq 5848(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5832(%rax), %r11 + movq 5848(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27523,7 +27613,7 @@ GL_PREFIX(VertexAttribs4dvNV): popq %rdx popq %rsi popq %rdi - movq 5832(%rax), %r11 + movq 5848(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs4dvNV), .-GL_PREFIX(VertexAttribs4dvNV) @@ -27534,7 +27624,7 @@ GL_PREFIX(VertexAttribs4dvNV): GL_PREFIX(VertexAttribs4fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5840(%rax), %r11 + movq 5856(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27544,13 +27634,13 @@ GL_PREFIX(VertexAttribs4fvNV): popq %rdx popq %rsi popq %rdi - movq 5840(%rax), %r11 + movq 5856(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5840(%rax), %r11 + movq 5856(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27560,7 +27650,7 @@ GL_PREFIX(VertexAttribs4fvNV): popq %rdx popq %rsi popq %rdi - movq 5840(%rax), %r11 + movq 5856(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs4fvNV), .-GL_PREFIX(VertexAttribs4fvNV) @@ -27571,7 +27661,7 @@ GL_PREFIX(VertexAttribs4fvNV): GL_PREFIX(VertexAttribs4svNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5848(%rax), %r11 + movq 5864(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27581,13 +27671,13 @@ GL_PREFIX(VertexAttribs4svNV): popq %rdx popq %rsi popq %rdi - movq 5848(%rax), %r11 + movq 5864(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5848(%rax), %r11 + movq 5864(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27597,7 +27687,7 @@ GL_PREFIX(VertexAttribs4svNV): popq %rdx popq %rsi popq %rdi - movq 5848(%rax), %r11 + movq 5864(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs4svNV), .-GL_PREFIX(VertexAttribs4svNV) @@ -27608,7 +27698,7 @@ GL_PREFIX(VertexAttribs4svNV): GL_PREFIX(VertexAttribs4ubvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5856(%rax), %r11 + movq 5872(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27618,13 +27708,13 @@ GL_PREFIX(VertexAttribs4ubvNV): popq %rdx popq %rsi popq %rdi - movq 5856(%rax), %r11 + movq 5872(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5856(%rax), %r11 + movq 5872(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27634,7 +27724,7 @@ GL_PREFIX(VertexAttribs4ubvNV): popq %rdx popq %rsi popq %rdi - movq 5856(%rax), %r11 + movq 5872(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(VertexAttribs4ubvNV), .-GL_PREFIX(VertexAttribs4ubvNV) @@ -27645,7 +27735,7 @@ GL_PREFIX(VertexAttribs4ubvNV): GL_PREFIX(GetTexBumpParameterfvATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5864(%rax), %r11 + movq 5880(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27655,13 +27745,13 @@ GL_PREFIX(GetTexBumpParameterfvATI): popq %rbp popq %rsi popq %rdi - movq 5864(%rax), %r11 + movq 5880(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5864(%rax), %r11 + movq 5880(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27671,7 +27761,7 @@ GL_PREFIX(GetTexBumpParameterfvATI): popq %rbp popq %rsi popq %rdi - movq 5864(%rax), %r11 + movq 5880(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetTexBumpParameterfvATI), .-GL_PREFIX(GetTexBumpParameterfvATI) @@ -27682,7 +27772,7 @@ GL_PREFIX(GetTexBumpParameterfvATI): GL_PREFIX(GetTexBumpParameterivATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5872(%rax), %r11 + movq 5888(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27692,13 +27782,13 @@ GL_PREFIX(GetTexBumpParameterivATI): popq %rbp popq %rsi popq %rdi - movq 5872(%rax), %r11 + movq 5888(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5872(%rax), %r11 + movq 5888(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27708,7 +27798,7 @@ GL_PREFIX(GetTexBumpParameterivATI): popq %rbp popq %rsi popq %rdi - movq 5872(%rax), %r11 + movq 5888(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetTexBumpParameterivATI), .-GL_PREFIX(GetTexBumpParameterivATI) @@ -27719,7 +27809,7 @@ GL_PREFIX(GetTexBumpParameterivATI): GL_PREFIX(TexBumpParameterfvATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5880(%rax), %r11 + movq 5896(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27729,13 +27819,13 @@ GL_PREFIX(TexBumpParameterfvATI): popq %rbp popq %rsi popq %rdi - movq 5880(%rax), %r11 + movq 5896(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5880(%rax), %r11 + movq 5896(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27745,7 +27835,7 @@ GL_PREFIX(TexBumpParameterfvATI): popq %rbp popq %rsi popq %rdi - movq 5880(%rax), %r11 + movq 5896(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(TexBumpParameterfvATI), .-GL_PREFIX(TexBumpParameterfvATI) @@ -27756,7 +27846,7 @@ GL_PREFIX(TexBumpParameterfvATI): GL_PREFIX(TexBumpParameterivATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5888(%rax), %r11 + movq 5904(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27766,13 +27856,13 @@ GL_PREFIX(TexBumpParameterivATI): popq %rbp popq %rsi popq %rdi - movq 5888(%rax), %r11 + movq 5904(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5888(%rax), %r11 + movq 5904(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27782,7 +27872,7 @@ GL_PREFIX(TexBumpParameterivATI): popq %rbp popq %rsi popq %rdi - movq 5888(%rax), %r11 + movq 5904(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(TexBumpParameterivATI), .-GL_PREFIX(TexBumpParameterivATI) @@ -27793,7 +27883,7 @@ GL_PREFIX(TexBumpParameterivATI): GL_PREFIX(AlphaFragmentOp1ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5896(%rax), %r11 + movq 5912(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27811,13 +27901,13 @@ GL_PREFIX(AlphaFragmentOp1ATI): popq %rdx popq %rsi popq %rdi - movq 5896(%rax), %r11 + movq 5912(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5896(%rax), %r11 + movq 5912(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27835,7 +27925,7 @@ GL_PREFIX(AlphaFragmentOp1ATI): popq %rdx popq %rsi popq %rdi - movq 5896(%rax), %r11 + movq 5912(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(AlphaFragmentOp1ATI), .-GL_PREFIX(AlphaFragmentOp1ATI) @@ -27846,7 +27936,7 @@ GL_PREFIX(AlphaFragmentOp1ATI): GL_PREFIX(AlphaFragmentOp2ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5904(%rax), %r11 + movq 5920(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27864,13 +27954,13 @@ GL_PREFIX(AlphaFragmentOp2ATI): popq %rdx popq %rsi popq %rdi - movq 5904(%rax), %r11 + movq 5920(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5904(%rax), %r11 + movq 5920(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27888,7 +27978,7 @@ GL_PREFIX(AlphaFragmentOp2ATI): popq %rdx popq %rsi popq %rdi - movq 5904(%rax), %r11 + movq 5920(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(AlphaFragmentOp2ATI), .-GL_PREFIX(AlphaFragmentOp2ATI) @@ -27899,7 +27989,7 @@ GL_PREFIX(AlphaFragmentOp2ATI): GL_PREFIX(AlphaFragmentOp3ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5912(%rax), %r11 + movq 5928(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -27917,13 +28007,13 @@ GL_PREFIX(AlphaFragmentOp3ATI): popq %rdx popq %rsi popq %rdi - movq 5912(%rax), %r11 + movq 5928(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5912(%rax), %r11 + movq 5928(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -27941,7 +28031,7 @@ GL_PREFIX(AlphaFragmentOp3ATI): popq %rdx popq %rsi popq %rdi - movq 5912(%rax), %r11 + movq 5928(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(AlphaFragmentOp3ATI), .-GL_PREFIX(AlphaFragmentOp3ATI) @@ -27952,25 +28042,25 @@ GL_PREFIX(AlphaFragmentOp3ATI): GL_PREFIX(BeginFragmentShaderATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5920(%rax), %r11 + movq 5936(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 5920(%rax), %r11 + movq 5936(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5920(%rax), %r11 + movq 5936(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 5920(%rax), %r11 + movq 5936(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BeginFragmentShaderATI), .-GL_PREFIX(BeginFragmentShaderATI) @@ -27981,25 +28071,25 @@ GL_PREFIX(BeginFragmentShaderATI): GL_PREFIX(BindFragmentShaderATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5928(%rax), %r11 + movq 5944(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5928(%rax), %r11 + movq 5944(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5928(%rax), %r11 + movq 5944(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5928(%rax), %r11 + movq 5944(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindFragmentShaderATI), .-GL_PREFIX(BindFragmentShaderATI) @@ -28010,7 +28100,7 @@ GL_PREFIX(BindFragmentShaderATI): GL_PREFIX(ColorFragmentOp1ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5936(%rax), %r11 + movq 5952(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28028,13 +28118,13 @@ GL_PREFIX(ColorFragmentOp1ATI): popq %rdx popq %rsi popq %rdi - movq 5936(%rax), %r11 + movq 5952(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5936(%rax), %r11 + movq 5952(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28052,7 +28142,7 @@ GL_PREFIX(ColorFragmentOp1ATI): popq %rdx popq %rsi popq %rdi - movq 5936(%rax), %r11 + movq 5952(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ColorFragmentOp1ATI), .-GL_PREFIX(ColorFragmentOp1ATI) @@ -28063,7 +28153,7 @@ GL_PREFIX(ColorFragmentOp1ATI): GL_PREFIX(ColorFragmentOp2ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5944(%rax), %r11 + movq 5960(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28081,13 +28171,13 @@ GL_PREFIX(ColorFragmentOp2ATI): popq %rdx popq %rsi popq %rdi - movq 5944(%rax), %r11 + movq 5960(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5944(%rax), %r11 + movq 5960(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28105,7 +28195,7 @@ GL_PREFIX(ColorFragmentOp2ATI): popq %rdx popq %rsi popq %rdi - movq 5944(%rax), %r11 + movq 5960(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ColorFragmentOp2ATI), .-GL_PREFIX(ColorFragmentOp2ATI) @@ -28116,7 +28206,7 @@ GL_PREFIX(ColorFragmentOp2ATI): GL_PREFIX(ColorFragmentOp3ATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5952(%rax), %r11 + movq 5968(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28134,13 +28224,13 @@ GL_PREFIX(ColorFragmentOp3ATI): popq %rdx popq %rsi popq %rdi - movq 5952(%rax), %r11 + movq 5968(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5952(%rax), %r11 + movq 5968(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28158,7 +28248,7 @@ GL_PREFIX(ColorFragmentOp3ATI): popq %rdx popq %rsi popq %rdi - movq 5952(%rax), %r11 + movq 5968(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ColorFragmentOp3ATI), .-GL_PREFIX(ColorFragmentOp3ATI) @@ -28169,25 +28259,25 @@ GL_PREFIX(ColorFragmentOp3ATI): GL_PREFIX(DeleteFragmentShaderATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5960(%rax), %r11 + movq 5976(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5960(%rax), %r11 + movq 5976(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5960(%rax), %r11 + movq 5976(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5960(%rax), %r11 + movq 5976(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteFragmentShaderATI), .-GL_PREFIX(DeleteFragmentShaderATI) @@ -28198,25 +28288,25 @@ GL_PREFIX(DeleteFragmentShaderATI): GL_PREFIX(EndFragmentShaderATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5968(%rax), %r11 + movq 5984(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 5968(%rax), %r11 + movq 5984(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5968(%rax), %r11 + movq 5984(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 5968(%rax), %r11 + movq 5984(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EndFragmentShaderATI), .-GL_PREFIX(EndFragmentShaderATI) @@ -28227,25 +28317,25 @@ GL_PREFIX(EndFragmentShaderATI): GL_PREFIX(GenFragmentShadersATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5976(%rax), %r11 + movq 5992(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 5976(%rax), %r11 + movq 5992(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5976(%rax), %r11 + movq 5992(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 5976(%rax), %r11 + movq 5992(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenFragmentShadersATI), .-GL_PREFIX(GenFragmentShadersATI) @@ -28256,7 +28346,7 @@ GL_PREFIX(GenFragmentShadersATI): GL_PREFIX(PassTexCoordATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5984(%rax), %r11 + movq 6000(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28266,13 +28356,13 @@ GL_PREFIX(PassTexCoordATI): popq %rdx popq %rsi popq %rdi - movq 5984(%rax), %r11 + movq 6000(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5984(%rax), %r11 + movq 6000(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28282,7 +28372,7 @@ GL_PREFIX(PassTexCoordATI): popq %rdx popq %rsi popq %rdi - movq 5984(%rax), %r11 + movq 6000(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PassTexCoordATI), .-GL_PREFIX(PassTexCoordATI) @@ -28293,7 +28383,7 @@ GL_PREFIX(PassTexCoordATI): GL_PREFIX(SampleMapATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 5992(%rax), %r11 + movq 6008(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28303,13 +28393,13 @@ GL_PREFIX(SampleMapATI): popq %rdx popq %rsi popq %rdi - movq 5992(%rax), %r11 + movq 6008(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 5992(%rax), %r11 + movq 6008(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28319,7 +28409,7 @@ GL_PREFIX(SampleMapATI): popq %rdx popq %rsi popq %rdi - movq 5992(%rax), %r11 + movq 6008(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SampleMapATI), .-GL_PREFIX(SampleMapATI) @@ -28330,7 +28420,7 @@ GL_PREFIX(SampleMapATI): GL_PREFIX(SetFragmentShaderConstantATI): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6000(%rax), %r11 + movq 6016(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28340,13 +28430,13 @@ GL_PREFIX(SetFragmentShaderConstantATI): popq %rbp popq %rsi popq %rdi - movq 6000(%rax), %r11 + movq 6016(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6000(%rax), %r11 + movq 6016(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28356,7 +28446,7 @@ GL_PREFIX(SetFragmentShaderConstantATI): popq %rbp popq %rsi popq %rdi - movq 6000(%rax), %r11 + movq 6016(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(SetFragmentShaderConstantATI), .-GL_PREFIX(SetFragmentShaderConstantATI) @@ -28367,7 +28457,7 @@ GL_PREFIX(SetFragmentShaderConstantATI): GL_PREFIX(PointParameteriNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6008(%rax), %r11 + movq 6024(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28377,13 +28467,13 @@ GL_PREFIX(PointParameteriNV): popq %rbp popq %rsi popq %rdi - movq 6008(%rax), %r11 + movq 6024(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6008(%rax), %r11 + movq 6024(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28393,7 +28483,7 @@ GL_PREFIX(PointParameteriNV): popq %rbp popq %rsi popq %rdi - movq 6008(%rax), %r11 + movq 6024(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PointParameteriNV), .-GL_PREFIX(PointParameteriNV) @@ -28404,7 +28494,7 @@ GL_PREFIX(PointParameteriNV): GL_PREFIX(PointParameterivNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6016(%rax), %r11 + movq 6032(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28414,13 +28504,13 @@ GL_PREFIX(PointParameterivNV): popq %rbp popq %rsi popq %rdi - movq 6016(%rax), %r11 + movq 6032(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6016(%rax), %r11 + movq 6032(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28430,79 +28520,79 @@ GL_PREFIX(PointParameterivNV): popq %rbp popq %rsi popq %rdi - movq 6016(%rax), %r11 + movq 6032(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(PointParameterivNV), .-GL_PREFIX(PointParameterivNV) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_753) - .type GL_PREFIX(_dispatch_stub_753), @function - HIDDEN(GL_PREFIX(_dispatch_stub_753)) -GL_PREFIX(_dispatch_stub_753): + .globl GL_PREFIX(_dispatch_stub_755) + .type GL_PREFIX(_dispatch_stub_755), @function + HIDDEN(GL_PREFIX(_dispatch_stub_755)) +GL_PREFIX(_dispatch_stub_755): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6024(%rax), %r11 + movq 6040(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6024(%rax), %r11 + movq 6040(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6024(%rax), %r11 + movq 6040(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6024(%rax), %r11 + movq 6040(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_753), .-GL_PREFIX(_dispatch_stub_753) + .size GL_PREFIX(_dispatch_stub_755), .-GL_PREFIX(_dispatch_stub_755) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_754) - .type GL_PREFIX(_dispatch_stub_754), @function - HIDDEN(GL_PREFIX(_dispatch_stub_754)) -GL_PREFIX(_dispatch_stub_754): + .globl GL_PREFIX(_dispatch_stub_756) + .type GL_PREFIX(_dispatch_stub_756), @function + HIDDEN(GL_PREFIX(_dispatch_stub_756)) +GL_PREFIX(_dispatch_stub_756): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6032(%rax), %r11 + movq 6048(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6032(%rax), %r11 + movq 6048(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6032(%rax), %r11 + movq 6048(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6032(%rax), %r11 + movq 6048(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_754), .-GL_PREFIX(_dispatch_stub_754) + .size GL_PREFIX(_dispatch_stub_756), .-GL_PREFIX(_dispatch_stub_756) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_755) - .type GL_PREFIX(_dispatch_stub_755), @function - HIDDEN(GL_PREFIX(_dispatch_stub_755)) -GL_PREFIX(_dispatch_stub_755): + .globl GL_PREFIX(_dispatch_stub_757) + .type GL_PREFIX(_dispatch_stub_757), @function + HIDDEN(GL_PREFIX(_dispatch_stub_757)) +GL_PREFIX(_dispatch_stub_757): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6040(%rax), %r11 + movq 6056(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28512,13 +28602,13 @@ GL_PREFIX(_dispatch_stub_755): popq %rbp popq %rsi popq %rdi - movq 6040(%rax), %r11 + movq 6056(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6040(%rax), %r11 + movq 6056(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28528,19 +28618,19 @@ GL_PREFIX(_dispatch_stub_755): popq %rbp popq %rsi popq %rdi - movq 6040(%rax), %r11 + movq 6056(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_755), .-GL_PREFIX(_dispatch_stub_755) - - .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_756) - .type GL_PREFIX(_dispatch_stub_756), @function - HIDDEN(GL_PREFIX(_dispatch_stub_756)) -GL_PREFIX(_dispatch_stub_756): + .size GL_PREFIX(_dispatch_stub_757), .-GL_PREFIX(_dispatch_stub_757) + + .p2align 4,,15 + .globl GL_PREFIX(_dispatch_stub_758) + .type GL_PREFIX(_dispatch_stub_758), @function + HIDDEN(GL_PREFIX(_dispatch_stub_758)) +GL_PREFIX(_dispatch_stub_758): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6048(%rax), %r11 + movq 6064(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28550,13 +28640,13 @@ GL_PREFIX(_dispatch_stub_756): popq %rbp popq %rsi popq %rdi - movq 6048(%rax), %r11 + movq 6064(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6048(%rax), %r11 + movq 6064(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28566,40 +28656,40 @@ GL_PREFIX(_dispatch_stub_756): popq %rbp popq %rsi popq %rdi - movq 6048(%rax), %r11 + movq 6064(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_756), .-GL_PREFIX(_dispatch_stub_756) + .size GL_PREFIX(_dispatch_stub_758), .-GL_PREFIX(_dispatch_stub_758) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_757) - .type GL_PREFIX(_dispatch_stub_757), @function - HIDDEN(GL_PREFIX(_dispatch_stub_757)) -GL_PREFIX(_dispatch_stub_757): + .globl GL_PREFIX(_dispatch_stub_759) + .type GL_PREFIX(_dispatch_stub_759), @function + HIDDEN(GL_PREFIX(_dispatch_stub_759)) +GL_PREFIX(_dispatch_stub_759): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6056(%rax), %r11 + movq 6072(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6056(%rax), %r11 + movq 6072(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6056(%rax), %r11 + movq 6072(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6056(%rax), %r11 + movq 6072(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_757), .-GL_PREFIX(_dispatch_stub_757) + .size GL_PREFIX(_dispatch_stub_759), .-GL_PREFIX(_dispatch_stub_759) .p2align 4,,15 .globl GL_PREFIX(GetProgramNamedParameterdvNV) @@ -28607,7 +28697,7 @@ GL_PREFIX(_dispatch_stub_757): GL_PREFIX(GetProgramNamedParameterdvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6064(%rax), %r11 + movq 6080(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28621,13 +28711,13 @@ GL_PREFIX(GetProgramNamedParameterdvNV): popq %rdx popq %rsi popq %rdi - movq 6064(%rax), %r11 + movq 6080(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6064(%rax), %r11 + movq 6080(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28641,7 +28731,7 @@ GL_PREFIX(GetProgramNamedParameterdvNV): popq %rdx popq %rsi popq %rdi - movq 6064(%rax), %r11 + movq 6080(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramNamedParameterdvNV), .-GL_PREFIX(GetProgramNamedParameterdvNV) @@ -28652,7 +28742,7 @@ GL_PREFIX(GetProgramNamedParameterdvNV): GL_PREFIX(GetProgramNamedParameterfvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6072(%rax), %r11 + movq 6088(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28666,13 +28756,13 @@ GL_PREFIX(GetProgramNamedParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 6072(%rax), %r11 + movq 6088(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6072(%rax), %r11 + movq 6088(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28686,7 +28776,7 @@ GL_PREFIX(GetProgramNamedParameterfvNV): popq %rdx popq %rsi popq %rdi - movq 6072(%rax), %r11 + movq 6088(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetProgramNamedParameterfvNV), .-GL_PREFIX(GetProgramNamedParameterfvNV) @@ -28697,7 +28787,7 @@ GL_PREFIX(GetProgramNamedParameterfvNV): GL_PREFIX(ProgramNamedParameter4dNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6080(%rax), %r11 + movq 6096(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -28717,13 +28807,13 @@ GL_PREFIX(ProgramNamedParameter4dNV): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 6080(%rax), %r11 + movq 6096(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6080(%rax), %r11 + movq 6096(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -28743,7 +28833,7 @@ GL_PREFIX(ProgramNamedParameter4dNV): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 6080(%rax), %r11 + movq 6096(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramNamedParameter4dNV), .-GL_PREFIX(ProgramNamedParameter4dNV) @@ -28754,7 +28844,7 @@ GL_PREFIX(ProgramNamedParameter4dNV): GL_PREFIX(ProgramNamedParameter4dvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6088(%rax), %r11 + movq 6104(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28768,13 +28858,13 @@ GL_PREFIX(ProgramNamedParameter4dvNV): popq %rdx popq %rsi popq %rdi - movq 6088(%rax), %r11 + movq 6104(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6088(%rax), %r11 + movq 6104(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28788,7 +28878,7 @@ GL_PREFIX(ProgramNamedParameter4dvNV): popq %rdx popq %rsi popq %rdi - movq 6088(%rax), %r11 + movq 6104(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramNamedParameter4dvNV), .-GL_PREFIX(ProgramNamedParameter4dvNV) @@ -28799,7 +28889,7 @@ GL_PREFIX(ProgramNamedParameter4dvNV): GL_PREFIX(ProgramNamedParameter4fNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6096(%rax), %r11 + movq 6112(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) subq $56, %rsp @@ -28819,13 +28909,13 @@ GL_PREFIX(ProgramNamedParameter4fNV): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 6096(%rax), %r11 + movq 6112(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6096(%rax), %r11 + movq 6112(%rax), %r11 jmp *%r11 1: subq $56, %rsp @@ -28845,7 +28935,7 @@ GL_PREFIX(ProgramNamedParameter4fNV): movq 8(%rsp), %rsi movq (%rsp), %rdi addq $56, %rsp - movq 6096(%rax), %r11 + movq 6112(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramNamedParameter4fNV), .-GL_PREFIX(ProgramNamedParameter4fNV) @@ -28856,7 +28946,7 @@ GL_PREFIX(ProgramNamedParameter4fNV): GL_PREFIX(ProgramNamedParameter4fvNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6104(%rax), %r11 + movq 6120(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28870,13 +28960,13 @@ GL_PREFIX(ProgramNamedParameter4fvNV): popq %rdx popq %rsi popq %rdi - movq 6104(%rax), %r11 + movq 6120(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6104(%rax), %r11 + movq 6120(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28890,19 +28980,19 @@ GL_PREFIX(ProgramNamedParameter4fvNV): popq %rdx popq %rsi popq %rdi - movq 6104(%rax), %r11 + movq 6120(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProgramNamedParameter4fvNV), .-GL_PREFIX(ProgramNamedParameter4fvNV) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_764) - .type GL_PREFIX(_dispatch_stub_764), @function - HIDDEN(GL_PREFIX(_dispatch_stub_764)) -GL_PREFIX(_dispatch_stub_764): + .globl GL_PREFIX(_dispatch_stub_766) + .type GL_PREFIX(_dispatch_stub_766), @function + HIDDEN(GL_PREFIX(_dispatch_stub_766)) +GL_PREFIX(_dispatch_stub_766): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6112(%rax), %r11 + movq 6128(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28912,13 +29002,13 @@ GL_PREFIX(_dispatch_stub_764): popq %rbp popq %rsi popq %rdi - movq 6112(%rax), %r11 + movq 6128(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6112(%rax), %r11 + movq 6128(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28928,19 +29018,19 @@ GL_PREFIX(_dispatch_stub_764): popq %rbp popq %rsi popq %rdi - movq 6112(%rax), %r11 + movq 6128(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_764), .-GL_PREFIX(_dispatch_stub_764) + .size GL_PREFIX(_dispatch_stub_766), .-GL_PREFIX(_dispatch_stub_766) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_765) - .type GL_PREFIX(_dispatch_stub_765), @function - HIDDEN(GL_PREFIX(_dispatch_stub_765)) -GL_PREFIX(_dispatch_stub_765): + .globl GL_PREFIX(_dispatch_stub_767) + .type GL_PREFIX(_dispatch_stub_767), @function + HIDDEN(GL_PREFIX(_dispatch_stub_767)) +GL_PREFIX(_dispatch_stub_767): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6120(%rax), %r11 + movq 6136(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28950,13 +29040,13 @@ GL_PREFIX(_dispatch_stub_765): popq %rbp popq %rsi popq %rdi - movq 6120(%rax), %r11 + movq 6136(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6120(%rax), %r11 + movq 6136(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -28966,10 +29056,10 @@ GL_PREFIX(_dispatch_stub_765): popq %rbp popq %rsi popq %rdi - movq 6120(%rax), %r11 + movq 6136(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_765), .-GL_PREFIX(_dispatch_stub_765) + .size GL_PREFIX(_dispatch_stub_767), .-GL_PREFIX(_dispatch_stub_767) .p2align 4,,15 .globl GL_PREFIX(BindFramebufferEXT) @@ -28977,7 +29067,7 @@ GL_PREFIX(_dispatch_stub_765): GL_PREFIX(BindFramebufferEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6128(%rax), %r11 + movq 6144(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -28987,13 +29077,13 @@ GL_PREFIX(BindFramebufferEXT): popq %rbp popq %rsi popq %rdi - movq 6128(%rax), %r11 + movq 6144(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6128(%rax), %r11 + movq 6144(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29003,7 +29093,7 @@ GL_PREFIX(BindFramebufferEXT): popq %rbp popq %rsi popq %rdi - movq 6128(%rax), %r11 + movq 6144(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindFramebufferEXT), .-GL_PREFIX(BindFramebufferEXT) @@ -29014,7 +29104,7 @@ GL_PREFIX(BindFramebufferEXT): GL_PREFIX(BindRenderbufferEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6136(%rax), %r11 + movq 6152(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29024,13 +29114,13 @@ GL_PREFIX(BindRenderbufferEXT): popq %rbp popq %rsi popq %rdi - movq 6136(%rax), %r11 + movq 6152(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6136(%rax), %r11 + movq 6152(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29040,7 +29130,7 @@ GL_PREFIX(BindRenderbufferEXT): popq %rbp popq %rsi popq %rdi - movq 6136(%rax), %r11 + movq 6152(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindRenderbufferEXT), .-GL_PREFIX(BindRenderbufferEXT) @@ -29051,25 +29141,25 @@ GL_PREFIX(BindRenderbufferEXT): GL_PREFIX(CheckFramebufferStatusEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6144(%rax), %r11 + movq 6160(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6144(%rax), %r11 + movq 6160(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6144(%rax), %r11 + movq 6160(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6144(%rax), %r11 + movq 6160(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(CheckFramebufferStatusEXT), .-GL_PREFIX(CheckFramebufferStatusEXT) @@ -29080,7 +29170,7 @@ GL_PREFIX(CheckFramebufferStatusEXT): GL_PREFIX(DeleteFramebuffersEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6152(%rax), %r11 + movq 6168(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29090,13 +29180,13 @@ GL_PREFIX(DeleteFramebuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6152(%rax), %r11 + movq 6168(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6152(%rax), %r11 + movq 6168(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29106,7 +29196,7 @@ GL_PREFIX(DeleteFramebuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6152(%rax), %r11 + movq 6168(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteFramebuffersEXT), .-GL_PREFIX(DeleteFramebuffersEXT) @@ -29117,7 +29207,7 @@ GL_PREFIX(DeleteFramebuffersEXT): GL_PREFIX(DeleteRenderbuffersEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6160(%rax), %r11 + movq 6176(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29127,13 +29217,13 @@ GL_PREFIX(DeleteRenderbuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6160(%rax), %r11 + movq 6176(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6160(%rax), %r11 + movq 6176(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29143,7 +29233,7 @@ GL_PREFIX(DeleteRenderbuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6160(%rax), %r11 + movq 6176(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DeleteRenderbuffersEXT), .-GL_PREFIX(DeleteRenderbuffersEXT) @@ -29154,7 +29244,7 @@ GL_PREFIX(DeleteRenderbuffersEXT): GL_PREFIX(FramebufferRenderbufferEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6168(%rax), %r11 + movq 6184(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29168,13 +29258,13 @@ GL_PREFIX(FramebufferRenderbufferEXT): popq %rdx popq %rsi popq %rdi - movq 6168(%rax), %r11 + movq 6184(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6168(%rax), %r11 + movq 6184(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29188,7 +29278,7 @@ GL_PREFIX(FramebufferRenderbufferEXT): popq %rdx popq %rsi popq %rdi - movq 6168(%rax), %r11 + movq 6184(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FramebufferRenderbufferEXT), .-GL_PREFIX(FramebufferRenderbufferEXT) @@ -29199,7 +29289,7 @@ GL_PREFIX(FramebufferRenderbufferEXT): GL_PREFIX(FramebufferTexture1DEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6176(%rax), %r11 + movq 6192(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29213,13 +29303,13 @@ GL_PREFIX(FramebufferTexture1DEXT): popq %rdx popq %rsi popq %rdi - movq 6176(%rax), %r11 + movq 6192(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6176(%rax), %r11 + movq 6192(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29233,7 +29323,7 @@ GL_PREFIX(FramebufferTexture1DEXT): popq %rdx popq %rsi popq %rdi - movq 6176(%rax), %r11 + movq 6192(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FramebufferTexture1DEXT), .-GL_PREFIX(FramebufferTexture1DEXT) @@ -29244,7 +29334,7 @@ GL_PREFIX(FramebufferTexture1DEXT): GL_PREFIX(FramebufferTexture2DEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6184(%rax), %r11 + movq 6200(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29258,13 +29348,13 @@ GL_PREFIX(FramebufferTexture2DEXT): popq %rdx popq %rsi popq %rdi - movq 6184(%rax), %r11 + movq 6200(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6184(%rax), %r11 + movq 6200(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29278,7 +29368,7 @@ GL_PREFIX(FramebufferTexture2DEXT): popq %rdx popq %rsi popq %rdi - movq 6184(%rax), %r11 + movq 6200(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FramebufferTexture2DEXT), .-GL_PREFIX(FramebufferTexture2DEXT) @@ -29289,7 +29379,7 @@ GL_PREFIX(FramebufferTexture2DEXT): GL_PREFIX(FramebufferTexture3DEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6192(%rax), %r11 + movq 6208(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29307,13 +29397,13 @@ GL_PREFIX(FramebufferTexture3DEXT): popq %rdx popq %rsi popq %rdi - movq 6192(%rax), %r11 + movq 6208(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6192(%rax), %r11 + movq 6208(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29331,7 +29421,7 @@ GL_PREFIX(FramebufferTexture3DEXT): popq %rdx popq %rsi popq %rdi - movq 6192(%rax), %r11 + movq 6208(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FramebufferTexture3DEXT), .-GL_PREFIX(FramebufferTexture3DEXT) @@ -29342,7 +29432,7 @@ GL_PREFIX(FramebufferTexture3DEXT): GL_PREFIX(GenFramebuffersEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6200(%rax), %r11 + movq 6216(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29352,13 +29442,13 @@ GL_PREFIX(GenFramebuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6200(%rax), %r11 + movq 6216(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6200(%rax), %r11 + movq 6216(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29368,7 +29458,7 @@ GL_PREFIX(GenFramebuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6200(%rax), %r11 + movq 6216(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenFramebuffersEXT), .-GL_PREFIX(GenFramebuffersEXT) @@ -29379,7 +29469,7 @@ GL_PREFIX(GenFramebuffersEXT): GL_PREFIX(GenRenderbuffersEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6208(%rax), %r11 + movq 6224(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29389,13 +29479,13 @@ GL_PREFIX(GenRenderbuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6208(%rax), %r11 + movq 6224(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6208(%rax), %r11 + movq 6224(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29405,7 +29495,7 @@ GL_PREFIX(GenRenderbuffersEXT): popq %rbp popq %rsi popq %rdi - movq 6208(%rax), %r11 + movq 6224(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenRenderbuffersEXT), .-GL_PREFIX(GenRenderbuffersEXT) @@ -29416,25 +29506,25 @@ GL_PREFIX(GenRenderbuffersEXT): GL_PREFIX(GenerateMipmapEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6216(%rax), %r11 + movq 6232(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6216(%rax), %r11 + movq 6232(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6216(%rax), %r11 + movq 6232(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6216(%rax), %r11 + movq 6232(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GenerateMipmapEXT), .-GL_PREFIX(GenerateMipmapEXT) @@ -29445,7 +29535,7 @@ GL_PREFIX(GenerateMipmapEXT): GL_PREFIX(GetFramebufferAttachmentParameterivEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6224(%rax), %r11 + movq 6240(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29459,13 +29549,13 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT): popq %rdx popq %rsi popq %rdi - movq 6224(%rax), %r11 + movq 6240(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6224(%rax), %r11 + movq 6240(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29479,7 +29569,7 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT): popq %rdx popq %rsi popq %rdi - movq 6224(%rax), %r11 + movq 6240(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetFramebufferAttachmentParameterivEXT), .-GL_PREFIX(GetFramebufferAttachmentParameterivEXT) @@ -29490,7 +29580,7 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT): GL_PREFIX(GetRenderbufferParameterivEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6232(%rax), %r11 + movq 6248(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29500,13 +29590,13 @@ GL_PREFIX(GetRenderbufferParameterivEXT): popq %rdx popq %rsi popq %rdi - movq 6232(%rax), %r11 + movq 6248(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6232(%rax), %r11 + movq 6248(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29516,7 +29606,7 @@ GL_PREFIX(GetRenderbufferParameterivEXT): popq %rdx popq %rsi popq %rdi - movq 6232(%rax), %r11 + movq 6248(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetRenderbufferParameterivEXT), .-GL_PREFIX(GetRenderbufferParameterivEXT) @@ -29527,25 +29617,25 @@ GL_PREFIX(GetRenderbufferParameterivEXT): GL_PREFIX(IsFramebufferEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6240(%rax), %r11 + movq 6256(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6240(%rax), %r11 + movq 6256(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6240(%rax), %r11 + movq 6256(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6240(%rax), %r11 + movq 6256(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsFramebufferEXT), .-GL_PREFIX(IsFramebufferEXT) @@ -29556,25 +29646,25 @@ GL_PREFIX(IsFramebufferEXT): GL_PREFIX(IsRenderbufferEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6248(%rax), %r11 + movq 6264(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6248(%rax), %r11 + movq 6264(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6248(%rax), %r11 + movq 6264(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6248(%rax), %r11 + movq 6264(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsRenderbufferEXT), .-GL_PREFIX(IsRenderbufferEXT) @@ -29585,7 +29675,7 @@ GL_PREFIX(IsRenderbufferEXT): GL_PREFIX(RenderbufferStorageEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6256(%rax), %r11 + movq 6272(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29599,13 +29689,13 @@ GL_PREFIX(RenderbufferStorageEXT): popq %rdx popq %rsi popq %rdi - movq 6256(%rax), %r11 + movq 6272(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6256(%rax), %r11 + movq 6272(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29619,19 +29709,19 @@ GL_PREFIX(RenderbufferStorageEXT): popq %rdx popq %rsi popq %rdi - movq 6256(%rax), %r11 + movq 6272(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(RenderbufferStorageEXT), .-GL_PREFIX(RenderbufferStorageEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_783) - .type GL_PREFIX(_dispatch_stub_783), @function - HIDDEN(GL_PREFIX(_dispatch_stub_783)) -GL_PREFIX(_dispatch_stub_783): + .globl GL_PREFIX(_dispatch_stub_785) + .type GL_PREFIX(_dispatch_stub_785), @function + HIDDEN(GL_PREFIX(_dispatch_stub_785)) +GL_PREFIX(_dispatch_stub_785): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6264(%rax), %r11 + movq 6280(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29649,13 +29739,13 @@ GL_PREFIX(_dispatch_stub_783): popq %rdx popq %rsi popq %rdi - movq 6264(%rax), %r11 + movq 6280(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6264(%rax), %r11 + movq 6280(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29673,19 +29763,19 @@ GL_PREFIX(_dispatch_stub_783): popq %rdx popq %rsi popq %rdi - movq 6264(%rax), %r11 + movq 6280(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_783), .-GL_PREFIX(_dispatch_stub_783) + .size GL_PREFIX(_dispatch_stub_785), .-GL_PREFIX(_dispatch_stub_785) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_784) - .type GL_PREFIX(_dispatch_stub_784), @function - HIDDEN(GL_PREFIX(_dispatch_stub_784)) -GL_PREFIX(_dispatch_stub_784): + .globl GL_PREFIX(_dispatch_stub_786) + .type GL_PREFIX(_dispatch_stub_786), @function + HIDDEN(GL_PREFIX(_dispatch_stub_786)) +GL_PREFIX(_dispatch_stub_786): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6272(%rax), %r11 + movq 6288(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29695,13 +29785,13 @@ GL_PREFIX(_dispatch_stub_784): popq %rdx popq %rsi popq %rdi - movq 6272(%rax), %r11 + movq 6288(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6272(%rax), %r11 + movq 6288(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29711,19 +29801,19 @@ GL_PREFIX(_dispatch_stub_784): popq %rdx popq %rsi popq %rdi - movq 6272(%rax), %r11 + movq 6288(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_784), .-GL_PREFIX(_dispatch_stub_784) + .size GL_PREFIX(_dispatch_stub_786), .-GL_PREFIX(_dispatch_stub_786) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_785) - .type GL_PREFIX(_dispatch_stub_785), @function - HIDDEN(GL_PREFIX(_dispatch_stub_785)) -GL_PREFIX(_dispatch_stub_785): + .globl GL_PREFIX(_dispatch_stub_787) + .type GL_PREFIX(_dispatch_stub_787), @function + HIDDEN(GL_PREFIX(_dispatch_stub_787)) +GL_PREFIX(_dispatch_stub_787): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6280(%rax), %r11 + movq 6296(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29733,13 +29823,13 @@ GL_PREFIX(_dispatch_stub_785): popq %rdx popq %rsi popq %rdi - movq 6280(%rax), %r11 + movq 6296(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6280(%rax), %r11 + movq 6296(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29749,10 +29839,10 @@ GL_PREFIX(_dispatch_stub_785): popq %rdx popq %rsi popq %rdi - movq 6280(%rax), %r11 + movq 6296(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_785), .-GL_PREFIX(_dispatch_stub_785) + .size GL_PREFIX(_dispatch_stub_787), .-GL_PREFIX(_dispatch_stub_787) .p2align 4,,15 .globl GL_PREFIX(FramebufferTextureLayerEXT) @@ -29760,7 +29850,7 @@ GL_PREFIX(_dispatch_stub_785): GL_PREFIX(FramebufferTextureLayerEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6288(%rax), %r11 + movq 6304(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29774,13 +29864,13 @@ GL_PREFIX(FramebufferTextureLayerEXT): popq %rdx popq %rsi popq %rdi - movq 6288(%rax), %r11 + movq 6304(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6288(%rax), %r11 + movq 6304(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29794,7 +29884,7 @@ GL_PREFIX(FramebufferTextureLayerEXT): popq %rdx popq %rsi popq %rdi - movq 6288(%rax), %r11 + movq 6304(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(FramebufferTextureLayerEXT), .-GL_PREFIX(FramebufferTextureLayerEXT) @@ -29805,7 +29895,7 @@ GL_PREFIX(FramebufferTextureLayerEXT): GL_PREFIX(ColorMaskIndexedEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6296(%rax), %r11 + movq 6312(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29819,13 +29909,13 @@ GL_PREFIX(ColorMaskIndexedEXT): popq %rdx popq %rsi popq %rdi - movq 6296(%rax), %r11 + movq 6312(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6296(%rax), %r11 + movq 6312(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29839,7 +29929,7 @@ GL_PREFIX(ColorMaskIndexedEXT): popq %rdx popq %rsi popq %rdi - movq 6296(%rax), %r11 + movq 6312(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ColorMaskIndexedEXT), .-GL_PREFIX(ColorMaskIndexedEXT) @@ -29850,7 +29940,7 @@ GL_PREFIX(ColorMaskIndexedEXT): GL_PREFIX(DisableIndexedEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6304(%rax), %r11 + movq 6320(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29860,13 +29950,13 @@ GL_PREFIX(DisableIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6304(%rax), %r11 + movq 6320(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6304(%rax), %r11 + movq 6320(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29876,7 +29966,7 @@ GL_PREFIX(DisableIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6304(%rax), %r11 + movq 6320(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(DisableIndexedEXT), .-GL_PREFIX(DisableIndexedEXT) @@ -29887,7 +29977,7 @@ GL_PREFIX(DisableIndexedEXT): GL_PREFIX(EnableIndexedEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6312(%rax), %r11 + movq 6328(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29897,13 +29987,13 @@ GL_PREFIX(EnableIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6312(%rax), %r11 + movq 6328(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6312(%rax), %r11 + movq 6328(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29913,7 +30003,7 @@ GL_PREFIX(EnableIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6312(%rax), %r11 + movq 6328(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EnableIndexedEXT), .-GL_PREFIX(EnableIndexedEXT) @@ -29924,7 +30014,7 @@ GL_PREFIX(EnableIndexedEXT): GL_PREFIX(GetBooleanIndexedvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6320(%rax), %r11 + movq 6336(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29934,13 +30024,13 @@ GL_PREFIX(GetBooleanIndexedvEXT): popq %rdx popq %rsi popq %rdi - movq 6320(%rax), %r11 + movq 6336(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6320(%rax), %r11 + movq 6336(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29950,7 +30040,7 @@ GL_PREFIX(GetBooleanIndexedvEXT): popq %rdx popq %rsi popq %rdi - movq 6320(%rax), %r11 + movq 6336(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetBooleanIndexedvEXT), .-GL_PREFIX(GetBooleanIndexedvEXT) @@ -29961,7 +30051,7 @@ GL_PREFIX(GetBooleanIndexedvEXT): GL_PREFIX(GetIntegerIndexedvEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6328(%rax), %r11 + movq 6344(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -29971,13 +30061,13 @@ GL_PREFIX(GetIntegerIndexedvEXT): popq %rdx popq %rsi popq %rdi - movq 6328(%rax), %r11 + movq 6344(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6328(%rax), %r11 + movq 6344(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -29987,7 +30077,7 @@ GL_PREFIX(GetIntegerIndexedvEXT): popq %rdx popq %rsi popq %rdi - movq 6328(%rax), %r11 + movq 6344(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetIntegerIndexedvEXT), .-GL_PREFIX(GetIntegerIndexedvEXT) @@ -29998,7 +30088,7 @@ GL_PREFIX(GetIntegerIndexedvEXT): GL_PREFIX(IsEnabledIndexedEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6336(%rax), %r11 + movq 6352(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30008,13 +30098,13 @@ GL_PREFIX(IsEnabledIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6336(%rax), %r11 + movq 6352(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6336(%rax), %r11 + movq 6352(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30024,7 +30114,7 @@ GL_PREFIX(IsEnabledIndexedEXT): popq %rbp popq %rsi popq %rdi - movq 6336(%rax), %r11 + movq 6352(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(IsEnabledIndexedEXT), .-GL_PREFIX(IsEnabledIndexedEXT) @@ -30035,7 +30125,7 @@ GL_PREFIX(IsEnabledIndexedEXT): GL_PREFIX(BeginConditionalRenderNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6344(%rax), %r11 + movq 6360(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30045,13 +30135,13 @@ GL_PREFIX(BeginConditionalRenderNV): popq %rbp popq %rsi popq %rdi - movq 6344(%rax), %r11 + movq 6360(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6344(%rax), %r11 + movq 6360(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30061,7 +30151,7 @@ GL_PREFIX(BeginConditionalRenderNV): popq %rbp popq %rsi popq %rdi - movq 6344(%rax), %r11 + movq 6360(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BeginConditionalRenderNV), .-GL_PREFIX(BeginConditionalRenderNV) @@ -30072,25 +30162,25 @@ GL_PREFIX(BeginConditionalRenderNV): GL_PREFIX(EndConditionalRenderNV): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6352(%rax), %r11 + movq 6368(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 6352(%rax), %r11 + movq 6368(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6352(%rax), %r11 + movq 6368(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 6352(%rax), %r11 + movq 6368(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EndConditionalRenderNV), .-GL_PREFIX(EndConditionalRenderNV) @@ -30101,25 +30191,25 @@ GL_PREFIX(EndConditionalRenderNV): GL_PREFIX(BeginTransformFeedbackEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6360(%rax), %r11 + movq 6376(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6360(%rax), %r11 + movq 6376(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6360(%rax), %r11 + movq 6376(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6360(%rax), %r11 + movq 6376(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BeginTransformFeedbackEXT), .-GL_PREFIX(BeginTransformFeedbackEXT) @@ -30130,7 +30220,7 @@ GL_PREFIX(BeginTransformFeedbackEXT): GL_PREFIX(BindBufferBaseEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6368(%rax), %r11 + movq 6384(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30140,13 +30230,13 @@ GL_PREFIX(BindBufferBaseEXT): popq %rdx popq %rsi popq %rdi - movq 6368(%rax), %r11 + movq 6384(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6368(%rax), %r11 + movq 6384(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30156,7 +30246,7 @@ GL_PREFIX(BindBufferBaseEXT): popq %rdx popq %rsi popq %rdi - movq 6368(%rax), %r11 + movq 6384(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindBufferBaseEXT), .-GL_PREFIX(BindBufferBaseEXT) @@ -30167,7 +30257,7 @@ GL_PREFIX(BindBufferBaseEXT): GL_PREFIX(BindBufferOffsetEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6376(%rax), %r11 + movq 6392(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30181,13 +30271,13 @@ GL_PREFIX(BindBufferOffsetEXT): popq %rdx popq %rsi popq %rdi - movq 6376(%rax), %r11 + movq 6392(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6376(%rax), %r11 + movq 6392(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30201,7 +30291,7 @@ GL_PREFIX(BindBufferOffsetEXT): popq %rdx popq %rsi popq %rdi - movq 6376(%rax), %r11 + movq 6392(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindBufferOffsetEXT), .-GL_PREFIX(BindBufferOffsetEXT) @@ -30212,7 +30302,7 @@ GL_PREFIX(BindBufferOffsetEXT): GL_PREFIX(BindBufferRangeEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6384(%rax), %r11 + movq 6400(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30226,13 +30316,13 @@ GL_PREFIX(BindBufferRangeEXT): popq %rdx popq %rsi popq %rdi - movq 6384(%rax), %r11 + movq 6400(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6384(%rax), %r11 + movq 6400(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30246,7 +30336,7 @@ GL_PREFIX(BindBufferRangeEXT): popq %rdx popq %rsi popq %rdi - movq 6384(%rax), %r11 + movq 6400(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(BindBufferRangeEXT), .-GL_PREFIX(BindBufferRangeEXT) @@ -30257,25 +30347,25 @@ GL_PREFIX(BindBufferRangeEXT): GL_PREFIX(EndTransformFeedbackEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6392(%rax), %r11 + movq 6408(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rbp call _x86_64_get_dispatch@PLT popq %rbp - movq 6392(%rax), %r11 + movq 6408(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6392(%rax), %r11 + movq 6408(%rax), %r11 jmp *%r11 1: pushq %rbp call _glapi_get_dispatch popq %rbp - movq 6392(%rax), %r11 + movq 6408(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EndTransformFeedbackEXT), .-GL_PREFIX(EndTransformFeedbackEXT) @@ -30286,7 +30376,7 @@ GL_PREFIX(EndTransformFeedbackEXT): GL_PREFIX(GetTransformFeedbackVaryingEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6400(%rax), %r11 + movq 6416(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30304,13 +30394,13 @@ GL_PREFIX(GetTransformFeedbackVaryingEXT): popq %rdx popq %rsi popq %rdi - movq 6400(%rax), %r11 + movq 6416(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6400(%rax), %r11 + movq 6416(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30328,7 +30418,7 @@ GL_PREFIX(GetTransformFeedbackVaryingEXT): popq %rdx popq %rsi popq %rdi - movq 6400(%rax), %r11 + movq 6416(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetTransformFeedbackVaryingEXT), .-GL_PREFIX(GetTransformFeedbackVaryingEXT) @@ -30339,7 +30429,7 @@ GL_PREFIX(GetTransformFeedbackVaryingEXT): GL_PREFIX(TransformFeedbackVaryingsEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6408(%rax), %r11 + movq 6424(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30353,13 +30443,13 @@ GL_PREFIX(TransformFeedbackVaryingsEXT): popq %rdx popq %rsi popq %rdi - movq 6408(%rax), %r11 + movq 6424(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6408(%rax), %r11 + movq 6424(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30373,7 +30463,7 @@ GL_PREFIX(TransformFeedbackVaryingsEXT): popq %rdx popq %rsi popq %rdi - movq 6408(%rax), %r11 + movq 6424(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(TransformFeedbackVaryingsEXT), .-GL_PREFIX(TransformFeedbackVaryingsEXT) @@ -30384,37 +30474,37 @@ GL_PREFIX(TransformFeedbackVaryingsEXT): GL_PREFIX(ProvokingVertexEXT): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6416(%rax), %r11 + movq 6432(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi call _x86_64_get_dispatch@PLT popq %rdi - movq 6416(%rax), %r11 + movq 6432(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6416(%rax), %r11 + movq 6432(%rax), %r11 jmp *%r11 1: pushq %rdi call _glapi_get_dispatch popq %rdi - movq 6416(%rax), %r11 + movq 6432(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ProvokingVertexEXT), .-GL_PREFIX(ProvokingVertexEXT) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_803) - .type GL_PREFIX(_dispatch_stub_803), @function - HIDDEN(GL_PREFIX(_dispatch_stub_803)) -GL_PREFIX(_dispatch_stub_803): + .globl GL_PREFIX(_dispatch_stub_805) + .type GL_PREFIX(_dispatch_stub_805), @function + HIDDEN(GL_PREFIX(_dispatch_stub_805)) +GL_PREFIX(_dispatch_stub_805): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6424(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30424,13 +30514,13 @@ GL_PREFIX(_dispatch_stub_803): popq %rdx popq %rsi popq %rdi - movq 6424(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6424(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30440,19 +30530,19 @@ GL_PREFIX(_dispatch_stub_803): popq %rdx popq %rsi popq %rdi - movq 6424(%rax), %r11 + movq 6440(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_803), .-GL_PREFIX(_dispatch_stub_803) + .size GL_PREFIX(_dispatch_stub_805), .-GL_PREFIX(_dispatch_stub_805) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_804) - .type GL_PREFIX(_dispatch_stub_804), @function - HIDDEN(GL_PREFIX(_dispatch_stub_804)) -GL_PREFIX(_dispatch_stub_804): + .globl GL_PREFIX(_dispatch_stub_806) + .type GL_PREFIX(_dispatch_stub_806), @function + HIDDEN(GL_PREFIX(_dispatch_stub_806)) +GL_PREFIX(_dispatch_stub_806): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6432(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30462,13 +30552,13 @@ GL_PREFIX(_dispatch_stub_804): popq %rdx popq %rsi popq %rdi - movq 6432(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6432(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30478,10 +30568,10 @@ GL_PREFIX(_dispatch_stub_804): popq %rdx popq %rsi popq %rdi - movq 6432(%rax), %r11 + movq 6448(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_804), .-GL_PREFIX(_dispatch_stub_804) + .size GL_PREFIX(_dispatch_stub_806), .-GL_PREFIX(_dispatch_stub_806) .p2align 4,,15 .globl GL_PREFIX(GetObjectParameterivAPPLE) @@ -30489,7 +30579,7 @@ GL_PREFIX(_dispatch_stub_804): GL_PREFIX(GetObjectParameterivAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6440(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30503,13 +30593,13 @@ GL_PREFIX(GetObjectParameterivAPPLE): popq %rdx popq %rsi popq %rdi - movq 6440(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6440(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30523,7 +30613,7 @@ GL_PREFIX(GetObjectParameterivAPPLE): popq %rdx popq %rsi popq %rdi - movq 6440(%rax), %r11 + movq 6456(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(GetObjectParameterivAPPLE), .-GL_PREFIX(GetObjectParameterivAPPLE) @@ -30534,7 +30624,7 @@ GL_PREFIX(GetObjectParameterivAPPLE): GL_PREFIX(ObjectPurgeableAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6448(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30544,13 +30634,13 @@ GL_PREFIX(ObjectPurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6448(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6448(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30560,7 +30650,7 @@ GL_PREFIX(ObjectPurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6448(%rax), %r11 + movq 6464(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ObjectPurgeableAPPLE), .-GL_PREFIX(ObjectPurgeableAPPLE) @@ -30571,7 +30661,7 @@ GL_PREFIX(ObjectPurgeableAPPLE): GL_PREFIX(ObjectUnpurgeableAPPLE): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6456(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30581,13 +30671,13 @@ GL_PREFIX(ObjectUnpurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6456(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6456(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30597,19 +30687,19 @@ GL_PREFIX(ObjectUnpurgeableAPPLE): popq %rdx popq %rsi popq %rdi - movq 6456(%rax), %r11 + movq 6472(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(ObjectUnpurgeableAPPLE), .-GL_PREFIX(ObjectUnpurgeableAPPLE) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_808) - .type GL_PREFIX(_dispatch_stub_808), @function - HIDDEN(GL_PREFIX(_dispatch_stub_808)) -GL_PREFIX(_dispatch_stub_808): + .globl GL_PREFIX(_dispatch_stub_810) + .type GL_PREFIX(_dispatch_stub_810), @function + HIDDEN(GL_PREFIX(_dispatch_stub_810)) +GL_PREFIX(_dispatch_stub_810): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6464(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30623,13 +30713,13 @@ GL_PREFIX(_dispatch_stub_808): popq %rdx popq %rsi popq %rdi - movq 6464(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6464(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30643,19 +30733,19 @@ GL_PREFIX(_dispatch_stub_808): popq %rdx popq %rsi popq %rdi - movq 6464(%rax), %r11 + movq 6480(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_808), .-GL_PREFIX(_dispatch_stub_808) + .size GL_PREFIX(_dispatch_stub_810), .-GL_PREFIX(_dispatch_stub_810) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_809) - .type GL_PREFIX(_dispatch_stub_809), @function - HIDDEN(GL_PREFIX(_dispatch_stub_809)) -GL_PREFIX(_dispatch_stub_809): + .globl GL_PREFIX(_dispatch_stub_811) + .type GL_PREFIX(_dispatch_stub_811), @function + HIDDEN(GL_PREFIX(_dispatch_stub_811)) +GL_PREFIX(_dispatch_stub_811): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6472(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30669,13 +30759,13 @@ GL_PREFIX(_dispatch_stub_809): popq %rdx popq %rsi popq %rdi - movq 6472(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6472(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30689,19 +30779,19 @@ GL_PREFIX(_dispatch_stub_809): popq %rdx popq %rsi popq %rdi - movq 6472(%rax), %r11 + movq 6488(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_809), .-GL_PREFIX(_dispatch_stub_809) + .size GL_PREFIX(_dispatch_stub_811), .-GL_PREFIX(_dispatch_stub_811) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_810) - .type GL_PREFIX(_dispatch_stub_810), @function - HIDDEN(GL_PREFIX(_dispatch_stub_810)) -GL_PREFIX(_dispatch_stub_810): + .globl GL_PREFIX(_dispatch_stub_812) + .type GL_PREFIX(_dispatch_stub_812), @function + HIDDEN(GL_PREFIX(_dispatch_stub_812)) +GL_PREFIX(_dispatch_stub_812): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6480(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30715,13 +30805,13 @@ GL_PREFIX(_dispatch_stub_810): popq %rdx popq %rsi popq %rdi - movq 6480(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6480(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30735,19 +30825,19 @@ GL_PREFIX(_dispatch_stub_810): popq %rdx popq %rsi popq %rdi - movq 6480(%rax), %r11 + movq 6496(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_810), .-GL_PREFIX(_dispatch_stub_810) + .size GL_PREFIX(_dispatch_stub_812), .-GL_PREFIX(_dispatch_stub_812) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_811) - .type GL_PREFIX(_dispatch_stub_811), @function - HIDDEN(GL_PREFIX(_dispatch_stub_811)) -GL_PREFIX(_dispatch_stub_811): + .globl GL_PREFIX(_dispatch_stub_813) + .type GL_PREFIX(_dispatch_stub_813), @function + HIDDEN(GL_PREFIX(_dispatch_stub_813)) +GL_PREFIX(_dispatch_stub_813): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6488(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30757,13 +30847,13 @@ GL_PREFIX(_dispatch_stub_811): popq %rdx popq %rsi popq %rdi - movq 6488(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6488(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30773,19 +30863,19 @@ GL_PREFIX(_dispatch_stub_811): popq %rdx popq %rsi popq %rdi - movq 6488(%rax), %r11 + movq 6504(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_811), .-GL_PREFIX(_dispatch_stub_811) + .size GL_PREFIX(_dispatch_stub_813), .-GL_PREFIX(_dispatch_stub_813) .p2align 4,,15 - .globl GL_PREFIX(_dispatch_stub_812) - .type GL_PREFIX(_dispatch_stub_812), @function - HIDDEN(GL_PREFIX(_dispatch_stub_812)) -GL_PREFIX(_dispatch_stub_812): + .globl GL_PREFIX(_dispatch_stub_814) + .type GL_PREFIX(_dispatch_stub_814), @function + HIDDEN(GL_PREFIX(_dispatch_stub_814)) +GL_PREFIX(_dispatch_stub_814): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6496(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30795,13 +30885,13 @@ GL_PREFIX(_dispatch_stub_812): popq %rdx popq %rsi popq %rdi - movq 6496(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6496(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30811,10 +30901,10 @@ GL_PREFIX(_dispatch_stub_812): popq %rdx popq %rsi popq %rdi - movq 6496(%rax), %r11 + movq 6512(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ - .size GL_PREFIX(_dispatch_stub_812), .-GL_PREFIX(_dispatch_stub_812) + .size GL_PREFIX(_dispatch_stub_814), .-GL_PREFIX(_dispatch_stub_814) .p2align 4,,15 .globl GL_PREFIX(EGLImageTargetRenderbufferStorageOES) @@ -30822,7 +30912,7 @@ GL_PREFIX(_dispatch_stub_812): GL_PREFIX(EGLImageTargetRenderbufferStorageOES): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6504(%rax), %r11 + movq 6520(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30832,13 +30922,13 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): popq %rbp popq %rsi popq %rdi - movq 6504(%rax), %r11 + movq 6520(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6504(%rax), %r11 + movq 6520(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30848,7 +30938,7 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): popq %rbp popq %rsi popq %rdi - movq 6504(%rax), %r11 + movq 6520(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EGLImageTargetRenderbufferStorageOES), .-GL_PREFIX(EGLImageTargetRenderbufferStorageOES) @@ -30859,7 +30949,7 @@ GL_PREFIX(EGLImageTargetRenderbufferStorageOES): GL_PREFIX(EGLImageTargetTexture2DOES): #if defined(GLX_USE_TLS) call _x86_64_get_dispatch@PLT - movq 6512(%rax), %r11 + movq 6528(%rax), %r11 jmp *%r11 #elif defined(PTHREADS) pushq %rdi @@ -30869,13 +30959,13 @@ GL_PREFIX(EGLImageTargetTexture2DOES): popq %rbp popq %rsi popq %rdi - movq 6512(%rax), %r11 + movq 6528(%rax), %r11 jmp *%r11 #else movq _glapi_Dispatch(%rip), %rax testq %rax, %rax je 1f - movq 6512(%rax), %r11 + movq 6528(%rax), %r11 jmp *%r11 1: pushq %rdi @@ -30885,7 +30975,7 @@ GL_PREFIX(EGLImageTargetTexture2DOES): popq %rbp popq %rsi popq %rdi - movq 6512(%rax), %r11 + movq 6528(%rax), %r11 jmp *%r11 #endif /* defined(GLX_USE_TLS) */ .size GL_PREFIX(EGLImageTargetTexture2DOES), .-GL_PREFIX(EGLImageTargetTexture2DOES) @@ -30963,6 +31053,10 @@ GL_PREFIX(EGLImageTargetTexture2DOES): .globl GL_PREFIX(MultiTexCoord4iv) ; .set GL_PREFIX(MultiTexCoord4iv), GL_PREFIX(MultiTexCoord4ivARB) .globl GL_PREFIX(MultiTexCoord4s) ; .set GL_PREFIX(MultiTexCoord4s), GL_PREFIX(MultiTexCoord4sARB) .globl GL_PREFIX(MultiTexCoord4sv) ; .set GL_PREFIX(MultiTexCoord4sv), GL_PREFIX(MultiTexCoord4svARB) + .globl GL_PREFIX(DrawArraysInstancedARB) ; .set GL_PREFIX(DrawArraysInstancedARB), GL_PREFIX(DrawArraysInstanced) + .globl GL_PREFIX(DrawArraysInstancedEXT) ; .set GL_PREFIX(DrawArraysInstancedEXT), GL_PREFIX(DrawArraysInstanced) + .globl GL_PREFIX(DrawElementsInstancedARB) ; .set GL_PREFIX(DrawElementsInstancedARB), GL_PREFIX(DrawElementsInstanced) + .globl GL_PREFIX(DrawElementsInstancedEXT) ; .set GL_PREFIX(DrawElementsInstancedEXT), GL_PREFIX(DrawElementsInstanced) .globl GL_PREFIX(LoadTransposeMatrixd) ; .set GL_PREFIX(LoadTransposeMatrixd), GL_PREFIX(LoadTransposeMatrixdARB) .globl GL_PREFIX(LoadTransposeMatrixf) ; .set GL_PREFIX(LoadTransposeMatrixf), GL_PREFIX(LoadTransposeMatrixfARB) .globl GL_PREFIX(MultTransposeMatrixd) ; .set GL_PREFIX(MultTransposeMatrixd), GL_PREFIX(MultTransposeMatrixdARB) @@ -31144,9 +31238,9 @@ GL_PREFIX(EGLImageTargetTexture2DOES): .globl GL_PREFIX(IsProgramARB) ; .set GL_PREFIX(IsProgramARB), GL_PREFIX(IsProgramNV) .globl GL_PREFIX(PointParameteri) ; .set GL_PREFIX(PointParameteri), GL_PREFIX(PointParameteriNV) .globl GL_PREFIX(PointParameteriv) ; .set GL_PREFIX(PointParameteriv), GL_PREFIX(PointParameterivNV) - .globl GL_PREFIX(DeleteVertexArrays) ; .set GL_PREFIX(DeleteVertexArrays), GL_PREFIX(_dispatch_stub_755) - .globl GL_PREFIX(IsVertexArray) ; .set GL_PREFIX(IsVertexArray), GL_PREFIX(_dispatch_stub_757) - .globl GL_PREFIX(BlendEquationSeparate) ; .set GL_PREFIX(BlendEquationSeparate), GL_PREFIX(_dispatch_stub_765) + .globl GL_PREFIX(DeleteVertexArrays) ; .set GL_PREFIX(DeleteVertexArrays), GL_PREFIX(_dispatch_stub_757) + .globl GL_PREFIX(IsVertexArray) ; .set GL_PREFIX(IsVertexArray), GL_PREFIX(_dispatch_stub_759) + .globl GL_PREFIX(BlendEquationSeparate) ; .set GL_PREFIX(BlendEquationSeparate), GL_PREFIX(_dispatch_stub_767) .globl GL_PREFIX(BindFramebuffer) ; .set GL_PREFIX(BindFramebuffer), GL_PREFIX(BindFramebufferEXT) .globl GL_PREFIX(BindRenderbuffer) ; .set GL_PREFIX(BindRenderbuffer), GL_PREFIX(BindRenderbufferEXT) .globl GL_PREFIX(CheckFramebufferStatus) ; .set GL_PREFIX(CheckFramebufferStatus), GL_PREFIX(CheckFramebufferStatusEXT) @@ -31164,7 +31258,7 @@ GL_PREFIX(EGLImageTargetTexture2DOES): .globl GL_PREFIX(IsFramebuffer) ; .set GL_PREFIX(IsFramebuffer), GL_PREFIX(IsFramebufferEXT) .globl GL_PREFIX(IsRenderbuffer) ; .set GL_PREFIX(IsRenderbuffer), GL_PREFIX(IsRenderbufferEXT) .globl GL_PREFIX(RenderbufferStorage) ; .set GL_PREFIX(RenderbufferStorage), GL_PREFIX(RenderbufferStorageEXT) - .globl GL_PREFIX(BlitFramebuffer) ; .set GL_PREFIX(BlitFramebuffer), GL_PREFIX(_dispatch_stub_783) + .globl GL_PREFIX(BlitFramebuffer) ; .set GL_PREFIX(BlitFramebuffer), GL_PREFIX(_dispatch_stub_785) .globl GL_PREFIX(FramebufferTextureLayer) ; .set GL_PREFIX(FramebufferTextureLayer), GL_PREFIX(FramebufferTextureLayerEXT) .globl GL_PREFIX(BeginTransformFeedback) ; .set GL_PREFIX(BeginTransformFeedback), GL_PREFIX(BeginTransformFeedbackEXT) .globl GL_PREFIX(BindBufferBase) ; .set GL_PREFIX(BindBufferBase), GL_PREFIX(BindBufferBaseEXT) diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S index 6dd387c399..317f595454 100644 --- a/src/mesa/x86/glapi_x86.S +++ b/src/mesa/x86/glapi_x86.S @@ -581,6 +581,8 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(UniformMatrix3x4fv, _gloffset_UniformMatrix3x4fv, UniformMatrix3x4fv@16) GL_STUB(UniformMatrix4x2fv, _gloffset_UniformMatrix4x2fv, UniformMatrix4x2fv@16) GL_STUB(UniformMatrix4x3fv, _gloffset_UniformMatrix4x3fv, UniformMatrix4x3fv@16) + GL_STUB(DrawArraysInstanced, _gloffset_DrawArraysInstanced, DrawArraysInstanced@16) + GL_STUB(DrawElementsInstanced, _gloffset_DrawElementsInstanced, DrawElementsInstanced@20) GL_STUB(LoadTransposeMatrixdARB, _gloffset_LoadTransposeMatrixdARB, LoadTransposeMatrixdARB@4) GL_STUB(LoadTransposeMatrixfARB, _gloffset_LoadTransposeMatrixfARB, LoadTransposeMatrixfARB@4) GL_STUB(MultTransposeMatrixdARB, _gloffset_MultTransposeMatrixdARB, MultTransposeMatrixdARB@4) @@ -729,22 +731,22 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(DrawRangeElementsBaseVertex, _gloffset_DrawRangeElementsBaseVertex, DrawRangeElementsBaseVertex@28) GL_STUB(MultiDrawElementsBaseVertex, _gloffset_MultiDrawElementsBaseVertex, MultiDrawElementsBaseVertex@24) GL_STUB(PolygonOffsetEXT, _gloffset_PolygonOffsetEXT, PolygonOffsetEXT@8) - GL_STUB(_dispatch_stub_578, _gloffset_GetPixelTexGenParameterfvSGIS, _dispatch_stub_578@8) - HIDDEN(GL_PREFIX(_dispatch_stub_578, _dispatch_stub_578@8)) - GL_STUB(_dispatch_stub_579, _gloffset_GetPixelTexGenParameterivSGIS, _dispatch_stub_579@8) - HIDDEN(GL_PREFIX(_dispatch_stub_579, _dispatch_stub_579@8)) - GL_STUB(_dispatch_stub_580, _gloffset_PixelTexGenParameterfSGIS, _dispatch_stub_580@8) + GL_STUB(_dispatch_stub_580, _gloffset_GetPixelTexGenParameterfvSGIS, _dispatch_stub_580@8) HIDDEN(GL_PREFIX(_dispatch_stub_580, _dispatch_stub_580@8)) - GL_STUB(_dispatch_stub_581, _gloffset_PixelTexGenParameterfvSGIS, _dispatch_stub_581@8) + GL_STUB(_dispatch_stub_581, _gloffset_GetPixelTexGenParameterivSGIS, _dispatch_stub_581@8) HIDDEN(GL_PREFIX(_dispatch_stub_581, _dispatch_stub_581@8)) - GL_STUB(_dispatch_stub_582, _gloffset_PixelTexGenParameteriSGIS, _dispatch_stub_582@8) + GL_STUB(_dispatch_stub_582, _gloffset_PixelTexGenParameterfSGIS, _dispatch_stub_582@8) HIDDEN(GL_PREFIX(_dispatch_stub_582, _dispatch_stub_582@8)) - GL_STUB(_dispatch_stub_583, _gloffset_PixelTexGenParameterivSGIS, _dispatch_stub_583@8) + GL_STUB(_dispatch_stub_583, _gloffset_PixelTexGenParameterfvSGIS, _dispatch_stub_583@8) HIDDEN(GL_PREFIX(_dispatch_stub_583, _dispatch_stub_583@8)) - GL_STUB(_dispatch_stub_584, _gloffset_SampleMaskSGIS, _dispatch_stub_584@8) + GL_STUB(_dispatch_stub_584, _gloffset_PixelTexGenParameteriSGIS, _dispatch_stub_584@8) HIDDEN(GL_PREFIX(_dispatch_stub_584, _dispatch_stub_584@8)) - GL_STUB(_dispatch_stub_585, _gloffset_SamplePatternSGIS, _dispatch_stub_585@4) - HIDDEN(GL_PREFIX(_dispatch_stub_585, _dispatch_stub_585@4)) + GL_STUB(_dispatch_stub_585, _gloffset_PixelTexGenParameterivSGIS, _dispatch_stub_585@8) + HIDDEN(GL_PREFIX(_dispatch_stub_585, _dispatch_stub_585@8)) + GL_STUB(_dispatch_stub_586, _gloffset_SampleMaskSGIS, _dispatch_stub_586@8) + HIDDEN(GL_PREFIX(_dispatch_stub_586, _dispatch_stub_586@8)) + GL_STUB(_dispatch_stub_587, _gloffset_SamplePatternSGIS, _dispatch_stub_587@4) + HIDDEN(GL_PREFIX(_dispatch_stub_587, _dispatch_stub_587@4)) GL_STUB(ColorPointerEXT, _gloffset_ColorPointerEXT, ColorPointerEXT@20) GL_STUB(EdgeFlagPointerEXT, _gloffset_EdgeFlagPointerEXT, EdgeFlagPointerEXT@12) GL_STUB(IndexPointerEXT, _gloffset_IndexPointerEXT, IndexPointerEXT@16) @@ -755,10 +757,10 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(PointParameterfvEXT, _gloffset_PointParameterfvEXT, PointParameterfvEXT@8) GL_STUB(LockArraysEXT, _gloffset_LockArraysEXT, LockArraysEXT@8) GL_STUB(UnlockArraysEXT, _gloffset_UnlockArraysEXT, UnlockArraysEXT@0) - GL_STUB(_dispatch_stub_596, _gloffset_CullParameterdvEXT, _dispatch_stub_596@8) - HIDDEN(GL_PREFIX(_dispatch_stub_596, _dispatch_stub_596@8)) - GL_STUB(_dispatch_stub_597, _gloffset_CullParameterfvEXT, _dispatch_stub_597@8) - HIDDEN(GL_PREFIX(_dispatch_stub_597, _dispatch_stub_597@8)) + GL_STUB(_dispatch_stub_598, _gloffset_CullParameterdvEXT, _dispatch_stub_598@8) + HIDDEN(GL_PREFIX(_dispatch_stub_598, _dispatch_stub_598@8)) + GL_STUB(_dispatch_stub_599, _gloffset_CullParameterfvEXT, _dispatch_stub_599@8) + HIDDEN(GL_PREFIX(_dispatch_stub_599, _dispatch_stub_599@8)) GL_STUB(SecondaryColor3bEXT, _gloffset_SecondaryColor3bEXT, SecondaryColor3bEXT@12) GL_STUB(SecondaryColor3bvEXT, _gloffset_SecondaryColor3bvEXT, SecondaryColor3bvEXT@4) GL_STUB(SecondaryColor3dEXT, _gloffset_SecondaryColor3dEXT, SecondaryColor3dEXT@24) @@ -783,8 +785,8 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(FogCoorddvEXT, _gloffset_FogCoorddvEXT, FogCoorddvEXT@4) GL_STUB(FogCoordfEXT, _gloffset_FogCoordfEXT, FogCoordfEXT@4) GL_STUB(FogCoordfvEXT, _gloffset_FogCoordfvEXT, FogCoordfvEXT@4) - GL_STUB(_dispatch_stub_622, _gloffset_PixelTexGenSGIX, _dispatch_stub_622@4) - HIDDEN(GL_PREFIX(_dispatch_stub_622, _dispatch_stub_622@4)) + GL_STUB(_dispatch_stub_624, _gloffset_PixelTexGenSGIX, _dispatch_stub_624@4) + HIDDEN(GL_PREFIX(_dispatch_stub_624, _dispatch_stub_624@4)) GL_STUB(BlendFuncSeparateEXT, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparateEXT@16) GL_STUB(FlushVertexArrayRangeNV, _gloffset_FlushVertexArrayRangeNV, FlushVertexArrayRangeNV@0) GL_STUB(VertexArrayRangeNV, _gloffset_VertexArrayRangeNV, VertexArrayRangeNV@8) @@ -826,24 +828,24 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(WindowPos4ivMESA, _gloffset_WindowPos4ivMESA, WindowPos4ivMESA@4) GL_STUB(WindowPos4sMESA, _gloffset_WindowPos4sMESA, WindowPos4sMESA@16) GL_STUB(WindowPos4svMESA, _gloffset_WindowPos4svMESA, WindowPos4svMESA@4) - GL_STUB(_dispatch_stub_664, _gloffset_MultiModeDrawArraysIBM, _dispatch_stub_664@20) - HIDDEN(GL_PREFIX(_dispatch_stub_664, _dispatch_stub_664@20)) - GL_STUB(_dispatch_stub_665, _gloffset_MultiModeDrawElementsIBM, _dispatch_stub_665@24) - HIDDEN(GL_PREFIX(_dispatch_stub_665, _dispatch_stub_665@24)) - GL_STUB(_dispatch_stub_666, _gloffset_DeleteFencesNV, _dispatch_stub_666@8) - HIDDEN(GL_PREFIX(_dispatch_stub_666, _dispatch_stub_666@8)) - GL_STUB(_dispatch_stub_667, _gloffset_FinishFenceNV, _dispatch_stub_667@4) - HIDDEN(GL_PREFIX(_dispatch_stub_667, _dispatch_stub_667@4)) - GL_STUB(_dispatch_stub_668, _gloffset_GenFencesNV, _dispatch_stub_668@8) + GL_STUB(_dispatch_stub_666, _gloffset_MultiModeDrawArraysIBM, _dispatch_stub_666@20) + HIDDEN(GL_PREFIX(_dispatch_stub_666, _dispatch_stub_666@20)) + GL_STUB(_dispatch_stub_667, _gloffset_MultiModeDrawElementsIBM, _dispatch_stub_667@24) + HIDDEN(GL_PREFIX(_dispatch_stub_667, _dispatch_stub_667@24)) + GL_STUB(_dispatch_stub_668, _gloffset_DeleteFencesNV, _dispatch_stub_668@8) HIDDEN(GL_PREFIX(_dispatch_stub_668, _dispatch_stub_668@8)) - GL_STUB(_dispatch_stub_669, _gloffset_GetFenceivNV, _dispatch_stub_669@12) - HIDDEN(GL_PREFIX(_dispatch_stub_669, _dispatch_stub_669@12)) - GL_STUB(_dispatch_stub_670, _gloffset_IsFenceNV, _dispatch_stub_670@4) - HIDDEN(GL_PREFIX(_dispatch_stub_670, _dispatch_stub_670@4)) - GL_STUB(_dispatch_stub_671, _gloffset_SetFenceNV, _dispatch_stub_671@8) - HIDDEN(GL_PREFIX(_dispatch_stub_671, _dispatch_stub_671@8)) - GL_STUB(_dispatch_stub_672, _gloffset_TestFenceNV, _dispatch_stub_672@4) + GL_STUB(_dispatch_stub_669, _gloffset_FinishFenceNV, _dispatch_stub_669@4) + HIDDEN(GL_PREFIX(_dispatch_stub_669, _dispatch_stub_669@4)) + GL_STUB(_dispatch_stub_670, _gloffset_GenFencesNV, _dispatch_stub_670@8) + HIDDEN(GL_PREFIX(_dispatch_stub_670, _dispatch_stub_670@8)) + GL_STUB(_dispatch_stub_671, _gloffset_GetFenceivNV, _dispatch_stub_671@12) + HIDDEN(GL_PREFIX(_dispatch_stub_671, _dispatch_stub_671@12)) + GL_STUB(_dispatch_stub_672, _gloffset_IsFenceNV, _dispatch_stub_672@4) HIDDEN(GL_PREFIX(_dispatch_stub_672, _dispatch_stub_672@4)) + GL_STUB(_dispatch_stub_673, _gloffset_SetFenceNV, _dispatch_stub_673@8) + HIDDEN(GL_PREFIX(_dispatch_stub_673, _dispatch_stub_673@8)) + GL_STUB(_dispatch_stub_674, _gloffset_TestFenceNV, _dispatch_stub_674@4) + HIDDEN(GL_PREFIX(_dispatch_stub_674, _dispatch_stub_674@4)) GL_STUB(AreProgramsResidentNV, _gloffset_AreProgramsResidentNV, AreProgramsResidentNV@12) GL_STUB(BindProgramNV, _gloffset_BindProgramNV, BindProgramNV@8) GL_STUB(DeleteProgramsNV, _gloffset_DeleteProgramsNV, DeleteProgramsNV@8) @@ -924,26 +926,26 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(SetFragmentShaderConstantATI, _gloffset_SetFragmentShaderConstantATI, SetFragmentShaderConstantATI@8) GL_STUB(PointParameteriNV, _gloffset_PointParameteriNV, PointParameteriNV@8) GL_STUB(PointParameterivNV, _gloffset_PointParameterivNV, PointParameterivNV@8) - GL_STUB(_dispatch_stub_753, _gloffset_ActiveStencilFaceEXT, _dispatch_stub_753@4) - HIDDEN(GL_PREFIX(_dispatch_stub_753, _dispatch_stub_753@4)) - GL_STUB(_dispatch_stub_754, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_754@4) - HIDDEN(GL_PREFIX(_dispatch_stub_754, _dispatch_stub_754@4)) - GL_STUB(_dispatch_stub_755, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_755@8) - HIDDEN(GL_PREFIX(_dispatch_stub_755, _dispatch_stub_755@8)) - GL_STUB(_dispatch_stub_756, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_756@8) - HIDDEN(GL_PREFIX(_dispatch_stub_756, _dispatch_stub_756@8)) - GL_STUB(_dispatch_stub_757, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_757@4) - HIDDEN(GL_PREFIX(_dispatch_stub_757, _dispatch_stub_757@4)) + GL_STUB(_dispatch_stub_755, _gloffset_ActiveStencilFaceEXT, _dispatch_stub_755@4) + HIDDEN(GL_PREFIX(_dispatch_stub_755, _dispatch_stub_755@4)) + GL_STUB(_dispatch_stub_756, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_756@4) + HIDDEN(GL_PREFIX(_dispatch_stub_756, _dispatch_stub_756@4)) + GL_STUB(_dispatch_stub_757, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_757@8) + HIDDEN(GL_PREFIX(_dispatch_stub_757, _dispatch_stub_757@8)) + GL_STUB(_dispatch_stub_758, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_758@8) + HIDDEN(GL_PREFIX(_dispatch_stub_758, _dispatch_stub_758@8)) + GL_STUB(_dispatch_stub_759, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_759@4) + HIDDEN(GL_PREFIX(_dispatch_stub_759, _dispatch_stub_759@4)) GL_STUB(GetProgramNamedParameterdvNV, _gloffset_GetProgramNamedParameterdvNV, GetProgramNamedParameterdvNV@16) GL_STUB(GetProgramNamedParameterfvNV, _gloffset_GetProgramNamedParameterfvNV, GetProgramNamedParameterfvNV@16) GL_STUB(ProgramNamedParameter4dNV, _gloffset_ProgramNamedParameter4dNV, ProgramNamedParameter4dNV@44) GL_STUB(ProgramNamedParameter4dvNV, _gloffset_ProgramNamedParameter4dvNV, ProgramNamedParameter4dvNV@16) GL_STUB(ProgramNamedParameter4fNV, _gloffset_ProgramNamedParameter4fNV, ProgramNamedParameter4fNV@28) GL_STUB(ProgramNamedParameter4fvNV, _gloffset_ProgramNamedParameter4fvNV, ProgramNamedParameter4fvNV@16) - GL_STUB(_dispatch_stub_764, _gloffset_DepthBoundsEXT, _dispatch_stub_764@16) - HIDDEN(GL_PREFIX(_dispatch_stub_764, _dispatch_stub_764@16)) - GL_STUB(_dispatch_stub_765, _gloffset_BlendEquationSeparateEXT, _dispatch_stub_765@8) - HIDDEN(GL_PREFIX(_dispatch_stub_765, _dispatch_stub_765@8)) + GL_STUB(_dispatch_stub_766, _gloffset_DepthBoundsEXT, _dispatch_stub_766@16) + HIDDEN(GL_PREFIX(_dispatch_stub_766, _dispatch_stub_766@16)) + GL_STUB(_dispatch_stub_767, _gloffset_BlendEquationSeparateEXT, _dispatch_stub_767@8) + HIDDEN(GL_PREFIX(_dispatch_stub_767, _dispatch_stub_767@8)) GL_STUB(BindFramebufferEXT, _gloffset_BindFramebufferEXT, BindFramebufferEXT@8) GL_STUB(BindRenderbufferEXT, _gloffset_BindRenderbufferEXT, BindRenderbufferEXT@8) GL_STUB(CheckFramebufferStatusEXT, _gloffset_CheckFramebufferStatusEXT, CheckFramebufferStatusEXT@4) @@ -961,12 +963,12 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(IsFramebufferEXT, _gloffset_IsFramebufferEXT, IsFramebufferEXT@4) GL_STUB(IsRenderbufferEXT, _gloffset_IsRenderbufferEXT, IsRenderbufferEXT@4) GL_STUB(RenderbufferStorageEXT, _gloffset_RenderbufferStorageEXT, RenderbufferStorageEXT@16) - GL_STUB(_dispatch_stub_783, _gloffset_BlitFramebufferEXT, _dispatch_stub_783@40) - HIDDEN(GL_PREFIX(_dispatch_stub_783, _dispatch_stub_783@40)) - GL_STUB(_dispatch_stub_784, _gloffset_BufferParameteriAPPLE, _dispatch_stub_784@12) - HIDDEN(GL_PREFIX(_dispatch_stub_784, _dispatch_stub_784@12)) - GL_STUB(_dispatch_stub_785, _gloffset_FlushMappedBufferRangeAPPLE, _dispatch_stub_785@12) - HIDDEN(GL_PREFIX(_dispatch_stub_785, _dispatch_stub_785@12)) + GL_STUB(_dispatch_stub_785, _gloffset_BlitFramebufferEXT, _dispatch_stub_785@40) + HIDDEN(GL_PREFIX(_dispatch_stub_785, _dispatch_stub_785@40)) + GL_STUB(_dispatch_stub_786, _gloffset_BufferParameteriAPPLE, _dispatch_stub_786@12) + HIDDEN(GL_PREFIX(_dispatch_stub_786, _dispatch_stub_786@12)) + GL_STUB(_dispatch_stub_787, _gloffset_FlushMappedBufferRangeAPPLE, _dispatch_stub_787@12) + HIDDEN(GL_PREFIX(_dispatch_stub_787, _dispatch_stub_787@12)) GL_STUB(FramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20) GL_STUB(ColorMaskIndexedEXT, _gloffset_ColorMaskIndexedEXT, ColorMaskIndexedEXT@20) GL_STUB(DisableIndexedEXT, _gloffset_DisableIndexedEXT, DisableIndexedEXT@8) @@ -984,23 +986,23 @@ GLNAME(gl_dispatch_functions_start): GL_STUB(GetTransformFeedbackVaryingEXT, _gloffset_GetTransformFeedbackVaryingEXT, GetTransformFeedbackVaryingEXT@28) GL_STUB(TransformFeedbackVaryingsEXT, _gloffset_TransformFeedbackVaryingsEXT, TransformFeedbackVaryingsEXT@16) GL_STUB(ProvokingVertexEXT, _gloffset_ProvokingVertexEXT, ProvokingVertexEXT@4) - GL_STUB(_dispatch_stub_803, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_803@12) - HIDDEN(GL_PREFIX(_dispatch_stub_803, _dispatch_stub_803@12)) - GL_STUB(_dispatch_stub_804, _gloffset_TextureRangeAPPLE, _dispatch_stub_804@12) - HIDDEN(GL_PREFIX(_dispatch_stub_804, _dispatch_stub_804@12)) + GL_STUB(_dispatch_stub_805, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_805@12) + HIDDEN(GL_PREFIX(_dispatch_stub_805, _dispatch_stub_805@12)) + GL_STUB(_dispatch_stub_806, _gloffset_TextureRangeAPPLE, _dispatch_stub_806@12) + HIDDEN(GL_PREFIX(_dispatch_stub_806, _dispatch_stub_806@12)) GL_STUB(GetObjectParameterivAPPLE, _gloffset_GetObjectParameterivAPPLE, GetObjectParameterivAPPLE@16) GL_STUB(ObjectPurgeableAPPLE, _gloffset_ObjectPurgeableAPPLE, ObjectPurgeableAPPLE@12) GL_STUB(ObjectUnpurgeableAPPLE, _gloffset_ObjectUnpurgeableAPPLE, ObjectUnpurgeableAPPLE@12) - GL_STUB(_dispatch_stub_808, _gloffset_StencilFuncSeparateATI, _dispatch_stub_808@16) - HIDDEN(GL_PREFIX(_dispatch_stub_808, _dispatch_stub_808@16)) - GL_STUB(_dispatch_stub_809, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_809@16) - HIDDEN(GL_PREFIX(_dispatch_stub_809, _dispatch_stub_809@16)) - GL_STUB(_dispatch_stub_810, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_810@16) + GL_STUB(_dispatch_stub_810, _gloffset_StencilFuncSeparateATI, _dispatch_stub_810@16) HIDDEN(GL_PREFIX(_dispatch_stub_810, _dispatch_stub_810@16)) - GL_STUB(_dispatch_stub_811, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_811@12) - HIDDEN(GL_PREFIX(_dispatch_stub_811, _dispatch_stub_811@12)) - GL_STUB(_dispatch_stub_812, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_812@12) - HIDDEN(GL_PREFIX(_dispatch_stub_812, _dispatch_stub_812@12)) + GL_STUB(_dispatch_stub_811, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_811@16) + HIDDEN(GL_PREFIX(_dispatch_stub_811, _dispatch_stub_811@16)) + GL_STUB(_dispatch_stub_812, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_812@16) + HIDDEN(GL_PREFIX(_dispatch_stub_812, _dispatch_stub_812@16)) + GL_STUB(_dispatch_stub_813, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_813@12) + HIDDEN(GL_PREFIX(_dispatch_stub_813, _dispatch_stub_813@12)) + GL_STUB(_dispatch_stub_814, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_814@12) + HIDDEN(GL_PREFIX(_dispatch_stub_814, _dispatch_stub_814@12)) GL_STUB(EGLImageTargetRenderbufferStorageOES, _gloffset_EGLImageTargetRenderbufferStorageOES, EGLImageTargetRenderbufferStorageOES@8) GL_STUB(EGLImageTargetTexture2DOES, _gloffset_EGLImageTargetTexture2DOES, EGLImageTargetTexture2DOES@8) GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4) @@ -1076,6 +1078,10 @@ GLNAME(gl_dispatch_functions_start): GL_STUB_ALIAS(MultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB, MultiTexCoord4iv@8, MultiTexCoord4ivARB, MultiTexCoord4ivARB@8) GL_STUB_ALIAS(MultiTexCoord4s, _gloffset_MultiTexCoord4sARB, MultiTexCoord4s@20, MultiTexCoord4sARB, MultiTexCoord4sARB@20) GL_STUB_ALIAS(MultiTexCoord4sv, _gloffset_MultiTexCoord4svARB, MultiTexCoord4sv@8, MultiTexCoord4svARB, MultiTexCoord4svARB@8) + GL_STUB_ALIAS(DrawArraysInstancedARB, _gloffset_DrawArraysInstanced, DrawArraysInstancedARB@16, DrawArraysInstanced, DrawArraysInstanced@16) + GL_STUB_ALIAS(DrawArraysInstancedEXT, _gloffset_DrawArraysInstanced, DrawArraysInstancedEXT@16, DrawArraysInstanced, DrawArraysInstanced@16) + GL_STUB_ALIAS(DrawElementsInstancedARB, _gloffset_DrawElementsInstanced, DrawElementsInstancedARB@20, DrawElementsInstanced, DrawElementsInstanced@20) + GL_STUB_ALIAS(DrawElementsInstancedEXT, _gloffset_DrawElementsInstanced, DrawElementsInstancedEXT@20, DrawElementsInstanced, DrawElementsInstanced@20) GL_STUB_ALIAS(LoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB, LoadTransposeMatrixd@4, LoadTransposeMatrixdARB, LoadTransposeMatrixdARB@4) GL_STUB_ALIAS(LoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB, LoadTransposeMatrixf@4, LoadTransposeMatrixfARB, LoadTransposeMatrixfARB@4) GL_STUB_ALIAS(MultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB, MultTransposeMatrixd@4, MultTransposeMatrixdARB, MultTransposeMatrixdARB@4) @@ -1257,9 +1263,9 @@ GLNAME(gl_dispatch_functions_start): GL_STUB_ALIAS(IsProgramARB, _gloffset_IsProgramNV, IsProgramARB@4, IsProgramNV, IsProgramNV@4) GL_STUB_ALIAS(PointParameteri, _gloffset_PointParameteriNV, PointParameteri@8, PointParameteriNV, PointParameteriNV@8) GL_STUB_ALIAS(PointParameteriv, _gloffset_PointParameterivNV, PointParameteriv@8, PointParameterivNV, PointParameterivNV@8) - GL_STUB_ALIAS(DeleteVertexArrays, _gloffset_DeleteVertexArraysAPPLE, DeleteVertexArrays@8, _dispatch_stub_755, _dispatch_stub_755@8) - GL_STUB_ALIAS(IsVertexArray, _gloffset_IsVertexArrayAPPLE, IsVertexArray@4, _dispatch_stub_757, _dispatch_stub_757@4) - GL_STUB_ALIAS(BlendEquationSeparate, _gloffset_BlendEquationSeparateEXT, BlendEquationSeparate@8, _dispatch_stub_765, _dispatch_stub_765@8) + GL_STUB_ALIAS(DeleteVertexArrays, _gloffset_DeleteVertexArraysAPPLE, DeleteVertexArrays@8, _dispatch_stub_757, _dispatch_stub_757@8) + GL_STUB_ALIAS(IsVertexArray, _gloffset_IsVertexArrayAPPLE, IsVertexArray@4, _dispatch_stub_759, _dispatch_stub_759@4) + GL_STUB_ALIAS(BlendEquationSeparate, _gloffset_BlendEquationSeparateEXT, BlendEquationSeparate@8, _dispatch_stub_767, _dispatch_stub_767@8) GL_STUB_ALIAS(BindFramebuffer, _gloffset_BindFramebufferEXT, BindFramebuffer@8, BindFramebufferEXT, BindFramebufferEXT@8) GL_STUB_ALIAS(BindRenderbuffer, _gloffset_BindRenderbufferEXT, BindRenderbuffer@8, BindRenderbufferEXT, BindRenderbufferEXT@8) GL_STUB_ALIAS(CheckFramebufferStatus, _gloffset_CheckFramebufferStatusEXT, CheckFramebufferStatus@4, CheckFramebufferStatusEXT, CheckFramebufferStatusEXT@4) @@ -1277,7 +1283,7 @@ GLNAME(gl_dispatch_functions_start): GL_STUB_ALIAS(IsFramebuffer, _gloffset_IsFramebufferEXT, IsFramebuffer@4, IsFramebufferEXT, IsFramebufferEXT@4) GL_STUB_ALIAS(IsRenderbuffer, _gloffset_IsRenderbufferEXT, IsRenderbuffer@4, IsRenderbufferEXT, IsRenderbufferEXT@4) GL_STUB_ALIAS(RenderbufferStorage, _gloffset_RenderbufferStorageEXT, RenderbufferStorage@16, RenderbufferStorageEXT, RenderbufferStorageEXT@16) - GL_STUB_ALIAS(BlitFramebuffer, _gloffset_BlitFramebufferEXT, BlitFramebuffer@40, _dispatch_stub_783, _dispatch_stub_783@40) + GL_STUB_ALIAS(BlitFramebuffer, _gloffset_BlitFramebufferEXT, BlitFramebuffer@40, _dispatch_stub_785, _dispatch_stub_785@40) GL_STUB_ALIAS(FramebufferTextureLayer, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayer@20, FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20) GL_STUB_ALIAS(BeginTransformFeedback, _gloffset_BeginTransformFeedbackEXT, BeginTransformFeedback@4, BeginTransformFeedbackEXT, BeginTransformFeedbackEXT@4) GL_STUB_ALIAS(BindBufferBase, _gloffset_BindBufferBaseEXT, BindBufferBase@12, BindBufferBaseEXT, BindBufferBaseEXT@12) -- cgit v1.2.3 From 3258dfbbbda69b46003362e94e75129c277c7a61 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:17:06 -0600 Subject: mesa: new extension flag for GL_EXT/ARB_draw_instanced --- src/mesa/main/extensions.c | 2 ++ src/mesa/main/mtypes.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index f7b0e5abf5..86684000bf 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -50,6 +50,7 @@ static const struct { { OFF, "GL_ARB_depth_clamp", F(ARB_depth_clamp) }, { ON, "GL_ARB_draw_buffers", F(ARB_draw_buffers) }, { OFF, "GL_ARB_draw_elements_base_vertex", F(ARB_draw_elements_base_vertex) }, + { OFF, "GL_ARB_draw_instanced", F(ARB_draw_instanced) }, { OFF, "GL_ARB_fragment_coord_conventions", F(ARB_fragment_coord_conventions) }, { OFF, "GL_ARB_fragment_program", F(ARB_fragment_program) }, { OFF, "GL_ARB_fragment_program_shadow", F(ARB_fragment_program_shadow) }, @@ -106,6 +107,7 @@ static const struct { { ON, "GL_EXT_copy_texture", F(EXT_copy_texture) }, { OFF, "GL_EXT_depth_bounds_test", F(EXT_depth_bounds_test) }, { OFF, "GL_EXT_draw_buffers2", F(EXT_draw_buffers2) }, + { OFF, "GL_EXT_draw_instanced", F(ARB_draw_instanced) }, { ON, "GL_EXT_draw_range_elements", F(EXT_draw_range_elements) }, { OFF, "GL_EXT_framebuffer_blit", F(EXT_framebuffer_blit) }, { OFF, "GL_EXT_framebuffer_multisample", F(EXT_framebuffer_multisample) }, diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 7657efb077..889c4801af 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2443,6 +2443,7 @@ struct gl_extensions GLboolean ARB_depth_clamp; GLboolean ARB_draw_buffers; GLboolean ARB_draw_elements_base_vertex; + GLboolean ARB_draw_instanced; GLboolean ARB_fragment_coord_conventions; GLboolean ARB_fragment_program; GLboolean ARB_fragment_program_shadow; -- cgit v1.2.3 From cf3193ad1cd75b847c5d626def701a4bb012d080 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:18:28 -0600 Subject: mesa: new validation functions for GL_ARB_draw_instanced --- src/mesa/main/api_validate.c | 107 ++++++++++++++++++++++++++++++++++++++++++- src/mesa/main/api_validate.h | 10 ++++ 2 files changed, 116 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index 4fb7b5ad61..f6da86d296 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -175,7 +175,7 @@ _mesa_validate_DrawElements(GLcontext *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) { - ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); + ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); if (count <= 0) { if (count < 0) @@ -314,3 +314,108 @@ _mesa_validate_DrawArrays(GLcontext *ctx, return GL_TRUE; } + + +GLboolean +_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, + GLsizei count, GLsizei primcount) +{ + ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); + + if (count <= 0) { + if (count < 0) + _mesa_error(ctx, GL_INVALID_VALUE, + "glDrawArraysInstanced(count=%d)", count); + return GL_FALSE; + } + + if (mode > GL_POLYGON) { + _mesa_error(ctx, GL_INVALID_ENUM, + "glDrawArraysInstanced(mode=0x%x)", mode); + return GL_FALSE; + } + + if (primcount <= 0) { + if (primcount < 0) + _mesa_error(ctx, GL_INVALID_VALUE, + "glDrawArraysInstanced(primcount=%d)", primcount); + return GL_FALSE; + } + + if (!check_valid_to_render(ctx, "glDrawArraysInstanced(invalid to render)")) + return GL_FALSE; + + if (ctx->CompileFlag) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glDrawArraysInstanced(display list"); + return GL_FALSE; + } + + if (ctx->Const.CheckArrayBounds) { + if (first + count > (GLint) ctx->Array.ArrayObj->_MaxElement) + return GL_FALSE; + } + + return GL_TRUE; +} + + +GLboolean +_mesa_validate_DrawElementsInstanced(GLcontext *ctx, + GLenum mode, GLsizei count, GLenum type, + const GLvoid *indices, GLsizei primcount) +{ + ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); + + if (count <= 0) { + if (count < 0) + _mesa_error(ctx, GL_INVALID_VALUE, + "glDrawElementsInstanced(count=%d)", count); + return GL_FALSE; + } + + if (mode > GL_POLYGON) { + _mesa_error(ctx, GL_INVALID_ENUM, + "glDrawElementsInstanced(mode = 0x%x)", mode); + return GL_FALSE; + } + + if (type != GL_UNSIGNED_INT && + type != GL_UNSIGNED_BYTE && + type != GL_UNSIGNED_SHORT) { + _mesa_error(ctx, GL_INVALID_ENUM, + "glDrawElementsInstanced(type=0x%x)", type); + return GL_FALSE; + } + + if (primcount <= 0) { + if (primcount < 0) + _mesa_error(ctx, GL_INVALID_VALUE, + "glDrawElementsInstanced(primcount=%d)", primcount); + return GL_FALSE; + } + + if (!check_valid_to_render(ctx, "glDrawElementsInstanced")) + return GL_FALSE; + + /* Vertex buffer object tests */ + if (_mesa_is_bufferobj(ctx->Array.ElementArrayBufferObj)) { + /* use indices in the buffer object */ + /* make sure count doesn't go outside buffer bounds */ + if (index_bytes(type, count) > ctx->Array.ElementArrayBufferObj->Size) { + _mesa_warning(ctx, + "glDrawElementsInstanced index out of buffer bounds"); + return GL_FALSE; + } + } + else { + /* not using a VBO */ + if (!indices) + return GL_FALSE; + } + + if (!check_index_bounds(ctx, count, type, indices, 0)) + return GL_FALSE; + + return GL_TRUE; +} diff --git a/src/mesa/main/api_validate.h b/src/mesa/main/api_validate.h index 6064d15fe6..cd27d58aa7 100644 --- a/src/mesa/main/api_validate.h +++ b/src/mesa/main/api_validate.h @@ -52,4 +52,14 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, const GLvoid *indices, GLint basevertex); +extern GLboolean +_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, + GLsizei count, GLsizei primcount); + +extern GLboolean +_mesa_validate_DrawElementsInstanced(GLcontext *ctx, + GLenum mode, GLsizei count, GLenum type, + const GLvoid *indices, GLsizei primcount); + + #endif -- cgit v1.2.3 From 3b7ac45162412a79c3cd4d4dbc16bd54db597608 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:21:16 -0600 Subject: mesa: implement core Mesa support for GL_ARB_draw_instanced --- src/mesa/main/dd.h | 5 +++ src/mesa/main/vtxfmt.c | 2 + src/mesa/main/vtxfmt_tmp.h | 21 ++++++++++ src/mesa/vbo/vbo.h | 1 + src/mesa/vbo/vbo_exec_api.c | 1 + src/mesa/vbo/vbo_exec_array.c | 90 +++++++++++++++++++++++++++++++++++++++++-- src/mesa/vbo/vbo_save_api.c | 2 + 7 files changed, 118 insertions(+), 4 deletions(-) diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 7c02faaa53..4679be72f7 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1186,6 +1186,11 @@ typedef struct { const GLvoid **indices, GLsizei primcount, const GLint *basevertex); + void (GLAPIENTRYP DrawArraysInstanced)(GLenum mode, GLint first, + GLsizei count, GLsizei primcount); + void (GLAPIENTRYP DrawElementsInstanced)(GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices, + GLsizei primcount); /*@}*/ /** diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index 0dd3e5e52e..ca352e88e6 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -140,6 +140,8 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt ) SET_DrawElementsBaseVertex(tab, vfmt->DrawElementsBaseVertex); SET_DrawRangeElementsBaseVertex(tab, vfmt->DrawRangeElementsBaseVertex); SET_MultiDrawElementsBaseVertex(tab, vfmt->MultiDrawElementsBaseVertex); + SET_DrawArraysInstanced(tab, vfmt->DrawArraysInstanced); + SET_DrawElementsInstanced(tab, vfmt->DrawElementsInstanced); /* GL_NV_vertex_program */ SET_VertexAttrib1fNV(tab, vfmt->VertexAttrib1fNV); diff --git a/src/mesa/main/vtxfmt_tmp.h b/src/mesa/main/vtxfmt_tmp.h index 037c4b1888..9ec6ea49aa 100644 --- a/src/mesa/main/vtxfmt_tmp.h +++ b/src/mesa/main/vtxfmt_tmp.h @@ -391,6 +391,25 @@ static void GLAPIENTRY TAG(MultiDrawElementsBaseVertex)( GLenum mode, primcount, basevertex )); } +static void GLAPIENTRY +TAG(DrawArraysInstanced)(GLenum mode, GLint first, + GLsizei count, GLsizei primcount) +{ + PRE_LOOPBACK( DrawArraysInstanced ); + CALL_DrawArraysInstanced(GET_DISPATCH(), (mode, first, count, primcount)); +} + +static void GLAPIENTRY +TAG(DrawElementsInstanced)(GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices, + GLsizei primcount) +{ + PRE_LOOPBACK( DrawElementsInstanced ); + CALL_DrawElementsInstanced(GET_DISPATCH(), + (mode, count, type, indices, primcount)); +} + + static void GLAPIENTRY TAG(EvalMesh1)( GLenum mode, GLint i1, GLint i2 ) { PRE_LOOPBACK( EvalMesh1 ); @@ -574,6 +593,8 @@ static GLvertexformat TAG(vtxfmt) = { TAG(DrawElementsBaseVertex), TAG(DrawRangeElementsBaseVertex), TAG(MultiDrawElementsBaseVertex), + TAG(DrawArraysInstanced), + TAG(DrawElementsInstanced), TAG(EvalMesh1), TAG(EvalMesh2) }; diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index b24ecfd7cd..7a085f63c7 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -45,6 +45,7 @@ struct _mesa_prim { GLuint start; GLuint count; GLint basevertex; + GLsizei num_instances; }; /* Would like to call this a "vbo_index_buffer", but this would be diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c index e40f5f9dc4..e83bd9e404 100644 --- a/src/mesa/vbo/vbo_exec_api.c +++ b/src/mesa/vbo/vbo_exec_api.c @@ -531,6 +531,7 @@ static void GLAPIENTRY vbo_exec_Begin( GLenum mode ) exec->vtx.prim[i].pad = 0; exec->vtx.prim[i].start = exec->vtx.vert_count; exec->vtx.prim[i].count = 0; + exec->vtx.prim[i].num_instances = 1; ctx->Driver.CurrentExecPrimitive = mode; } diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index 90474da7c0..d4dbc8d256 100644 --- a/src/mesa/vbo/vbo_exec_array.c +++ b/src/mesa/vbo/vbo_exec_array.c @@ -520,6 +520,7 @@ vbo_exec_DrawArrays(GLenum mode, GLint start, GLsizei count) prim[0].count = count; prim[0].indexed = 0; prim[0].basevertex = 0; + prim[0].num_instances = 1; vbo->draw_prims( ctx, exec->array.inputs, prim, 1, NULL, GL_TRUE, start, start + count - 1 ); @@ -532,6 +533,62 @@ vbo_exec_DrawArrays(GLenum mode, GLint start, GLsizei count) } +static void GLAPIENTRY +vbo_exec_DrawArraysInstanced(GLenum mode, GLint start, GLsizei count, + GLsizei primcount) +{ + GET_CURRENT_CONTEXT(ctx); + struct vbo_context *vbo = vbo_context(ctx); + struct vbo_exec_context *exec = &vbo->exec; + struct _mesa_prim prim[1]; + + if (MESA_VERBOSE & VERBOSE_DRAW) + _mesa_debug(ctx, "glDrawArraysInstanced(%s, %d, %d, %d)\n", + _mesa_lookup_enum_by_nr(mode), start, count, primcount); + + if (!_mesa_validate_DrawArraysInstanced(ctx, mode, start, count, primcount)) + return; + + FLUSH_CURRENT( ctx, 0 ); + + if (!_mesa_valid_to_render(ctx, "glDrawArraysInstanced")) { + return; + } + +#if 0 /* debug */ + check_draw_arrays_data(ctx, start, count); +#endif + + bind_arrays( ctx ); + + /* Again... because we may have changed the bitmask of per-vertex varying + * attributes. If we regenerate the fixed-function vertex program now + * we may be able to prune down the number of vertex attributes which we + * need in the shader. + */ + if (ctx->NewState) + _mesa_update_state( ctx ); + + prim[0].begin = 1; + prim[0].end = 1; + prim[0].weak = 0; + prim[0].pad = 0; + prim[0].mode = mode; + prim[0].start = start; + prim[0].count = count; + prim[0].indexed = 0; + prim[0].basevertex = 0; + prim[0].num_instances = primcount; + + vbo->draw_prims( ctx, exec->array.inputs, prim, 1, NULL, + GL_TRUE, start, start + count - 1 ); + +#if 0 /* debug */ + print_draw_arrays(ctx, exec, mode, start, count); +#endif +} + + /** * Map GL_ELEMENT_ARRAY_BUFFER and print contents. */ @@ -595,7 +652,7 @@ vbo_validated_drawrangeelements(GLcontext *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, - GLint basevertex) + GLint basevertex, GLint primcount) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_exec_context *exec = &vbo->exec; @@ -628,6 +685,7 @@ vbo_validated_drawrangeelements(GLcontext *ctx, GLenum mode, prim[0].count = count; prim[0].indexed = 1; prim[0].basevertex = basevertex; + prim[0].num_instances = primcount; /* Need to give special consideration to rendering a range of * indices starting somewhere above zero. Typically the @@ -769,7 +827,7 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode, #endif vbo_validated_drawrangeelements(ctx, mode, GL_TRUE, start, end, - count, type, indices, basevertex); + count, type, indices, basevertex, 1); } @@ -805,7 +863,7 @@ vbo_exec_DrawElements(GLenum mode, GLsizei count, GLenum type, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, 0); + count, type, indices, 0, 1); } @@ -825,7 +883,27 @@ vbo_exec_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, return; vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, - count, type, indices, basevertex); + count, type, indices, basevertex, 1); +} + + +static void GLAPIENTRY +vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, + const GLvoid *indices, GLsizei primcount) +{ + GET_CURRENT_CONTEXT(ctx); + + if (MESA_VERBOSE & VERBOSE_DRAW) + _mesa_debug(ctx, "glDrawElementsInstanced(%s, %d, %s, %p, %d)\n", + _mesa_lookup_enum_by_nr(mode), count, + _mesa_lookup_enum_by_nr(type), indices, primcount); + + if (!_mesa_validate_DrawElementsInstanced(ctx, mode, count, type, indices, + primcount)) + return; + + vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0, + count, type, indices, 0, primcount); } @@ -926,6 +1004,7 @@ vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode, prim[i].start = ((uintptr_t)indices[i] - min_index_ptr) / index_type_size; prim[i].count = count[i]; prim[i].indexed = 1; + prim[i].num_instances = 1; if (basevertex != NULL) prim[i].basevertex = basevertex[i]; else @@ -950,6 +1029,7 @@ vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode, prim[0].start = 0; prim[0].count = count[i]; prim[0].indexed = 1; + prim[0].num_instances = 1; if (basevertex != NULL) prim[0].basevertex = basevertex[i]; else @@ -1024,6 +1104,8 @@ vbo_exec_array_init( struct vbo_exec_context *exec ) exec->vtxfmt.DrawElementsBaseVertex = vbo_exec_DrawElementsBaseVertex; exec->vtxfmt.DrawRangeElementsBaseVertex = vbo_exec_DrawRangeElementsBaseVertex; exec->vtxfmt.MultiDrawElementsBaseVertex = vbo_exec_MultiDrawElementsBaseVertex; + exec->vtxfmt.DrawArraysInstanced = vbo_exec_DrawArraysInstanced; + exec->vtxfmt.DrawElementsInstanced = vbo_exec_DrawElementsInstanced; #else exec->vtxfmt.DrawArrays = _mesa_noop_DrawArrays; exec->vtxfmt.DrawElements = _mesa_noop_DrawElements; diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index a5d027982f..c867cb03f6 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -418,6 +418,7 @@ static void _save_wrap_buffers( GLcontext *ctx ) save->prim[0].pad = 0; save->prim[0].start = 0; save->prim[0].count = 0; + save->prim[0].num_instances = 1; save->prim_count = 1; } @@ -773,6 +774,7 @@ GLboolean vbo_save_NotifyBegin( GLcontext *ctx, GLenum mode ) save->prim[i].pad = 0; save->prim[i].start = save->vert_count; save->prim[i].count = 0; + save->prim[i].num_instances = 1; _mesa_install_save_vtxfmt( ctx, &save->vtxfmt ); ctx->Driver.SaveNeedFlush = 1; -- cgit v1.2.3 From 528d100b80f0aaa5f4480c3e42004158763612e9 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:22:46 -0600 Subject: st/mesa: call pipe_context::draw_arrays/elements_instanced() --- src/mesa/state_tracker/st_draw.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index 7f45e3f548..e0bb1a0af5 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -669,9 +669,17 @@ st_draw_vbo(GLcontext *ctx, for (i = 0; i < nr_prims; i++) { prim = translate_prim( ctx, prims[i].mode ); - pipe->draw_elements(pipe, indexBuf, indexSize, - prim, - prims[i].start + indexOffset, prims[i].count); + if (prims[i].num_instances == 1) { + pipe->draw_elements(pipe, indexBuf, indexSize, prim, + prims[i].start + indexOffset, + prims[i].count); + } + else { + pipe->draw_elements_instanced(pipe, indexBuf, indexSize, prim, + prims[i].start + indexOffset, + prims[i].count, + 0, prims[i].num_instances); + } } } @@ -685,7 +693,14 @@ st_draw_vbo(GLcontext *ctx, for (i = 0; i < nr_prims; i++) { prim = translate_prim( ctx, prims[i].mode ); - pipe->draw_arrays(pipe, prim, prims[i].start, prims[i].count); + if (prims[i].num_instances == 1) { + pipe->draw_arrays(pipe, prim, prims[i].start, prims[i].count); + } + else { + pipe->draw_arrays_instanced(pipe, prim, prims[i].start, + prims[i].count, + 0, prims[i].num_instances); + } } } -- cgit v1.2.3 From bf4c4479dd3468c029a9688edf677e946c38b9e2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 18:28:41 -0600 Subject: mesa: don't turn on GL_EXT_transform_feedback yet --- src/mesa/main/extensions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 86684000bf..5fa3f3b00b 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -323,7 +323,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx) #endif ctx->Extensions.EXT_texture_swizzle = GL_TRUE; #if FEATURE_EXT_transform_feedback - ctx->Extensions.EXT_transform_feedback = GL_TRUE; + /*ctx->Extensions.EXT_transform_feedback = GL_TRUE;*/ #endif ctx->Extensions.EXT_vertex_array_bgra = GL_TRUE; /*ctx->Extensions.IBM_multimode_draw_arrays = GL_TRUE;*/ -- cgit v1.2.3 From a437601bee5f79d66c61215ed381a240d1ea7287 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 4 Apr 2010 19:08:21 -0600 Subject: docs: update status of transform feedback and instanced drawing --- docs/GL3.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index 565ce2b234..78ac6e852d 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -26,7 +26,7 @@ Packed depth/stencil formats DONE Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE GL_EXT_texture_compression_rgtc not started Red and red/green texture formats Ian? -Transform feedback (GL_EXT_transform_feedback) not started +Transform feedback (GL_EXT_transform_feedback) ~50% done Vertex array objects (GL_APPLE_vertex_array_object) DONE sRGB framebuffer format (GL_EXT_framebuffer_sRGB) not started glClearBuffer commands DONE, except for dispatch @@ -40,7 +40,7 @@ glBindBufferRange, glBindBufferBase commands not started GL 3.1: GLSL 1.30 and 1.40 not started -Instanced drawing (GL_ARB_draw_instanced) not started +Instanced drawing (GL_ARB_draw_instanced) ~50% done Buffer copying (GL_ARB_copy_buffer) DONE Primitive restart (GL_NV_primitive_restart) not started 16 vertex texture image units not started -- cgit v1.2.3 From efdd33985cb38429aeae845a556db2322957e71a Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 4 Apr 2010 18:07:12 -0700 Subject: glew: Include X11 headers and libraries in SCons build. Fixes Mac OS X SCons build. --- src/glew/SConscript | 1 + 1 file changed, 1 insertion(+) diff --git a/src/glew/SConscript b/src/glew/SConscript index 45375e083a..4b5b5b8d0f 100644 --- a/src/glew/SConscript +++ b/src/glew/SConscript @@ -15,6 +15,7 @@ if env['platform'] == 'windows': 'user32', ]) else: + env.Tool('x11') env.PrependUnique(LIBS = [ 'GLU', 'GL', -- cgit v1.2.3 From 940098e9254600d990f06d1ea83558302751782e Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 4 Apr 2010 18:28:03 -0700 Subject: glut: Include X11 headers and libraries in SCons build. Fixes Mac OS X SCons build. --- src/glut/glx/SConscript | 1 + 1 file changed, 1 insertion(+) diff --git a/src/glut/glx/SConscript b/src/glut/glx/SConscript index 9363b5ca5c..29d2cc0149 100644 --- a/src/glut/glx/SConscript +++ b/src/glut/glx/SConscript @@ -78,6 +78,7 @@ if env['platform'] == 'windows': 'glut.def', ] else: + env.Tool('x11') env.PrependUnique(LIBS = [ 'GLU', 'GL', -- cgit v1.2.3 From 5399c6dfa19421c5766c7a3f91c37ab5ea26c139 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 4 Apr 2010 19:15:01 -0700 Subject: progs: Include X11 headers and libraries in SCons build. Fixes Mac OS X SCons build. --- progs/SConscript | 1 + 1 file changed, 1 insertion(+) diff --git a/progs/SConscript b/progs/SConscript index a90e13b4cb..4cd35fec64 100644 --- a/progs/SConscript +++ b/progs/SConscript @@ -24,6 +24,7 @@ if progs_env['platform'] == 'windows': if progs_env['platform'] == 'windows': progs_env.Prepend(LIBS = ['glu32', 'opengl32']) else: + progs_env.Tool('x11') progs_env.Prepend(LIBS = ['GLU', 'GL']) # Glut -- cgit v1.2.3 From 0179c5a95b604105ead8d642e8313740adc2a686 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 4 Apr 2010 09:58:40 +0200 Subject: r300g: enable conditional rendering also for SWTCL --- src/gallium/drivers/r300/r300_render.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index 7898329771..bba9ef251e 100644 --- a/src/gallium/drivers/r300/r300_render.c +++ b/src/gallium/drivers/r300/r300_render.c @@ -564,6 +564,10 @@ void r300_swtcl_draw_arrays(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); int i; + if (r300->skip_rendering) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } @@ -599,6 +603,10 @@ void r300_swtcl_draw_range_elements(struct pipe_context* pipe, int i; void* indices; + if (r300->skip_rendering) { + return; + } + if (!u_trim_pipe_prim(mode, &count)) { return; } -- cgit v1.2.3 From 4e949271c25ccc5a06fbbbe912b0b43b75d1d169 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 4 Apr 2010 16:09:59 +0200 Subject: r300g: is_npot -> uses_pitch --- src/gallium/drivers/r300/r300_context.h | 5 +++-- src/gallium/drivers/r300/r300_state.c | 2 +- src/gallium/drivers/r300/r300_state_derived.c | 2 +- src/gallium/drivers/r300/r300_texture.c | 7 ++++--- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 031092312d..4689701bd1 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -250,10 +250,11 @@ struct r300_texture { /* Total size of this texture, in bytes. */ unsigned size; - /* Whether this texture has non-power-of-two dimensions. + /* Whether this texture has non-power-of-two dimensions + * or a user-specified pitch. * It can be either a regular texture or a rectangle one. */ - boolean is_npot; + boolean uses_pitch; /* Pipe buffer backing this texture. */ struct r300_winsys_buffer *buffer; diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 2c0a7d82f5..dc94c95e69 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -969,7 +969,7 @@ static void r300_set_fragment_sampler_views(struct pipe_context* pipe, /* R300-specific - set the texrect factor in the fragment shader */ texture = (struct r300_texture *)views[i]->texture; - if (!is_r500 && texture->is_npot) { + if (!is_r500 && texture->uses_pitch) { /* XXX It would be nice to re-emit just 1 constant, * XXX not all of them */ r300->dirty_state |= R300_NEW_FRAGMENT_SHADER_CONSTANTS; diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index bc5431c802..47209dd58f 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -490,7 +490,7 @@ static void r300_merge_textures_and_samplers(struct r300_context* r300) texstate->filter[0] |= R300_TX_WRAP_T(R300_TX_CLAMP_TO_EDGE); } - if (tex->is_npot) { + if (tex->uses_pitch) { /* NPOT textures don't support mip filter, unfortunately. * This prevents incorrect rendering. */ texstate->filter[0] &= ~R300_TX_MIN_FILTER_MIP_MASK; diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index d03c28ba35..d1db6722e0 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -521,7 +521,7 @@ static void r300_setup_texture_state(struct r300_screen* screen, struct r300_tex state->format0 = R300_TX_WIDTH((pt->width0 - 1) & 0x7ff) | R300_TX_HEIGHT((pt->height0 - 1) & 0x7ff); - if (tex->is_npot || tex->stride_override) { + if (tex->uses_pitch) { /* rectangles love this */ state->format0 |= R300_TX_PITCH_EN; state->format2 = (tex->pitch[0] - 1) & 0x1fff; @@ -741,8 +741,9 @@ static void r300_setup_miptree(struct r300_screen* screen, static void r300_setup_flags(struct r300_texture* tex) { - tex->is_npot = !util_is_power_of_two(tex->tex.width0) || - !util_is_power_of_two(tex->tex.height0); + tex->uses_pitch = !util_is_power_of_two(tex->tex.width0) || + !util_is_power_of_two(tex->tex.height0) || + tex->stride_override; } static void r300_setup_tiling(struct pipe_screen *screen, -- cgit v1.2.3 From e41a64591bf1a74465bf0adc7d35c991c4cfb4fe Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 14 Feb 2010 23:57:46 +0100 Subject: r300/compiler: make the max number of fragment shader temporaries adjustable --- src/gallium/drivers/r300/r300_fs.c | 1 + src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c | 2 +- src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c | 5 +---- src/mesa/drivers/dri/r300/compiler/radeon_compiler.h | 1 + src/mesa/drivers/dri/r300/r300_fragprog_common.c | 1 + 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c index e23fef8c9f..116bb80007 100644 --- a/src/gallium/drivers/r300/r300_fs.c +++ b/src/gallium/drivers/r300/r300_fs.c @@ -169,6 +169,7 @@ static void r300_translate_fragment_shader( compiler.code = &shader->code; compiler.state = shader->compare_state; compiler.is_r500 = r300_screen(r300->context.screen)->caps->is_r500; + compiler.max_temp_regs = compiler.is_r500 ? 128 : 32; compiler.AllocateHwInputs = &allocate_hardware_inputs; compiler.UserData = &fs->inputs; diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c index cc552aee17..37dafa7710 100644 --- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c +++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c @@ -353,7 +353,7 @@ void r300BuildFragmentProgramHwCode(struct r300_fragment_program_compiler *compi } } - if (code->pixsize >= R300_PFS_NUM_TEMP_REGS) + if (code->pixsize >= compiler->max_temp_regs) rc_error(&compiler->Base, "Too many hardware temporaries used.\n"); if (compiler->Base.Error) diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c index c2d5dc27b4..d06429254d 100644 --- a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c @@ -156,10 +156,7 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c) fflush(stderr); } - if (c->is_r500) - rc_pair_regalloc(c, 128); - else - rc_pair_regalloc(c, R300_PFS_NUM_TEMP_REGS); + rc_pair_regalloc(c, c->max_temp_regs); if (c->Base.Error) return; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h index 6bfda0574f..934ae28da5 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h @@ -83,6 +83,7 @@ struct r300_fragment_program_compiler { struct rX00_fragment_program_code *code; struct r300_fragment_program_external_state state; unsigned is_r500; + unsigned max_temp_regs; /* Register corresponding to the depthbuffer. */ unsigned OutputDepth; /* Registers corresponding to the four colorbuffers. */ diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c index 0646da4624..ba84122956 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c +++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c @@ -220,6 +220,7 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog compiler.code = &fp->code; compiler.state = fp->state; compiler.is_r500 = (r300->radeon.radeonScreen->chip_family >= CHIP_FAMILY_RV515) ? GL_TRUE : GL_FALSE; + compiler.max_temp_regs = (compiler.is_r500) ? 128 : 32; compiler.OutputDepth = FRAG_RESULT_DEPTH; memset(compiler.OutputColor, 0, 4 * sizeof(unsigned)); compiler.OutputColor[0] = FRAG_RESULT_COLOR; -- cgit v1.2.3 From d2686cdb2354b7cfe0e4eac3c5afab40cb947e0f Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 02:11:26 +0200 Subject: r300g: raise the number of texture units to 16 for all supported chipsets As per Radeon 9700 Opengl Programming and Optimization Guide [1], there are 16 texture units even on the first r300 chipsets. If you think I am wrong, feel free to propose a patch. [1] Here's PDF: http://people.freedesktop.org/~mareko/ --- src/gallium/drivers/r300/r300_chipset.c | 2 +- src/gallium/drivers/r300/r300_chipset.h | 2 ++ src/gallium/drivers/r300/r300_context.h | 6 +++--- src/gallium/drivers/r300/r300_screen.c | 3 +-- src/gallium/drivers/r300/r300_state.c | 9 +++++---- src/gallium/drivers/r300/r300_state_inlines.h | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/r300/r300_chipset.c b/src/gallium/drivers/r300/r300_chipset.c index 4171986263..9b2163e44c 100644 --- a/src/gallium/drivers/r300/r300_chipset.c +++ b/src/gallium/drivers/r300/r300_chipset.c @@ -34,12 +34,12 @@ void r300_parse_chipset(struct r300_capabilities* caps) { /* Reasonable defaults */ caps->num_vert_fpus = 4; + caps->num_tex_units = 16; caps->has_tcl = debug_get_bool_option("RADEON_NO_TCL", FALSE) ? FALSE : TRUE; caps->is_r400 = FALSE; caps->is_r500 = FALSE; caps->high_second_pipe = FALSE; - /* Note: These are not ordered by PCI ID. I leave that task to GCC, * which will perform the ordering while collating jump tables. Instead, * I've tried to group them according to capabilities and age. */ diff --git a/src/gallium/drivers/r300/r300_chipset.h b/src/gallium/drivers/r300/r300_chipset.h index 2808486492..ff957b7c29 100644 --- a/src/gallium/drivers/r300/r300_chipset.h +++ b/src/gallium/drivers/r300/r300_chipset.h @@ -38,6 +38,8 @@ struct r300_capabilities { unsigned num_frag_pipes; /* The number of z pipes */ unsigned num_z_pipes; + /* The number of texture units. */ + unsigned num_tex_units; /* Whether or not TCL is physically present */ boolean has_tcl; /* Whether or not this is R400. The differences compared to their R3xx diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 4689701bd1..108ab453a4 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -138,10 +138,10 @@ struct r300_texture_fb_state { struct r300_textures_state { /* Textures. */ - struct pipe_sampler_view *fragment_sampler_views[8]; + struct pipe_sampler_view *fragment_sampler_views[16]; int texture_count; /* Sampler states. */ - struct r300_sampler_state *sampler_states[8]; + struct r300_sampler_state *sampler_states[16]; int sampler_count; /* These is the merge of the texture and sampler states. */ @@ -152,7 +152,7 @@ struct r300_textures_state { uint32_t filter[2]; /* R300_TX_FILTER[0-1] */ uint32_t border_color; /* R300_TX_BORDER_COLOR: 0x45c0 */ uint32_t tile_config; /* R300_TX_OFFSET (subset thereof) */ - } regs[8]; + } regs[16]; }; struct r300_vertex_stream_state { diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 50e5e9307e..0a98458dc3 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -82,8 +82,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) switch (param) { case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS: case PIPE_CAP_MAX_COMBINED_SAMPLERS: - /* XXX I'm told this goes up to 16 */ - return 8; + return r300screen->caps->num_tex_units; case PIPE_CAP_NPOT_TEXTURES: /* XXX enable now to get GL2.1 API, * figure out later how to emulate this */ diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index dc94c95e69..d1486a2039 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -908,8 +908,9 @@ static void r300_bind_sampler_states(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); struct r300_textures_state* state = (struct r300_textures_state*)r300->textures_state.state; + unsigned tex_units = r300_screen(r300->context.screen)->caps->num_tex_units; - if (count > 8) { + if (count > tex_units) { return; } @@ -947,11 +948,11 @@ static void r300_set_fragment_sampler_views(struct pipe_context* pipe, (struct r300_textures_state*)r300->textures_state.state; struct r300_texture *texture; unsigned i; + unsigned tex_units = r300_screen(r300->context.screen)->caps->num_tex_units; boolean is_r500 = r300_screen(r300->context.screen)->caps->is_r500; boolean dirty_tex = FALSE; - /* XXX magic num */ - if (count > 8) { + if (count > tex_units) { return; } @@ -977,7 +978,7 @@ static void r300_set_fragment_sampler_views(struct pipe_context* pipe, } } - for (i = count; i < 8; i++) { + for (i = count; i < tex_units; i++) { if (state->fragment_sampler_views[i]) { pipe_sampler_view_reference(&state->fragment_sampler_views[i], NULL); diff --git a/src/gallium/drivers/r300/r300_state_inlines.h b/src/gallium/drivers/r300/r300_state_inlines.h index 8a690039b6..044d70cbe8 100644 --- a/src/gallium/drivers/r300/r300_state_inlines.h +++ b/src/gallium/drivers/r300/r300_state_inlines.h @@ -338,7 +338,7 @@ static INLINE uint32_t r500_anisotropy(unsigned max_aniso) // Map the range [0, 15] to [0, 63]. return R500_TX_MAX_ANISO(MIN2((unsigned)(max_aniso*4.2001), 63)) | - R500_TX_ANISO_HIGH_QUALITY;; + R500_TX_ANISO_HIGH_QUALITY; } /* Non-CSO state. (For now.) */ -- cgit v1.2.3 From 32327196f7f7a97bebc462a1ba94270580ef3fe9 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 02:44:16 +0200 Subject: r300g: remove some XXXs We can't have more than 8 texcoord outputs in VS. --- src/gallium/drivers/r300/r300_state_derived.c | 1 - src/gallium/drivers/r300/r300_vs.c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index 47209dd58f..a68dd80b6b 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -99,7 +99,6 @@ static void r300_draw_emit_all_attribs(struct r300_context* r300) gen_count++; } - /* XXX magic */ assert(gen_count <= 8); } diff --git a/src/gallium/drivers/r300/r300_vs.c b/src/gallium/drivers/r300/r300_vs.c index d5690caa68..b9b049afad 100644 --- a/src/gallium/drivers/r300/r300_vs.c +++ b/src/gallium/drivers/r300/r300_vs.c @@ -169,7 +169,6 @@ static void r300_init_vs_output_mapping(struct r300_vertex_shader* vs) gen_count++; } - /* XXX magic */ assert(gen_count <= 8); /* WPOS. */ -- cgit v1.2.3 From b71bfc4400e1d7c15a2bebbbd3b26a8770fbf546 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 03:19:08 +0200 Subject: r300g: simplify accessing screen from context --- src/gallium/drivers/r300/r300_context.c | 7 ++-- src/gallium/drivers/r300/r300_context.h | 4 ++- src/gallium/drivers/r300/r300_emit.c | 48 +++++++++++-------------- src/gallium/drivers/r300/r300_flush.c | 2 +- src/gallium/drivers/r300/r300_fs.c | 2 +- src/gallium/drivers/r300/r300_query.c | 16 ++++----- src/gallium/drivers/r300/r300_render.c | 4 +-- src/gallium/drivers/r300/r300_screen.c | 32 ++++++++--------- src/gallium/drivers/r300/r300_screen.h | 2 +- src/gallium/drivers/r300/r300_state.c | 46 +++++++++++------------- src/gallium/drivers/r300/r300_state_derived.c | 2 +- src/gallium/drivers/r300/r300_state_invariant.c | 2 +- src/gallium/drivers/r300/r300_texture.c | 6 ++-- 13 files changed, 79 insertions(+), 94 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index 4b470b2c6a..1e1c7161ec 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -107,8 +107,8 @@ static void r300_flush_cb(void *data) static void r300_setup_atoms(struct r300_context* r300) { - boolean is_r500 = r300_screen(r300->context.screen)->caps->is_r500; - boolean has_tcl = r300_screen(r300->context.screen)->caps->has_tcl; + boolean is_r500 = r300->screen->caps.is_r500; + boolean has_tcl = r300->screen->caps.has_tcl; /* Create the actual atom list. * @@ -159,6 +159,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, return NULL; r300->rws = rws; + r300->screen = r300screen; r300->context.winsys = (struct pipe_winsys*)rws; r300->context.screen = screen; @@ -170,7 +171,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, r300->context.surface_copy = r300_surface_copy; r300->context.surface_fill = r300_surface_fill; - if (r300screen->caps->has_tcl) { + if (r300screen->caps.has_tcl) { r300->context.draw_arrays = r300_draw_arrays; r300->context.draw_elements = r300_draw_elements; r300->context.draw_range_elements = r300_draw_range_elements; diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 108ab453a4..351bd2cdae 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -292,6 +292,8 @@ struct r300_context { /* The interface to the windowing system, etc. */ struct r300_winsys_screen *rws; + /* Screen. */ + struct r300_screen *screen; /* Draw module. Used mostly for SW TCL. */ struct draw_context* draw; /* Accelerated blit support. */ @@ -403,7 +405,7 @@ void r300_init_tex_functions( struct pipe_context *pipe ); static INLINE boolean CTX_DBG_ON(struct r300_context * ctx, unsigned flags) { - return SCREEN_DBG_ON(r300_screen(ctx->context.screen), flags); + return SCREEN_DBG_ON(ctx->screen, flags); } static INLINE void CTX_DBG(struct r300_context * ctx, unsigned flags, diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 15bcf8907f..6ef140d8a3 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -64,10 +64,9 @@ void r300_emit_blend_color_state(struct r300_context* r300, unsigned size, void* state) { struct r300_blend_color_state* bc = (struct r300_blend_color_state*)state; - struct r300_screen* r300screen = r300_screen(r300->context.screen); CS_LOCALS(r300); - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { BEGIN_CS(size); OUT_CS_REG_SEQ(R500_RB3D_CONSTANT_COLOR_AR, 2); OUT_CS(bc->blend_color_red_alpha); @@ -85,13 +84,12 @@ void r300_emit_clip_state(struct r300_context* r300, { struct pipe_clip_state* clip = (struct pipe_clip_state*)state; int i; - struct r300_screen* r300screen = r300_screen(r300->context.screen); CS_LOCALS(r300); - if (r300screen->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { BEGIN_CS(size); OUT_CS_REG(R300_VAP_PVS_VECTOR_INDX_REG, - (r300screen->caps->is_r500 ? + (r300->screen->caps.is_r500 ? R500_PVS_UCP_START : R300_PVS_UCP_START)); OUT_CS_ONE_REG(R300_VAP_PVS_UPLOAD_DATA, 6 * 4); for (i = 0; i < 6; i++) { @@ -114,7 +112,6 @@ void r300_emit_clip_state(struct r300_context* r300, void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state) { struct r300_dsa_state* dsa = (struct r300_dsa_state*)state; - struct r300_screen* r300screen = r300_screen(r300->context.screen); struct pipe_framebuffer_state* fb = (struct pipe_framebuffer_state*)r300->fb_state.state; struct pipe_stencil_ref stencil_ref = r300->stencil_ref; @@ -134,7 +131,7 @@ void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state) OUT_CS(dsa->stencil_ref_mask | stencil_ref.ref_value[0]); - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { OUT_CS_REG(R500_ZB_STENCILREFMASK_BF, dsa->stencil_ref_bf | stencil_ref.ref_value[1]); } END_CS; @@ -377,7 +374,6 @@ void r500_emit_fs_constant_buffer(struct r300_context* r300, void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state) { struct pipe_framebuffer_state* fb = (struct pipe_framebuffer_state*)state; - struct r300_screen* r300screen = r300_screen(r300->context.screen); struct r300_texture* tex; struct pipe_surface* surf; int i; @@ -395,7 +391,7 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state) /* Set the number of colorbuffers. */ if (fb->nr_cbufs > 1) { - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { OUT_CS_REG(R300_RB3D_CCTL, R300_RB3D_CCTL_NUM_MULTIWRITES(fb->nr_cbufs) | R300_RB3D_CCTL_INDEPENDENT_COLORFORMAT_ENABLE_ENABLE); @@ -449,7 +445,6 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state) void r300_emit_query_start(struct r300_context *r300) { - struct r300_capabilities *caps = r300_screen(r300->context.screen)->caps; struct r300_query *query = r300->query_current; CS_LOCALS(r300); @@ -457,7 +452,7 @@ void r300_emit_query_start(struct r300_context *r300) return; BEGIN_CS(4); - if (caps->family == CHIP_FAMILY_RV530) { + if (r300->screen->caps.family == CHIP_FAMILY_RV530) { OUT_CS_REG(RV530_FG_ZBREG_DEST, RV530_FG_ZBREG_DEST_PIPE_SELECT_ALL); } else { OUT_CS_REG(R300_SU_REG_DEST, R300_RASTER_PIPE_SELECT_ALL); @@ -471,7 +466,7 @@ void r300_emit_query_start(struct r300_context *r300) static void r300_emit_query_finish(struct r300_context *r300, struct r300_query *query) { - struct r300_capabilities* caps = r300_screen(r300->context.screen)->caps; + struct r300_capabilities* caps = &r300->screen->caps; CS_LOCALS(r300); assert(caps->num_frag_pipes); @@ -555,7 +550,7 @@ static void rv530_emit_query_double(struct r300_context *r300, void r300_emit_query_end(struct r300_context* r300) { - struct r300_capabilities *caps = r300_screen(r300->context.screen)->caps; + struct r300_capabilities *caps = &r300->screen->caps; struct r300_query *query = r300->query_current; if (!query) @@ -621,7 +616,6 @@ void r300_emit_rs_block_state(struct r300_context* r300, { struct r300_rs_block* rs = (struct r300_rs_block*)state; unsigned i; - struct r300_screen* r300screen = r300_screen(r300->context.screen); /* It's the same for both INST and IP tables */ unsigned count = (rs->inst_count & R300_RS_INST_COUNT_MASK) + 1; CS_LOCALS(r300); @@ -629,7 +623,7 @@ void r300_emit_rs_block_state(struct r300_context* r300, DBG(r300, DBG_DRAW, "r300: RS emit:\n"); BEGIN_CS(size); - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { OUT_CS_REG_SEQ(R500_RS_IP_0, count); } else { OUT_CS_REG_SEQ(R300_RS_IP_0, count); @@ -643,7 +637,7 @@ void r300_emit_rs_block_state(struct r300_context* r300, OUT_CS(rs->count); OUT_CS(rs->inst_count); - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { OUT_CS_REG_SEQ(R500_RS_INST_0, count); } else { OUT_CS_REG_SEQ(R300_RS_INST_0, count); @@ -664,7 +658,6 @@ void r300_emit_scissor_state(struct r300_context* r300, { unsigned minx, miny, maxx, maxy; uint32_t top_left, bottom_right; - struct r300_screen* r300screen = r300_screen(r300->context.screen); struct pipe_scissor_state* scissor = (struct pipe_scissor_state*)state; struct pipe_framebuffer_state* fb = (struct pipe_framebuffer_state*)r300->fb_state.state; @@ -697,7 +690,7 @@ void r300_emit_scissor_state(struct r300_context* r300, maxy = 1; } - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { top_left = (minx << R300_SCISSORS_X_SHIFT) | (miny << R300_SCISSORS_Y_SHIFT); @@ -876,11 +869,11 @@ void r300_emit_vs_state(struct r300_context* r300, unsigned size, void* state) { struct r300_vertex_shader* vs = (struct r300_vertex_shader*)state; struct r300_vertex_program_code* code = &vs->code; - struct r300_screen* r300screen = r300_screen(r300->context.screen); + struct r300_screen* r300screen = r300->screen; unsigned instruction_count = code->length / 4; unsigned i; - unsigned vtx_mem_size = r300screen->caps->is_r500 ? 128 : 72; + unsigned vtx_mem_size = r300screen->caps.is_r500 ? 128 : 72; unsigned input_count = MAX2(util_bitcount(code->InputsRead), 1); unsigned output_count = MAX2(util_bitcount(code->OutputsWritten), 1); unsigned temp_count = MAX2(code->num_temporaries, 1); @@ -911,22 +904,21 @@ void r300_emit_vs_state(struct r300_context* r300, unsigned size, void* state) OUT_CS_REG(R300_VAP_CNTL, R300_PVS_NUM_SLOTS(pvs_num_slots) | R300_PVS_NUM_CNTLRS(pvs_num_controllers) | - R300_PVS_NUM_FPUS(r300screen->caps->num_vert_fpus) | + R300_PVS_NUM_FPUS(r300screen->caps.num_vert_fpus) | R300_PVS_VF_MAX_VTX_NUM(12) | - (r300screen->caps->is_r500 ? R500_TCL_STATE_OPTIMIZATION : 0)); + (r300screen->caps.is_r500 ? R500_TCL_STATE_OPTIMIZATION : 0)); END_CS; } void r300_emit_vs_constant_buffer(struct r300_context* r300, struct rc_constant_list* constants) { - struct r300_screen* r300screen = r300_screen(r300->context.screen); unsigned i; CS_LOCALS(r300); BEGIN_CS(constants->Count * 4 + 3); OUT_CS_REG(R300_VAP_PVS_VECTOR_INDX_REG, - (r300screen->caps->is_r500 ? + (r300->screen->caps.is_r500 ? R500_PVS_CONST_START : R300_PVS_CONST_START)); OUT_CS_ONE_REG(R300_VAP_PVS_UPLOAD_DATA, constants->Count * 4); for (i = 0; i < constants->Count; i++) { @@ -1105,7 +1097,7 @@ unsigned r300_get_num_dirty_dwords(struct r300_context *r300) /* Emit all dirty state. */ void r300_emit_dirty_state(struct r300_context* r300) { - struct r300_screen* r300screen = r300_screen(r300->context.screen); + struct r300_screen* r300screen = r300->screen; struct r300_atom* atom; if (r300->dirty_state & R300_NEW_QUERY) { @@ -1122,7 +1114,7 @@ void r300_emit_dirty_state(struct r300_context* r300) if (r300->dirty_state & R300_NEW_FRAGMENT_SHADER) { r300_emit_fragment_depth_config(r300, r300->fs); - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { r500_emit_fragment_program_code(r300, &r300->fs->shader->code); } else { r300_emit_fragment_program_code(r300, &r300->fs->shader->code); @@ -1131,7 +1123,7 @@ void r300_emit_dirty_state(struct r300_context* r300) } if (r300->dirty_state & R300_NEW_FRAGMENT_SHADER_CONSTANTS) { - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { r500_emit_fs_constant_buffer(r300, &r300->fs->shader->code.constants); } else { @@ -1154,7 +1146,7 @@ void r300_emit_dirty_state(struct r300_context* r300) */ /* Emit the VBO for SWTCL. */ - if (!r300screen->caps->has_tcl) { + if (!r300screen->caps.has_tcl) { r300_emit_vertex_buffer(r300); } diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index 70de152713..0aa2e35735 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -63,7 +63,7 @@ static void r300_flush(struct pipe_context* pipe, } /* Unmark HWTCL state for SWTCL. */ - if (!r300_screen(pipe->screen)->caps->has_tcl) { + if (!r300->screen->caps.has_tcl) { r300->vs_state.dirty = FALSE; r300->dirty_state &= ~R300_NEW_VERTEX_SHADER_CONSTANTS; } diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c index 116bb80007..b70bb51ba2 100644 --- a/src/gallium/drivers/r300/r300_fs.c +++ b/src/gallium/drivers/r300/r300_fs.c @@ -168,7 +168,7 @@ static void r300_translate_fragment_shader( compiler.code = &shader->code; compiler.state = shader->compare_state; - compiler.is_r500 = r300_screen(r300->context.screen)->caps->is_r500; + compiler.is_r500 = r300->screen->caps.is_r500; compiler.max_temp_regs = compiler.is_r500 ? 128 : 32; compiler.AllocateHwInputs = &allocate_hardware_inputs; compiler.UserData = &fs->inputs; diff --git a/src/gallium/drivers/r300/r300_query.c b/src/gallium/drivers/r300/r300_query.c index 1778dc9cca..bc40fcfb5b 100644 --- a/src/gallium/drivers/r300/r300_query.c +++ b/src/gallium/drivers/r300/r300_query.c @@ -36,7 +36,7 @@ static struct pipe_query *r300_create_query(struct pipe_context *pipe, unsigned query_type) { struct r300_context *r300 = r300_context(pipe); - struct r300_screen *r300screen = r300_screen(r300->context.screen); + struct r300_screen *r300screen = r300->screen; unsigned query_size; struct r300_query *q, *qptr; @@ -47,10 +47,10 @@ static struct pipe_query *r300_create_query(struct pipe_context *pipe, q->active = FALSE; - if (r300screen->caps->family == CHIP_FAMILY_RV530) - query_size = r300screen->caps->num_z_pipes * sizeof(uint32_t); + if (r300screen->caps.family == CHIP_FAMILY_RV530) + query_size = r300screen->caps.num_z_pipes * sizeof(uint32_t); else - query_size = r300screen->caps->num_frag_pipes * sizeof(uint32_t); + query_size = r300screen->caps.num_frag_pipes * sizeof(uint32_t); if (!is_empty_list(&r300->query_list)) { qptr = last_elem(&r300->query_list); @@ -112,7 +112,7 @@ static boolean r300_get_query_result(struct pipe_context* pipe, uint64_t* result) { struct r300_context* r300 = r300_context(pipe); - struct r300_screen* r300screen = r300_screen(r300->context.screen); + struct r300_screen* r300screen = r300->screen; struct r300_query *q = (struct r300_query*)query; unsigned flags = PIPE_BUFFER_USAGE_CPU_READ; uint32_t* map; @@ -130,10 +130,10 @@ static boolean r300_get_query_result(struct pipe_context* pipe, return FALSE; map += q->offset / 4; - if (r300screen->caps->family == CHIP_FAMILY_RV530) - num_results = r300screen->caps->num_z_pipes; + if (r300screen->caps.family == CHIP_FAMILY_RV530) + num_results = r300screen->caps.num_z_pipes; else - num_results = r300screen->caps->num_frag_pipes; + num_results = r300screen->caps.num_frag_pipes; for (i = 0; i < num_results; i++) { if (*map == ~0U) { diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index bba9ef251e..c2b13235a1 100644 --- a/src/gallium/drivers/r300/r300_render.c +++ b/src/gallium/drivers/r300/r300_render.c @@ -420,7 +420,7 @@ void r300_draw_range_elements(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); struct pipe_buffer* orgIndexBuffer = indexBuffer; #if defined(ENABLE_ALT_NUM_VERTS) - boolean alt_num_verts = r300_screen(pipe->screen)->caps->is_r500 && + boolean alt_num_verts = r300->screen->caps.is_r500 && count > 65536; #else boolean alt_num_verts = FALSE; @@ -500,7 +500,7 @@ void r300_draw_arrays(struct pipe_context* pipe, unsigned mode, { struct r300_context* r300 = r300_context(pipe); #if defined(ENABLE_ALT_NUM_VERTS) - boolean alt_num_verts = r300_screen(pipe->screen)->caps->is_r500 && + boolean alt_num_verts = r300->screen->caps.is_r500 && count > 65536; #else boolean alt_num_verts = FALSE; diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 0a98458dc3..b52850674f 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -72,7 +72,7 @@ static const char* r300_get_name(struct pipe_screen* pscreen) { struct r300_screen* r300screen = r300_screen(pscreen); - return chip_families[r300screen->caps->family]; + return chip_families[r300screen->caps.family]; } static int r300_get_param(struct pipe_screen* pscreen, int param) @@ -82,13 +82,13 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) switch (param) { case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS: case PIPE_CAP_MAX_COMBINED_SAMPLERS: - return r300screen->caps->num_tex_units; + return r300screen->caps.num_tex_units; case PIPE_CAP_NPOT_TEXTURES: /* XXX enable now to get GL2.1 API, * figure out later how to emulate this */ return 1; case PIPE_CAP_TWO_SIDED_STENCIL: - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { return 1; } else { return 0; @@ -125,7 +125,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) case PIPE_CAP_MAX_TEXTURE_2D_LEVELS: case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { /* 13 == 4096 */ return 13; } else { @@ -143,7 +143,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) case PIPE_CAP_BLEND_EQUATION_SEPARATE: return 1; case PIPE_CAP_SM3: - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { return 1; } else { return 0; @@ -180,9 +180,9 @@ static float r300_get_paramf(struct pipe_screen* pscreen, int param) case PIPE_CAP_MAX_POINT_WIDTH_AA: /* The maximum dimensions of the colorbuffer are our practical * rendering limits. 2048 pixels should be enough for anybody. */ - if (r300screen->caps->is_r500) { + if (r300screen->caps.is_r500) { return 4096.0f; - } else if (r300screen->caps->is_r400) { + } else if (r300screen->caps.is_r400) { return 4021.0f; } else { return 2560.0f; @@ -205,8 +205,8 @@ static boolean r300_is_format_supported(struct pipe_screen* screen, unsigned geom_flags) { uint32_t retval = 0; - boolean is_r500 = r300_screen(screen)->caps->is_r500; - boolean is_r400 = r300_screen(screen)->caps->is_r400; + boolean is_r500 = r300_screen(screen)->caps.is_r500; + boolean is_r400 = r300_screen(screen)->caps.is_r400; boolean is_z24 = format == PIPE_FORMAT_X8Z24_UNORM || format == PIPE_FORMAT_S8_USCALED_Z24_UNORM; boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM; @@ -265,29 +265,25 @@ static void r300_destroy_screen(struct pipe_screen* pscreen) if (rws) rws->destroy(rws); - FREE(r300screen->caps); FREE(r300screen); } struct pipe_screen* r300_create_screen(struct r300_winsys_screen *rws) { struct r300_screen *r300screen = CALLOC_STRUCT(r300_screen); - struct r300_capabilities *caps = CALLOC_STRUCT(r300_capabilities); - if (!r300screen || !caps) { + if (!r300screen) { FREE(r300screen); - FREE(caps); return NULL; } - caps->pci_id = rws->get_value(rws, R300_VID_PCI_ID); - caps->num_frag_pipes = rws->get_value(rws, R300_VID_GB_PIPES); - caps->num_z_pipes = rws->get_value(rws, R300_VID_Z_PIPES); + r300screen->caps.pci_id = rws->get_value(rws, R300_VID_PCI_ID); + r300screen->caps.num_frag_pipes = rws->get_value(rws, R300_VID_GB_PIPES); + r300screen->caps.num_z_pipes = rws->get_value(rws, R300_VID_Z_PIPES); r300_init_debug(r300screen); - r300_parse_chipset(caps); + r300_parse_chipset(&r300screen->caps); - r300screen->caps = caps; r300screen->rws = rws; r300screen->screen.winsys = (struct pipe_winsys*)rws; r300screen->screen.destroy = r300_destroy_screen; diff --git a/src/gallium/drivers/r300/r300_screen.h b/src/gallium/drivers/r300/r300_screen.h index 1cf8b7452d..159805840d 100644 --- a/src/gallium/drivers/r300/r300_screen.h +++ b/src/gallium/drivers/r300/r300_screen.h @@ -37,7 +37,7 @@ struct r300_screen { struct r300_winsys_screen *rws; /* Chipset capabilities */ - struct r300_capabilities* caps; + struct r300_capabilities caps; /** Combination of DBG_xxx flags */ unsigned debug; diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index d1486a2039..2adb3e7221 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -219,7 +219,7 @@ static void* r300_create_blend_state(struct pipe_context* pipe, /* Enable reading from the colorbuffer. */ blend->blend_control |= R300_READ_ENABLE; - if (r300_screen(r300_context(pipe)->context.screen)->caps->is_r500) { + if (r300screen->caps.is_r500) { /* Optimization: Depending on incoming pixels, we can * conditionally disable the reading in hardware... */ if (eqRGB != PIPE_BLEND_MIN && eqA != PIPE_BLEND_MIN && @@ -308,7 +308,7 @@ static void* r300_create_blend_state(struct pipe_context* pipe, /* Color channel masks for all MRTs. */ blend->color_channel_mask = bgra_cmask(state->rt[0].colormask); - if (r300screen->caps->is_r500 && state->independent_blend_enable) { + if (r300screen->caps.is_r500 && state->independent_blend_enable) { if (state->rt[1].blend_enable) { blend->color_channel_mask |= bgra_cmask(state->rt[1].colormask) << 4; } @@ -363,7 +363,6 @@ static void r300_set_blend_color(struct pipe_context* pipe, const struct pipe_blend_color* color) { struct r300_context* r300 = r300_context(pipe); - struct r300_screen* r300screen = r300_screen(pipe->screen); struct r300_blend_color_state* state = (struct r300_blend_color_state*)r300->blend_color_state.state; union util_color uc; @@ -379,7 +378,7 @@ static void r300_set_blend_color(struct pipe_context* pipe, float_to_fixed10(color->color[2]) | (float_to_fixed10(color->color[1]) << 16); - r300->blend_color_state.size = r300screen->caps->is_r500 ? 3 : 2; + r300->blend_color_state.size = r300->screen->caps.is_r500 ? 3 : 2; r300->blend_color_state.dirty = TRUE; } @@ -390,7 +389,7 @@ static void r300_set_clip_state(struct pipe_context* pipe, r300->clip = *state; - if (r300_screen(pipe->screen)->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { memcpy(r300->clip_state.state, state, sizeof(struct pipe_clip_state)); r300->clip_state.size = 29; } else { @@ -411,8 +410,7 @@ static void* r300_create_dsa_state(struct pipe_context* pipe, const struct pipe_depth_stencil_alpha_state* state) { - struct r300_capabilities *caps = - r300_screen(r300_context(pipe)->context.screen)->caps; + struct r300_capabilities *caps = &r300_screen(pipe->screen)->caps; struct r300_dsa_state* dsa = CALLOC_STRUCT(r300_dsa_state); /* Depth test setup. */ @@ -577,7 +575,6 @@ static void const struct pipe_framebuffer_state* state) { struct r300_context* r300 = r300_context(pipe); - struct r300_screen* r300screen = r300_screen(pipe->screen); struct pipe_framebuffer_state *old_state = r300->fb_state.state; unsigned max_width, max_height; uint32_t zbuffer_bpp = 0; @@ -588,9 +585,9 @@ static void return; } - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { max_width = max_height = 4096; - } else if (r300screen->caps->is_r400) { + } else if (r300->screen->caps.is_r400) { max_width = max_height = 4021; } else { max_width = max_height = 2560; @@ -718,7 +715,6 @@ static void r300_set_polygon_stipple(struct pipe_context* pipe, static void* r300_create_rs_state(struct pipe_context* pipe, const struct pipe_rasterizer_state* state) { - struct r300_screen* r300screen = r300_screen(pipe->screen); struct r300_rs_state* rs = CALLOC_STRUCT(r300_rs_state); /* Copy rasterizer state for Draw. */ @@ -731,7 +727,7 @@ static void* r300_create_rs_state(struct pipe_context* pipe, #endif /* If no TCL engine is present, turn off the HW TCL. */ - if (!r300screen->caps->has_tcl) { + if (!r300_screen(pipe->screen)->caps.has_tcl) { rs->vap_control_status |= R300_VAP_TCL_BYPASS; } @@ -855,7 +851,7 @@ static void* { struct r300_context* r300 = r300_context(pipe); struct r300_sampler_state* sampler = CALLOC_STRUCT(r300_sampler_state); - boolean is_r500 = r300_screen(pipe->screen)->caps->is_r500; + boolean is_r500 = r300->screen->caps.is_r500; int lod_bias; union util_color uc; @@ -894,7 +890,7 @@ static void* sampler->border_color = uc.ui; /* R500-specific fixups and optimizations */ - if (r300_screen(r300->context.screen)->caps->is_r500) { + if (r300->screen->caps.is_r500) { sampler->filter1 |= R500_BORDER_FIX; } @@ -908,7 +904,7 @@ static void r300_bind_sampler_states(struct pipe_context* pipe, struct r300_context* r300 = r300_context(pipe); struct r300_textures_state* state = (struct r300_textures_state*)r300->textures_state.state; - unsigned tex_units = r300_screen(r300->context.screen)->caps->num_tex_units; + unsigned tex_units = r300->screen->caps.num_tex_units; if (count > tex_units) { return; @@ -948,8 +944,8 @@ static void r300_set_fragment_sampler_views(struct pipe_context* pipe, (struct r300_textures_state*)r300->textures_state.state; struct r300_texture *texture; unsigned i; - unsigned tex_units = r300_screen(r300->context.screen)->caps->num_tex_units; - boolean is_r500 = r300_screen(r300->context.screen)->caps->is_r500; + unsigned tex_units = r300->screen->caps.num_tex_units; + boolean is_r500 = r300->screen->caps.is_r500; boolean dirty_tex = FALSE; if (count > tex_units) { @@ -1191,7 +1187,6 @@ static void* r300_create_vertex_elements_state(struct pipe_context* pipe, unsigned count, const struct pipe_vertex_element* attribs) { - struct r300_screen* r300screen = r300_screen(pipe->screen); struct r300_vertex_element_state *velems; unsigned i, size; @@ -1201,7 +1196,7 @@ static void* r300_create_vertex_elements_state(struct pipe_context* pipe, velems->count = count; memcpy(velems->velem, attribs, sizeof(struct pipe_vertex_element) * count); - if (r300screen->caps->has_tcl) { + if (r300_screen(pipe->screen)->caps.has_tcl) { /* Check if the format is aligned to the size of DWORD. */ for (i = 0; i < count; i++) { size = util_format_get_blocksize(attribs[i].src_format); @@ -1256,7 +1251,7 @@ static void* r300_create_vs_state(struct pipe_context* pipe, struct r300_vertex_shader* vs = CALLOC_STRUCT(r300_vertex_shader); r300_vertex_shader_common_init(vs, shader); - if (r300_screen(pipe->screen)->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { r300_translate_vertex_shader(r300, vs); } else { vs->draw_vs = draw_create_vertex_shader(r300->draw, shader); @@ -1290,7 +1285,7 @@ static void r300_bind_vs_state(struct pipe_context* pipe, void* shader) /* The majority of the RS block bits is dependent on the vertex shader. */ r300->rs_block_state.dirty = TRUE; /* Will be updated before the emission. */ - if (r300_screen(pipe->screen)->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { r300->vs_state.dirty = TRUE; r300->vs_state.size = vs->code.length + 9; @@ -1309,7 +1304,7 @@ static void r300_delete_vs_state(struct pipe_context* pipe, void* shader) struct r300_context* r300 = r300_context(pipe); struct r300_vertex_shader* vs = (struct r300_vertex_shader*)shader; - if (r300_screen(pipe->screen)->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { rc_constants_destroy(&vs->code.constants); } else { draw_delete_vertex_shader(r300->draw, @@ -1325,7 +1320,6 @@ static void r300_set_constant_buffer(struct pipe_context *pipe, struct pipe_buffer *buf) { struct r300_context* r300 = r300_context(pipe); - struct r300_screen *r300screen = r300_screen(pipe->screen); void *mapped; int max_size = 0; @@ -1344,10 +1338,10 @@ static void r300_set_constant_buffer(struct pipe_context *pipe, max_size = 256; break; case PIPE_SHADER_FRAGMENT: - if (r300screen->caps->is_r500) { + if (r300->screen->caps.is_r500) { max_size = 256; /* XXX Implement emission of r400's extended constant buffer. */ - /*} else if (r300screen->caps->is_r400) { + /*} else if (r300->screen->caps.is_r400) { max_size = 64;*/ } else { max_size = 32; @@ -1369,7 +1363,7 @@ static void r300_set_constant_buffer(struct pipe_context *pipe, pipe_buffer_unmap(pipe->screen, buf); if (shader == PIPE_SHADER_VERTEX) { - if (r300screen->caps->has_tcl) { + if (r300->screen->caps.has_tcl) { r300->dirty_state |= R300_NEW_VERTEX_SHADER_CONSTANTS; r300->pvs_flush.dirty = TRUE; } else if (r300->draw) { diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index a68dd80b6b..292b20a7f4 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -265,7 +265,7 @@ static void r300_update_rs_block(struct r300_context* r300, boolean any_bcolor_used = vs_outputs->bcolor[0] != ATTR_UNUSED || vs_outputs->bcolor[1] != ATTR_UNUSED; - if (r300_screen(r300->context.screen)->caps->is_r500) { + if (r300->screen->caps.is_r500) { rX00_rs_col = r500_rs_col; rX00_rs_col_write = r500_rs_col_write; rX00_rs_tex = r500_rs_tex; diff --git a/src/gallium/drivers/r300/r300_state_invariant.c b/src/gallium/drivers/r300/r300_state_invariant.c index 88ae75bb81..4685ec4761 100644 --- a/src/gallium/drivers/r300/r300_state_invariant.c +++ b/src/gallium/drivers/r300/r300_state_invariant.c @@ -41,7 +41,7 @@ struct pipe_viewport_state r300_viewport_identity = { void r300_emit_invariant_state(struct r300_context* r300, unsigned size, void* state) { - struct r300_capabilities* caps = r300_screen(r300->context.screen)->caps; + struct r300_capabilities* caps = &r300_screen(r300->context.screen)->caps; CS_LOCALS(r300); BEGIN_CS(14 + (caps->has_tcl ? 2: 0)); diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index d1db6722e0..cc4cf560a0 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -515,7 +515,7 @@ static void r300_setup_texture_state(struct r300_screen* screen, struct r300_tex struct r300_texture_format_state* state = &tex->state; struct pipe_texture *pt = &tex->tex; unsigned i; - boolean is_r500 = screen->caps->is_r500; + boolean is_r500 = screen->caps.is_r500; /* Set sampler state. */ state->format0 = R300_TX_WIDTH((pt->width0 - 1) & 0x7ff) | @@ -704,7 +704,7 @@ static void r300_setup_miptree(struct r300_screen* screen, { struct pipe_texture* base = &tex->tex; unsigned stride, size, layer_size, nblocksy, i; - boolean rv350_mode = screen->caps->family >= CHIP_FAMILY_RV350; + boolean rv350_mode = screen->caps.family >= CHIP_FAMILY_RV350; SCREEN_DBG(screen, DBG_TEX, "r300: Making miptree for texture, format %s\n", util_format_name(base->format)); @@ -751,7 +751,7 @@ static void r300_setup_tiling(struct pipe_screen *screen, { struct r300_winsys_screen *rws = (struct r300_winsys_screen *)screen->winsys; enum pipe_format format = tex->tex.format; - boolean rv350_mode = r300_screen(screen)->caps->family >= CHIP_FAMILY_RV350; + boolean rv350_mode = r300_screen(screen)->caps.family >= CHIP_FAMILY_RV350; if (!r300_format_is_plain(format)) { return; -- cgit v1.2.3 From a955f86b31304a1a0f35faa0e0861e920354e23b Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 06:26:11 +0200 Subject: r300g: add fallback for back stencil reference value and masks for r3xx-r4xx This splits rendering into two passes when front and back stencil reference value, value mask, or write mask don't match. The advantages of doing it in the driver instead of in st are: * SWTCL is executed just once and the resulting vertex buffer is reused in the second pass. * Lower driver overhead due to the fallback being very close to the actual draw emission with minimum state change. --- src/gallium/drivers/r300/r300_context.c | 10 ++ src/gallium/drivers/r300/r300_context.h | 23 ++++ src/gallium/drivers/r300/r300_render.c | 202 +++++++++++++++++++++++++++----- src/gallium/drivers/r300/r300_render.h | 36 ++++++ src/gallium/drivers/r300/r300_state.c | 41 +++++-- 5 files changed, 275 insertions(+), 37 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index 1e1c7161ec..46fdf08794 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -175,6 +175,16 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, r300->context.draw_arrays = r300_draw_arrays; r300->context.draw_elements = r300_draw_elements; r300->context.draw_range_elements = r300_draw_range_elements; + + if (r300screen->caps.is_r500) { + r300->emit_draw_arrays_immediate = r500_emit_draw_arrays_immediate; + r300->emit_draw_arrays = r500_emit_draw_arrays; + r300->emit_draw_elements = r500_emit_draw_elements; + } else { + r300->emit_draw_arrays_immediate = r300_emit_draw_arrays_immediate; + r300->emit_draw_arrays = r300_emit_draw_arrays; + r300->emit_draw_elements = r300_emit_draw_elements; + } } else { r300->context.draw_arrays = r300_swtcl_draw_arrays; r300->context.draw_elements = r300_draw_elements; diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 351bd2cdae..9d7e9d1226 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -79,6 +79,11 @@ struct r300_dsa_state { uint32_t z_stencil_control; /* R300_ZB_ZSTENCILCNTL: 0x4f04 */ uint32_t stencil_ref_mask; /* R300_ZB_STENCILREFMASK: 0x4f08 */ uint32_t stencil_ref_bf; /* R500_ZB_STENCILREFMASK_BF: 0x4fd4 */ + + /* Whether a two-sided stencil is enabled. */ + boolean two_sided; + /* Whether a fallback should be used for a two-sided stencil ref value. */ + boolean stencil_ref_bf_fallback; }; struct r300_rs_state { @@ -290,6 +295,21 @@ struct r300_context { /* Parent class */ struct pipe_context context; + /* Emission of drawing packets. */ + void (*emit_draw_arrays_immediate)( + struct r300_context *r300, + unsigned mode, unsigned start, unsigned count); + + void (*emit_draw_arrays)( + struct r300_context *r300, + unsigned mode, unsigned count); + + void (*emit_draw_elements)( + struct r300_context *r300, struct pipe_buffer* indexBuffer, + unsigned indexSize, unsigned minIndex, unsigned maxIndex, + unsigned mode, unsigned start, unsigned count); + + /* The interface to the windowing system, etc. */ struct r300_winsys_screen *rws; /* Screen. */ @@ -382,6 +402,9 @@ struct r300_context { boolean scissor_enabled; /* Whether rendering is conditional and should be skipped. */ boolean skip_rendering; + /* Whether the two-sided stencil ref value is different for front and + * back faces, and fallback should be used for r3xx-r4xx. */ + boolean stencil_ref_bf_fallback; /* upload managers */ struct u_upload_mgr *upload_vb; struct u_upload_mgr *upload_ib; diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index c2b13235a1..09355569fb 100644 --- a/src/gallium/drivers/r300/r300_render.c +++ b/src/gallium/drivers/r300/r300_render.c @@ -162,10 +162,15 @@ static boolean immd_is_good_idea(struct r300_context *r300, return TRUE; } -static void r300_emit_draw_arrays_immediate(struct r300_context *r300, - unsigned mode, - unsigned start, - unsigned count) +/***************************************************************************** + * The emission of draw packets for r500. Older GPUs may use these functions * + * after resolving fallback issues (e.g. stencil ref two-sided). * + ****************************************************************************/ + +void r500_emit_draw_arrays_immediate(struct r300_context *r300, + unsigned mode, + unsigned start, + unsigned count) { struct pipe_vertex_element* velem; struct pipe_vertex_buffer* vbuf; @@ -252,9 +257,9 @@ static void r300_emit_draw_arrays_immediate(struct r300_context *r300, } } -static void r300_emit_draw_arrays(struct r300_context *r300, - unsigned mode, - unsigned count) +void r500_emit_draw_arrays(struct r300_context *r300, + unsigned mode, + unsigned count) { #if defined(ENABLE_ALT_NUM_VERTS) boolean alt_num_verts = count > 65535; @@ -282,14 +287,14 @@ static void r300_emit_draw_arrays(struct r300_context *r300, END_CS; } -static void r300_emit_draw_elements(struct r300_context *r300, - struct pipe_buffer* indexBuffer, - unsigned indexSize, - unsigned minIndex, - unsigned maxIndex, - unsigned mode, - unsigned start, - unsigned count) +void r500_emit_draw_elements(struct r300_context *r300, + struct pipe_buffer* indexBuffer, + unsigned indexSize, + unsigned minIndex, + unsigned maxIndex, + unsigned mode, + unsigned start, + unsigned count) { uint32_t count_dwords; uint32_t offset_dwords = indexSize * start / sizeof(uint32_t); @@ -347,6 +352,104 @@ static void r300_emit_draw_elements(struct r300_context *r300, END_CS; } +/***************************************************************************** + * The emission of draw packets for r300 which take care of the two-sided * + * stencil ref fallback and call r500's functions. * + ****************************************************************************/ + +/* Set drawing for front faces. */ +static void r300_begin_stencil_ref_fallback(struct r300_context *r300) +{ + struct r300_rs_state *rs = (struct r300_rs_state*)r300->rs_state.state; + CS_LOCALS(r300); + + BEGIN_CS(2); + OUT_CS_REG(R300_SU_CULL_MODE, rs->cull_mode | R300_CULL_BACK); + END_CS; +} + +/* Set drawing for back faces. */ +static void r300_switch_stencil_ref_side(struct r300_context *r300) +{ + struct r300_rs_state *rs = (struct r300_rs_state*)r300->rs_state.state; + struct r300_dsa_state *dsa = (struct r300_dsa_state*)r300->dsa_state.state; + CS_LOCALS(r300); + + BEGIN_CS(4); + OUT_CS_REG(R300_SU_CULL_MODE, rs->cull_mode | R300_CULL_FRONT); + OUT_CS_REG(R300_ZB_STENCILREFMASK, + dsa->stencil_ref_bf | r300->stencil_ref.ref_value[1]); + END_CS; +} + +/* Restore the original state. */ +static void r300_end_stencil_ref_fallback(struct r300_context *r300) +{ + struct r300_rs_state *rs = (struct r300_rs_state*)r300->rs_state.state; + struct r300_dsa_state *dsa = (struct r300_dsa_state*)r300->dsa_state.state; + CS_LOCALS(r300); + + BEGIN_CS(4); + OUT_CS_REG(R300_SU_CULL_MODE, rs->cull_mode); + OUT_CS_REG(R300_ZB_STENCILREFMASK, + dsa->stencil_ref_mask | r300->stencil_ref.ref_value[0]); + END_CS; +} + +void r300_emit_draw_arrays_immediate(struct r300_context *r300, + unsigned mode, + unsigned start, + unsigned count) +{ + if (!r300->stencil_ref_bf_fallback) { + r500_emit_draw_arrays_immediate(r300, mode, start, count); + } else { + r300_begin_stencil_ref_fallback(r300); + r500_emit_draw_arrays_immediate(r300, mode, start, count); + r300_switch_stencil_ref_side(r300); + r500_emit_draw_arrays_immediate(r300, mode, start, count); + r300_end_stencil_ref_fallback(r300); + } +} + +void r300_emit_draw_arrays(struct r300_context *r300, + unsigned mode, + unsigned count) +{ + if (!r300->stencil_ref_bf_fallback) { + r500_emit_draw_arrays(r300, mode, count); + } else { + r300_begin_stencil_ref_fallback(r300); + r500_emit_draw_arrays(r300, mode, count); + r300_switch_stencil_ref_side(r300); + r500_emit_draw_arrays(r300, mode, count); + r300_end_stencil_ref_fallback(r300); + } +} + +void r300_emit_draw_elements(struct r300_context *r300, + struct pipe_buffer* indexBuffer, + unsigned indexSize, + unsigned minIndex, + unsigned maxIndex, + unsigned mode, + unsigned start, + unsigned count) +{ + if (!r300->stencil_ref_bf_fallback) { + r500_emit_draw_elements(r300, indexBuffer, indexSize, minIndex, + maxIndex, mode, start, count); + } else { + r300_begin_stencil_ref_fallback(r300); + r500_emit_draw_elements(r300, indexBuffer, indexSize, minIndex, + maxIndex, mode, start, count); + r300_switch_stencil_ref_side(r300); + r500_emit_draw_elements(r300, indexBuffer, indexSize, minIndex, + maxIndex, mode, start, count); + r300_end_stencil_ref_fallback(r300); + } +} + static void r300_shorten_ubyte_elts(struct r300_context* r300, struct pipe_buffer** elts, unsigned start, @@ -457,13 +560,13 @@ void r300_draw_range_elements(struct pipe_context* pipe, u_upload_flush(r300->upload_vb); u_upload_flush(r300->upload_ib); if (alt_num_verts || count <= 65535) { - r300_emit_draw_elements(r300, indexBuffer, indexSize, minIndex, - maxIndex, mode, start, count); + r300->emit_draw_elements(r300, indexBuffer, indexSize, minIndex, + maxIndex, mode, start, count); } else { do { short_count = MIN2(count, 65534); - r300_emit_draw_elements(r300, indexBuffer, indexSize, minIndex, - maxIndex, mode, start, short_count); + r300->emit_draw_elements(r300, indexBuffer, indexSize, minIndex, + maxIndex, mode, start, short_count); start += short_count; count -= short_count; @@ -518,7 +621,7 @@ void r300_draw_arrays(struct pipe_context* pipe, unsigned mode, r300_update_derived_state(r300); if (immd_is_good_idea(r300, count)) { - r300_emit_draw_arrays_immediate(r300, mode, start, count); + r300->emit_draw_arrays_immediate(r300, mode, start, count); } else { /* Make sure there are at least 128 spare dwords in the command buffer. * (most of it being consumed by emit_aos) */ @@ -528,12 +631,12 @@ void r300_draw_arrays(struct pipe_context* pipe, unsigned mode, if (alt_num_verts || count <= 65535) { r300_emit_aos(r300, start); - r300_emit_draw_arrays(r300, mode, count); + r300->emit_draw_arrays(r300, mode, count); } else { do { short_count = MIN2(count, 65535); r300_emit_aos(r300, start); - r300_emit_draw_arrays(r300, mode, short_count); + r300->emit_draw_arrays(r300, mode, short_count); start += short_count; count -= short_count; @@ -746,9 +849,9 @@ static boolean r300_render_set_primitive(struct vbuf_render* render, return TRUE; } -static void r300_render_draw_arrays(struct vbuf_render* render, - unsigned start, - unsigned count) +static void r500_render_draw_arrays(struct vbuf_render* render, + unsigned start, + unsigned count) { struct r300_render* r300render = r300_render(render); struct r300_context* r300 = r300render->r300; @@ -768,9 +871,9 @@ static void r300_render_draw_arrays(struct vbuf_render* render, END_CS; } -static void r300_render_draw(struct vbuf_render* render, - const ushort* indices, - uint count) +static void r500_render_draw(struct vbuf_render* render, + const ushort* indices, + uint count) { struct r300_render* r300render = r300_render(render); struct r300_context* r300 = r300render->r300; @@ -796,6 +899,40 @@ static void r300_render_draw(struct vbuf_render* render, END_CS; } +static void r300_render_draw_arrays(struct vbuf_render* render, + unsigned start, + unsigned count) +{ + struct r300_context* r300 = r300_render(render)->r300; + + if (!r300->stencil_ref_bf_fallback) { + r500_render_draw_arrays(render, start, count); + } else { + r300_begin_stencil_ref_fallback(r300); + r500_render_draw_arrays(render, start, count); + r300_switch_stencil_ref_side(r300); + r500_render_draw_arrays(render, start, count); + r300_end_stencil_ref_fallback(r300); + } +} + +static void r300_render_draw(struct vbuf_render* render, + const ushort* indices, + uint count) +{ + struct r300_context* r300 = r300_render(render)->r300; + + if (!r300->stencil_ref_bf_fallback) { + r500_render_draw(render, indices, count); + } else { + r300_begin_stencil_ref_fallback(r300); + r500_render_draw(render, indices, count); + r300_switch_stencil_ref_side(r300); + r500_render_draw(render, indices, count); + r300_end_stencil_ref_fallback(r300); + } +} + static void r300_render_destroy(struct vbuf_render* render) { FREE(render); @@ -816,8 +953,13 @@ static struct vbuf_render* r300_render_create(struct r300_context* r300) r300render->base.map_vertices = r300_render_map_vertices; r300render->base.unmap_vertices = r300_render_unmap_vertices; r300render->base.set_primitive = r300_render_set_primitive; - r300render->base.draw = r300_render_draw; - r300render->base.draw_arrays = r300_render_draw_arrays; + if (r300->screen->caps.is_r500) { + r300render->base.draw = r500_render_draw; + r300render->base.draw_arrays = r500_render_draw_arrays; + } else { + r300render->base.draw = r300_render_draw; + r300render->base.draw_arrays = r300_render_draw_arrays; + } r300render->base.release_vertices = r300_render_release_vertices; r300render->base.destroy = r300_render_destroy; diff --git a/src/gallium/drivers/r300/r300_render.h b/src/gallium/drivers/r300/r300_render.h index 27b5e6a963..870e1fb53d 100644 --- a/src/gallium/drivers/r300/r300_render.h +++ b/src/gallium/drivers/r300/r300_render.h @@ -25,6 +25,42 @@ uint32_t r300_translate_primitive(unsigned prim); +void r500_emit_draw_arrays_immediate(struct r300_context *r300, + unsigned mode, + unsigned start, + unsigned count); + +void r500_emit_draw_arrays(struct r300_context *r300, + unsigned mode, + unsigned count); + +void r500_emit_draw_elements(struct r300_context *r300, + struct pipe_buffer* indexBuffer, + unsigned indexSize, + unsigned minIndex, + unsigned maxIndex, + unsigned mode, + unsigned start, + unsigned count); + +void r300_emit_draw_arrays_immediate(struct r300_context *r300, + unsigned mode, + unsigned start, + unsigned count); + +void r300_emit_draw_arrays(struct r300_context *r300, + unsigned mode, + unsigned count); + +void r300_emit_draw_elements(struct r300_context *r300, + struct pipe_buffer* indexBuffer, + unsigned indexSize, + unsigned minIndex, + unsigned maxIndex, + unsigned mode, + unsigned start, + unsigned count); + void r300_draw_range_elements(struct pipe_context* pipe, struct pipe_buffer* indexBuffer, unsigned indexSize, diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 2adb3e7221..2309f35326 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -444,6 +444,8 @@ static void* (state->stencil[0].writemask << R300_STENCILWRITEMASK_SHIFT); if (state->stencil[1].enabled) { + dsa->two_sided = TRUE; + dsa->z_buffer_control |= R300_STENCIL_FRONT_BACK; dsa->z_stencil_control |= (r300_translate_depth_stencil_function(state->stencil[1].func) << @@ -455,14 +457,16 @@ static void* (r300_translate_stencil_op(state->stencil[1].zfail_op) << R300_S_BACK_ZFAIL_OP_SHIFT); - if (caps->is_r500) - { + dsa->stencil_ref_bf = + (state->stencil[1].valuemask << R300_STENCILMASK_SHIFT) | + (state->stencil[1].writemask << R300_STENCILWRITEMASK_SHIFT); + + if (caps->is_r500) { dsa->z_buffer_control |= R500_STENCIL_REFMASK_FRONT_BACK; - dsa->stencil_ref_bf = - (state->stencil[1].valuemask << - R300_STENCILMASK_SHIFT) | - (state->stencil[1].writemask << - R300_STENCILWRITEMASK_SHIFT); + } else { + dsa->stencil_ref_bf_fallback = + (state->stencil[0].valuemask != state->stencil[1].valuemask || + state->stencil[0].writemask != state->stencil[1].writemask); } } } @@ -483,13 +487,33 @@ static void* return (void*)dsa; } +static void r300_update_stencil_ref_fallback_status(struct r300_context *r300) +{ + struct r300_dsa_state *dsa = (struct r300_dsa_state*)r300->dsa_state.state; + + if (r300->screen->caps.is_r500) { + return; + } + + r300->stencil_ref_bf_fallback = + dsa->stencil_ref_bf_fallback || + (dsa->two_sided && + r300->stencil_ref.ref_value[0] != r300->stencil_ref.ref_value[1]); +} + /* Bind DSA state. */ static void r300_bind_dsa_state(struct pipe_context* pipe, void* state) { struct r300_context* r300 = r300_context(pipe); + if (!state) { + return; + } + UPDATE_STATE(state, r300->dsa_state); + + r300_update_stencil_ref_fallback_status(r300); } /* Free DSA state. */ @@ -503,8 +527,11 @@ static void r300_set_stencil_ref(struct pipe_context* pipe, const struct pipe_stencil_ref* sr) { struct r300_context* r300 = r300_context(pipe); + r300->stencil_ref = *sr; r300->dsa_state.dirty = TRUE; + + r300_update_stencil_ref_fallback_status(r300); } /* This switcheroo is needed just because of goddamned MACRO_SWITCH. */ -- cgit v1.2.3 From bba6957da3a8832f8514f1bc4e26b36ed89a6172 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 07:01:52 +0200 Subject: r300g: enable OpenGL 2.1 on r3xx-r4xx chipsets --- src/gallium/drivers/r300/r300_screen.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index b52850674f..894a8c28c2 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -88,11 +88,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param) * figure out later how to emulate this */ return 1; case PIPE_CAP_TWO_SIDED_STENCIL: - if (r300screen->caps.is_r500) { - return 1; - } else { - return 0; - } + return 1; case PIPE_CAP_GLSL: /* I'll be frank. This is a lie. * -- cgit v1.2.3 From 42ea25cb4ecae09b5cc011a95d42ba7f0645dde3 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Sun, 4 Apr 2010 23:06:01 -0700 Subject: Update to final names from GLX_INTEL_swap_event spec Fixes bug #27454. --- src/glx/dri2.c | 2 +- src/glx/glxext.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/glx/dri2.c b/src/glx/dri2.c index 9ca9b3eb06..80c125e741 100644 --- a/src/glx/dri2.c +++ b/src/glx/dri2.c @@ -111,7 +111,7 @@ DRI2WireToEvent(Display *dpy, XEvent *event, xEvent *wire) aevent->event_type = GLX_EXCHANGE_COMPLETE_INTEL; break; case DRI2_BLIT_COMPLETE: - aevent->event_type = GLX_BLIT_COMPLETE_INTEL; + aevent->event_type = GLX_COPY_COMPLETE_INTEL; break; case DRI2_FLIP_COMPLETE: aevent->event_type = GLX_FLIP_COMPLETE_INTEL; diff --git a/src/glx/glxext.c b/src/glx/glxext.c index b5657baf2e..5289354a52 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -206,7 +206,7 @@ __glXEventToWire(Display *dpy, XEvent *event, xEvent *wire) break; case GLX_EXCHANGE_COMPLETE_INTEL: break; - case GLX_BLIT_COMPLETE_INTEL: + case GLX_COPY_COMPLETE_INTEL: break; case GLX_FLIP_COMPLETE_INTEL: break; -- cgit v1.2.3 From 3258058d3b3fe0412007bfa699918bbe1665939d Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 30 Mar 2010 13:36:10 -0600 Subject: util: added util_dl_error() --- src/gallium/auxiliary/util/u_dl.c | 13 +++++++++++++ src/gallium/auxiliary/util/u_dl.h | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/src/gallium/auxiliary/util/u_dl.c b/src/gallium/auxiliary/util/u_dl.c index 37ed789f95..220860ebf4 100644 --- a/src/gallium/auxiliary/util/u_dl.c +++ b/src/gallium/auxiliary/util/u_dl.c @@ -78,3 +78,16 @@ util_dl_close(struct util_dl_library *library) (void)library; #endif } + + +const char * +util_dl_error(void) +{ +#if defined(PIPE_OS_UNIX) + return dlerror(); +#elif defined(PIPE_OS_WINDOWS) + return "unknown error"; +#else + return "unknown error"; +#endif +} diff --git a/src/gallium/auxiliary/util/u_dl.h b/src/gallium/auxiliary/util/u_dl.h index 85296c58af..2853b447c6 100644 --- a/src/gallium/auxiliary/util/u_dl.h +++ b/src/gallium/auxiliary/util/u_dl.h @@ -70,4 +70,11 @@ void util_dl_close(struct util_dl_library *library); +/** + * Return most recent error message. + */ +const char * +util_dl_error(void); + + #endif /* U_DL_H_ */ -- cgit v1.2.3 From 557c8bb748f0b23dcc7c02ca9c594add4a42638d Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 08:01:05 -0600 Subject: mesa: check for _NEW_BUFFERS for color read format queries --- src/mesa/main/get.c | 16 ++++++++++++++++ src/mesa/main/get_gen.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index eaa6d7f730..6f38658cc1 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1791,10 +1791,14 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetBooleanv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = INT_TO_BOOLEAN(_mesa_get_color_read_type(ctx)); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetBooleanv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = INT_TO_BOOLEAN(_mesa_get_color_read_format(ctx)); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: @@ -3682,10 +3686,14 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetFloatv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = (GLfloat)(_mesa_get_color_read_type(ctx)); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetFloatv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = (GLfloat)(_mesa_get_color_read_format(ctx)); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: @@ -5573,10 +5581,14 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetIntegerv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = _mesa_get_color_read_type(ctx); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetIntegerv"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = _mesa_get_color_read_format(ctx); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: @@ -7465,10 +7477,14 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params ) break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetInteger64v"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = (GLint64)(_mesa_get_color_read_type(ctx)); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetInteger64v"); + if (ctx->NewState & _NEW_BUFFERS) + _mesa_update_state(ctx); params[0] = (GLint64)(_mesa_get_color_read_format(ctx)); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py index bfaca1536d..d6a6d0b18f 100644 --- a/src/mesa/main/get_gen.py +++ b/src/mesa/main/get_gen.py @@ -1015,9 +1015,9 @@ StateVars = [ # GL_OES_read_format ( "GL_IMPLEMENTATION_COLOR_READ_TYPE_OES", GLint, - ["_mesa_get_color_read_type(ctx)"], "", NoState, ["OES_read_format"] ), + ["_mesa_get_color_read_type(ctx)"], "", "_NEW_BUFFERS", ["OES_read_format"] ), ( "GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES", GLint, - ["_mesa_get_color_read_format(ctx)"], "", NoState, ["OES_read_format"] ), + ["_mesa_get_color_read_format(ctx)"], "", "_NEW_BUFFERS", ["OES_read_format"] ), # GL_ATI_fragment_shader ( "GL_NUM_FRAGMENT_REGISTERS_ATI", GLint, ["6"], -- cgit v1.2.3 From 51e6c57054549538c14eeefba61582cb96541051 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 08:01:29 -0600 Subject: i965g: change value of VERT_RESULT_PSIZ hack to avoid warnings --- src/gallium/drivers/i965/brw_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/i965/brw_reg.h b/src/gallium/drivers/i965/brw_reg.h index a63403b6af..ba10f9d5df 100644 --- a/src/gallium/drivers/i965/brw_reg.h +++ b/src/gallium/drivers/i965/brw_reg.h @@ -109,7 +109,7 @@ struct brw_chipset { /* XXX: hacks */ #define VERT_RESULT_HPOS 0 /* not always true */ -#define VERT_RESULT_PSIZ 10000 /* disabled */ +#define VERT_RESULT_PSIZ 127 /* disabled */ #endif -- cgit v1.2.3 From df65e64c294e93d83f6400b29a2a2d1c69db2c5d Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 08:09:57 -0600 Subject: mesa: remove unused var Fixes a coverity warnings. --- src/mesa/main/dlist.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index cc5fc130df..f869a585d6 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -6130,9 +6130,8 @@ static void GLAPIENTRY save_EndTransformFeedback(void) { GET_CURRENT_CONTEXT(ctx); - Node *n; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); - n = alloc_instruction(ctx, OPCODE_END_TRANSFORM_FEEDBACK, 0); + (void) alloc_instruction(ctx, OPCODE_END_TRANSFORM_FEEDBACK, 0); if (ctx->ExecuteFlag) { CALL_EndTransformFeedbackEXT(ctx->Exec, ()); } -- cgit v1.2.3 From f820b263db0d3bc46b4ea7b41bbe026cbf990430 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Sun, 4 Apr 2010 10:24:46 -0700 Subject: mesa: update_arrays() depends on program state. It uses ctx->VertexProgram._Current. Signed-off-by: Brian Paul --- src/mesa/main/state.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 589029db58..b971cc976e 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -582,9 +582,6 @@ _mesa_update_state_locked( GLcontext *ctx ) if (new_state & _DD_NEW_SEPARATE_SPECULAR) update_separate_specular( ctx ); - if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) - update_arrays( ctx ); - if (new_state & (_NEW_BUFFERS | _NEW_VIEWPORT)) update_viewport_matrix(ctx); @@ -620,6 +617,8 @@ _mesa_update_state_locked( GLcontext *ctx ) new_prog_state |= update_program( ctx ); } + if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) + update_arrays( ctx ); out: new_prog_state |= update_program_constants(ctx); -- cgit v1.2.3 From dcaa2c6e761ef3f910c94c0e4e4980626ab8e11e Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 5 Apr 2010 09:12:33 -0700 Subject: Initial 7.8.1 release notes --- docs/relnotes-7.8.1.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/relnotes-7.8.1.html diff --git a/docs/relnotes-7.8.1.html b/docs/relnotes-7.8.1.html new file mode 100644 index 0000000000..db65a0dbf4 --- /dev/null +++ b/docs/relnotes-7.8.1.html @@ -0,0 +1,54 @@ + + +Mesa Release Notes + + + + + + + +

Mesa 7.8.1 Release Notes / April, 5, 2010

+ +

+Mesa 7.8.1 fixes a couple critical bugs in the recent Mesa 7.8 release. Even +though this is a bug fix release, given its proximity to the 7.8 release, a +new development release, it should also be considered new development release. +People who are concerned with stability and reliability should stick +with a previous release, such as 7.7.1, or wait for Mesa 7.8.2. +

+

+Mesa 7.8.1 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +

+

+See the Compiling/Installing page for prerequisites +for DRI hardware acceleration. +

+ + +

MD5 checksums

+
+tbd
+
+ + +

New features

+

None.

+ + +

Bug fixes

+
    +
  • Fix incorrect enums for GLX_INTEL_swap_event by updating glxext.h to + version 27 from OpenGL.org.
  • +
  • Fix compilation errors on non-GLX_DIRECT_RENDERING builds.
  • +
  • Various fixes for building Mesa on OS X.
  • +
  • Pass GLX drawable ID to dri2InvalidateBuffers. Fixes bug #27190.
  • +
+ + +

Changes

+

None.

+ + -- cgit v1.2.3 From 88b7329cdd8f3fc22f18a84175822f81930b4d50 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 5 Apr 2010 09:49:08 -0700 Subject: mesa: set version string to 7.8.1 --- Makefile | 2 +- src/mesa/main/version.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6e64134112..c81a2ec2d9 100644 --- a/Makefile +++ b/Makefile @@ -180,7 +180,7 @@ ultrix-gcc: # Rules for making release tarballs -VERSION=7.8 +VERSION=7.8.1 DIRECTORY = Mesa-$(VERSION) LIB_NAME = MesaLib-$(VERSION) DEMO_NAME = MesaDemos-$(VERSION) diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 2e1d70c461..cd760beba4 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -34,8 +34,8 @@ /* Mesa version */ #define MESA_MAJOR 7 #define MESA_MINOR 8 -#define MESA_PATCH 0 -#define MESA_VERSION_STRING "7.8" +#define MESA_PATCH 1 +#define MESA_VERSION_STRING "7.8.1" /* To make version comparison easy */ #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) -- cgit v1.2.3 From 1ad1a51f140fcf6eba5a976f01e74e33d2b661d4 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 5 Apr 2010 09:51:18 -0700 Subject: docs: Add 7.8.1 release MD5 sums --- docs/relnotes-7.8.1.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/relnotes-7.8.1.html b/docs/relnotes-7.8.1.html index db65a0dbf4..8ec34a38cf 100644 --- a/docs/relnotes-7.8.1.html +++ b/docs/relnotes-7.8.1.html @@ -30,7 +30,15 @@ for DRI hardware acceleration.

MD5 checksums

-tbd
+b6db4bf400706ad5cbbae3b4286f5a44  MesaLib-7.8.1.tar.gz
+bb0acf866166093991bf18f7bff5063a  MesaLib-7.8.1.tar.bz2
+b54f18f807e0804983e39e0fbad07135  MesaLib-7.8.1.zip
+5c43de94ac20099d8b973ca59ea71a8e  MesaDemos-7.8.1.tar.gz
+9ef47f911869657c6bf2f43ebce86b61  MesaDemos-7.8.1.tar.bz2
+93720605eb3f784f9bcc289a4dd2ff52  MesaDemos-7.8.1.zip
+f26ea88429abf29e701ff4e517f17677  MesaGLUT-7.8.1.tar.gz
+7fbc77f2b56d4428f4da37640a00027a  MesaGLUT-7.8.1.tar.bz2
+4066ebfc962a3befadd631910356c64a  MesaGLUT-7.8.1.zip
 
-- cgit v1.2.3 From 0eea33b0696cee2cdea1e63a1714cec267d9b990 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 11:00:52 -0600 Subject: softpipe: index the correct blend/mask state index Need to check pipe_blend_state::independent_blend_enable to determine which render target/index to use when checking blend enable and colormask state. This is part of the fix for piglit/fbo-drawbuffers --- src/gallium/drivers/softpipe/sp_quad_blend.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_quad_blend.c b/src/gallium/drivers/softpipe/sp_quad_blend.c index d65307b7f6..ead489393e 100644 --- a/src/gallium/drivers/softpipe/sp_quad_blend.c +++ b/src/gallium/drivers/softpipe/sp_quad_blend.c @@ -744,6 +744,8 @@ blend_fallback(struct quad_stage *qs, for (cbuf = 0; cbuf < softpipe->framebuffer.nr_cbufs; cbuf++) { + /* which blend/mask state index to use: */ + const uint blend_buf = blend->independent_blend_enable ? cbuf : 0; float dest[4][QUAD_SIZE]; struct softpipe_cached_tile *tile = sp_get_cached_tile(softpipe->cbuf_cache[cbuf], @@ -771,11 +773,11 @@ blend_fallback(struct quad_stage *qs, if (blend->logicop_enable) { logicop_quad( qs, quadColor, dest ); } - else if (blend->rt[cbuf].blend_enable) { + else if (blend->rt[blend_buf].blend_enable) { blend_quad( qs, quadColor, dest, cbuf ); } - if (blend->rt[cbuf].colormask != 0xf) + if (blend->rt[blend_buf].colormask != 0xf) colormask_quad( blend->rt[cbuf].colormask, quadColor, dest); /* Output color values -- cgit v1.2.3 From 659669d74cdb2c37b5e7a74bb56e6ef326ff7d62 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 11:10:51 -0600 Subject: docs: add link to 7.8.1 release notes --- docs/relnotes.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/relnotes.html b/docs/relnotes.html index 3e17a1e94e..f7e2c691f7 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.

    +
  • 7.8.1 release notes
  • 7.8 release notes
  • 7.7.1 release notes
  • 7.7 release notes -- cgit v1.2.3 From 0e0de77f0e2583365f2c41bddee21526758b1bff Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 11:12:59 -0600 Subject: docs: added news item for 7.8.1 release --- docs/news.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/news.html b/docs/news.html index 4e4b6976a8..b7731cdaf3 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,14 @@

    News

    +

    April 5, 2010

    + +

    +Mesa 7.8.1 is released. This is a bug-fix +release for a few critical issues in the 7.8 release. +

    + +

    March 28, 2010

    Mesa 7.7.1 is released. This is a bug-fix -- cgit v1.2.3 From a1f85cf689b6f9ccf6b7310485460f84c8d78cad Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 18:52:55 +0200 Subject: r300g: typecast using the r300_texture function --- src/gallium/drivers/r300/r300_context.c | 2 +- src/gallium/drivers/r300/r300_context.h | 5 +++++ src/gallium/drivers/r300/r300_emit.c | 12 ++++++------ src/gallium/drivers/r300/r300_state.c | 10 +++++----- src/gallium/drivers/r300/r300_state_derived.c | 2 +- src/gallium/drivers/r300/r300_texture.c | 10 +++++----- src/gallium/drivers/r300/r300_transfer.c | 10 +++++----- 7 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index 46fdf08794..55850e09c3 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -76,7 +76,7 @@ r300_is_texture_referenced(struct pipe_context *context, unsigned face, unsigned level) { struct r300_context* r300 = r300_context(context); - struct r300_texture* tex = (struct r300_texture*)texture; + struct r300_texture* tex = r300_texture(texture); return r300->rws->is_buffer_referenced(r300->rws, tex->buffer); } diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 9d7e9d1226..be01db5b44 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -411,6 +411,11 @@ struct r300_context { }; /* Convenience cast wrapper. */ +static INLINE struct r300_texture* r300_texture(struct pipe_texture* tex) +{ + return (struct r300_texture*)tex; +} + static INLINE struct r300_context* r300_context(struct pipe_context* context) { return (struct r300_context*)context; diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 6ef140d8a3..79988a0caa 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -406,7 +406,7 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state) /* Set up colorbuffers. */ for (i = 0; i < fb->nr_cbufs; i++) { surf = fb->cbufs[i]; - tex = (struct r300_texture*)surf->texture; + tex = r300_texture(surf->texture); assert(tex && tex->buffer && "cbuf is marked, but NULL!"); OUT_CS_REG_SEQ(R300_RB3D_COLOROFFSET0 + (4 * i), 1); @@ -425,7 +425,7 @@ void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state) /* Set up a zbuffer. */ if (fb->zsbuf) { surf = fb->zsbuf; - tex = (struct r300_texture*)surf->texture; + tex = r300_texture(surf->texture); assert(tex && tex->buffer && "zsbuf is marked, but NULL!"); OUT_CS_REG_SEQ(R300_ZB_DEPTHOFFSET, 1); @@ -739,7 +739,7 @@ void r300_emit_textures_state(struct r300_context *r300, OUT_CS_REG(R300_TX_FORMAT2_0 + (i * 4), texstate->format[2]); OUT_CS_REG_SEQ(R300_TX_OFFSET_0 + (i * 4), 1); - OUT_CS_TEX_RELOC((struct r300_texture *)allstate->fragment_sampler_views[i]->texture, + OUT_CS_TEX_RELOC(r300_texture(allstate->fragment_sampler_views[i]->texture), texstate->tile_config, RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0, 0); } @@ -998,7 +998,7 @@ void r300_emit_buffer_validate(struct r300_context *r300, validate: /* Color buffers... */ for (i = 0; i < fb->nr_cbufs; i++) { - tex = (struct r300_texture*)fb->cbufs[i]->texture; + tex = r300_texture(fb->cbufs[i]->texture); assert(tex && tex->buffer && "cbuf is marked, but NULL!"); if (!r300_add_texture(r300->rws, tex, 0, RADEON_GEM_DOMAIN_VRAM)) { @@ -1008,7 +1008,7 @@ validate: } /* ...depth buffer... */ if (fb->zsbuf) { - tex = (struct r300_texture*)fb->zsbuf->texture; + tex = r300_texture(fb->zsbuf->texture); assert(tex && tex->buffer && "zsbuf is marked, but NULL!"); if (!r300_add_texture(r300->rws, tex, 0, RADEON_GEM_DOMAIN_VRAM)) { @@ -1022,7 +1022,7 @@ validate: continue; } - tex = (struct r300_texture*)texstate->fragment_sampler_views[i]->texture; + tex = r300_texture(texstate->fragment_sampler_views[i]->texture); if (!r300_add_texture(r300->rws, tex, RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0)) { r300->context.flush(&r300->context, 0, NULL); diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 2309f35326..6549833983 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -554,7 +554,7 @@ static void r300_fb_update_tiling_flags(struct r300_context *r300, continue; } - tex = (struct r300_texture*)old_state->cbufs[i]->texture; + tex = r300_texture(old_state->cbufs[i]->texture); if (tex) { r300->rws->buffer_set_tiling(r300->rws, tex->buffer, @@ -566,7 +566,7 @@ static void r300_fb_update_tiling_flags(struct r300_context *r300, if (old_state->zsbuf && (!new_state->zsbuf || old_state->zsbuf->texture != new_state->zsbuf->texture)) { - tex = (struct r300_texture*)old_state->zsbuf->texture; + tex = r300_texture(old_state->zsbuf->texture); if (tex) { r300->rws->buffer_set_tiling(r300->rws, tex->buffer, @@ -578,7 +578,7 @@ static void r300_fb_update_tiling_flags(struct r300_context *r300, /* Set tiling flags for new surfaces. */ for (i = 0; i < new_state->nr_cbufs; i++) { - tex = (struct r300_texture*)new_state->cbufs[i]->texture; + tex = r300_texture(new_state->cbufs[i]->texture); level = new_state->cbufs[i]->level; r300->rws->buffer_set_tiling(r300->rws, tex->buffer, @@ -587,7 +587,7 @@ static void r300_fb_update_tiling_flags(struct r300_context *r300, tex->mip_macrotile[level]); } if (new_state->zsbuf) { - tex = (struct r300_texture*)new_state->zsbuf->texture; + tex = r300_texture(new_state->zsbuf->texture); level = new_state->zsbuf->level; r300->rws->buffer_set_tiling(r300->rws, tex->buffer, @@ -992,7 +992,7 @@ static void r300_set_fragment_sampler_views(struct pipe_context* pipe, dirty_tex = TRUE; /* R300-specific - set the texrect factor in the fragment shader */ - texture = (struct r300_texture *)views[i]->texture; + texture = r300_texture(views[i]->texture); if (!is_r500 && texture->uses_pitch) { /* XXX It would be nice to re-emit just 1 constant, * XXX not all of them */ diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index 292b20a7f4..b9d3718f1c 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -470,7 +470,7 @@ static void r300_merge_textures_and_samplers(struct r300_context* r300) state->tx_enable |= 1 << i; view = state->fragment_sampler_views[i]; - tex = (struct r300_texture *)view->texture; + tex = r300_texture(view->texture); sampler = state->sampler_states[i]; assert(view->format == tex->tex.format); diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index cc4cf560a0..365b1cdd55 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -585,7 +585,7 @@ void r300_texture_reinterpret_format(struct pipe_screen *screen, tex->format = new_format; - r300_setup_texture_state(r300_screen(screen), (struct r300_texture*)tex); + r300_setup_texture_state(r300_screen(screen), r300_texture(tex)); } unsigned r300_texture_get_offset(struct r300_texture* tex, unsigned level, @@ -825,7 +825,7 @@ static struct pipe_texture* r300_texture_create(struct pipe_screen* screen, static void r300_texture_destroy(struct pipe_texture* texture) { - struct r300_texture* tex = (struct r300_texture*)texture; + struct r300_texture* tex = r300_texture(texture); struct r300_winsys_screen *rws = (struct r300_winsys_screen *)texture->screen->winsys; rws->buffer_reference(rws, &tex->buffer, NULL); @@ -839,7 +839,7 @@ static struct pipe_surface* r300_get_tex_surface(struct pipe_screen* screen, unsigned zslice, unsigned flags) { - struct r300_texture* tex = (struct r300_texture*)texture; + struct r300_texture* tex = r300_texture(texture); struct pipe_surface* surface = CALLOC_STRUCT(pipe_surface); unsigned offset; @@ -919,7 +919,7 @@ static boolean struct winsys_handle *whandle) { struct r300_winsys_screen *rws = (struct r300_winsys_screen *)screen->winsys; - struct r300_texture* tex = (struct r300_texture*)texture; + struct r300_texture* tex = r300_texture(texture); unsigned stride; if (!tex) { @@ -999,7 +999,7 @@ boolean r300_get_texture_buffer(struct pipe_screen* screen, struct r300_winsys_buffer** buffer, unsigned* stride) { - struct r300_texture* tex = (struct r300_texture*)texture; + struct r300_texture* tex = r300_texture(texture); struct r300_winsys_screen *rws = (struct r300_winsys_screen *)screen->winsys; struct r300_winsys_buffer *buf; diff --git a/src/gallium/drivers/r300/r300_transfer.c b/src/gallium/drivers/r300/r300_transfer.c index cbf3174b38..3cc86bad38 100644 --- a/src/gallium/drivers/r300/r300_transfer.c +++ b/src/gallium/drivers/r300/r300_transfer.c @@ -126,7 +126,7 @@ r300_get_tex_transfer(struct pipe_context *ctx, enum pipe_transfer_usage usage, unsigned x, unsigned y, unsigned w, unsigned h) { - struct r300_texture *tex = (struct r300_texture *)texture; + struct r300_texture *tex = r300_texture(texture); struct r300_screen *r300screen = r300_screen(ctx->screen); struct r300_transfer *trans; struct pipe_texture base; @@ -176,9 +176,9 @@ r300_get_tex_transfer(struct pipe_context *ctx, } /* Create the temporary texture. */ - trans->detiled_texture = (struct r300_texture*) + trans->detiled_texture = r300_texture( ctx->screen->texture_create(ctx->screen, - &base); + &base)); assert(!trans->detiled_texture->microtile && !trans->detiled_texture->macrotile); @@ -229,7 +229,7 @@ static void* r300_transfer_map(struct pipe_context *ctx, { struct r300_winsys_screen *rws = (struct r300_winsys_screen *)ctx->winsys; struct r300_transfer *r300transfer = r300_transfer(transfer); - struct r300_texture *tex = (struct r300_texture*)transfer->texture; + struct r300_texture *tex = r300_texture(transfer->texture); char *map; enum pipe_format format = tex->tex.format; @@ -259,7 +259,7 @@ static void r300_transfer_unmap(struct pipe_context *ctx, { struct r300_winsys_screen *rws = (struct r300_winsys_screen *)ctx->winsys; struct r300_transfer *r300transfer = r300_transfer(transfer); - struct r300_texture *tex = (struct r300_texture*)transfer->texture; + struct r300_texture *tex = r300_texture(transfer->texture); if (r300transfer->detiled_texture) { rws->buffer_unmap(rws, r300transfer->detiled_texture->buffer); -- cgit v1.2.3 From 5683d77b22b12129c4d715860671d331c760e362 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 11:22:32 -0600 Subject: mesa: bump MESA_TINY version --- configs/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/default b/configs/default index ad6d93c92f..47d6923f01 100644 --- a/configs/default +++ b/configs/default @@ -10,7 +10,7 @@ CONFIG_NAME = default # Version info MESA_MAJOR=7 MESA_MINOR=8 -MESA_TINY=0 +MESA_TINY=1 MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) # external projects. This should be useless now that we use libdrm. -- cgit v1.2.3 From b05ada76a5473d901ac9c352af3a05a24ed21363 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 5 Apr 2010 19:39:55 +0200 Subject: r300g: enforce microtiled zbuffer from X server This should be relatively safe, I think. --- src/gallium/drivers/r300/r300_texture.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 365b1cdd55..27801d68a9 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -879,6 +879,7 @@ static struct pipe_texture* struct r300_winsys_buffer *buffer; struct r300_texture* tex; unsigned stride; + boolean override_zb_flags; /* Support only 2D textures without mipmaps */ if (base->target != PIPE_TEXTURE_2D || @@ -908,8 +909,38 @@ static struct pipe_texture* rws->buffer_get_tiling(rws, buffer, &tex->microtile, &tex->macrotile); r300_setup_flags(tex); + + /* Enforce microtiled zbuffer. */ + override_zb_flags = util_format_is_depth_or_stencil(base->format) && + tex->microtile == R300_BUFFER_LINEAR; + + if (override_zb_flags) { + switch (util_format_get_blocksize(base->format)) { + case 4: + tex->microtile = R300_BUFFER_TILED; + break; + + case 2: + if (rws->get_value(rws, R300_VID_SQUARE_TILING_SUPPORT)) { + tex->microtile = R300_BUFFER_SQUARETILED; + break; + } + /* Pass through. */ + + default: + override_zb_flags = FALSE; + } + } + r300_setup_miptree(rscreen, tex); r300_setup_texture_state(rscreen, tex); + + if (override_zb_flags) { + rws->buffer_set_tiling(rws, tex->buffer, + tex->pitch[0], + tex->microtile, + tex->macrotile); + } return (struct pipe_texture*)tex; } -- cgit v1.2.3 From 50074ecd3a360d3479d789624a268847a644add8 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sun, 4 Apr 2010 23:15:15 +0200 Subject: st/mesa: trivially enable GL_EXT_gpu_program_parameters --- src/mesa/state_tracker/st_extensions.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 0118c600f0..ae5e62bd6c 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -183,6 +183,7 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.EXT_framebuffer_object = GL_TRUE; ctx->Extensions.EXT_framebuffer_multisample = GL_TRUE; ctx->Extensions.EXT_fog_coord = GL_TRUE; + ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE; ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE; ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; ctx->Extensions.EXT_point_parameters = GL_TRUE; -- cgit v1.2.3 From 582e292a88ccb19bbaed8c4f313512a416b2076b Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 5 Apr 2010 12:45:20 -0700 Subject: docs: Update 7.8.1 release MD5 sums --- docs/relnotes-7.8.1.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/relnotes-7.8.1.html b/docs/relnotes-7.8.1.html index 8ec34a38cf..1ba68fd41a 100644 --- a/docs/relnotes-7.8.1.html +++ b/docs/relnotes-7.8.1.html @@ -30,15 +30,15 @@ for DRI hardware acceleration.

    MD5 checksums

    -b6db4bf400706ad5cbbae3b4286f5a44  MesaLib-7.8.1.tar.gz
    -bb0acf866166093991bf18f7bff5063a  MesaLib-7.8.1.tar.bz2
    -b54f18f807e0804983e39e0fbad07135  MesaLib-7.8.1.zip
    -5c43de94ac20099d8b973ca59ea71a8e  MesaDemos-7.8.1.tar.gz
    +62e8e47cbd63741b4bbe634dcdc8a56a  MesaLib-7.8.1.tar.gz
    +25ec15f8e41fde6d206118cc786dbac4  MesaLib-7.8.1.tar.bz2
    +22b1153010ffdf513836ea9931159e80  MesaLib-7.8.1.zip
    +c9c0a830923d3820807a08c09d521b3e  MesaDemos-7.8.1.tar.gz
     9ef47f911869657c6bf2f43ebce86b61  MesaDemos-7.8.1.tar.bz2
     93720605eb3f784f9bcc289a4dd2ff52  MesaDemos-7.8.1.zip
    -f26ea88429abf29e701ff4e517f17677  MesaGLUT-7.8.1.tar.gz
    -7fbc77f2b56d4428f4da37640a00027a  MesaGLUT-7.8.1.tar.bz2
    -4066ebfc962a3befadd631910356c64a  MesaGLUT-7.8.1.zip
    +ed1d0b1e960afe6a3768eab747cbdbd3  MesaGLUT-7.8.1.tar.gz
    +6bae516a44c6d26ff3152c960ab648e7  MesaGLUT-7.8.1.tar.bz2
    +ba306f603ea73c30ee0e7efa14dc5581  MesaGLUT-7.8.1.zip
     
    -- cgit v1.2.3 From 1b0bab167cd541f70c32249ca3e70da88b8c93c5 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Mon, 5 Apr 2010 16:43:53 -0400 Subject: draw llvm: when generating the vertex_header struct adjust its name change the name to not clash and accuretly represent the number of inputs we store in the data member --- src/gallium/auxiliary/draw/draw_llvm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 388c991075..382f765e16 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -89,6 +89,9 @@ create_vertex_header(struct draw_llvm *llvm, int data_elems) /* struct vertex_header */ LLVMTypeRef elem_types[3]; LLVMTypeRef vertex_header; + char struct_name[24]; + + snprintf(struct_name, 23, "vertex_header%d", data_elems); elem_types[0] = LLVMIntType(32); elem_types[1] = LLVMArrayType(LLVMFloatType(), 4); @@ -117,7 +120,7 @@ create_vertex_header(struct draw_llvm *llvm, int data_elems) llvm->target, vertex_header, DRAW_JIT_VERTEX_DATA); - LLVMAddTypeName(llvm->module, "vertex_header", vertex_header); + LLVMAddTypeName(llvm->module, struct_name, vertex_header); return LLVMPointerType(vertex_header, 0); } -- cgit v1.2.3 From 7fc3a766c05f0b7fc6d809269b1de12ad4c4e81a Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 5 Apr 2010 17:31:18 -0600 Subject: mesa: add missing file to GALLIUM_FILES Signed-off-by: Brian Paul --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 4e85f1f262..38b53e9946 100644 --- a/Makefile +++ b/Makefile @@ -320,6 +320,7 @@ GALLIUM_FILES = \ $(DIRECTORY)/src/gallium/Makefile \ $(DIRECTORY)/src/gallium/Makefile.template \ $(DIRECTORY)/src/gallium/SConscript \ + $(DIRECTORY)/src/gallium/targets/Makefile.dri \ $(DIRECTORY)/src/gallium/*/Makefile \ $(DIRECTORY)/src/gallium/*/SConscript \ $(DIRECTORY)/src/gallium/*/*/Makefile \ -- cgit v1.2.3 From 1fdedf067d098449d92fd68c9986e73a6ecdbf71 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 17:33:12 -0600 Subject: mesa: added Makefile.egl to GALLIUM_FILES --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 38b53e9946..411130bc27 100644 --- a/Makefile +++ b/Makefile @@ -321,6 +321,7 @@ GALLIUM_FILES = \ $(DIRECTORY)/src/gallium/Makefile.template \ $(DIRECTORY)/src/gallium/SConscript \ $(DIRECTORY)/src/gallium/targets/Makefile.dri \ + $(DIRECTORY)/src/gallium/targets/Makefile.egl \ $(DIRECTORY)/src/gallium/*/Makefile \ $(DIRECTORY)/src/gallium/*/SConscript \ $(DIRECTORY)/src/gallium/*/*/Makefile \ -- cgit v1.2.3 From 4b5d488bc22f9938e8b7da2c2c44459420595e1b Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Mon, 5 Apr 2010 18:13:09 -0700 Subject: scons: Link expat in dri builds. Fixes this i915g error. i915_dri.so: undefined symbol: XML_ParserCreate --- src/gallium/targets/SConscript.dri | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/targets/SConscript.dri b/src/gallium/targets/SConscript.dri index 210af13720..28fbe02ab8 100644 --- a/src/gallium/targets/SConscript.dri +++ b/src/gallium/targets/SConscript.dri @@ -65,6 +65,10 @@ COMMON_DRI_DRM_OBJECTS = [ dri_common_dri_util, ] +drienv.AppendUnique(LIBS = [ + 'expat', +]) + Export([ 'drienv', 'COMMON_DRI_SW_OBJECTS', -- cgit v1.2.3 From ffb6a8f55269d99d61eb3dc63dd510141ef817b4 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 5 Apr 2010 18:38:55 +0800 Subject: st/es: Remove unnedded --whole-archive. All public functions in the archives are either directly referenced or indirectly referenced by _glapi_get_proc_address. There is no need for --whole-archive. --- src/gallium/state_trackers/es/Makefile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/gallium/state_trackers/es/Makefile b/src/gallium/state_trackers/es/Makefile index 089d441167..7370634ea2 100644 --- a/src/gallium/state_trackers/es/Makefile +++ b/src/gallium/state_trackers/es/Makefile @@ -22,6 +22,8 @@ GLES_2_LIB = GLESv2 GLES_2_LIB_NAME = lib$(GLES_2_LIB).so +# These two objects indirectly reference all public functions thanks to the use +# of _glapi_get_proc_address. ES1_OBJECTS = st_es1.o ES2_OBJECTS = st_es2.o @@ -56,9 +58,7 @@ $(TOP)/$(LIB_DIR)/$(GLES_1_LIB_NAME): $(ES1_OBJECTS) $(ES1_LIBS) $(GALLIUM_AUXIL -minor $(GLES_1_VERSION_MINOR) \ -patch $(GLES_1_VERSION_PATCH) \ -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \ - $(ES1_OBJECTS) \ - -Wl,--whole-archive $(ES1_LIBS) -Wl,--no-whole-archive \ - $(GALLIUM_AUXILIARIES) $(SYS_LIBS) + $(ES1_OBJECTS) $(ES1_LIBS) $(GALLIUM_AUXILIARIES) $(SYS_LIBS) $(TOP)/$(LIB_DIR)/$(GLES_2_LIB_NAME): $(ES2_OBJECTS) $(ES1_LIBS) $(GALLIUM_AUXILIARIES) $(MKLIB) -o $(GLES_2_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ @@ -66,9 +66,7 @@ $(TOP)/$(LIB_DIR)/$(GLES_2_LIB_NAME): $(ES2_OBJECTS) $(ES1_LIBS) $(GALLIUM_AUXIL -minor $(GLES_2_VERSION_MINOR) \ -patch $(GLES_2_VERSION_PATCH) \ -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \ - $(ES2_OBJECTS) \ - -Wl,--whole-archive $(ES2_LIBS) -Wl,--no-whole-archive \ - $(GALLIUM_AUXILIARIES) $(SYS_LIBS) + $(ES2_OBJECTS) $(ES2_LIBS) $(GALLIUM_AUXILIARIES) $(SYS_LIBS) install: default $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GLES -- cgit v1.2.3 From bbe459b14d593bd2d7b6c0f010e165fe815e8396 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 5 Apr 2010 21:26:34 +0800 Subject: egl: Fix eglMakeCurrent with different surfaces. 0a82fadcdd0b6ebbc345c7c302da0e0efce40a98 seems to trigger a bug in _eglBindContext. Rework the logics yet again. It is simpler, and hopefully correct this time. --- src/egl/main/eglcontext.c | 75 ++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c index 5e831aab33..80e316a10b 100644 --- a/src/egl/main/eglcontext.c +++ b/src/egl/main/eglcontext.c @@ -208,39 +208,56 @@ _eglQueryContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *c, * bound to; when the context is NULL, the same surfaces are returned. */ static void -_eglBindContextToSurfaces(_EGLContext *ctx, +_eglBindContextToSurfaces(_EGLContext *newCtx, _EGLSurface **draw, _EGLSurface **read) { _EGLSurface *newDraw = *draw, *newRead = *read; _EGLContext *oldCtx; + /* + * The goal is to bind a newCtx to newDraw. Since newDraw may already have + * a binding context (oldCtx), and newCtx may already be bound to another + * surface (oldDraw), the old bindings are broken first and the new one is + * created. + */ oldCtx = newDraw->CurrentContext; - if (ctx != oldCtx) { + if (newCtx != oldCtx) { if (oldCtx) { - assert(*draw == oldCtx->DrawSurface); + assert(oldCtx->DrawSurface == newDraw); oldCtx->DrawSurface = NULL; } - if (ctx) { - *draw = ctx->DrawSurface; - ctx->DrawSurface = newDraw; + + if (newCtx) { + _EGLSurface *oldDraw = newCtx->DrawSurface; + if (oldDraw) + oldDraw->CurrentContext = NULL; + + newCtx->DrawSurface = newDraw; + *draw = oldDraw; } - newDraw->CurrentContext = ctx; + newDraw->CurrentContext = newCtx; } + /* likewise */ if (newRead != newDraw) oldCtx = newRead->CurrentContext; - if (ctx != oldCtx) { + if (newCtx != oldCtx) { if (oldCtx) { - assert(*read == oldCtx->ReadSurface); + assert(oldCtx->ReadSurface == newRead); oldCtx->ReadSurface = NULL; } - if (ctx) { - *read = ctx->ReadSurface; - ctx->ReadSurface = newRead; + + if (newCtx) { + _EGLSurface *oldRead = newCtx->ReadSurface; + if (oldRead) + oldRead->CurrentContext = NULL; + + newCtx->ReadSurface = newRead; + *read = oldRead; } - newRead->CurrentContext = ctx; + newRead->CurrentContext = newCtx; } } @@ -360,27 +377,25 @@ _eglBindContext(_EGLContext **ctx, _EGLSurface **draw, _EGLSurface **read) /* bind the new context */ oldCtx = _eglBindContextToThread(newCtx, t); - *ctx = oldCtx; - if (newCtx) + + if (newCtx) { _eglBindContextToSurfaces(newCtx, draw, read); + } + else { + assert(!*draw && !*read); + if (oldCtx) { + *draw = oldCtx->DrawSurface; + *read = oldCtx->ReadSurface; + assert(*draw && *read); - /* unbind the old context from its binding surfaces */ - if (oldCtx && oldCtx != newCtx) { - /* - * If the new context replaces some old context, the new one should not - * be current before the replacement and it should not be bound to any - * surface. - */ - if (newCtx) - assert(!*draw && !*read); - - *draw = oldCtx->DrawSurface; - *read = oldCtx->ReadSurface; - assert(*draw && *read); - - _eglBindContextToSurfaces(NULL, draw, read); + /* unbind the old context from its surfaces */ + _eglBindContextToSurfaces(NULL, draw, read); + } } + *ctx = oldCtx; + /* draw and read have been updated in _eglBindContextToSurfaces */ + return EGL_TRUE; } -- cgit v1.2.3 From 848945e5d63ff8327f5a1a6e61e66fcdab3ac8fc Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 11:51:25 +0800 Subject: egl: Unbind the old context in _eglBindContext. The last commit incorrectly moved the code under an "else". --- src/egl/main/eglcontext.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c index 80e316a10b..d5a1e79a99 100644 --- a/src/egl/main/eglcontext.c +++ b/src/egl/main/eglcontext.c @@ -378,19 +378,18 @@ _eglBindContext(_EGLContext **ctx, _EGLSurface **draw, _EGLSurface **read) /* bind the new context */ oldCtx = _eglBindContextToThread(newCtx, t); - if (newCtx) { + if (newCtx) _eglBindContextToSurfaces(newCtx, draw, read); - } - else { + + /* unbind the old context from its binding surfaces */ + if (oldCtx && oldCtx != newCtx) { assert(!*draw && !*read); - if (oldCtx) { - *draw = oldCtx->DrawSurface; - *read = oldCtx->ReadSurface; - assert(*draw && *read); - /* unbind the old context from its surfaces */ - _eglBindContextToSurfaces(NULL, draw, read); - } + *draw = oldCtx->DrawSurface; + *read = oldCtx->ReadSurface; + assert(*draw && *read); + + _eglBindContextToSurfaces(NULL, draw, read); } *ctx = oldCtx; -- cgit v1.2.3 From 9dd70e7b85ddbc73bd976c4dab81476aa36c557e Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 00:13:20 -0400 Subject: draw llvm: fix loop iteration and vertex header offsets the loop was doing a NE comparison which we could have skipped if the prim was triangles (3 verts) and our step was 4 verts. also fix offsets in conversion to aos. --- src/gallium/auxiliary/draw/draw_llvm.c | 44 +++++++++++++++------- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 - src/gallium/auxiliary/gallivm/lp_bld_flow.c | 29 ++++++++++++++ src/gallium/auxiliary/gallivm/lp_bld_flow.h | 7 ++++ 4 files changed, 66 insertions(+), 16 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 382f765e16..27df59653c 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -17,6 +17,8 @@ #include +#define DEBUG_STORE 0 + static void init_globals(struct draw_llvm *llvm) { @@ -235,7 +237,7 @@ generate_vs(struct draw_llvm *llvm, NULL/*sampler*/); } - +#if DEBUG_STORE static void print_vectorf(LLVMBuilderRef builder, LLVMValueRef vec) { @@ -251,6 +253,7 @@ static void print_vectorf(LLVMBuilderRef builder, lp_build_printf(builder, "vector = [%f, %f, %f, %f]\n", val[0], val[1], val[2], val[3]); } +#endif static void generate_fetch(LLVMBuilderRef builder, @@ -404,6 +407,9 @@ store_aos(LLVMBuilderRef builder, LLVMBuildStore(builder, LLVMConstInt(LLVMInt32Type(), 0xffff, 0), id_ptr); +#if DEBUG_STORE + lp_build_printf(builder, " ---- %p storing at %d (%p)\n", io_ptr, index, data_ptr); +#endif #if 0 /*lp_build_printf(builder, " ---- %p storing at %d (%p) ", io_ptr, index, data_ptr); print_vectorf(builder, value);*/ @@ -458,16 +464,10 @@ store_aos_array(LLVMBuilderRef builder, int num_outputs) { LLVMValueRef attr_index = LLVMConstInt(LLVMInt32Type(), attrib, 0); - LLVMValueRef ind0 = start_index; - LLVMValueRef ind1 = - LLVMBuildAdd(builder, start_index, - LLVMConstInt(LLVMInt32Type(), 1, 0), ""); - LLVMValueRef ind2 = - LLVMBuildAdd(builder, start_index, - LLVMConstInt(LLVMInt32Type(), 2, 0), ""); - LLVMValueRef ind3 = - LLVMBuildAdd(builder, start_index, - LLVMConstInt(LLVMInt32Type(), 3, 0), ""); + LLVMValueRef ind0 = LLVMConstInt(LLVMInt32Type(), 0, 0); + LLVMValueRef ind1 = LLVMConstInt(LLVMInt32Type(), 1, 0); + LLVMValueRef ind2 = LLVMConstInt(LLVMInt32Type(), 2, 0); + LLVMValueRef ind3 = LLVMConstInt(LLVMInt32Type(), 3, 0); LLVMValueRef io0_ptr, io1_ptr, io2_ptr, io3_ptr; debug_assert(NUM_CHANNELS == 4); @@ -481,7 +481,10 @@ store_aos_array(LLVMBuilderRef builder, io3_ptr = LLVMBuildGEP(builder, io_ptr, &ind3, 1, ""); - /*lp_build_printf(builder, "io = %d\n", start_index);*/ +#if DEBUG_STORE + lp_build_printf(builder, "io = %d, indexes[%d, %d, %d, %d]\n", + start_index, ind0, ind1, ind2, ind3); +#endif store_aos(builder, io0_ptr, attr_index, aos[0]); store_aos(builder, io1_ptr, attr_index, aos[1]); @@ -499,6 +502,9 @@ convert_to_aos(LLVMBuilderRef builder, { unsigned chan, attrib; +#if DEBUG_STORE + lp_build_printf(builder, " # storing begin\n"); +#endif for (attrib = 0; attrib < num_outputs; ++attrib) { LLVMValueRef soa[4]; LLVMValueRef aos[4]; @@ -522,6 +528,9 @@ convert_to_aos(LLVMBuilderRef builder, attrib, num_outputs); } +#if DEBUG_STORE + lp_build_printf(builder, " # storing end\n"); +#endif } void @@ -586,13 +595,20 @@ draw_llvm_generate(struct draw_llvm *llvm) step = LLVMConstInt(LLVMInt32Type(), max_vertices, 0); +#if DEBUG_STORE + lp_build_printf(builder, "start = %d, end = %d, step = %d\n", + start, end, step); +#endif lp_build_loop_begin(builder, start, &lp_loop); { LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); const LLVMValueRef (*ptr_aos)[NUM_CHANNELS]; - +#if DEBUG_STORE + lp_build_printf(builder, " --- loop counter %d\n", + lp_loop.counter); +#endif for (i = 0; i < NUM_CHANNELS; ++i) { LLVMValueRef true_index = LLVMBuildAdd( builder, @@ -620,7 +636,7 @@ draw_llvm_generate(struct draw_llvm *llvm) draw->vs.vertex_shader->info.num_outputs, max_vertices, lp_loop.counter); } - lp_build_loop_end(builder, end, step, &lp_loop); + lp_build_loop_end_cond(builder, end, step, LLVMIntUGE, &lp_loop); LLVMBuildRetVoid(builder); diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index f65cf3822c..aebfe40a03 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -245,8 +245,6 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, return; } - debug_printf("--- pipe verts data[0] = %p, data[1] = %p\n", - pipeline_verts->data[0], pipeline_verts->data[1]); fpme->llvm->jit_func( &fpme->llvm->jit_context, pipeline_verts, (const char **)draw->pt.user.vbuffer, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_flow.c b/src/gallium/auxiliary/gallivm/lp_bld_flow.c index 106fc03e46..e60ab4f6ba 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_flow.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_flow.c @@ -570,6 +570,35 @@ lp_build_loop_end(LLVMBuilderRef builder, LLVMPositionBuilderAtEnd(builder, after_block); } +void +lp_build_loop_end_cond(LLVMBuilderRef builder, + LLVMValueRef end, + LLVMValueRef step, + int llvm_cond, + struct lp_build_loop_state *state) +{ + LLVMBasicBlockRef block = LLVMGetInsertBlock(builder); + LLVMValueRef function = LLVMGetBasicBlockParent(block); + LLVMValueRef next; + LLVMValueRef cond; + LLVMBasicBlockRef after_block; + + if (!step) + step = LLVMConstInt(LLVMTypeOf(end), 1, 0); + + next = LLVMBuildAdd(builder, state->counter, step, ""); + + cond = LLVMBuildICmp(builder, llvm_cond, next, end, ""); + + after_block = LLVMAppendBasicBlock(function, ""); + + LLVMBuildCondBr(builder, cond, after_block, state->block); + + LLVMAddIncoming(state->counter, &next, &block, 1); + + LLVMPositionBuilderAtEnd(builder, after_block); +} + /* diff --git a/src/gallium/auxiliary/gallivm/lp_bld_flow.h b/src/gallium/auxiliary/gallivm/lp_bld_flow.h index c2b50e1b60..745838570c 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_flow.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_flow.h @@ -124,6 +124,13 @@ lp_build_loop_end(LLVMBuilderRef builder, LLVMValueRef step, struct lp_build_loop_state *state); +void +lp_build_loop_end_cond(LLVMBuilderRef builder, + LLVMValueRef end, + LLVMValueRef step, + int cond, /* LLVM condition */ + struct lp_build_loop_state *state); + -- cgit v1.2.3 From 489eced800cb0f20a1e1d66b84a048e4df99503b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 21:59:05 -0600 Subject: st/mesa: put fragment wpos code into separate function --- src/mesa/state_tracker/st_mesa_to_tgsi.c | 106 +++++++++++++++++-------------- 1 file changed, 60 insertions(+), 46 deletions(-) diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index 807d21a719..bb52d2d10f 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -738,6 +738,65 @@ emit_inverted_wpos( struct st_translate *t, } +/** + * Emit fragment position/ooordinate code. + */ +static void +emit_wpos(struct st_context *st, + struct st_translate *t, + const struct gl_program *program, + struct ureg_program *ureg) +{ + const struct gl_fragment_program *fp = + (const struct gl_fragment_program *) program; + struct pipe_screen *pscreen = st->pipe->screen; + boolean invert = FALSE; + + if (fp->OriginUpperLeft) { + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) { + } + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT)) { + ureg_property_fs_coord_origin(ureg, TGSI_FS_COORD_ORIGIN_LOWER_LEFT); + invert = TRUE; + } + else + assert(0); + } + else { + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT)) + ureg_property_fs_coord_origin(ureg, TGSI_FS_COORD_ORIGIN_LOWER_LEFT); + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) + invert = TRUE; + else + assert(0); + } + + if (fp->PixelCenterInteger) { + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) + ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) + emit_adjusted_wpos(t, program, invert ? 0.5f : -0.5f); + else + assert(0); + } + else { + if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) { + } + else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { + ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); + emit_adjusted_wpos(t, program, invert ? -0.5f : 0.5f); + } + else + assert(0); + } + + /* we invert after adjustment so that we avoid the MOV to temporary, + * and reuse the adjustment ADD instead */ + if (invert) + emit_inverted_wpos(t, program); +} + + /** * OpenGL's fragment gl_FrontFace input is 1 for front-facing, 0 for back. * TGSI uses +1 for front, -1 for back. @@ -831,7 +890,6 @@ st_translate_mesa_program( * Declare input attributes. */ if (procType == TGSI_PROCESSOR_FRAGMENT) { - struct gl_fragment_program* fp = (struct gl_fragment_program*)program; for (i = 0; i < numInputs; i++) { if (program->InputFlags[0] & PROG_PARAM_BIT_CYL_WRAP) { t->inputs[i] = ureg_DECL_fs_input_cyl(ureg, @@ -852,51 +910,7 @@ st_translate_mesa_program( /* Must do this after setting up t->inputs, and before * emitting constant references, below: */ - struct pipe_screen* pscreen = st_context(ctx)->pipe->screen; - boolean invert = FALSE; - - if (fp->OriginUpperLeft) { - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) { - } - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT)) { - ureg_property_fs_coord_origin(ureg, TGSI_FS_COORD_ORIGIN_LOWER_LEFT); - invert = TRUE; - } - else - assert(0); - } - else { - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT)) - ureg_property_fs_coord_origin(ureg, TGSI_FS_COORD_ORIGIN_LOWER_LEFT); - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) - invert = TRUE; - else - assert(0); - } - - if (fp->PixelCenterInteger) { - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) - ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) - emit_adjusted_wpos(t, program, invert ? 0.5f : -0.5f); - else - assert(0); - } - else { - if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) { - } - else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) { - ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER); - emit_adjusted_wpos(t, program, invert ? -0.5f : 0.5f); - } - else - assert(0); - } - - /* we invert after adjustment so that we avoid the MOV to temporary, - * and reuse the adjustment ADD instead */ - if (invert) - emit_inverted_wpos(t, program); + emit_wpos(st_context(ctx), t, program, ureg); } if (program->InputsRead & FRAG_BIT_FACE) { -- cgit v1.2.3 From 7d2db19fe581ede34dd1f396f1e0bd46ea5c3776 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 5 Apr 2010 22:04:56 -0600 Subject: st/mesa: reformatting --- src/mesa/state_tracker/st_mesa_to_tgsi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index bb52d2d10f..ad7a2b87ea 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -957,8 +957,9 @@ st_translate_mesa_program( * do this before emitting the constant decls below, or this * will be missed: */ - unsigned pointSizeClampConst = _mesa_add_state_reference(program->Parameters, - pointSizeClampState); + unsigned pointSizeClampConst = + _mesa_add_state_reference(program->Parameters, + pointSizeClampState); struct ureg_dst psizregtemp = ureg_DECL_temporary( ureg ); t->pointSizeConst = ureg_DECL_constant( ureg, pointSizeClampConst ); t->psizregreal = t->outputs[i]; @@ -977,12 +978,10 @@ st_translate_mesa_program( t->address[0] = ureg_DECL_address( ureg ); } - /* Emit constants and immediates. Mesa uses a single index space * for these, so we put all the translated regs in t->constants. */ if (program->Parameters) { - t->constants = CALLOC( program->Parameters->NumParameters, sizeof t->constants[0] ); if (t->constants == NULL) { @@ -1037,7 +1036,8 @@ st_translate_mesa_program( possible early return */ if (t->prevInstWrotePsiz && program->Id) { set_insn_start( t, ureg_get_instruction_number( ureg )); - ureg_MAX( t->ureg, ureg_writemask(t->outputs[t->psizoutindex], WRITEMASK_X), + ureg_MAX( t->ureg, + ureg_writemask(t->outputs[t->psizoutindex], WRITEMASK_X), ureg_src(t->outputs[t->psizoutindex]), ureg_swizzle(t->pointSizeConst, 1,1,1,1)); ureg_MIN( t->ureg, ureg_writemask(t->psizregreal, WRITEMASK_X), -- cgit v1.2.3 From f51f62e8ed5227f410efa46337a95af25d7eb616 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 13:17:56 +0800 Subject: progs/egl: Port drawtex and torus to eglut. This brings the demos also to KMS and removes about 400 duplicated lines of code. --- progs/egl/eglut/eglut.c | 28 +++- progs/egl/eglut/eglut.h | 1 + progs/egl/opengles1/.gitignore | 7 +- progs/egl/opengles1/Makefile | 8 +- progs/egl/opengles1/drawtex.c | 326 ++++++++-------------------------------- progs/egl/opengles1/torus.c | 328 ++++++++--------------------------------- 6 files changed, 150 insertions(+), 548 deletions(-) diff --git a/progs/egl/eglut/eglut.c b/progs/egl/eglut/eglut.c index 0bfd5d5b06..b9b5e6e5a8 100644 --- a/progs/egl/eglut/eglut.c +++ b/progs/egl/eglut/eglut.c @@ -195,6 +195,13 @@ eglutInit(int argc, char **argv) _eglut->init_time = _eglutNow(); printf("EGL_VERSION = %s\n", eglQueryString(_eglut->dpy, EGL_VERSION)); + if (_eglut->verbose) { + printf("EGL_VENDOR = %s\n", eglQueryString(_eglut->dpy, EGL_VENDOR)); + printf("EGL_EXTENSIONS = %s\n", + eglQueryString(_eglut->dpy, EGL_EXTENSIONS)); + printf("EGL_CLIENT_APIS = %s\n", + eglQueryString(_eglut->dpy, EGL_CLIENT_APIS)); + } } int @@ -247,14 +254,27 @@ _eglutFini(void) _eglutNativeFiniDisplay(); } +void +eglutDestroyWindow(int win) +{ + struct eglut_window *window = _eglut->current; + + if (window->index != win) + return; + + /* XXX it causes some bug in st/egl KMS backend */ + if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA) + eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + + _eglutDestroyWindow(_eglut->current); +} + static void _eglutDefaultKeyboard(unsigned char key) { if (key == 27) { - /* XXX it causes some bug in st/egl KMS backend */ - if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA) - eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - _eglutDestroyWindow(_eglut->current); + if (_eglut->current) + eglutDestroyWindow(_eglut->current->index); _eglutFini(); exit(0); diff --git a/progs/egl/eglut/eglut.h b/progs/egl/eglut/eglut.h index 521cc12eab..07df4ba9f7 100644 --- a/progs/egl/eglut/eglut.h +++ b/progs/egl/eglut/eglut.h @@ -55,6 +55,7 @@ void eglutPostRedisplay(void); void eglutMainLoop(void); int eglutCreateWindow(const char *title); +void eglutDestroyWindow(int win); int eglutGetWindowWidth(void); int eglutGetWindowHeight(void); diff --git a/progs/egl/opengles1/.gitignore b/progs/egl/opengles1/.gitignore index 2caf094edb..135e3deb35 100644 --- a/progs/egl/opengles1/.gitignore +++ b/progs/egl/opengles1/.gitignore @@ -1,12 +1,15 @@ bindtex -drawtex +drawtex_x11 +drawtex_screen es1_info gears_x11 gears_screen msaa pbuffer render_tex -torus +texture_from_pixmap +torus_x11 +torus_screen tri_x11 tri_screen two_win diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index dac911e39f..554cff9e6b 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -22,7 +22,9 @@ ES1_LIBS = \ EGLUT_DIR = $(TOP)/progs/egl/eglut EGLUT_DEMOS = \ + drawtex \ gears \ + torus \ tri EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS)) @@ -30,13 +32,11 @@ EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS)) PROGRAMS = \ bindtex \ - drawtex \ es1_info \ msaa \ pbuffer \ render_tex \ texture_from_pixmap \ - torus \ two_win @@ -53,10 +53,6 @@ bindtex: bindtex.o $(ES1_LIB_DEPS) $(CC) $(CFLAGS) bindtex.o $(ES1_LIBS) -o $@ -drawtex: drawtex.o $(ES1_LIB_DEPS) - $(CC) $(CFLAGS) drawtex.o $(ES1_LIBS) -o $@ - - es1_info: es1_info.o $(ES1_LIB_DEPS) $(CC) $(CFLAGS) es1_info.o $(ES1_LIBS) -o $@ diff --git a/progs/egl/opengles1/drawtex.c b/progs/egl/opengles1/drawtex.c index ca0615e267..e9ac015340 100644 --- a/progs/egl/opengles1/drawtex.c +++ b/progs/egl/opengles1/drawtex.c @@ -10,22 +10,20 @@ #define GL_GLEXT_PROTOTYPES -#include #include #include #include #include -#include -#include -#include #include #include -#include +#include "eglut.h" static GLfloat view_posx = 10.0, view_posy = 20.0; static GLfloat width = 200, height = 200; +static GLboolean animate = GL_FALSE; +static int win; static void @@ -137,291 +135,83 @@ init(void) } -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) +idle(void) { - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); + if (animate) { + view_posx += 1.0; + view_posy += 2.0; + eglutPostRedisplay(); } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; } - static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) +key(unsigned char key) { - int anim = 0; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_posx -= 1.0; - } - else if (code == XK_Right) { - view_posx += 1.0; - } - else if (code == XK_Up) { - view_posy += 1.0; - } - else if (code == XK_Down) { - view_posy -= 1.0; - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 'w') { - width -= 1.0f; - } - else if (buffer[0] == 'W') { - width += 1.0f; - } - else if (buffer[0] == 'h') { - height -= 1.0f; - } - else if (buffer[0] == 'H') { - height += 1.0f; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ - } - } - - if (anim) { - view_posx += 1.0; - view_posy += 2.0; - redraw = 1; - } - - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); - } + switch (key) { + case ' ': + animate = !animate; + break; + case 'w': + width -= 1.0f; + break; + case 'W': + width += 1.0f; + break; + case 'h': + height -= 1.0f; + break; + case 'H': + height += 1.0f; + break; + case 27: + eglutDestroyWindow(win); + exit(0); + break; + default: + break; } } - static void -usage(void) +special_key(int key) { - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); + switch (key) { + case EGLUT_KEY_LEFT: + view_posx -= 1.0; + break; + case EGLUT_KEY_RIGHT: + view_posx += 1.0; + break; + case EGLUT_KEY_UP: + view_posy += 1.0; + break; + case EGLUT_KEY_DOWN: + view_posy -= 1.0; + break; + default: + break; + } } - int main(int argc, char *argv[]) { - const int winWidth = 400, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } + eglutInitWindowSize(400, 300); + eglutInitAPIMask(EGLUT_OPENGL_ES1_BIT); + eglutInit(argc, argv); - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); + win = eglutCreateWindow("drawtex"); - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); - - make_x_window(x_dpy, egl_dpy, - "drawtex", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); - - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } + eglutIdleFunc(idle); + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + eglutKeyboardFunc(key); + eglutSpecialFunc(special_key); init(); - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); + eglutMainLoop(); return 0; } diff --git a/progs/egl/opengles1/torus.c b/progs/egl/opengles1/torus.c index 9438a4fe59..8f262b53d6 100644 --- a/progs/egl/opengles1/torus.c +++ b/progs/egl/opengles1/torus.c @@ -13,14 +13,9 @@ #include #include #include -#include -#include -#include -#include #include -#include -#include +#include "eglut.h" static const struct { GLenum internalFormat; @@ -43,6 +38,8 @@ static const struct { static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0; static GLint tex_format = NUM_CPAL_FORMATS; +static GLboolean animate = GL_TRUE; +static int win; static void @@ -364,293 +361,88 @@ init(void) } -/* - * Create an RGB, double-buffered X window. - * Return the window and context handles. - */ static void -make_x_window(Display *x_dpy, EGLDisplay egl_dpy, - const char *name, - int x, int y, int width, int height, - Window *winRet, - EGLContext *ctxRet, - EGLSurface *surfRet) +idle(void) { - static const EGLint attribs[] = { - EGL_RED_SIZE, 1, - EGL_GREEN_SIZE, 1, - EGL_BLUE_SIZE, 1, - EGL_DEPTH_SIZE, 1, - EGL_NONE - }; - - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - Window win; - XVisualInfo *visInfo, visTemplate; - int num_visuals; - EGLContext ctx; - EGLConfig config; - EGLint num_configs; - EGLint vid; - - scrnum = DefaultScreen( x_dpy ); - root = RootWindow( x_dpy, scrnum ); - - if (!eglChooseConfig( egl_dpy, attribs, &config, 1, &num_configs)) { - printf("Error: couldn't get an EGL visual config\n"); - exit(1); - } - - assert(config); - assert(num_configs > 0); - - if (!eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) { - printf("Error: eglGetConfigAttrib() failed\n"); - exit(1); - } - - /* The X window visual must match the EGL config */ - visTemplate.visualid = vid; - visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals); - if (!visInfo) { - printf("Error: couldn't get X visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel = 0; - attr.border_pixel = 0; - attr.colormap = XCreateColormap( x_dpy, root, visInfo->visual, AllocNone); - attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask; - mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask; - - win = XCreateWindow( x_dpy, root, 0, 0, width, height, - 0, visInfo->depth, InputOutput, - visInfo->visual, mask, &attr ); - - /* set hints and properties */ - { - XSizeHints sizehints; - sizehints.x = x; - sizehints.y = y; - sizehints.width = width; - sizehints.height = height; - sizehints.flags = USSize | USPosition; - XSetNormalHints(x_dpy, win, &sizehints); - XSetStandardProperties(x_dpy, win, name, name, - None, (char **)NULL, 0, &sizehints); - } - - eglBindAPI(EGL_OPENGL_ES_API); - - ctx = eglCreateContext(egl_dpy, config, EGL_NO_CONTEXT, NULL ); - if (!ctx) { - printf("Error: eglCreateContext failed\n"); - exit(1); - } - - *surfRet = eglCreateWindowSurface(egl_dpy, config, win, NULL); - - if (!*surfRet) { - printf("Error: eglCreateWindowSurface failed\n"); - exit(1); + if (animate) { + view_rotx += 1.0; + view_roty += 2.0; + eglutPostRedisplay(); } - - XFree(visInfo); - - *winRet = win; - *ctxRet = ctx; } - static void -event_loop(Display *dpy, Window win, - EGLDisplay egl_dpy, EGLSurface egl_surf) +key(unsigned char key) { - int anim = 1; - - while (1) { - int redraw = 0; - - if (!anim || XPending(dpy)) { - XEvent event; - XNextEvent(dpy, &event); - - switch (event.type) { - case Expose: - redraw = 1; - break; - case ConfigureNotify: - reshape(event.xconfigure.width, event.xconfigure.height); - break; - case KeyPress: - { - char buffer[10]; - int r, code; - code = XLookupKeysym(&event.xkey, 0); - if (code == XK_Left) { - view_roty += 5.0; - } - else if (code == XK_Right) { - view_roty -= 5.0; - } - else if (code == XK_Up) { - view_rotx += 5.0; - } - else if (code == XK_Down) { - view_rotx -= 5.0; - } - else if (code == XK_t) { - GLint size; - tex_format = (tex_format + 1) % (NUM_CPAL_FORMATS + 1); - if (tex_format < NUM_CPAL_FORMATS) { - size = make_cpal_texture(tex_format); - printf("Using %s (%d bytes)\n", - cpal_formats[tex_format].name, size); - } - else { - size = make_texture(); - printf("Using uncompressed texture (%d bytes)\n", size); - } - } - else { - r = XLookupString(&event.xkey, buffer, sizeof(buffer), - NULL, NULL); - if (buffer[0] == ' ') { - anim = !anim; - } - else if (buffer[0] == 27) { - /* escape */ - return; - } - } - } - redraw = 1; - break; - default: - ; /*no-op*/ + switch (key) { + case ' ': + animate = !animate; + break; + case 't': + { + GLint size; + tex_format = (tex_format + 1) % (NUM_CPAL_FORMATS + 1); + if (tex_format < NUM_CPAL_FORMATS) { + size = make_cpal_texture(tex_format); + printf("Using %s (%d bytes)\n", + cpal_formats[tex_format].name, size); + } + else { + size = make_texture(); + printf("Using uncompressed texture (%d bytes)\n", size); } - } - - if (anim) { - view_rotx += 1.0; - view_roty += 2.0; - redraw = 1; - } - if (redraw) { - draw(); - eglSwapBuffers(egl_dpy, egl_surf); + eglutPostRedisplay(); } + break; + case 27: + eglutDestroyWindow(win); + exit(0); + break; + default: + break; } } - static void -usage(void) +special_key(int key) { - printf("Usage:\n"); - printf(" -display set the display to run on\n"); - printf(" -info display OpenGL renderer info\n"); + switch (key) { + case EGLUT_KEY_LEFT: + view_roty += 5.0; + break; + case EGLUT_KEY_RIGHT: + view_roty -= 5.0; + break; + case EGLUT_KEY_UP: + view_rotx += 5.0; + break; + case EGLUT_KEY_DOWN: + view_rotx -= 5.0; + break; + default: + break; + } } - int main(int argc, char *argv[]) { - const int winWidth = 300, winHeight = 300; - Display *x_dpy; - Window win; - EGLSurface egl_surf; - EGLContext egl_ctx; - EGLDisplay egl_dpy; - char *dpyName = NULL; - GLboolean printInfo = GL_FALSE; - EGLint egl_major, egl_minor; - int i; - const char *s; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-display") == 0) { - dpyName = argv[i+1]; - i++; - } - else if (strcmp(argv[i], "-info") == 0) { - printInfo = GL_TRUE; - } - else { - usage(); - return -1; - } - } - - x_dpy = XOpenDisplay(dpyName); - if (!x_dpy) { - printf("Error: couldn't open display %s\n", - dpyName ? dpyName : getenv("DISPLAY")); - return -1; - } - - egl_dpy = eglGetDisplay(x_dpy); - if (!egl_dpy) { - printf("Error: eglGetDisplay() failed\n"); - return -1; - } - - if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { - printf("Error: eglInitialize() failed\n"); - return -1; - } - - s = eglQueryString(egl_dpy, EGL_VERSION); - printf("EGL_VERSION = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_VENDOR); - printf("EGL_VENDOR = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_EXTENSIONS); - printf("EGL_EXTENSIONS = %s\n", s); - - s = eglQueryString(egl_dpy, EGL_CLIENT_APIS); - printf("EGL_CLIENT_APIS = %s\n", s); + eglutInitWindowSize(300, 300); + eglutInitAPIMask(EGLUT_OPENGL_ES1_BIT); + eglutInit(argc, argv); - make_x_window(x_dpy, egl_dpy, - "torus", 0, 0, winWidth, winHeight, - &win, &egl_ctx, &egl_surf); + win = eglutCreateWindow("torus"); - XMapWindow(x_dpy, win); - if (!eglMakeCurrent(egl_dpy, egl_surf, egl_surf, egl_ctx)) { - printf("Error: eglMakeCurrent() failed\n"); - return -1; - } - - if (printInfo) { - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); - printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); - printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); - } + eglutIdleFunc(idle); + eglutReshapeFunc(reshape); + eglutDisplayFunc(draw); + eglutKeyboardFunc(key); + eglutSpecialFunc(special_key); init(); - /* Set initial projection/viewing transformation. - * We can't be sure we'll get a ConfigureNotify event when the window - * first appears. - */ - reshape(winWidth, winHeight); - - event_loop(x_dpy, win, egl_dpy, egl_surf); - - eglDestroyContext(egl_dpy, egl_ctx); - eglDestroySurface(egl_dpy, egl_surf); - eglTerminate(egl_dpy); - - - XDestroyWindow(x_dpy, win); - XCloseDisplay(x_dpy); + eglutMainLoop(); return 0; } -- cgit v1.2.3 From 0942ed45b370addf4edb310d4d0f9cd0c7b18fd0 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 13:24:24 +0800 Subject: progs/egl: Fix the blank window in pbuffer demo. EGL requires eglSwapBuffers to be called on the current surface. --- progs/egl/opengles1/pbuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/progs/egl/opengles1/pbuffer.c b/progs/egl/opengles1/pbuffer.c index 011c2af58f..60f864445a 100644 --- a/progs/egl/opengles1/pbuffer.c +++ b/progs/egl/opengles1/pbuffer.c @@ -168,6 +168,8 @@ draw_both(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, wbuf); printf("Window[%d,%d] = 0x%08x\n", x, y, wbuf[y*WinWidth+x]); + eglSwapBuffers(egl_dpy, egl_surf); + /* then draw to pbuffer */ if (!eglMakeCurrent(egl_dpy, egl_pbuf, egl_pbuf, egl_ctx)) { printf("Error: eglMakeCurrent(pbuffer) failed\n"); @@ -177,7 +179,6 @@ draw_both(EGLDisplay egl_dpy, EGLSurface egl_surf, EGLSurface egl_pbuf, glReadPixels(0, 0, WinWidth, WinHeight, GL_RGBA, GL_UNSIGNED_BYTE, pbuf); printf("Pbuffer[%d,%d] = 0x%08x\n", x, y, pbuf[y*WinWidth+x]); - eglSwapBuffers(egl_dpy, egl_surf); /* compare renderings */ for (dif = i = 0; i < WinWidth * WinHeight; i++) { -- cgit v1.2.3 From 2002e4d06e2627241cd4af88f65b54d2101ef151 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 17:46:17 +0800 Subject: mesa: Add OES_EGL_image to extension list. --- src/mesa/drivers/dri/intel/intel_extensions.c | 4 ++++ src/mesa/es/main/specials_es1.c | 5 +++++ src/mesa/es/main/specials_es2.c | 5 +++++ src/mesa/main/extensions.c | 3 +++ src/mesa/main/fbobject.c | 6 ++++++ src/mesa/main/mtypes.h | 3 +++ src/mesa/main/teximage.c | 6 ++++++ src/mesa/state_tracker/st_extensions.c | 3 +++ 8 files changed, 35 insertions(+) diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c index a1aac699c9..9c2083873a 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.c +++ b/src/mesa/drivers/dri/intel/intel_extensions.c @@ -63,6 +63,7 @@ #define need_GL_ATI_envmap_bumpmap #define need_GL_NV_point_sprite #define need_GL_NV_vertex_program +#define need_GL_OES_EGL_image #define need_GL_VERSION_2_0 #define need_GL_VERSION_2_1 @@ -130,6 +131,9 @@ static const struct dri_extension card_extensions[] = { { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, { "GL_NV_vertex_program1_1", NULL }, { "GL_SGIS_generate_mipmap", NULL }, +#if FEATURE_OES_EGL_image + { "GL_OES_EGL_image", GL_OES_EGL_image_functions }, +#endif { NULL, NULL } }; diff --git a/src/mesa/es/main/specials_es1.c b/src/mesa/es/main/specials_es1.c index c842007c22..92e24a03fe 100644 --- a/src/mesa/es/main/specials_es1.c +++ b/src/mesa/es/main/specials_es1.c @@ -153,6 +153,11 @@ make_extension_string(const GLcontext *ctx, char *str) if (ctx->Extensions.EXT_multi_draw_arrays) len += append_extension(&str, "GL_EXT_multi_draw_arrays"); +#if FEATURE_OES_EGL_image + if (ctx->Extensions.OES_EGL_image) + len += append_extension(&str, "GL_OES_EGL_image"); +#endif + return len; } diff --git a/src/mesa/es/main/specials_es2.c b/src/mesa/es/main/specials_es2.c index 10b4f25e0f..046cda6fc1 100644 --- a/src/mesa/es/main/specials_es2.c +++ b/src/mesa/es/main/specials_es2.c @@ -124,6 +124,11 @@ make_extension_string(const GLcontext *ctx, char *str) if (ctx->Extensions.EXT_multi_draw_arrays) len += append_extension(&str, "GL_EXT_multi_draw_arrays"); +#if FEATURE_OES_EGL_image + if (ctx->Extensions.OES_EGL_image) + len += append_extension(&str, "GL_OES_EGL_image"); +#endif + return len; } diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 5fa3f3b00b..208069c1db 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -197,6 +197,9 @@ static const struct { { ON, "GL_SGIS_texture_lod", F(SGIS_texture_lod) }, { ON, "GL_SUN_multi_draw_arrays", F(EXT_multi_draw_arrays) }, { OFF, "GL_S3_s3tc", F(S3_s3tc) }, +#if FEATURE_OES_EGL_image + { OFF, "GL_OES_EGL_image", F(OES_EGL_image) }, +#endif #if FEATURE_OES_draw_texture { OFF, "GL_OES_draw_texture", F(OES_draw_texture) }, #endif /* FEATURE_OES_draw_texture */ diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index e3e006bb94..8d44246618 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -1020,6 +1020,12 @@ _mesa_EGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image) GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); + if (!ctx->Extensions.OES_EGL_image) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glEGLImageTargetRenderbufferStorageOES(unsupported)"); + return; + } + if (target != GL_RENDERBUFFER) { _mesa_error(ctx, GL_INVALID_ENUM, "EGLImageTargetRenderbufferStorageOES"); return; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 889c4801af..688172a2c0 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2573,6 +2573,9 @@ struct gl_extensions GLboolean SGIS_texture_lod; GLboolean TDFX_texture_compression_FXT1; GLboolean S3_s3tc; +#if FEATURE_OES_EGL_image + GLboolean OES_EGL_image; +#endif #if FEATURE_OES_draw_texture GLboolean OES_draw_texture; #endif /* FEATURE_OES_draw_texture */ diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index d72e91b3a3..edb80b18e9 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2457,6 +2457,12 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image) GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); + if (!ctx->Extensions.OES_EGL_image) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glEGLImageTargetTexture2DOES(unsupported)"); + return; + } + if (target != GL_TEXTURE_2D) { _mesa_error(ctx, GL_INVALID_ENUM, "glEGLImageTargetTexture2D(target=%d)", target); diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index ae5e62bd6c..affb054866 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -210,6 +210,9 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.NV_vertex_program1_1 = GL_TRUE; #endif +#if FEATURE_OES_EGL_image + ctx->Extensions.OES_EGL_image = GL_TRUE; +#endif #if FEATURE_OES_draw_texture ctx->Extensions.OES_draw_texture = GL_TRUE; #endif -- cgit v1.2.3 From 216c76c820339729a6c17237cf4d1478a1e9e2be Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 18:06:03 +0800 Subject: progs/egl: Correctly check GL_OES_EGL_image. The hack was added because GL_OES_EGL_image was not exported in the extension string. --- progs/egl/opengles1/texture_from_pixmap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/progs/egl/opengles1/texture_from_pixmap.c b/progs/egl/opengles1/texture_from_pixmap.c index abb8c28e56..79b9474a57 100644 --- a/progs/egl/opengles1/texture_from_pixmap.c +++ b/progs/egl/opengles1/texture_from_pixmap.c @@ -332,7 +332,6 @@ app_init_exts(struct app_data *data) } exts = (const char *) glGetString(GL_EXTENSIONS); - exts = "GL_OES_EGL_image"; /* XXX */ data->glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) eglGetProcAddress("glEGLImageTargetTexture2DOES"); if (!exts || !strstr(exts, "GL_OES_EGL_image") || -- cgit v1.2.3 From 7915151f2d05e175d00e739e9a3fead922e60096 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 18:55:40 +0800 Subject: st/dri: Implement DRI image extension. --- src/gallium/state_trackers/dri/common/dri_st_api.c | 26 +++++ src/gallium/state_trackers/dri/common/dri_st_api.h | 9 ++ src/gallium/state_trackers/dri/drm/dri2.c | 105 +++++++++++++++++++++ src/gallium/state_trackers/dri/drm/dri2.h | 3 + 4 files changed, 143 insertions(+) diff --git a/src/gallium/state_trackers/dri/common/dri_st_api.c b/src/gallium/state_trackers/dri/common/dri_st_api.c index 1a5259c68b..561e6aa3b6 100644 --- a/src/gallium/state_trackers/dri/common/dri_st_api.c +++ b/src/gallium/state_trackers/dri/common/dri_st_api.c @@ -224,6 +224,31 @@ _dri_put_st_api(void) } } +static boolean +dri_st_manager_get_egl_image(struct st_manager *smapi, + struct st_egl_image *stimg) +{ + __DRIimage *img = NULL; + +#ifndef __NOT_HAVE_DRM_H + if (!__dri1_api_hooks) { + struct dri_context *ctx = (struct dri_context *) + stimg->stctxi->st_manager_private; + img = dri2_lookup_egl_image(ctx, stimg->egl_image); + } +#endif + if (!img) + return FALSE; + + stimg->texture = NULL; + pipe_texture_reference(&stimg->texture, img->texture); + stimg->face = img->face; + stimg->level = img->level; + stimg->zslice = img->zslice; + + return TRUE; +} + /** * Create a state tracker manager from the given screen. */ @@ -235,6 +260,7 @@ dri_create_st_manager(struct dri_screen *screen) smapi = CALLOC_STRUCT(st_manager); if (smapi) { smapi->screen = screen->pipe_screen; + smapi->get_egl_image = dri_st_manager_get_egl_image; _dri_get_st_api(); } diff --git a/src/gallium/state_trackers/dri/common/dri_st_api.h b/src/gallium/state_trackers/dri/common/dri_st_api.h index 99a217bfa7..f41c1c6674 100644 --- a/src/gallium/state_trackers/dri/common/dri_st_api.h +++ b/src/gallium/state_trackers/dri/common/dri_st_api.h @@ -33,6 +33,15 @@ struct dri_screen; struct dri_drawable; +struct __DRIimageRec { + struct pipe_texture *texture; + unsigned face; + unsigned level; + unsigned zslice; + + void *loader_private; +}; + struct st_api * dri_get_st_api(void); diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c index c632f0fe4f..420ff0ee59 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.c +++ b/src/gallium/state_trackers/dri/drm/dri2.c @@ -352,6 +352,110 @@ dri2_flush_frontbuffer(struct dri_drawable *drawable, } } +__DRIimage * +dri2_lookup_egl_image(struct dri_context *ctx, void *handle) +{ + __DRIimageLookupExtension *loader = ctx->sPriv->dri2.image; + __DRIimage *img; + + if (!loader->lookupEGLImage) + return NULL; + + img = loader->lookupEGLImage(ctx->cPriv, handle, ctx->cPriv->loaderPrivate); + + return img; +} + +static __DRIimage * +dri2_create_image_from_name(__DRIcontext *context, + int width, int height, int format, + int name, int pitch, void *loaderPrivate) +{ + struct dri_screen *screen = dri_screen(context->driScreenPriv); + __DRIimage *img; + struct pipe_texture templ; + struct winsys_handle whandle; + unsigned tex_usage; + enum pipe_format pf; + + tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET | PIPE_TEXTURE_USAGE_SAMPLER; + + switch (format) { + case __DRI_IMAGE_FORMAT_RGB565: + pf = PIPE_FORMAT_B5G6R5_UNORM; + break; + case __DRI_IMAGE_FORMAT_XRGB8888: + pf = PIPE_FORMAT_B8G8R8X8_UNORM; + break; + case __DRI_IMAGE_FORMAT_ARGB8888: + pf = PIPE_FORMAT_B8G8R8A8_UNORM; + break; + default: + pf = PIPE_FORMAT_NONE; + break; + } + if (pf == PIPE_FORMAT_NONE) + return NULL; + + img = CALLOC_STRUCT(__DRIimageRec); + if (!img) + return NULL; + + memset(&templ, 0, sizeof(templ)); + templ.tex_usage = tex_usage; + templ.format = pf; + templ.target = PIPE_TEXTURE_2D; + templ.last_level = 0; + templ.width0 = width; + templ.height0 = height; + templ.depth0 = 1; + + memset(&whandle, 0, sizeof(whandle)); + whandle.handle = name; + whandle.stride = pitch * util_format_get_blocksize(pf); + + img->texture = screen->pipe_screen->texture_from_handle(screen->pipe_screen, + &templ, &whandle); + if (!img->texture) { + FREE(img); + return NULL; + } + + img->face = 0; + img->level = 0; + img->zslice = 0; + img->loader_private = loaderPrivate; + + return img; +} + +static __DRIimage * +dri2_create_image_from_renderbuffer(__DRIcontext *context, + int renderbuffer, void *loaderPrivate) +{ + struct dri_context *ctx = dri_context(context->driverPrivate); + + if (!ctx->st->get_resource_for_egl_image) + return NULL; + + /* TODO */ + return NULL; +} + +static void +dri2_destroy_image(__DRIimage *img) +{ + pipe_texture_reference(&img->texture, NULL); + FREE(img); +} + +static struct __DRIimageExtensionRec dri2ImageExtension = { + { __DRI_IMAGE, __DRI_IMAGE_VERSION }, + dri2_create_image_from_name, + dri2_create_image_from_renderbuffer, + dri2_destroy_image, +}; + /* * Backend function init_screen. */ @@ -364,6 +468,7 @@ static const __DRIextension *dri_screen_extensions[] = { &driMediaStreamCounterExtension.base, &dri2TexBufferExtension.base, &dri2FlushExtension.base, + &dri2ImageExtension.base, NULL }; diff --git a/src/gallium/state_trackers/dri/drm/dri2.h b/src/gallium/state_trackers/dri/drm/dri2.h index 379963431f..5b28850000 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.h +++ b/src/gallium/state_trackers/dri/drm/dri2.h @@ -43,4 +43,7 @@ dri2_allocate_textures(struct dri_drawable *drawable, const enum st_attachment_type *statts, unsigned count); +__DRIimage * +dri2_lookup_egl_image(struct dri_context *ctx, void *handle); + #endif /* DRI2_H */ -- cgit v1.2.3 From d18d0fdcd8daa0d9979b72978795f0305d2db7c8 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 6 Apr 2010 19:52:39 +0800 Subject: egl_dri2: Flush before context switch and swap buffers. DRI does not define any callback to flush the current context. GLX loader simply calls glFlush. Follow the GLX loader here. --- src/egl/drivers/dri2/egl_dri2.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 15b3529cd2..d941d82efb 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -54,6 +54,8 @@ struct dri2_egl_driver { _EGLDriver base; + + void (*glFlush)(void); }; struct dri2_egl_display @@ -873,6 +875,7 @@ static EGLBoolean dri2_make_current(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *dsurf, _EGLSurface *rsurf, _EGLContext *ctx) { + struct dri2_egl_driver *dri2_drv = dri2_egl_driver(drv); struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); struct dri2_egl_surface *dri2_dsurf = dri2_egl_surface(dsurf); struct dri2_egl_surface *dri2_rsurf = dri2_egl_surface(rsurf); @@ -884,6 +887,10 @@ dri2_make_current(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *dsurf, if (!_eglBindContext(&ctx, &dsurf, &rsurf)) return EGL_FALSE; + /* flush before context switch */ + if (ctx && dri2_drv->glFlush) + dri2_drv->glFlush(); + ddraw = (dri2_dsurf) ? dri2_dsurf->dri_drawable : NULL; rdraw = (dri2_rsurf) ? dri2_rsurf->dri_drawable : NULL; cctx = (dri2_ctx) ? dri2_ctx->dri_context : NULL; @@ -1011,10 +1018,18 @@ dri2_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp, static EGLBoolean dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw) { + struct dri2_egl_driver *dri2_drv = dri2_egl_driver(drv); struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw); + _EGLContext *ctx; xcb_dri2_copy_region_cookie_t cookie; + if (dri2_drv->glFlush) { + ctx = _eglGetCurrentContext(); + if (ctx && ctx->DrawSurface == &dri2_surf->base) + dri2_drv->glFlush(); + } + (*dri2_dpy->flush->flush)(dri2_surf->dri_drawable); #if 0 @@ -1352,5 +1367,8 @@ _eglMain(const char *args) dri2_drv->base.Name = "DRI2"; dri2_drv->base.Unload = dri2_unload; + dri2_drv->glFlush = + (void (*)(void)) dri2_get_proc_address(&dri2_drv->base, "glFlush"); + return &dri2_drv->base; } -- cgit v1.2.3 From 10dd0cad67ebd0476c9e4de522af3eea136b0e93 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Sun, 4 Apr 2010 20:12:02 +0100 Subject: util: Support all SRGB formats. Based on code from Brian Paul and Michal Krol. --- src/gallium/auxiliary/Makefile | 8 ++- src/gallium/auxiliary/SConscript | 8 +++ src/gallium/auxiliary/util/.gitignore | 1 + src/gallium/auxiliary/util/u_format_pack.py | 90 ++++++++++++++++++----- src/gallium/auxiliary/util/u_format_srgb.h | 106 ++++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format_srgb.py | 101 ++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format_tests.c | 95 ++++++++++++++++++++++++- 7 files changed, 386 insertions(+), 23 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_format_srgb.h create mode 100644 src/gallium/auxiliary/util/u_format_srgb.py diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 843778d810..2258a48661 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -107,6 +107,7 @@ C_SOURCES = \ util/u_draw_quad.c \ util/u_format.c \ util/u_format_s3tc.c \ + util/u_format_srgb.c \ util/u_format_table.c \ util/u_format_tests.c \ util/u_gen_mipmap.c \ @@ -169,6 +170,7 @@ GALLIVM_CPP_SOURCES = \ GENERATED_SOURCES = \ indices/u_indices_gen.c \ indices/u_unfilled_gen.c \ + util/u_format_srgb.c \ util/u_format_table.c \ util/u_half.c @@ -193,11 +195,11 @@ indices/u_indices_gen.c: indices/u_indices_gen.py indices/u_unfilled_gen.c: indices/u_unfilled_gen.py python $< > $@ +util/u_format_srgb.c: util/u_format_srgb.py + python $< > $@ + util/u_format_table.c: util/u_format_table.py util/u_format_pack.py util/u_format_parse.py util/u_format.csv python util/u_format_table.py util/u_format.csv > $@ -util/u_format_access.c: util/u_format_access.py util/u_format_parse.py util/u_format.csv - python util/u_format_access.py util/u_format.csv > $@ - util/u_half.c: util/u_half.py python util/u_half.py > $@ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index 73d4150448..e68b321173 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -23,6 +23,13 @@ env.CodeGenerate( command = python_cmd + ' $SCRIPT > $TARGET' ) +env.CodeGenerate( + target = 'util/u_format_srgb.c', + script = 'util/u_format_srgb.py', + source = [], + command = python_cmd + ' $SCRIPT > $TARGET' +) + env.CodeGenerate( target = 'util/u_format_table.c', script = 'util/u_format_table.py', @@ -149,6 +156,7 @@ source = [ 'util/u_draw_quad.c', 'util/u_format.c', 'util/u_format_s3tc.c', + 'util/u_format_srgb.c', 'util/u_format_table.c', 'util/u_format_tests.c', 'util/u_gen_mipmap.c', diff --git a/src/gallium/auxiliary/util/.gitignore b/src/gallium/auxiliary/util/.gitignore index 53fe9b8a65..da74de623d 100644 --- a/src/gallium/auxiliary/util/.gitignore +++ b/src/gallium/auxiliary/util/.gitignore @@ -1 +1,2 @@ +u_format_srgb.c u_format_table.c diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 390be0c3b2..3d89c68eaa 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -91,20 +91,6 @@ def generate_format_type(format): print -def generate_srgb_tables(): - print 'static ubyte srgb_to_linear[256] = {' - for i in range(256): - print ' %s,' % (int(math.pow((i / 255.0 + 0.055) / 1.055, 2.4) * 255)) - print '};' - print - print 'static ubyte linear_to_srgb[256] = {' - print ' 0,' - for i in range(1, 256): - print ' %s,' % (int((1.055 * math.pow(i / 255.0, 0.41666) - 0.055) * 255)) - print '};' - print - - def bswap_format(format): '''Generate a structure that describes the format.''' @@ -225,9 +211,46 @@ def clamp_expr(src_channel, dst_channel, dst_native_type, value): return value -def conversion_expr(src_channel, dst_channel, dst_native_type, value, clamp=True): +def conversion_expr(src_channel, + dst_channel, dst_native_type, + value, + clamp=True, + src_colorspace = 'rgb', + dst_colorspace = 'rgb'): '''Generate the expression to convert a value between two types.''' + if src_colorspace != dst_colorspace: + if src_colorspace == 'srgb': + assert src_channel.type == UNSIGNED + assert src_channel.norm + assert src_channel.size == 8 + assert dst_colorspace == 'rgb' + if dst_channel.type == FLOAT: + return 'util_format_srgb_8unorm_to_linear_float(%s)' % value + else: + assert dst_channel.type == UNSIGNED + assert dst_channel.norm + assert dst_channel.size == 8 + return 'util_format_srgb_to_linear_8unorm(%s)' % value + elif dst_colorspace == 'srgb': + assert dst_channel.type == UNSIGNED + assert dst_channel.norm + assert dst_channel.size == 8 + assert src_colorspace == 'rgb' + if src_channel.type == FLOAT: + return 'util_format_linear_float_to_srgb_8unorm(%s)' % value + else: + assert src_channel.type == UNSIGNED + assert src_channel.norm + assert src_channel.size == 8 + return 'util_format_linear_to_srgb_8unorm(%s)' % value + elif src_colorspace == 'zs': + pass + elif dst_colorspace == 'zs': + pass + else: + assert 0 + if src_channel == dst_channel: return value @@ -373,8 +396,15 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): swizzle = format.swizzles[i] if swizzle < 4: src_channel = format.channels[swizzle] + src_colorspace = format.colorspace + if src_colorspace == 'srgb' and i == 3: + # Alpha channel is linear + src_colorspace = 'rgb' value = src_channel.name - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + value = conversion_expr(src_channel, + dst_channel, dst_native_type, + value, + src_colorspace = src_colorspace) elif swizzle == SWIZZLE_0: value = '0' elif swizzle == SWIZZLE_1: @@ -399,8 +429,15 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): swizzle = format.swizzles[i] if swizzle < 4: src_channel = format.channels[swizzle] + src_colorspace = format.colorspace + if src_colorspace == 'srgb' and i == 3: + # Alpha channel is linear + src_colorspace = 'rgb' value = 'pixel.chan.%s' % src_channel.name - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + value = conversion_expr(src_channel, + dst_channel, dst_native_type, + value, + src_colorspace = src_colorspace) elif swizzle == SWIZZLE_0: value = '0' elif swizzle == SWIZZLE_1: @@ -437,7 +474,14 @@ def generate_pack_kernel(format, src_channel, src_native_type): dst_channel = format.channels[i] if inv_swizzle[i] is not None: value ='src[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + dst_colorspace = format.colorspace + if dst_colorspace == 'srgb' and inv_swizzle[i] == 3: + # Alpha channel is linear + dst_colorspace = 'rgb' + value = conversion_expr(src_channel, + dst_channel, dst_native_type, + value, + dst_colorspace = dst_colorspace) if format.colorspace == ZS: if i == 3: value = get_one(dst_channel) @@ -473,8 +517,15 @@ def generate_pack_kernel(format, src_channel, src_native_type): width = dst_channel.size if inv_swizzle[i] is None: continue + dst_colorspace = format.colorspace + if dst_colorspace == 'srgb' and inv_swizzle[i] == 3: + # Alpha channel is linear + dst_colorspace = 'rgb' value ='src[%u]' % inv_swizzle[i] - value = conversion_expr(src_channel, dst_channel, dst_native_type, value) + value = conversion_expr(src_channel, + dst_channel, dst_native_type, + value, + dst_colorspace = dst_colorspace) if format.colorspace == ZS: if i == 3: value = get_one(dst_channel) @@ -565,6 +616,7 @@ def generate(formats): print '#include "pipe/p_compiler.h"' print '#include "u_math.h"' print '#include "u_format.h"' + print '#include "u_format_srgb.h"' print '#include "u_half.h"' print diff --git a/src/gallium/auxiliary/util/u_format_srgb.h b/src/gallium/auxiliary/util/u_format_srgb.h new file mode 100644 index 0000000000..43213fbeb3 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_srgb.h @@ -0,0 +1,106 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + +/** + * @file + * SRGB translation. + * + * @author Brian Paul + * @author Michal Krol + * @author Jose Fonseca + */ + +#ifndef U_FORMAT_SRGB_H_ +#define U_FORMAT_SRGB_H_ + + +#include "pipe/p_compiler.h" +#include "u_math.h" + + +extern const float +util_format_srgb_8unorm_to_linear_float_table[256]; + +extern const uint8_t +util_format_srgb_to_linear_8unorm_table[256]; + +extern const uint8_t +util_format_linear_to_srgb_8unorm_table[256]; + + +/** + * Convert a unclamped linear float to srgb value in the [0,255]. + * XXX this hasn't been tested (render to srgb surface). + * XXX this needs optimization. + */ +static INLINE uint8_t +util_format_linear_float_to_srgb_8unorm(float x) +{ + if (x >= 1.0f) + return 255; + else if (x >= 0.0031308f) + return float_to_ubyte(1.055f * powf(x, 0.41666f) - 0.055f); + else if (x > 0.0f) + return float_to_ubyte(12.92f * x); + else + return 0; +} + + +/** + * Convert an 8-bit sRGB value from non-linear space to a + * linear RGB value in [0, 1]. + * Implemented with a 256-entry lookup table. + */ +static INLINE float +util_format_srgb_8unorm_to_linear_float(uint8_t x) +{ + return util_format_srgb_8unorm_to_linear_float_table[x]; +} + + +/** + * Convert a 8bit normalized value from linear to srgb. + */ +static INLINE uint8_t +util_format_linear_to_srgb_8unorm(uint8_t x) +{ + return util_format_linear_to_srgb_8unorm_table[x]; +} + + +/** + * Convert a 8bit normalized value from srgb to linear. + */ +static INLINE uint8_t +util_format_srgb_to_linear_8unorm(uint8_t x) +{ + return util_format_srgb_to_linear_8unorm_table[x]; +} + + +#endif /* U_FORMAT_SRGB_H_ */ diff --git a/src/gallium/auxiliary/util/u_format_srgb.py b/src/gallium/auxiliary/util/u_format_srgb.py new file mode 100644 index 0000000000..a4c76dc00b --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_srgb.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python + +''' +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +/** + * @file + * SRGB translation. + * + * @author Brian Paul + * @author Michal Krol + * @author Jose Fonseca + */ +''' + + +import sys +import math + + +def srgb_to_linear(x): + if x <= 0.04045: + return x / 12.92 + else: + return math.pow((x + 0.055) / 1.055, 2.4) + + +def linear_to_srgb(x): + if x >= 0.0031308: + return 1.055 * math.pow(x, 0.41666) - 0.055 + else: + return 12.92 * x + +def generate_srgb_tables(): + print 'const float' + print 'util_format_srgb_8unorm_to_linear_float_table[256] = {' + for j in range(0, 256, 4): + print ' ', + for i in range(j, j + 4): + print '%.7e,' % (srgb_to_linear(i / 255.0),), + print + print '};' + print + print 'const uint8_t' + print 'util_format_srgb_to_linear_8unorm_table[256] = {' + for j in range(0, 256, 16): + print ' ', + for i in range(j, j + 16): + print '%3u,' % (int(srgb_to_linear(i / 255.0) * 255.0 + 0.5),), + print + print '};' + print + print 'const uint8_t' + print 'util_format_linear_to_srgb_8unorm_table[256] = {' + for j in range(0, 256, 16): + print ' ', + for i in range(j, j + 16): + print '%3u,' % (int(linear_to_srgb(i / 255.0) * 255.0 + 0.5),), + print + print '};' + print + + +def main(): + print '/* This file is autogenerated by u_format_srgb.py. Do not edit directly. */' + print + # This will print the copyright message on the top of this file + print __doc__.strip() + print + print '#include "u_format_srgb.h"' + print + generate_srgb_tables() + + +if __name__ == '__main__': + main() diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index 0f81dcb79b..a16e676e38 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -175,9 +175,102 @@ util_format_test_cases[] = {PIPE_FORMAT_L16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, /* - * TODO: SRGB formats + * SRGB formats + * + * FIXME: Alpha appears to be linear. */ + {PIPE_FORMAT_L8_SRGB, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L8_SRGB, PACKED_1x8(0xff), PACKED_1x8(0xbc), UNPACKED_1x1(0.502886458033, 0.502886458033, 0.502886458033, 1.0)}, + {PIPE_FORMAT_L8_SRGB, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0x00bc), UNPACKED_1x1(0.502886458033, 0.502886458033, 0.502886458033, 0.0)}, + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), UNPACKED_1x1(1.0, 1.0, 1.0, 0.0)}, + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0xcc00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.8)}, + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0xff00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L8A8_SRGB, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xbc, 0x00, 0x00), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0x00, 0x00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xbc, 0x00), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0xff, 0x00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xbc), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0x00, 0x00, 0xff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8B8_SRGB, PACKED_3x8(0xff, 0xff, 0xff), PACKED_3x8(0xff, 0xff, 0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xbc, 0x00, 0x00, 0x00), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xbc, 0x00, 0x00), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xbc, 0x00), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xcc), UNPACKED_1x1(0.0, 0.0, 0.0, 0.8)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8A8_SRGB, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000bc), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xcc000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.8)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8A8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000bc), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B8G8R8X8_SRGB, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000cc), UNPACKED_1x1(0.0, 0.0, 0.0, 0.8)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xbc000000), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_A8R8G8B8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xbc000000), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_X8R8G8B8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000cc), UNPACKED_1x1(0.0, 0.0, 0.0, 0.8)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xbc000000), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_A8B8G8R8_SRGB, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000bc00), UNPACKED_1x1(0.0, 0.0, 0.502886458033, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00bc0000), UNPACKED_1x1(0.0, 0.502886458033, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xbc000000), UNPACKED_1x1(0.502886458033, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_X8B8G8R8_SRGB, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + /* * Mixed-signed formats */ -- cgit v1.2.3 From 05b494c10181cff6a37557f530cfaf5b8d6c8e3d Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Sun, 4 Apr 2010 20:14:55 +0100 Subject: util: Remove the hand written SRGB format support code. --- src/gallium/auxiliary/util/u_tile.c | 197 ------------------------------------ 1 file changed, 197 deletions(-) diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c index 43b45eb926..33cdbe4015 100644 --- a/src/gallium/auxiliary/util/u_tile.c +++ b/src/gallium/auxiliary/util/u_tile.c @@ -137,185 +137,6 @@ z16_get_tile_rgba(const ushort *src, -/*** PIPE_FORMAT_A8B8G8R8_SRGB ***/ - -/** - * Convert an 8-bit sRGB value from non-linear space to a - * linear RGB value in [0, 1]. - * Implemented with a 256-entry lookup table. - */ -static INLINE float -srgb_to_linear(ubyte cs8) -{ - static float table[256]; - static boolean tableReady = FALSE; - if (!tableReady) { - /* compute lookup table now */ - uint i; - for (i = 0; i < 256; i++) { - const float cs = ubyte_to_float(i); - if (cs <= 0.04045) { - table[i] = cs / 12.92f; - } - else { - table[i] = (float) powf((cs + 0.055) / 1.055, 2.4); - } - } - tableReady = TRUE; - } - return table[cs8]; -} - - -/** - * Convert linear float in [0,1] to an srgb ubyte value in [0,255]. - * XXX this hasn't been tested (render to srgb surface). - * XXX this needs optimization. - */ -static INLINE ubyte -linear_to_srgb(float cl) -{ - if (cl >= 1.0F) - return 255; - else if (cl >= 0.0031308F) - return float_to_ubyte(1.055F * powf(cl, 0.41666F) - 0.055F); - else if (cl > 0.0F) - return float_to_ubyte(12.92F * cl); - else - return 0.0; -} - - -static void -a8r8g8b8_srgb_get_tile_rgba(const unsigned *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - const unsigned pixel = *src++; - pRow[0] = srgb_to_linear((pixel >> 16) & 0xff); - pRow[1] = srgb_to_linear((pixel >> 8) & 0xff); - pRow[2] = srgb_to_linear((pixel >> 0) & 0xff); - pRow[3] = ubyte_to_float((pixel >> 24) & 0xff); - } - p += dst_stride; - } -} - -static void -a8r8g8b8_srgb_put_tile_rgba(unsigned *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, g, b, a; - r = linear_to_srgb(pRow[0]); - g = linear_to_srgb(pRow[1]); - b = linear_to_srgb(pRow[2]); - a = float_to_ubyte(pRow[3]); - *dst++ = (a << 24) | (r << 16) | (g << 8) | b; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_L8A8_SRGB ***/ - -static void -a8l8_srgb_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - ushort p = *src++; - pRow[0] = - pRow[1] = - pRow[2] = srgb_to_linear(p & 0xff); - pRow[3] = ubyte_to_float(p >> 8); - } - p += dst_stride; - } -} - -static void -a8l8_srgb_put_tile_rgba(ushort *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r, a; - r = linear_to_srgb(pRow[0]); - a = float_to_ubyte(pRow[3]); - *dst++ = (a << 8) | r; - } - p += src_stride; - } -} - - -/*** PIPE_FORMAT_L8_SRGB ***/ - -static void -l8_srgb_get_tile_rgba(const ubyte *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - for (j = 0; j < w; j++, src++, pRow += 4) { - pRow[0] = - pRow[1] = - pRow[2] = srgb_to_linear(*src); - pRow[3] = 1.0; - } - p += dst_stride; - } -} - -static void -l8_srgb_put_tile_rgba(ubyte *dst, - unsigned w, unsigned h, - const float *p, - unsigned src_stride) -{ - unsigned i, j; - - for (i = 0; i < h; i++) { - const float *pRow = p; - for (j = 0; j < w; j++, pRow += 4) { - unsigned r; - r = linear_to_srgb(pRow[0]); - *dst++ = (ubyte) r; - } - p += src_stride; - } -} - - /*** PIPE_FORMAT_Z32_UNORM ***/ /** @@ -518,15 +339,6 @@ pipe_tile_raw_to_rgba(enum pipe_format format, float *dst, unsigned dst_stride) { switch (format) { - case PIPE_FORMAT_B8G8R8A8_SRGB: - a8r8g8b8_srgb_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_L8A8_SRGB: - a8l8_srgb_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); - break; - case PIPE_FORMAT_L8_SRGB: - l8_srgb_get_tile_rgba((ubyte *) src, w, h, dst, dst_stride); - break; case PIPE_FORMAT_Z16_UNORM: z16_get_tile_rgba((ushort *) src, w, h, dst, dst_stride); break; @@ -670,15 +482,6 @@ pipe_put_tile_rgba(struct pipe_context *pipe, return; switch (format) { - case PIPE_FORMAT_B8G8R8A8_SRGB: - a8r8g8b8_srgb_put_tile_rgba((unsigned *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_L8A8_SRGB: - a8l8_srgb_put_tile_rgba((ushort *) packed, w, h, p, src_stride); - break; - case PIPE_FORMAT_L8_SRGB: - l8_srgb_put_tile_rgba((ubyte *) packed, w, h, p, src_stride); - break; case PIPE_FORMAT_Z16_UNORM: /*z16_put_tile_rgba((ushort *) packed, w, h, p, src_stride);*/ break; -- cgit v1.2.3 From 04ea6f5dd84bb91e91225133f3a67e38ed7a3fad Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Sun, 4 Apr 2010 20:43:52 +0100 Subject: util: Make half float lookup tables constant. --- src/gallium/auxiliary/util/u_half.h | 10 +++++----- src/gallium/auxiliary/util/u_half.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index a28b1fd1d9..bc41c65b96 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -8,11 +8,11 @@ extern "C" { #endif -extern uint32_t util_half_to_float_mantissa_table[2048]; -extern uint32_t util_half_to_float_exponent_table[64]; -extern uint32_t util_half_to_float_offset_table[64]; -extern uint16_t util_float_to_half_base_table[512]; -extern uint8_t util_float_to_half_shift_table[512]; +extern const uint32_t util_half_to_float_mantissa_table[2048]; +extern const uint32_t util_half_to_float_exponent_table[64]; +extern const uint32_t util_half_to_float_offset_table[64]; +extern const uint16_t util_float_to_half_base_table[512]; +extern const uint8_t util_float_to_half_shift_table[512]; /* * Note that if the half float is a signaling NaN, the x87 FPU will turn diff --git a/src/gallium/auxiliary/util/u_half.py b/src/gallium/auxiliary/util/u_half.py index a92f758750..8007482e97 100644 --- a/src/gallium/auxiliary/util/u_half.py +++ b/src/gallium/auxiliary/util/u_half.py @@ -56,7 +56,7 @@ def begin(t, n, l): table_index = 0 table_length = l print - print t + " " + n + "[" + str(l) + "] = {" + print "const " + t + " " + n + "[" + str(l) + "] = {" def value(v): global table_index -- cgit v1.2.3 From aeaf2cf18fc74f2d65fcadfad8c19f244ccd4206 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 11:00:35 -0400 Subject: draw llvm: fix draw arrays we don't index within the outputs but only within the inputs --- src/gallium/auxiliary/draw/draw_llvm.c | 21 +++++++++++---------- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 ++ src/gallium/auxiliary/draw/draw_pt_post_vs.c | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 27df59653c..eac5e917d5 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -408,7 +408,7 @@ store_aos(LLVMBuilderRef builder, 0xffff, 0), id_ptr); #if DEBUG_STORE - lp_build_printf(builder, " ---- %p storing at %d (%p)\n", io_ptr, index, data_ptr); + lp_build_printf(builder, " ---- %p storing attribute %d (io = %p)\n", data_ptr, index, io_ptr); #endif #if 0 /*lp_build_printf(builder, " ---- %p storing at %d (%p) ", io_ptr, index, data_ptr); @@ -459,7 +459,6 @@ static void store_aos_array(LLVMBuilderRef builder, LLVMValueRef io_ptr, LLVMValueRef aos[NUM_CHANNELS], - LLVMValueRef start_index, int attrib, int num_outputs) { @@ -482,8 +481,8 @@ store_aos_array(LLVMBuilderRef builder, &ind3, 1, ""); #if DEBUG_STORE - lp_build_printf(builder, "io = %d, indexes[%d, %d, %d, %d]\n", - start_index, ind0, ind1, ind2, ind3); + lp_build_printf(builder, "io = %p, indexes[%d, %d, %d, %d]\n", + io_ptr, ind0, ind1, ind2, ind3); #endif store_aos(builder, io0_ptr, attr_index, aos[0]); @@ -497,8 +496,7 @@ convert_to_aos(LLVMBuilderRef builder, LLVMValueRef io, LLVMValueRef (*outputs)[NUM_CHANNELS], int num_outputs, - int max_vertices, - LLVMValueRef start_index) + int max_vertices) { unsigned chan, attrib; @@ -524,7 +522,6 @@ convert_to_aos(LLVMBuilderRef builder, store_aos_array(builder, io, aos, - start_index, attrib, num_outputs); } @@ -542,7 +539,7 @@ draw_llvm_generate(struct draw_llvm *llvm) LLVMBasicBlockRef block; LLVMBuilderRef builder; LLVMValueRef function; - LLVMValueRef start, end, count, stride, step; + LLVMValueRef start, end, count, stride, step, io_itr; LLVMValueRef io_ptr, vbuffers_ptr; struct draw_context *draw = llvm->draw; unsigned i, j; @@ -595,6 +592,7 @@ draw_llvm_generate(struct draw_llvm *llvm) step = LLVMConstInt(LLVMInt32Type(), max_vertices, 0); + io_itr = LLVMConstInt(LLVMInt32Type(), 0, 0); #if DEBUG_STORE lp_build_printf(builder, "start = %d, end = %d, step = %d\n", start, end, step); @@ -603,7 +601,7 @@ draw_llvm_generate(struct draw_llvm *llvm) { LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; - LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &lp_loop.counter, 1, ""); + LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &io_itr, 1, ""); const LLVMValueRef (*ptr_aos)[NUM_CHANNELS]; #if DEBUG_STORE lp_build_printf(builder, " --- loop counter %d\n", @@ -634,7 +632,10 @@ draw_llvm_generate(struct draw_llvm *llvm) convert_to_aos(builder, io, outputs, draw->vs.vertex_shader->info.num_outputs, - max_vertices, lp_loop.counter); + max_vertices); + + io_itr = LLVMBuildAdd(builder, io_itr, + LLVMConstInt(LLVMInt32Type(), 1, 0), ""); } lp_build_loop_end_cond(builder, end, step, LLVMIntUGE, &lp_loop); diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index aebfe40a03..307e6cc3a4 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -245,6 +245,8 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, return; } + debug_printf("#### Pipeline = %p (data = %p)\n", + pipeline_verts, pipeline_verts->data); fpme->llvm->jit_func( &fpme->llvm->jit_context, pipeline_verts, (const char **)draw->pt.user.vbuffer, diff --git a/src/gallium/auxiliary/draw/draw_pt_post_vs.c b/src/gallium/auxiliary/draw/draw_pt_post_vs.c index 7afbf6fa46..af07926a55 100644 --- a/src/gallium/auxiliary/draw/draw_pt_post_vs.c +++ b/src/gallium/auxiliary/draw/draw_pt_post_vs.c @@ -108,7 +108,7 @@ static boolean post_vs_cliptest_viewport_gl( struct pt_post_vs *pvs, for (j = 0; j < count; j++) { float *position = out->data[pos]; - debug_printf("%d) %p %p = [%f, %f, %f, %f]\n", + debug_printf("%d) io = %p, data = %p = [%f, %f, %f, %f]\n", j, out, position, position[0], position[1], position[2], position[3]); out->clip[0] = position[0]; -- cgit v1.2.3 From 859642c655b149a1321f214e6a731eb1ea991dc7 Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Tue, 6 Apr 2010 17:19:28 +0200 Subject: util: Respect destination stride in pipe_get_tile_swizzle(). --- src/gallium/auxiliary/util/u_tile.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c index 33cdbe4015..9f2bb81cd8 100644 --- a/src/gallium/auxiliary/util/u_tile.c +++ b/src/gallium/auxiliary/util/u_tile.c @@ -416,7 +416,7 @@ pipe_get_tile_swizzle(struct pipe_context *pipe, { unsigned dst_stride = w * 4; void *packed; - uint i; + uint iy; float rgba01[6]; if (pipe_clip_tile(x, y, &w, &h, pt)) { @@ -449,16 +449,22 @@ pipe_get_tile_swizzle(struct pipe_context *pipe, rgba01[PIPE_SWIZZLE_ZERO] = 0.0f; rgba01[PIPE_SWIZZLE_ONE] = 1.0f; - for (i = 0; i < w * h; i++) { - rgba01[PIPE_SWIZZLE_RED] = p[0]; - rgba01[PIPE_SWIZZLE_GREEN] = p[1]; - rgba01[PIPE_SWIZZLE_BLUE] = p[2]; - rgba01[PIPE_SWIZZLE_ALPHA] = p[3]; + for (iy = 0; iy < h; iy++) { + float *row = p; + uint ix; - *p++ = rgba01[swizzle_r]; - *p++ = rgba01[swizzle_g]; - *p++ = rgba01[swizzle_b]; - *p++ = rgba01[swizzle_a]; + for (ix = 0; ix < w; ix++) { + rgba01[PIPE_SWIZZLE_RED] = row[0]; + rgba01[PIPE_SWIZZLE_GREEN] = row[1]; + rgba01[PIPE_SWIZZLE_BLUE] = row[2]; + rgba01[PIPE_SWIZZLE_ALPHA] = row[3]; + + *row++ = rgba01[swizzle_r]; + *row++ = rgba01[swizzle_g]; + *row++ = rgba01[swizzle_b]; + *row++ = rgba01[swizzle_a]; + } + p += dst_stride; } } -- cgit v1.2.3 From de0647dbad96db222b5643d03b3f61b093e7ef76 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 12:07:33 -0400 Subject: draw llvm: iterate with the correct stop over the outputs it's whatever the var step is (4 usually) not an unconditional 1 --- src/gallium/auxiliary/draw/draw_llvm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index eac5e917d5..021662e75e 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -634,8 +634,7 @@ draw_llvm_generate(struct draw_llvm *llvm) draw->vs.vertex_shader->info.num_outputs, max_vertices); - io_itr = LLVMBuildAdd(builder, io_itr, - LLVMConstInt(LLVMInt32Type(), 1, 0), ""); + io_itr = LLVMBuildAdd(builder, io_itr, step, ""); } lp_build_loop_end_cond(builder, end, step, LLVMIntUGE, &lp_loop); -- cgit v1.2.3 From 1e0bf24139f6047f505b138392fc0f1d6584d6bc Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 12:37:31 -0400 Subject: draw llvm: fix iteration for larger vertex arrays we were trying to store the outputs starting at the same offset we were using for the input arrays, which was writing beyond the end of the output array. --- src/gallium/auxiliary/draw/draw_llvm.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 021662e75e..a09e2a9f0c 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -17,7 +17,7 @@ #include -#define DEBUG_STORE 0 +#define DEBUG_STORE 1 static void init_globals(struct draw_llvm *llvm) @@ -481,7 +481,7 @@ store_aos_array(LLVMBuilderRef builder, &ind3, 1, ""); #if DEBUG_STORE - lp_build_printf(builder, "io = %p, indexes[%d, %d, %d, %d]\n", + lp_build_printf(builder, " io = %p, indexes[%d, %d, %d, %d]\n", io_ptr, ind0, ind1, ind2, ind3); #endif @@ -592,7 +592,6 @@ draw_llvm_generate(struct draw_llvm *llvm) step = LLVMConstInt(LLVMInt32Type(), max_vertices, 0); - io_itr = LLVMConstInt(LLVMInt32Type(), 0, 0); #if DEBUG_STORE lp_build_printf(builder, "start = %d, end = %d, step = %d\n", start, end, step); @@ -601,11 +600,14 @@ draw_llvm_generate(struct draw_llvm *llvm) { LLVMValueRef inputs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; - LLVMValueRef io = LLVMBuildGEP(builder, io_ptr, &io_itr, 1, ""); + LLVMValueRef io; const LLVMValueRef (*ptr_aos)[NUM_CHANNELS]; + + io_itr = LLVMBuildSub(builder, lp_loop.counter, start, ""); + io = LLVMBuildGEP(builder, io_ptr, &io_itr, 1, ""); #if DEBUG_STORE - lp_build_printf(builder, " --- loop counter %d\n", - lp_loop.counter); + lp_build_printf(builder, " --- io %d = %p, loop counter %d\n", + io_itr, io, lp_loop.counter); #endif for (i = 0; i < NUM_CHANNELS; ++i) { LLVMValueRef true_index = LLVMBuildAdd( @@ -633,8 +635,6 @@ draw_llvm_generate(struct draw_llvm *llvm) convert_to_aos(builder, io, outputs, draw->vs.vertex_shader->info.num_outputs, max_vertices); - - io_itr = LLVMBuildAdd(builder, io_itr, step, ""); } lp_build_loop_end_cond(builder, end, step, LLVMIntUGE, &lp_loop); -- cgit v1.2.3 From 323fdd8ae5baf16df6c57754e58adc8e22d28e10 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 16:28:48 -0400 Subject: draw llvm: implement simple pipeline caching using variants --- src/gallium/auxiliary/draw/draw_llvm.c | 75 +++++++++++++++------- src/gallium/auxiliary/draw/draw_llvm.h | 27 ++++++-- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 36 +++++++++-- 3 files changed, 103 insertions(+), 35 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index a09e2a9f0c..26f756c6f8 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -17,7 +17,12 @@ #include -#define DEBUG_STORE 1 +#define DEBUG_STORE 0 + + +/* generates the draw jit function */ +static void +draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *var); static void init_globals(struct draw_llvm *llvm) @@ -179,11 +184,18 @@ draw_llvm_destroy(struct draw_llvm *llvm) free(llvm); } -void +struct draw_llvm_variant * draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs) { + struct draw_llvm_variant *variant = MALLOC(sizeof(struct draw_llvm_variant)); + + draw_llvm_make_variant_key(llvm, &variant->key); + llvm->vertex_header_ptr_type = create_vertex_header(llvm, num_inputs); - draw_llvm_generate(llvm); + + draw_llvm_generate(llvm, variant); + + return variant; } @@ -530,15 +542,14 @@ convert_to_aos(LLVMBuilderRef builder, #endif } -void -draw_llvm_generate(struct draw_llvm *llvm) +static void +draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) { LLVMTypeRef arg_types[6]; LLVMTypeRef func_type; LLVMValueRef context_ptr; LLVMBasicBlockRef block; LLVMBuilderRef builder; - LLVMValueRef function; LLVMValueRef start, end, count, stride, step, io_itr; LLVMValueRef io_ptr, vbuffers_ptr; struct draw_context *draw = llvm->draw; @@ -558,18 +569,18 @@ draw_llvm_generate(struct draw_llvm *llvm) func_type = LLVMFunctionType(LLVMVoidType(), arg_types, Elements(arg_types), 0); - function = LLVMAddFunction(llvm->module, "draw_llvm_shader", func_type); - LLVMSetFunctionCallConv(function, LLVMCCallConv); + variant->function = LLVMAddFunction(llvm->module, "draw_llvm_shader", func_type); + LLVMSetFunctionCallConv(variant->function, LLVMCCallConv); for(i = 0; i < Elements(arg_types); ++i) if(LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) - LLVMAddAttribute(LLVMGetParam(function, i), LLVMNoAliasAttribute); + LLVMAddAttribute(LLVMGetParam(variant->function, i), LLVMNoAliasAttribute); - context_ptr = LLVMGetParam(function, 0); - io_ptr = LLVMGetParam(function, 1); - vbuffers_ptr = LLVMGetParam(function, 2); - start = LLVMGetParam(function, 3); - count = LLVMGetParam(function, 4); - stride = LLVMGetParam(function, 5); + context_ptr = LLVMGetParam(variant->function, 0); + io_ptr = LLVMGetParam(variant->function, 1); + vbuffers_ptr = LLVMGetParam(variant->function, 2); + start = LLVMGetParam(variant->function, 3); + count = LLVMGetParam(variant->function, 4); + stride = LLVMGetParam(variant->function, 5); lp_build_name(context_ptr, "context"); lp_build_name(io_ptr, "io"); @@ -582,7 +593,7 @@ draw_llvm_generate(struct draw_llvm *llvm) * Function body */ - block = LLVMAppendBasicBlock(function, "entry"); + block = LLVMAppendBasicBlock(variant->function, "entry"); builder = LLVMCreateBuilder(); LLVMPositionBuilderAtEnd(builder, block); @@ -647,20 +658,40 @@ draw_llvm_generate(struct draw_llvm *llvm) */ #ifdef DEBUG - if(LLVMVerifyFunction(function, LLVMPrintMessageAction)) { - LLVMDumpValue(function); + if(LLVMVerifyFunction(variant->function, LLVMPrintMessageAction)) { + LLVMDumpValue(variant->function); assert(0); } #endif - LLVMRunFunctionPassManager(llvm->pass, function); + LLVMRunFunctionPassManager(llvm->pass, variant->function); if (1) { - LLVMDumpValue(function); + LLVMDumpValue(variant->function); debug_printf("\n"); } - llvm->jit_func = (draw_jit_vert_func)LLVMGetPointerToGlobal(llvm->draw->engine, function); + variant->jit_func = (draw_jit_vert_func)LLVMGetPointerToGlobal(llvm->draw->engine, variant->function); if (1) - lp_disassemble(llvm->jit_func); + lp_disassemble(variant->jit_func); +} + +void +draw_llvm_make_variant_key(struct draw_llvm *llvm, + struct draw_llvm_variant_key *key) +{ + key->nr_vertex_buffers = llvm->draw->pt.nr_vertex_buffers; + key->nr_vertex_elements = llvm->draw->pt.nr_vertex_elements; + + memcpy(key->vertex_buffer, + llvm->draw->pt.vertex_buffer, + sizeof(struct pipe_vertex_buffer) * PIPE_MAX_ATTRIBS); + + memcpy(key->vertex_element, + llvm->draw->pt.vertex_element, + sizeof(struct pipe_vertex_element) * PIPE_MAX_ATTRIBS); + + memcpy(&key->vs, + &llvm->draw->vs.vertex_shader->state, + sizeof(struct pipe_shader_state)); } diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index afafa15e68..774eb16d90 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -136,8 +136,6 @@ struct draw_llvm { struct draw_jit_context jit_context; - draw_jit_vert_func jit_func; - LLVMModuleRef module; LLVMExecutionEngineRef engine; LLVMModuleProviderRef provider; @@ -150,22 +148,39 @@ struct draw_llvm { }; +struct draw_llvm_variant_key +{ + struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS]; + unsigned nr_vertex_buffers; + struct pipe_vertex_element vertex_element[PIPE_MAX_ATTRIBS]; + unsigned nr_vertex_elements; + struct pipe_shader_state vs; +}; + +struct draw_llvm_variant +{ + struct draw_llvm_variant_key key; + LLVMValueRef function; + draw_jit_vert_func jit_func; + + struct draw_llvm_variant *next; +}; + struct draw_llvm * draw_llvm_create(struct draw_context *draw); void draw_llvm_destroy(struct draw_llvm *llvm); -void +struct draw_llvm_variant * draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs); -/* generates the draw jit function */ void -draw_llvm_generate(struct draw_llvm *llvm); +draw_llvm_make_variant_key(struct draw_llvm *llvm, + struct draw_llvm_variant_key *key); LLVMValueRef draw_llvm_translate_from(LLVMBuilderRef builder, LLVMValueRef vbuffer, enum pipe_format from_format); - #endif diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 307e6cc3a4..0ed043d950 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -53,6 +53,8 @@ struct llvm_middle_end { unsigned opt; struct draw_llvm *llvm; + struct draw_llvm_variant *variants; + struct draw_llvm_variant *current_variant; }; @@ -66,6 +68,8 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, struct draw_context *draw = fpme->draw; struct draw_vertex_shader *vs = draw->vs.vertex_shader; struct draw_geometry_shader *gs = draw->gs.geometry_shader; + struct draw_llvm_variant_key key; + struct draw_llvm_variant *variant = NULL; unsigned i; unsigned instance_id_index = ~0; @@ -129,7 +133,22 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, /* return even number */ *max_vertices = *max_vertices & ~1; - draw_llvm_prepare(fpme->llvm, nr); + draw_llvm_make_variant_key(fpme->llvm, &key); + + variant = fpme->variants; + while(variant) { + if(memcmp(&variant->key, &key, sizeof key) == 0) + break; + + variant = variant->next; + } + + if (!variant) { + variant = draw_llvm_prepare(fpme->llvm, nr); + variant->next = fpme->variants; + fpme->variants = variant; + } + fpme->current_variant = variant; /*XXX we only support one constant buffer */ fpme->llvm->jit_context.vs_constants = @@ -247,12 +266,12 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, debug_printf("#### Pipeline = %p (data = %p)\n", pipeline_verts, pipeline_verts->data); - fpme->llvm->jit_func( &fpme->llvm->jit_context, - pipeline_verts, - (const char **)draw->pt.user.vbuffer, - start, - count, - fpme->vertex_size ); + fpme->current_variant->jit_func( &fpme->llvm->jit_context, + pipeline_verts, + (const char **)draw->pt.user.vbuffer, + start, + count, + fpme->vertex_size ); if (draw_pt_post_vs_run( fpme->post_vs, pipeline_verts, @@ -430,6 +449,9 @@ struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit_llvm( struct draw_cont if (!fpme->llvm) goto fail; + fpme->variants = NULL; + fpme->current_variant = NULL; + return &fpme->base; fail: -- cgit v1.2.3 From 06bda76c08618eaf68de70f4f776329e6ef1f196 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 17:14:13 -0400 Subject: draw llvm: disable debugging output --- src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 ++ src/gallium/auxiliary/draw/draw_pt_post_vs.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 0ed043d950..d2ed0eb3d1 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -264,8 +264,10 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, return; } +#if 0 debug_printf("#### Pipeline = %p (data = %p)\n", pipeline_verts, pipeline_verts->data); +#endif fpme->current_variant->jit_func( &fpme->llvm->jit_context, pipeline_verts, (const char **)draw->pt.user.vbuffer, diff --git a/src/gallium/auxiliary/draw/draw_pt_post_vs.c b/src/gallium/auxiliary/draw/draw_pt_post_vs.c index af07926a55..5525dfc748 100644 --- a/src/gallium/auxiliary/draw/draw_pt_post_vs.c +++ b/src/gallium/auxiliary/draw/draw_pt_post_vs.c @@ -108,8 +108,10 @@ static boolean post_vs_cliptest_viewport_gl( struct pt_post_vs *pvs, for (j = 0; j < count; j++) { float *position = out->data[pos]; +#if 0 debug_printf("%d) io = %p, data = %p = [%f, %f, %f, %f]\n", j, out, position, position[0], position[1], position[2], position[3]); +#endif out->clip[0] = position[0]; out->clip[1] = position[1]; -- cgit v1.2.3 From 695a029e9b8c70a34c5cde01ab32ac377e513707 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 17:14:30 -0400 Subject: llvmpipe: use a define to decide whether to use draw llvm paths right now disabled by default --- src/gallium/drivers/llvmpipe/lp_context.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index 383e4b0614..5c476f693f 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -47,7 +47,7 @@ #include "lp_setup.h" - +#define USE_DRAW_LLVM 0 static void llvmpipe_destroy( struct pipe_context *pipe ) @@ -182,7 +182,11 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv ) /* * Create drawing context and plug our rendering stage into it. */ +#if USE_DRAW_LLVM llvmpipe->draw = draw_create_with_llvm(llvmscreen->engine); +#else + llvmpipe->draw = draw_create(); +#endif if (!llvmpipe->draw) goto fail; -- cgit v1.2.3 From 306835cc0fbdd7bf46b8c703f6659d1431f86ff9 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Tue, 6 Apr 2010 22:37:08 +0100 Subject: gallivm: Move the global LLVM objects (module, engine, provider, target) into here. --- src/gallium/auxiliary/Makefile | 4 +- src/gallium/auxiliary/SConscript | 2 +- src/gallium/auxiliary/gallivm/lp_bld_init.c | 78 +++++++++++++++++++++++++++ src/gallium/auxiliary/gallivm/lp_bld_init.cpp | 69 ------------------------ src/gallium/auxiliary/gallivm/lp_bld_init.h | 16 +++--- src/gallium/drivers/llvmpipe/lp_jit.c | 17 ++---- 6 files changed, 93 insertions(+), 93 deletions(-) create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init.c delete mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init.cpp diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 2258a48661..5beda9267e 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -152,6 +152,7 @@ GALLIVM_SOURCES = \ gallivm/lp_bld_depth.c \ gallivm/lp_bld_flow.c \ gallivm/lp_bld_format_soa.c \ + gallivm/lp_bld_init.c \ gallivm/lp_bld_interp.c \ gallivm/lp_bld_intr.c \ gallivm/lp_bld_logic.c \ @@ -164,8 +165,7 @@ GALLIVM_SOURCES = \ gallivm/lp_bld_tgsi_soa.c \ gallivm/lp_bld_type.c -GALLIVM_CPP_SOURCES = \ - gallivm/lp_bld_init.cpp +GALLIVM_CPP_SOURCES = GENERATED_SOURCES = \ indices/u_indices_gen.c \ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index e68b321173..ae749acc87 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -204,7 +204,7 @@ if drawllvm: 'gallivm/lp_bld_interp.c', 'gallivm/lp_bld_intr.c', 'gallivm/lp_bld_logic.c', - 'gallivm/lp_bld_init.cpp', + 'gallivm/lp_bld_init.c', 'gallivm/lp_bld_pack.c', 'gallivm/lp_bld_printf.c', 'gallivm/lp_bld_sample.c', diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c new file mode 100644 index 0000000000..de07c222a3 --- /dev/null +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -0,0 +1,78 @@ +/************************************************************************** + * + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + + +#include "pipe/p_compiler.h" +#include "util/u_debug.h" +#include "lp_bld_init.h" + + +LLVMModuleRef lp_build_module = NULL; +LLVMExecutionEngineRef lp_build_engine = NULL; +LLVMModuleProviderRef lp_build_provider = NULL; +LLVMTargetDataRef lp_build_target = NULL; + + +void +lp_build_init(void) +{ + LLVMInitializeNativeTarget(); + + LLVMLinkInJIT(); + + if (!lp_build_module) + lp_build_module = LLVMModuleCreateWithName("gallivm"); + + if (!lp_build_provider) + lp_build_provider = LLVMCreateModuleProviderForExistingModule(lp_build_module); + + if (!lp_build_engine) { + char *error = NULL; + + if (LLVMCreateJITCompiler(&lp_build_engine, lp_build_provider, 1, &error)) { + _debug_printf("%s\n", error); + LLVMDisposeMessage(error); + assert(0); + } + } + + if (!lp_build_target) + lp_build_target = LLVMGetExecutionEngineTargetData(lp_build_engine); +} + + +/* + * Hack to allow the linking of release LLVM static libraries on a debug build. + * + * See also: + * - http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/7234ea2b-0042-42ed-b4e2-5d8644dfb57d + */ +#if defined(_MSC_VER) && defined(_DEBUG) +#include +_CRTIMP void __cdecl +_invalid_parameter_noinfo(void) {} +#endif diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init.cpp deleted file mode 100644 index 067397a520..0000000000 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************************** - * - * Copyright 2009 VMware, Inc. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - - -#include -#include -#include - -#include "pipe/p_config.h" - -#include "lp_bld_init.h" - - -extern "C" void LLVMLinkInJIT(); - - -extern "C" void -lp_build_init(void) -{ -#if defined(PIPE_OS_WINDOWS) && defined(PIPE_ARCH_X86) - /* - * This is mis-detected on some hardware / software combinations. - */ - llvm::StackAlignment = 4; - llvm::RealignStack = true; -#endif - - /* Same as LLVMInitializeNativeTarget(); */ - llvm::InitializeNativeTarget(); - - LLVMLinkInJIT(); -} - - -/* - * Hack to allow the linking of release LLVM static libraries on a debug build. - * - * See also: - * - http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/7234ea2b-0042-42ed-b4e2-5d8644dfb57d - */ -#if defined(_MSC_VER) && defined(_DEBUG) -#include -extern "C" _CRTIMP void __cdecl -_invalid_parameter_noinfo(void) {} -#endif diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h index 07f50d1c43..0ec2afcd1b 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h @@ -30,18 +30,18 @@ #define LP_BLD_INIT_H -#ifdef __cplusplus -extern "C" { -#endif +#include "lp_bld.h" +#include -void -lp_build_init(void); +extern LLVMModuleRef lp_build_module; +extern LLVMExecutionEngineRef lp_build_engine; +extern LLVMModuleProviderRef lp_build_provider; +extern LLVMTargetDataRef lp_build_target; -#ifdef __cplusplus -} -#endif +void +lp_build_init(void); #endif /* !LP_BLD_INIT_H */ diff --git a/src/gallium/drivers/llvmpipe/lp_jit.c b/src/gallium/drivers/llvmpipe/lp_jit.c index 927e472ff2..2f804bb11c 100644 --- a/src/gallium/drivers/llvmpipe/lp_jit.c +++ b/src/gallium/drivers/llvmpipe/lp_jit.c @@ -166,8 +166,6 @@ lp_jit_screen_cleanup(struct llvmpipe_screen *screen) void lp_jit_screen_init(struct llvmpipe_screen *screen) { - char *error = NULL; - util_cpu_detect(); #if 0 @@ -179,17 +177,10 @@ lp_jit_screen_init(struct llvmpipe_screen *screen) lp_build_init(); - screen->module = LLVMModuleCreateWithName("llvmpipe"); - - screen->provider = LLVMCreateModuleProviderForExistingModule(screen->module); - - if (LLVMCreateJITCompiler(&screen->engine, screen->provider, 1, &error)) { - _debug_printf("%s\n", error); - LLVMDisposeMessage(error); - assert(0); - } - - screen->target = LLVMGetExecutionEngineTargetData(screen->engine); + screen->module = lp_build_module; + screen->provider = lp_build_provider; + screen->engine = lp_build_engine; + screen->target = lp_build_target; screen->pass = LLVMCreateFunctionPassManager(screen->provider); LLVMAddTargetData(screen->target, screen->pass); -- cgit v1.2.3 From 728741a3bd27a3aaab50393665d25776ad06fcb3 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Tue, 6 Apr 2010 22:49:33 +0100 Subject: gallivm: Fallback to calling util_format_description::fetch_float for any format we can't code LLVM IR directly. --- src/gallium/auxiliary/gallivm/lp_bld_format.h | 11 ++ src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 140 ++++++++++++++++++++++ src/gallium/auxiliary/gallivm/lp_bld_sample.c | 5 +- src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 63 ++++++---- 4 files changed, 192 insertions(+), 27 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format.h b/src/gallium/auxiliary/gallivm/lp_bld_format.h index 73ab6de3f2..bb1298ed3f 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_format.h @@ -80,4 +80,15 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, LLVMValueRef *rgba); +void +lp_build_fetch_rgba_soa(LLVMBuilderRef builder, + const struct util_format_description *format_desc, + struct lp_type type, + LLVMValueRef base_ptr, + LLVMValueRef offsets, + LLVMValueRef i, + LLVMValueRef j, + LLVMValueRef *rgba); + + #endif /* !LP_BLD_FORMAT_H */ diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c index 9f242844e5..433134b809 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c @@ -27,10 +27,14 @@ #include "util/u_format.h" +#include "util/u_memory.h" +#include "util/u_string.h" #include "lp_bld_type.h" #include "lp_bld_const.h" #include "lp_bld_conv.h" +#include "lp_bld_sample.h" /* for lp_build_gather */ +#include "lp_bld_init.h" #include "lp_bld_format.h" @@ -240,3 +244,139 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, lp_build_format_swizzle_soa(format_desc, type, inputs, rgba); } + + +/** + * Fetch a pixel into a SoA. + * + * i and j are the sub-block pixel coordinates. + */ +void +lp_build_fetch_rgba_soa(LLVMBuilderRef builder, + const struct util_format_description *format_desc, + struct lp_type type, + LLVMValueRef base_ptr, + LLVMValueRef offset, + LLVMValueRef i, + LLVMValueRef j, + LLVMValueRef *rgba) +{ + + if (format_desc->block.width == 1 && + format_desc->block.height == 1 && + format_desc->block.bits <= type.width) + { + /* + * The packed pixel fits into an element of the destination format. Put + * the packed pixels into a vector and estract each component for all + * vector elements in parallel. + */ + + LLVMValueRef packed; + + /* + * gather the texels from the texture + */ + packed = lp_build_gather(builder, + type.length, + format_desc->block.bits, + type.width, + base_ptr, offset); + + /* + * convert texels to float rgba + */ + lp_build_unpack_rgba_soa(builder, + format_desc, + type, + packed, rgba); + } + else { + /* + * Fallback to calling util_format_description::fetch_float for each + * pixel. + * + * This is definitely not the most efficient way of fetching pixels, as + * we miss the opportunity to do vectorization, but this it is a + * convenient for formats or scenarios for which there was no opportunity + * or incentive to optimize. + */ + + LLVMModuleRef module = LLVMGetGlobalParent(LLVMGetBasicBlockParent(LLVMGetInsertBlock(builder))); + char name[256]; + LLVMValueRef function; + LLVMValueRef tmp; + unsigned k, chan; + + assert(type.floating); + + util_snprintf(name, sizeof name, "util_format_%s_fetch_float", format_desc->short_name); + + /* + * Declare and bind format_desc->fetch_float(). + */ + + function = LLVMGetNamedFunction(module, name); + if (!function) { + LLVMTypeRef ret_type; + LLVMTypeRef arg_types[4]; + LLVMTypeRef function_type; + + ret_type = LLVMVoidType(); + arg_types[0] = LLVMPointerType(LLVMFloatType(), 0); + arg_types[1] = LLVMPointerType(LLVMInt8Type(), 0); + arg_types[3] = arg_types[2] = LLVMIntType(sizeof(unsigned) * 8); + function_type = LLVMFunctionType(ret_type, arg_types, Elements(arg_types), 0); + function = LLVMAddFunction(module, name, function_type); + + LLVMSetFunctionCallConv(function, LLVMCCallConv); + LLVMSetLinkage(function, LLVMExternalLinkage); + + assert(LLVMIsDeclaration(function)); + + LLVMAddGlobalMapping(lp_build_engine, function, format_desc->fetch_float); + } + + for (chan = 0; chan < 4; ++chan) { + rgba[chan] = lp_build_undef(type); + } + + tmp = LLVMBuildArrayAlloca(builder, + LLVMFloatType(), + LLVMConstInt(LLVMInt32Type(), 4, 0), + ""); + + /* + * Invoke format_desc->fetch_float() for each pixel and insert the result + * in the SoA vectors. + */ + + for(k = 0; k < type.length; ++k) { + LLVMValueRef index = LLVMConstInt(LLVMInt32Type(), k, 0); + LLVMValueRef offset_elem; + LLVMValueRef ptr; + LLVMValueRef i_elem, j_elem; + LLVMValueRef args[4]; + + offset_elem = LLVMBuildExtractElement(builder, offset, index, ""); + ptr = LLVMBuildGEP(builder, base_ptr, &offset_elem, 1, ""); + + i_elem = LLVMBuildExtractElement(builder, i, index, ""); + j_elem = LLVMBuildExtractElement(builder, j, index, ""); + + args[0] = tmp; + args[1] = ptr; + args[2] = i_elem; + args[3] = j_elem; + + LLVMBuildCall(builder, function, args, 4, ""); + + for (chan = 0; chan < 4; ++chan) { + LLVMValueRef chan_val = LLVMConstInt(LLVMInt32Type(), chan, 0), + tmp_chan = LLVMBuildGEP(builder, tmp, &chan_val, 1, ""); + tmp_chan = LLVMBuildLoad(builder, tmp_chan, ""); + rgba[chan] = LLVMBuildInsertElement(builder, rgba[chan], tmp_chan, index, ""); + } + } + } +} diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c index bb76ad4c6b..0744be6b41 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c @@ -157,9 +157,10 @@ lp_build_gather(LLVMBuilderRef builder, /** - * Compute the offset of a pixel. + * Compute the offset of a pixel block. * - * x, y, z, y_stride, z_stride are vectors + * x, y, z, y_stride, z_stride are vectors, and they refer to pixel blocks, as + * per format description, and not individual pixels. */ LLVMValueRef lp_build_sample_offset(struct lp_build_context *bld, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c index 5b56f2cf3b..395eaaba26 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c @@ -211,7 +211,7 @@ lp_build_sample_texel_soa(struct lp_build_sample_context *bld, const int dims = texture_dims(bld->static_state->target); struct lp_build_context *int_coord_bld = &bld->int_coord_bld; LLVMValueRef offset; - LLVMValueRef packed; + LLVMValueRef i, j; LLVMValueRef use_border = NULL; /* use_border = x < 0 || x >= width || y < 0 || y >= height */ @@ -248,6 +248,43 @@ lp_build_sample_texel_soa(struct lp_build_sample_context *bld, } } + /* + * Describe the coordinates in terms of pixel blocks. + * + * TODO: pixel blocks are power of two. LLVM should convert rem/div to + * bit arithmetic. Verify this. + */ + + if (bld->format_desc->block.width == 1) { + i = bld->uint_coord_bld.zero; + } + else { + LLVMValueRef block_width = lp_build_const_int_vec(bld->uint_coord_bld.type, bld->format_desc->block.width); + i = LLVMBuildURem(bld->builder, x, block_width, ""); + x = LLVMBuildUDiv(bld->builder, x, block_width, ""); + } + + if (bld->format_desc->block.height == 1) { + j = bld->uint_coord_bld.zero; + } + else { + LLVMValueRef block_height = lp_build_const_int_vec(bld->uint_coord_bld.type, bld->format_desc->block.height); + j = LLVMBuildURem(bld->builder, y, block_height, ""); + y = LLVMBuildUDiv(bld->builder, y, block_height, ""); + } + + /* convert x,y,z coords to linear offset from start of texture, in bytes */ + offset = lp_build_sample_offset(&bld->uint_coord_bld, + bld->format_desc, + x, y, z, y_stride, z_stride); + + lp_build_fetch_rgba_soa(bld->builder, + bld->format_desc, + bld->texel_type, + data_ptr, offset, + i, j, + texel); + /* * Note: if we find an app which frequently samples the texture border * we might want to implement a true conditional here to avoid sampling @@ -263,30 +300,6 @@ lp_build_sample_texel_soa(struct lp_build_sample_context *bld, * the texel color results with the border color. */ - /* convert x,y,z coords to linear offset from start of texture, in bytes */ - offset = lp_build_sample_offset(&bld->uint_coord_bld, - bld->format_desc, - x, y, z, y_stride, z_stride); - - assert(bld->format_desc->block.width == 1); - assert(bld->format_desc->block.height == 1); - assert(bld->format_desc->block.bits <= bld->texel_type.width); - - /* gather the texels from the texture */ - packed = lp_build_gather(bld->builder, - bld->texel_type.length, - bld->format_desc->block.bits, - bld->texel_type.width, - data_ptr, offset); - - texel[0] = texel[1] = texel[2] = texel[3] = NULL; - - /* convert texels to float rgba */ - lp_build_unpack_rgba_soa(bld->builder, - bld->format_desc, - bld->texel_type, - packed, texel); - if (use_border) { /* select texel color or border color depending on use_border */ int chan; -- cgit v1.2.3 From fe130a7e5e3e7cc31e070d8088203706c687e6e8 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Tue, 6 Apr 2010 22:49:57 +0100 Subject: llvmpipe: Support S3TC when util_format_s3tc_enabled is set. --- src/gallium/drivers/llvmpipe/lp_screen.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 625d4092db..6999599558 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -28,6 +28,7 @@ #include "util/u_memory.h" #include "util/u_format.h" +#include "util/u_format_s3tc.h" #include "pipe/p_defines.h" #include "pipe/p_screen.h" @@ -186,19 +187,19 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen, case PIPE_FORMAT_DXT1_RGBA: case PIPE_FORMAT_DXT3_RGBA: case PIPE_FORMAT_DXT5_RGBA: - return FALSE; + return util_format_s3tc_enabled; default: break; } - if(format_desc->block.width != 1 || - format_desc->block.height != 1) - return FALSE; + if(tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) { + if(format_desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) + return FALSE; - if(format_desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) - return FALSE; + if(format_desc->block.width != 1 || + format_desc->block.height != 1) + return FALSE; - if(tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) { if(format_desc->colorspace != UTIL_FORMAT_COLORSPACE_RGB && format_desc->colorspace != UTIL_FORMAT_COLORSPACE_SRGB) return FALSE; @@ -220,17 +221,6 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen, return FALSE; } - /* FIXME: Temporary restrictions. See lp_bld_sample_soa.c */ - if(tex_usage & PIPE_TEXTURE_USAGE_SAMPLER) { - if(!format_desc->is_bitmask && - format != PIPE_FORMAT_R32_FLOAT) - return FALSE; - - if(format_desc->colorspace != UTIL_FORMAT_COLORSPACE_RGB && - format_desc->colorspace != UTIL_FORMAT_COLORSPACE_ZS) - return FALSE; - } - return TRUE; } @@ -297,6 +287,8 @@ llvmpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = llvmpipe_create_context; screen->base.flush_frontbuffer = llvmpipe_flush_frontbuffer; + util_format_s3tc_init(); + llvmpipe_init_screen_texture_funcs(&screen->base); llvmpipe_init_screen_buffer_funcs(&screen->base); llvmpipe_init_screen_fence_funcs(&screen->base); -- cgit v1.2.3 From 45c89091487a9cd3999362cdb486299c4a0f24c6 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 6 Apr 2010 20:20:13 -0600 Subject: gallium/draw: add additional DRAW_LLVM check Fixes build breakage. --- src/gallium/auxiliary/draw/draw_pt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c index 43126c6c88..b7a998248d 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -140,7 +140,10 @@ boolean draw_pt_init( struct draw_context *draw ) if (!draw->pt.middle.fetch_shade_emit) return FALSE; +#if DRAW_LLVM draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit_llvm( draw ); +#endif + if (!draw->pt.middle.general) draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit( draw ); if (!draw->pt.middle.general) -- cgit v1.2.3 From 0963099d5e32ace5ff99ebe7efb5f1ae41c5dd31 Mon Sep 17 00:00:00 2001 From: Marc Dietrich Date: Tue, 6 Apr 2010 23:44:08 +0200 Subject: cell: fix build compile fix for cell driver. Signed-off-by: Brian Paul --- src/gallium/drivers/cell/ppu/cell_screen.c | 3 +++ src/gallium/drivers/cell/ppu/cell_texture.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/cell/ppu/cell_screen.c b/src/gallium/drivers/cell/ppu/cell_screen.c index 363d1e65e7..aaa16945c5 100644 --- a/src/gallium/drivers/cell/ppu/cell_screen.c +++ b/src/gallium/drivers/cell/ppu/cell_screen.c @@ -138,6 +138,9 @@ cell_is_format_supported( struct pipe_screen *screen, unsigned tex_usage, unsigned geom_flags ) { + + struct sw_winsys *winsys = cell_screen(screen)->winsys; + if (tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET | PIPE_TEXTURE_USAGE_SCANOUT | PIPE_TEXTURE_USAGE_SHARED)) { diff --git a/src/gallium/drivers/cell/ppu/cell_texture.c b/src/gallium/drivers/cell/ppu/cell_texture.c index 5b169afaf8..6d746ebe0a 100644 --- a/src/gallium/drivers/cell/ppu/cell_texture.c +++ b/src/gallium/drivers/cell/ppu/cell_texture.c @@ -105,7 +105,7 @@ cell_displaytarget_layout(struct pipe_screen *screen, /* Round up the surface size to a multiple of the tile size? */ ct->dt = winsys->displaytarget_create(winsys, - ct->base->tex_usage, + ct->base.tex_usage, ct->base.format, ct->base.width0, ct->base.height0, -- cgit v1.2.3 From 1570760a9756234978ff56a9db4c781a630fe6ce Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 20:27:17 -0400 Subject: draw llvm: disable printing of the LLVM ir --- src/gallium/auxiliary/draw/draw_llvm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 26f756c6f8..121cce3d71 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -666,13 +666,13 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) LLVMRunFunctionPassManager(llvm->pass, variant->function); - if (1) { + if (0) { LLVMDumpValue(variant->function); debug_printf("\n"); } variant->jit_func = (draw_jit_vert_func)LLVMGetPointerToGlobal(llvm->draw->engine, variant->function); - if (1) + if (0) lp_disassemble(variant->jit_func); } -- cgit v1.2.3 From c60a161cc5c92b495007cbd3f709a5b9405e019a Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 6 Apr 2010 22:41:11 -0400 Subject: scons: define DRAW_LLVM if we're building it --- SConstruct | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SConstruct b/SConstruct index d9230bd904..56d88cc1cc 100644 --- a/SConstruct +++ b/SConstruct @@ -88,6 +88,8 @@ if drawllvm: env.Tool('llvm') if not env.has_key('LLVM_VERSION'): drawllvm = False +if drawllvm: + env.Append(CFLAGS = ['-DDRAW_LLVM=1']) # derived options x86 = machine == 'x86' -- cgit v1.2.3 From 841b327a51a5bc5968a8ddb0e867b6c552ac67c7 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 7 Apr 2010 15:06:59 +1000 Subject: nv50: fix assertion that caused piglit texturing/texrect-many to fail --- src/gallium/drivers/nv50/nv50_program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index d7e06c9327..2f61888ed9 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -4546,7 +4546,7 @@ nv50_fp_linkage_validate(struct nv50_context *nv50) so = so_new(10, 54, 0); n = (m + 3) / 4; - assert(m <= 32); + assert(m <= 64); if (vp->type == PIPE_SHADER_GEOMETRY) { so_method(so, tesla, NV50TCL_GP_RESULT_MAP_SIZE, 1); so_data (so, m); -- cgit v1.2.3 From 2d606c13ff68286b201f8d574d9cc645b8b8f2e2 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 7 Apr 2010 15:41:17 +1000 Subject: nouveau: allow multiple simultaneous maps of a pipe_transfer I'm not entirely convinced we want this behaviour (the underlying nouveau_bo doesn't support it either), but since certain parts of the mesa state tracker appear to require it lets make it work for now. --- src/gallium/drivers/nv50/nv50_transfer.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/nv50/nv50_transfer.c b/src/gallium/drivers/nv50/nv50_transfer.c index 9eb223eca6..6d16c1354b 100644 --- a/src/gallium/drivers/nv50/nv50_transfer.c +++ b/src/gallium/drivers/nv50/nv50_transfer.c @@ -9,6 +9,7 @@ struct nv50_transfer { struct pipe_transfer base; struct nouveau_bo *bo; + int map_refcnt; unsigned level_offset; unsigned level_tiling; int level_pitch; @@ -225,14 +226,19 @@ nv50_transfer_map(struct pipe_context *pcontext, struct pipe_transfer *ptx) unsigned flags = 0; int ret; + if (tx->map_refcnt++) + return tx->bo->map; + if (ptx->usage & PIPE_TRANSFER_WRITE) flags |= NOUVEAU_BO_WR; if (ptx->usage & PIPE_TRANSFER_READ) flags |= NOUVEAU_BO_RD; ret = nouveau_bo_map(tx->bo, flags); - if (ret) + if (ret) { + tx->map_refcnt = 0; return NULL; + } return tx->bo->map; } @@ -241,6 +247,8 @@ nv50_transfer_unmap(struct pipe_context *pcontext, struct pipe_transfer *ptx) { struct nv50_transfer *tx = (struct nv50_transfer *)ptx; + if (--tx->map_refcnt) + return; nouveau_bo_unmap(tx->bo); } -- cgit v1.2.3 From 88a0d7e1bff5b271fa14a36024ca82b66741c440 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Tue, 6 Apr 2010 23:48:00 -0700 Subject: llvmpipe: Remove unused variable. --- src/gallium/drivers/llvmpipe/lp_context.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index 5c476f693f..62d42317d7 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -106,7 +106,6 @@ struct pipe_context * llvmpipe_create_context( struct pipe_screen *screen, void *priv ) { struct llvmpipe_context *llvmpipe; - struct llvmpipe_screen *llvmscreen = llvmpipe_screen(screen); llvmpipe = align_malloc(sizeof(struct llvmpipe_context), 16); if (!llvmpipe) -- cgit v1.2.3 From 1e51bbf77f231157cc38a59c5aced4058372a348 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Wed, 7 Apr 2010 00:45:40 -0700 Subject: gallium: Add files to Makefile. This was missed in commit ae69f9fbf0a1aab7186e5b644085a5fe5aea99af. New files from the gallium_draw_llvm merge were added to SCons but not make. --- src/gallium/auxiliary/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 5beda9267e..e6cc70e4cf 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -163,7 +163,10 @@ GALLIVM_SOURCES = \ gallivm/lp_bld_struct.c \ gallivm/lp_bld_swizzle.c \ gallivm/lp_bld_tgsi_soa.c \ - gallivm/lp_bld_type.c + gallivm/lp_bld_type.c \ + draw/draw_llvm.c \ + draw/draw_pt_fetch_shade_pipeline_llvm.c \ + draw/draw_llvm_translate.c GALLIVM_CPP_SOURCES = -- cgit v1.2.3 From 95bfd0067c55859b311feab3109851deb88dbda2 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Wed, 7 Apr 2010 01:04:45 -0700 Subject: draw llvm: Remove unnecessary headers. --- src/gallium/auxiliary/draw/draw_llvm_translate.c | 3 --- src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 -- 2 files changed, 5 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm_translate.c b/src/gallium/auxiliary/draw/draw_llvm_translate.c index b29ebdec3a..2a95823f2c 100644 --- a/src/gallium/auxiliary/draw/draw_llvm_translate.c +++ b/src/gallium/auxiliary/draw/draw_llvm_translate.c @@ -7,10 +7,7 @@ #include "gallivm/lp_bld_interp.h" #include "gallivm/lp_bld_struct.h" #include "gallivm/lp_bld_type.h" -#include "gallivm/lp_bld_flow.h" #include "gallivm/lp_bld_debug.h" -#include "gallivm/lp_bld_tgsi.h" -#include "gallivm/lp_bld_printf.h" #include "util/u_memory.h" #include "pipe/p_state.h" diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index d2ed0eb3d1..aa34a3ea5f 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -35,8 +35,6 @@ #include "draw/draw_gs.h" #include "draw/draw_llvm.h" -#include "translate/translate.h" - struct llvm_middle_end { struct draw_pt_middle_end base; -- cgit v1.2.3 From 765dc9fc32cf9016473726fbf4827c2aa4cec0b1 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 7 Apr 2010 11:21:15 +0200 Subject: r300: Initialize compiler.max_temp_regs for blits. Blits were broken since commit e41a64591bf1a74465bf0adc7d35c991c4cfb4fe ('r300/compiler: make the max number of fragment shader temporaries adjustable'). --- src/mesa/drivers/dri/r300/r300_blit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/drivers/dri/r300/r300_blit.c b/src/mesa/drivers/dri/r300/r300_blit.c index fa60628a5e..f6c3a85e51 100644 --- a/src/mesa/drivers/dri/r300/r300_blit.c +++ b/src/mesa/drivers/dri/r300/r300_blit.c @@ -118,6 +118,7 @@ static void create_fragment_program(struct r300_context *r300) compiler.OutputColor[0] = FRAG_RESULT_COLOR; compiler.OutputDepth = FRAG_RESULT_DEPTH; compiler.is_r500 = (r300->radeon.radeonScreen->chip_family >= CHIP_FAMILY_RV515); + compiler.max_temp_regs = (compiler.is_r500) ? 128 : 32; compiler.code = &r300->blit.fp_code; compiler.AllocateHwInputs = fp_allocate_hw_inputs; -- cgit v1.2.3 From da17623c33cddf96c0f63b32e25ebc33b04a2b14 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 13:49:29 +0100 Subject: llvmpipe: Fix USE_DRAW_LLVM build. Use lp_build_engine. --- src/gallium/auxiliary/draw/draw_context.h | 6 +----- src/gallium/auxiliary/draw/draw_llvm.c | 7 +++++-- src/gallium/drivers/llvmpipe/lp_context.c | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_context.h b/src/gallium/auxiliary/draw/draw_context.h index d42e400318..a0e1c1c59b 100644 --- a/src/gallium/auxiliary/draw/draw_context.h +++ b/src/gallium/auxiliary/draw/draw_context.h @@ -40,10 +40,6 @@ #include "pipe/p_state.h" -#ifdef DRAW_LLVM -#include -#endif - struct pipe_context; struct draw_context; struct draw_stage; @@ -204,7 +200,7 @@ boolean draw_need_pipeline(const struct draw_context *draw, /******************************************************************************* * LLVM integration */ -struct draw_context *draw_create_with_llvm(LLVMExecutionEngineRef engine); +struct draw_context *draw_create_with_llvm(void); #endif #endif /* DRAW_CONTEXT_H */ diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 121cce3d71..4912b6ac50 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -11,6 +11,7 @@ #include "gallivm/lp_bld_debug.h" #include "gallivm/lp_bld_tgsi.h" #include "gallivm/lp_bld_printf.h" +#include "gallivm/lp_bld_init.h" #include "util/u_cpu_detect.h" #include "tgsi/tgsi_dump.h" @@ -199,12 +200,14 @@ draw_llvm_prepare(struct draw_llvm *llvm, int num_inputs) } -struct draw_context *draw_create_with_llvm(LLVMExecutionEngineRef engine) +struct draw_context *draw_create_with_llvm(void) { struct draw_context *draw = CALLOC_STRUCT( draw_context ); if (draw == NULL) goto fail; - draw->engine = engine; + + assert(lp_build_engine); + draw->engine = lp_build_engine; if (!draw_init(draw)) goto fail; diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index 62d42317d7..d94c2da2ff 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -182,7 +182,7 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv ) * Create drawing context and plug our rendering stage into it. */ #if USE_DRAW_LLVM - llvmpipe->draw = draw_create_with_llvm(llvmscreen->engine); + llvmpipe->draw = draw_create_with_llvm(); #else llvmpipe->draw = draw_create(); #endif -- cgit v1.2.3 From 78fd65fd2c9b537b88bf35454b98323029ee1bb3 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 7 Apr 2010 07:09:52 -0600 Subject: draw: init draw->pt.middle.general = NULL just to be safe This field should be null from the initial calloc() of the draw context, but let's be safe (and improve understanding of the code). --- src/gallium/auxiliary/draw/draw_pt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c index b7a998248d..a60a3b2a2b 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -142,6 +142,8 @@ boolean draw_pt_init( struct draw_context *draw ) #if DRAW_LLVM draw->pt.middle.general = draw_pt_fetch_pipeline_or_emit_llvm( draw ); +#else + draw->pt.middle.general = NULL; #endif if (!draw->pt.middle.general) -- cgit v1.2.3 From 7f9444050fbf91a5727617ba39806f28ea0921a2 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 19:47:24 +0100 Subject: util: Implement YUV and subsampled RGB format conversion. --- progs/gallium/unit/u_format_test.c | 16 +- src/gallium/auxiliary/Makefile | 1 + src/gallium/auxiliary/SConscript | 1 + src/gallium/auxiliary/util/u_format_pack.py | 8 +- src/gallium/auxiliary/util/u_format_tests.c | 33 +- src/gallium/auxiliary/util/u_format_yuv.c | 1047 +++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format_yuv.h | 223 ++++++ 7 files changed, 1322 insertions(+), 7 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_format_yuv.c create mode 100644 src/gallium/auxiliary/util/u_format_yuv.h diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c index 53e028482b..eeb853c30f 100644 --- a/progs/gallium/unit/u_format_test.c +++ b/progs/gallium/unit/u_format_test.c @@ -169,7 +169,9 @@ test_format_unpack_float(const struct util_format_description *format_desc, unsigned i, j, k; boolean success; - format_desc->unpack_float(&unpacked[0][0][0], sizeof unpacked[0], test->packed, 0, format_desc->block.width, format_desc->block.height); + format_desc->unpack_float(&unpacked[0][0][0], sizeof unpacked[0], + test->packed, 0, + format_desc->block.width, format_desc->block.height); success = TRUE; for (i = 0; i < format_desc->block.height; ++i) { @@ -219,7 +221,9 @@ test_format_pack_float(const struct util_format_description *format_desc, } } - format_desc->pack_float(packed, 0, &unpacked[0][0][0], sizeof unpacked[0], format_desc->block.width, format_desc->block.height); + format_desc->pack_float(packed, 0, + &unpacked[0][0][0], sizeof unpacked[0], + format_desc->block.width, format_desc->block.height); success = TRUE; for (i = 0; i < format_desc->block.bits/8; ++i) @@ -268,7 +272,9 @@ test_format_unpack_8unorm(const struct util_format_description *format_desc, unsigned i, j, k; boolean success; - format_desc->unpack_8unorm(&unpacked[0][0][0], sizeof unpacked[0], test->packed, 0, 1, 1); + format_desc->unpack_8unorm(&unpacked[0][0][0], sizeof unpacked[0], + test->packed, 0, + format_desc->block.width, format_desc->block.height); convert_float_to_8unorm(&expected[0][0][0], &test->unpacked[0][0][0]); @@ -319,7 +325,9 @@ test_format_pack_8unorm(const struct util_format_description *format_desc, memset(packed, 0, sizeof packed); - format_desc->pack_8unorm(packed, 0, &unpacked[0][0][0], sizeof unpacked[0], 1, 1); + format_desc->pack_8unorm(packed, 0, + &unpacked[0][0][0], sizeof unpacked[0], + format_desc->block.width, format_desc->block.height); success = TRUE; for (i = 0; i < format_desc->block.bits/8; ++i) diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index e6cc70e4cf..0015ccd715 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -110,6 +110,7 @@ C_SOURCES = \ util/u_format_srgb.c \ util/u_format_table.c \ util/u_format_tests.c \ + util/u_format_yuv.c \ util/u_gen_mipmap.c \ util/u_half.c \ util/u_handle_table.c \ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index ca5fab6742..b6dcd54a35 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -159,6 +159,7 @@ source = [ 'util/u_format_srgb.c', 'util/u_format_table.c', 'util/u_format_tests.c', + 'util/u_format_yuv.c', 'util/u_gen_mipmap.c', 'util/u_half.c', 'util/u_handle_table.c', diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 3d89c68eaa..aaeb4ce34c 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -611,12 +611,16 @@ def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix): print +def is_format_hand_written(format): + return format.layout in ('s3tc', 'subsampled') + def generate(formats): print print '#include "pipe/p_compiler.h"' print '#include "u_math.h"' print '#include "u_format.h"' print '#include "u_format_srgb.h"' + print '#include "u_format_yuv.h"' print '#include "u_half.h"' print @@ -629,7 +633,7 @@ def generate(formats): suffix = 'float' for format in formats: - if format.layout != 's3tc': + if not is_format_hand_written(format): generate_format_unpack(format, channel, native_type, suffix) generate_format_pack(format, channel, native_type, suffix) generate_format_fetch(format, channel, native_type, suffix) @@ -639,7 +643,7 @@ def generate(formats): suffix = '8unorm' for format in formats: - if format.layout != 's3tc': + if not is_format_hand_written(format): generate_format_unpack(format, channel, native_type, suffix) generate_format_pack(format, channel, native_type, suffix) diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index a16e676e38..55ce283f02 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -56,6 +56,12 @@ {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}} +#define UNPACKED_2x1(r0, g0, b0, a0, r1, g1, b1, a1) \ + {{{r0, g0, b0, a0}, {r1, g1, b1, a1}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{ 0, 0, 0, 0}, { 0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{ 0, 0, 0, 0}, { 0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, \ + {{ 0, 0, 0, 0}, { 0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}} + /** * Test cases. @@ -294,9 +300,34 @@ util_format_test_cases[] = */ /* - * TODO: YUV formats + * YUV formats */ + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), UNPACKED_2x1(1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), UNPACKED_2x1(0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_2x1(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8_B8G8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), UNPACKED_2x1(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0x00), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0x00, 0x00, 0x00), UNPACKED_2x1(0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0xff, 0x00, 0x00), UNPACKED_2x1(1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x00, 0x00, 0x00, 0xff), UNPACKED_2x1(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_G8R8_G8B8_UNORM, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xff, 0xff, 0xff, 0xff), UNPACKED_2x1(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)}, + + /* + * TODO: Exercise the UV channels as well. + */ + {PIPE_FORMAT_UYVY, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0x10, 0x80, 0x10), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_UYVY, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0xeb, 0x80, 0x10), UNPACKED_2x1(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_UYVY, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x80, 0x10, 0x80, 0xeb), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_YUYV, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x10, 0x80, 0x10, 0x80), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_YUYV, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0xeb, 0x80, 0x10, 0x80), UNPACKED_2x1(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_YUYV, PACKED_4x8(0xff, 0xff, 0xff, 0xff), PACKED_4x8(0x10, 0x80, 0xeb, 0x80), UNPACKED_2x1(0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0)}, + /* * Compressed formats */ diff --git a/src/gallium/auxiliary/util/u_format_yuv.c b/src/gallium/auxiliary/util/u_format_yuv.c new file mode 100644 index 0000000000..0847476e2e --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_yuv.c @@ -0,0 +1,1047 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +/** + * @file + * YUV and RGB subsampled formats conversion. + * + * @author Jose Fonseca + */ + + +#include "util/u_format_yuv.h" + + +void +util_format_r8g8_b8g8_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + float *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + float r, g0, g1, b; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = ubyte_to_float((value >> 0) & 0xff); + g0 = ubyte_to_float((value >> 8) & 0xff); + b = ubyte_to_float((value >> 16) & 0xff); + g1 = ubyte_to_float((value >> 24) & 0xff); + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + dst += 4; + + dst[0] = r; /* r */ + dst[1] = g1; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = ubyte_to_float((value >> 0) & 0xff); + g0 = ubyte_to_float((value >> 8) & 0xff); + b = ubyte_to_float((value >> 16) & 0xff); + g1 = ubyte_to_float((value >> 24) & 0xff); + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_r8g8_b8g8_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + uint8_t *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t r, g0, g1, b; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = (value >> 0) & 0xff; + g0 = (value >> 8) & 0xff; + b = (value >> 16) & 0xff; + g1 = (value >> 24) & 0xff; + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + dst += 4; + + dst[0] = r; /* r */ + dst[1] = g1; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = (value >> 0) & 0xff; + g0 = (value >> 8) & 0xff; + b = (value >> 16) & 0xff; + g1 = (value >> 24) & 0xff; + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_r8g8_b8g8_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const float *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + float r, g0, g1, b; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + r = 0.5f*(src[0] + src[4]); + g0 = src[1]; + g1 = src[5]; + b = 0.5f*(src[2] + src[6]); + + value = float_to_ubyte(r); + value |= float_to_ubyte(g0) << 8; + value |= float_to_ubyte(b) << 16; + value |= float_to_ubyte(g1) << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + r = src[0]; + g0 = src[1]; + g1 = 0; + b = src[2]; + + value = float_to_ubyte(r); + value |= float_to_ubyte(g0) << 8; + value |= float_to_ubyte(b) << 16; + value |= float_to_ubyte(g1) << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_r8g8_b8g8_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const uint8_t *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint32_t r, g0, g1, b; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + r = (src[0] + src[4] + 1) >> 1; + g0 = src[1]; + g1 = src[5]; + b = (src[2] + src[6] + 1) >> 1; + + value = r; + value |= g0 << 8; + value |= b << 16; + value |= g1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + r = src[0]; + g0 = src[1]; + g1 = 0; + b = src[2]; + + value = r; + value |= g0 << 8; + value |= b << 16; + value |= g1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_r8g8_b8g8_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + assert(i < 2); + assert(j < 1); + + dst[0] = ubyte_to_float(src[0]); /* r */ + dst[1] = ubyte_to_float(src[1 + 2*i]); /* g */ + dst[2] = ubyte_to_float(src[2]); /* b */ + dst[3] = 1.0f; /* a */ +} + + +void +util_format_g8r8_g8b8_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + float *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + float r, g0, g1, b; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + g0 = ubyte_to_float((value >> 0) & 0xff); + r = ubyte_to_float((value >> 8) & 0xff); + g1 = ubyte_to_float((value >> 16) & 0xff); + b = ubyte_to_float((value >> 24) & 0xff); + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + dst += 4; + + dst[0] = r; /* r */ + dst[1] = g1; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + g0 = ubyte_to_float((value >> 0) & 0xff); + r = ubyte_to_float((value >> 8) & 0xff); + g1 = ubyte_to_float((value >> 16) & 0xff); + b = ubyte_to_float((value >> 24) & 0xff); + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 1.0f; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_g8r8_g8b8_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + uint8_t *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t r, g0, g1, b; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + g0 = (value >> 0) & 0xff; + r = (value >> 8) & 0xff; + g1 = (value >> 16) & 0xff; + b = (value >> 24) & 0xff; + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + dst += 4; + + dst[0] = r; /* r */ + dst[1] = g1; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + g0 = (value >> 0) & 0xff; + r = (value >> 8) & 0xff; + g1 = (value >> 16) & 0xff; + b = (value >> 24) & 0xff; + + dst[0] = r; /* r */ + dst[1] = g0; /* g */ + dst[2] = b; /* b */ + dst[3] = 0xff; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_g8r8_g8b8_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const float *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + float r, g0, g1, b; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + r = 0.5f*(src[0] + src[4]); + g0 = src[1]; + g1 = src[5]; + b = 0.5f*(src[2] + src[6]); + + value = float_to_ubyte(g0); + value |= float_to_ubyte(r) << 8; + value |= float_to_ubyte(g1) << 16; + value |= float_to_ubyte(b) << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + r = src[0]; + g0 = src[1]; + g1 = 0; + b = src[2]; + + value = float_to_ubyte(g0); + value |= float_to_ubyte(r) << 8; + value |= float_to_ubyte(g1) << 16; + value |= float_to_ubyte(b) << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_g8r8_g8b8_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const uint8_t *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint32_t r, g0, g1, b; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + r = (src[0] + src[4] + 1) >> 1; + g0 = src[1]; + g1 = src[5]; + b = (src[2] + src[6] + 1) >> 1; + + value = g0; + value |= r << 8; + value |= g1 << 16; + value |= b << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + r = src[0]; + g0 = src[1]; + g1 = 0; + b = src[2]; + + value = g0; + value |= r << 8; + value |= g1 << 16; + value |= b << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_g8r8_g8b8_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + assert(i < 2); + assert(j < 1); + + dst[0] = ubyte_to_float(src[1]); /* r */ + dst[1] = ubyte_to_float(src[0 + 2*i]); /* g */ + dst[2] = ubyte_to_float(src[3]); /* b */ + dst[3] = 1.0f; /* a */ +} + + +void +util_format_uyvy_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + float *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t y0, y1, u, v; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + u = (value >> 0) & 0xff; + y0 = (value >> 8) & 0xff; + v = (value >> 16) & 0xff; + y1 = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_float(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + dst += 4; + + util_format_yuv_to_rgb_float(y1, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + u = (value >> 0) & 0xff; + y0 = (value >> 8) & 0xff; + v = (value >> 16) & 0xff; + y1 = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_float(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_uyvy_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + uint8_t *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t y0, y1, u, v; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + u = (value >> 0) & 0xff; + y0 = (value >> 8) & 0xff; + v = (value >> 16) & 0xff; + y1 = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_8unorm(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + dst += 4; + + util_format_yuv_to_rgb_8unorm(y1, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + u = (value >> 0) & 0xff; + y0 = (value >> 8) & 0xff; + v = (value >> 16) & 0xff; + y1 = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_8unorm(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_uyvy_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const float *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint8_t y0, y1, u, v; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + uint8_t y0, y1, u0, u1, v0, v1, u, v; + + util_format_rgb_float_to_yuv(src[0], src[1], src[2], + &y0, &u0, &v0); + util_format_rgb_float_to_yuv(src[4], src[5], src[6], + &y1, &u1, &v1); + + u = (u0 + u1 + 1) >> 1; + v = (v0 + v1 + 1) >> 1; + + value = u; + value |= y0 << 8; + value |= v << 16; + value |= y1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + util_format_rgb_float_to_yuv(src[0], src[1], src[2], + &y0, &u, &v); + y1 = 0; + + value = u; + value |= y0 << 8; + value |= v << 16; + value |= y1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_uyvy_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const uint8_t *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint8_t y0, y1, u, v; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + uint8_t y0, y1, u0, u1, v0, v1, u, v; + + util_format_rgb_8unorm_to_yuv(src[0], src[1], src[2], + &y0, &u0, &v0); + util_format_rgb_8unorm_to_yuv(src[4], src[5], src[6], + &y1, &u1, &v1); + + u = (u0 + u1 + 1) >> 1; + v = (v0 + v1 + 1) >> 1; + + value = u; + value |= y0 << 8; + value |= v << 16; + value |= y1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + util_format_rgb_8unorm_to_yuv(src[0], src[1], src[2], + &y0, &u, &v); + y1 = 0; + + value = u; + value |= y0 << 8; + value |= v << 16; + value |= y1 << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_uyvy_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + uint8_t y, u, v; + + assert(i < 2); + assert(j < 1); + + y = src[1 + i*2]; + u = src[0]; + v = src[2]; + + util_format_yuv_to_rgb_float(y, u, v, &dst[0], &dst[1], &dst[2]); + + dst[3] = 1.0f; +} + + +void +util_format_yuyv_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + float *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t y0, y1, u, v; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + y0 = (value >> 0) & 0xff; + u = (value >> 8) & 0xff; + y1 = (value >> 16) & 0xff; + v = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_float(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + dst += 4; + + util_format_yuv_to_rgb_float(y1, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + y0 = (value >> 0) & 0xff; + u = (value >> 8) & 0xff; + y1 = (value >> 16) & 0xff; + v = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_float(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 1.0f; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_yuyv_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + uint8_t *dst = dst_row; + const uint32_t *src = (const uint32_t *)src_row; + uint32_t value; + uint8_t y0, y1, u, v; + + for (x = 0; x + 1 < width; x += 2) { + value = *src++; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + y0 = (value >> 0) & 0xff; + u = (value >> 8) & 0xff; + y1 = (value >> 16) & 0xff; + v = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_8unorm(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + dst += 4; + + util_format_yuv_to_rgb_8unorm(y1, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + dst += 4; + } + + if (x < width) { + value = *src; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + y0 = (value >> 0) & 0xff; + u = (value >> 8) & 0xff; + y1 = (value >> 16) & 0xff; + v = (value >> 24) & 0xff; + + util_format_yuv_to_rgb_8unorm(y0, u, v, &dst[0], &dst[1], &dst[2]); + dst[3] = 0xff; /* a */ + } + + src_row += src_stride/sizeof(*src_row); + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_yuyv_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const float *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint8_t y0, y1, u, v; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + uint8_t y0, y1, u0, u1, v0, v1, u, v; + + util_format_rgb_float_to_yuv(src[0], src[1], src[2], + &y0, &u0, &v0); + util_format_rgb_float_to_yuv(src[4], src[5], src[6], + &y1, &u1, &v1); + + u = (u0 + u1 + 1) >> 1; + v = (v0 + v1 + 1) >> 1; + + value = y0; + value |= u << 8; + value |= y1 << 16; + value |= v << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + util_format_rgb_float_to_yuv(src[0], src[1], src[2], + &y0, &u, &v); + y1 = 0; + + value = y0; + value |= u << 8; + value |= y1 << 16; + value |= v << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_yuyv_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for (y = 0; y < height; y += 1) { + const uint8_t *src = src_row; + uint32_t *dst = (uint32_t *)dst_row; + uint8_t y0, y1, u, v; + uint32_t value; + + for (x = 0; x + 1 < width; x += 2) { + uint8_t y0, y1, u0, u1, v0, v1, u, v; + + util_format_rgb_8unorm_to_yuv(src[0], src[1], src[2], + &y0, &u0, &v0); + util_format_rgb_8unorm_to_yuv(src[4], src[5], src[6], + &y1, &u1, &v1); + + u = (u0 + u1 + 1) >> 1; + v = (v0 + v1 + 1) >> 1; + + value = y0; + value |= u << 8; + value |= y1 << 16; + value |= v << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 8; + } + + if (x < width) { + util_format_rgb_8unorm_to_yuv(src[0], src[1], src[2], + &y0, &u, &v); + y1 = 0; + + value = y0; + value |= u << 8; + value |= y1 << 16; + value |= v << 24; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst = value; + } + + dst_row += dst_stride/sizeof(*dst_row); + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_yuyv_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + uint8_t y, u, v; + + assert(i < 2); + assert(j < 1); + + y = src[0 + i*2]; + u = src[1]; + v = src[3]; + + util_format_yuv_to_rgb_float(y, u, v, &dst[0], &dst[1], &dst[2]); + + dst[3] = 1.0f; +} diff --git a/src/gallium/auxiliary/util/u_format_yuv.h b/src/gallium/auxiliary/util/u_format_yuv.h new file mode 100644 index 0000000000..10cf678480 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_yuv.h @@ -0,0 +1,223 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +/** + * @file + * YUV colorspace conversion. + * + * @author Brian Paul + * @author Michal Krol + * @author Jose Fonseca + * + * See also: + * - http://www.fourcc.org/fccyvrgb.php + * - http://msdn.microsoft.com/en-us/library/ms893078 + * - http://en.wikipedia.org/wiki/YUV + */ + + +#ifndef U_FORMAT_YUV_H_ +#define U_FORMAT_YUV_H_ + + +#include "pipe/p_compiler.h" +#include "u_math.h" + + +/* + * TODO: Ensure we use consistent and right floating formulas, with enough + * precision in the coefficients. + */ + +static INLINE void +util_format_rgb_float_to_yuv(float r, float g, float b, + uint8_t *y, uint8_t *u, uint8_t *v) +{ + const float _r = CLAMP(r, 0.0f, 1.0f); + const float _g = CLAMP(g, 0.0f, 1.0f); + const float _b = CLAMP(b, 0.0f, 1.0f); + + const float scale = 255.0f; + + const int _y = scale * ( (0.257f * _r) + (0.504f * _g) + (0.098f * _b)); + const int _u = scale * (-(0.148f * _r) - (0.291f * _g) + (0.439f * _b)); + const int _v = scale * ( (0.439f * _r) - (0.368f * _g) - (0.071f * _b)); + + *y = _y + 16; + *u = _u + 128; + *v = _v + 128; +} + + +static INLINE void +util_format_yuv_to_rgb_float(uint8_t y, uint8_t u, uint8_t v, + float *r, float *g, float *b) +{ + const int _y = y - 16; + const int _u = u - 128; + const int _v = v - 128; + + const float y_factor = 255.0f / 219.0f; + + const float scale = 1.0f / 255.0f; + + *r = scale * (y_factor * _y + 1.596f * _v); + *g = scale * (y_factor * _y - 0.391f * _u - 0.813f * _v); + *b = scale * (y_factor * _y + 2.018f * _u ); +} + + +static INLINE void +util_format_rgb_8unorm_to_yuv(uint8_t r, uint8_t g, uint8_t b, + uint8_t *y, uint8_t *u, uint8_t *v) +{ + *y = (( 66 * r + 129 * g + 25 * b + 128) >> 8) + 16; + *u = (( -38 * r - 74 * g + 112 * b + 128) >> 8) + 128; + *v = (( 112 * r - 94 * g - 18 * b + 128) >> 8) + 128; +} + + +static INLINE void +util_format_yuv_to_rgb_8unorm(uint8_t y, uint8_t u, uint8_t v, + uint8_t *r, uint8_t *g, uint8_t *b) +{ + const int _y = y - 16; + const int _u = u - 128; + const int _v = v - 128; + + const int _r = (298 * _y + 409 * _v + 128) >> 8; + const int _g = (298 * _y - 100 * _u - 208 * _v + 128) >> 8; + const int _b = (298 * _y + 516 * _u + 128) >> 8; + + *r = CLAMP(_r, 0, 255); + *g = CLAMP(_g, 0, 255); + *b = CLAMP(_b, 0, 255); +} + + + +void +util_format_uyvy_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_uyvy_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_uyvy_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_uyvy_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_uyvy_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + +void +util_format_yuyv_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_yuyv_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_yuyv_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_yuyv_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_yuyv_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + + +void +util_format_r8g8_b8g8_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8_b8g8_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8_b8g8_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8_b8g8_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8_b8g8_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + +void +util_format_g8r8_g8b8_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_g8r8_g8b8_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_g8r8_g8b8_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_g8r8_g8b8_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_g8r8_g8b8_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + + + +#endif /* U_FORMAT_YUV_H_ */ -- cgit v1.2.3 From ecdd6bc3e297375d288a9e19e6ca356b7fadcbd4 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 19:58:18 +0100 Subject: util: Remove u_tile.c YCbCr's. Superseded by u_format_yuv.c. Also PIPE_FORMAT_YUYV's interpretation was inconsistent: it was being interpreted as VYUY. --- src/gallium/auxiliary/util/u_format.csv | 2 - src/gallium/auxiliary/util/u_tile.c | 94 --------------------------------- 2 files changed, 96 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv index 0cf539247e..f23352fcad 100644 --- a/src/gallium/auxiliary/util/u_format.csv +++ b/src/gallium/auxiliary/util/u_format.csv @@ -111,8 +111,6 @@ PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED , plain, 1, 1, f32, u8 , x24 , , xy__, # http://www.fourcc.org/yuv.php#UYVY PIPE_FORMAT_UYVY , subsampled, 2, 1, x32 , , , , xyz1, yuv # http://www.fourcc.org/yuv.php#YUYV (a.k.a http://www.fourcc.org/yuv.php#YUY2) -# XXX: u_tile.c's ycbcr_get_tile_rgba actually interprets it as VYUY but the -# intent should be to match D3DFMT_YUY2 PIPE_FORMAT_YUYV , subsampled, 2, 1, x32 , , , , xyz1, yuv # same subsampling but with rgb channels PIPE_FORMAT_R8G8_B8G8_UNORM , subsampled, 2, 1, x32 , , , , xyz1, rgb diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c index 9f2bb81cd8..88a1424dff 100644 --- a/src/gallium/auxiliary/util/u_tile.c +++ b/src/gallium/auxiliary/util/u_tile.c @@ -244,94 +244,6 @@ z32f_get_tile_rgba(const float *src, } -/*** PIPE_FORMAT_UYVY / PIPE_FORMAT_YUYV ***/ - -/** - * Convert YCbCr (or YCrCb) to RGBA. - */ -static void -ycbcr_get_tile_rgba(const ushort *src, - unsigned w, unsigned h, - float *p, - unsigned dst_stride, - boolean rev) -{ - const float scale = 1.0f / 255.0f; - unsigned i, j; - - for (i = 0; i < h; i++) { - float *pRow = p; - /* do two texels at a time */ - for (j = 0; j < (w & ~1); j += 2, src += 2) { - const ushort t0 = src[0]; - const ushort t1 = src[1]; - const ubyte y0 = (t0 >> 8) & 0xff; /* luminance */ - const ubyte y1 = (t1 >> 8) & 0xff; /* luminance */ - ubyte cb, cr; - float r, g, b; - - if (rev) { - cb = t1 & 0xff; /* chroma U */ - cr = t0 & 0xff; /* chroma V */ - } - else { - cb = t0 & 0xff; /* chroma U */ - cr = t1 & 0xff; /* chroma V */ - } - - /* even pixel: y0,cr,cb */ - r = 1.164f * (y0-16) + 1.596f * (cr-128); - g = 1.164f * (y0-16) - 0.813f * (cr-128) - 0.391f * (cb-128); - b = 1.164f * (y0-16) + 2.018f * (cb-128); - pRow[0] = r * scale; - pRow[1] = g * scale; - pRow[2] = b * scale; - pRow[3] = 1.0f; - pRow += 4; - - /* odd pixel: use y1,cr,cb */ - r = 1.164f * (y1-16) + 1.596f * (cr-128); - g = 1.164f * (y1-16) - 0.813f * (cr-128) - 0.391f * (cb-128); - b = 1.164f * (y1-16) + 2.018f * (cb-128); - pRow[0] = r * scale; - pRow[1] = g * scale; - pRow[2] = b * scale; - pRow[3] = 1.0f; - pRow += 4; - - } - /* do the last texel */ - if (w & 1) { - const ushort t0 = src[0]; - const ushort t1 = src[1]; - const ubyte y0 = (t0 >> 8) & 0xff; /* luminance */ - ubyte cb, cr; - float r, g, b; - - if (rev) { - cb = t1 & 0xff; /* chroma U */ - cr = t0 & 0xff; /* chroma V */ - } - else { - cb = t0 & 0xff; /* chroma U */ - cr = t1 & 0xff; /* chroma V */ - } - - /* even pixel: y0,cr,cb */ - r = 1.164f * (y0-16) + 1.596f * (cr-128); - g = 1.164f * (y0-16) - 0.813f * (cr-128) - 0.391f * (cb-128); - b = 1.164f * (y0-16) + 2.018f * (cb-128); - pRow[0] = r * scale; - pRow[1] = g * scale; - pRow[2] = b * scale; - pRow[3] = 1.0f; - pRow += 4; - } - p += dst_stride; - } -} - - void pipe_tile_raw_to_rgba(enum pipe_format format, void *src, @@ -356,12 +268,6 @@ pipe_tile_raw_to_rgba(enum pipe_format format, case PIPE_FORMAT_Z32_FLOAT: z32f_get_tile_rgba((float *) src, w, h, dst, dst_stride); break; - case PIPE_FORMAT_UYVY: - ycbcr_get_tile_rgba((ushort *) src, w, h, dst, dst_stride, FALSE); - break; - case PIPE_FORMAT_YUYV: - ycbcr_get_tile_rgba((ushort *) src, w, h, dst, dst_stride, TRUE); - break; default: util_format_read_4f(format, dst, dst_stride * sizeof(float), -- cgit v1.2.3 From a46ca64562aeaa11a53baa1407226901f2ce0fd9 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 20:41:09 +0100 Subject: draw: Fix MSVC build (snprintf->util_snprintf). --- src/gallium/auxiliary/draw/draw_llvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 4912b6ac50..3a4e14c7a2 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -14,6 +14,7 @@ #include "gallivm/lp_bld_init.h" #include "util/u_cpu_detect.h" +#include "util/u_string.h" #include "tgsi/tgsi_dump.h" #include @@ -99,7 +100,7 @@ create_vertex_header(struct draw_llvm *llvm, int data_elems) LLVMTypeRef vertex_header; char struct_name[24]; - snprintf(struct_name, 23, "vertex_header%d", data_elems); + util_snprintf(struct_name, 23, "vertex_header%d", data_elems); elem_types[0] = LLVMIntType(32); elem_types[1] = LLVMArrayType(LLVMFloatType(), 4); -- cgit v1.2.3 From d96e87c3c513f8ed350ae24425edb74b6d6fcc13 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 20:47:38 +0100 Subject: util: Use stubs for the dynamically loaded S3TC functions. Loosely based on Luca Barbieri's commit 52e9b990a192a9329006d5f7dd2ac222effea5a5. --- src/gallium/auxiliary/util/u_format_s3tc.c | 683 +++++++++++++++-------------- 1 file changed, 349 insertions(+), 334 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 268f0e8dfa..06cfdcfa8e 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -35,58 +35,121 @@ #endif +static void +util_format_dxt1_rgb_fetch_stub(int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst) +{ + assert(0); +} + + +static void +util_format_dxt1_rgba_fetch_stub(int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + assert(0); +} + + +static void +util_format_dxt3_rgba_fetch_stub(int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + assert(0); +} + + +static void +util_format_dxt5_rgba_fetch_stub(int src_stride, + const uint8_t *src, + int col, int row, + uint8_t *dst ) +{ + assert(0); +} + + +static void +util_format_dxtn_pack_stub(int src_comps, + int width, int height, + const uint8_t *src, + enum util_format_dxtn dst_format, + uint8_t *dst, + int dst_stride) +{ + assert(0); +} + + boolean util_format_s3tc_enabled = FALSE; -util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = NULL; -util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = NULL; +util_format_dxtn_fetch_t util_format_dxt1_rgb_fetch = util_format_dxt1_rgb_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt1_rgba_fetch = util_format_dxt1_rgba_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt3_rgba_fetch = util_format_dxt3_rgba_fetch_stub; +util_format_dxtn_fetch_t util_format_dxt5_rgba_fetch = util_format_dxt5_rgba_fetch_stub; -util_format_dxtn_pack_t util_format_dxtn_pack = NULL; +util_format_dxtn_pack_t util_format_dxtn_pack = util_format_dxtn_pack_stub; void util_format_s3tc_init(void) { - static struct util_dl_library * - library = NULL; + static boolean first_time = TRUE; + struct util_dl_library *library = NULL; + util_dl_proc fetch_2d_texel_rgb_dxt1; + util_dl_proc fetch_2d_texel_rgba_dxt1; + util_dl_proc fetch_2d_texel_rgba_dxt3; + util_dl_proc fetch_2d_texel_rgba_dxt5; + util_dl_proc tx_compress_dxtn; + + if (!first_time) + return; + first_time = FALSE; if (util_format_s3tc_enabled) return; + library = util_dl_open(DXTN_LIBNAME); if (!library) { - library = util_dl_open(DXTN_LIBNAME); - if (!library) { - debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " - "compression/decompression unavailable"); - } - else { - util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgb_dxt1"); - util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt1"); - util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt3"); - util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t) - util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt5"); - util_format_dxtn_pack = (util_format_dxtn_pack_t) - util_dl_get_proc_address(library, "tx_compress_dxtn"); - - if (util_format_dxt1_rgb_fetch || - util_format_dxt1_rgba_fetch || - util_format_dxt3_rgba_fetch || - util_format_dxt5_rgba_fetch || - util_format_dxtn_pack) { - util_format_s3tc_enabled = TRUE; - debug_printf("software DXTn compression/decompression available"); - - } else { - debug_printf("couldn't reference all symbols in " - DXTN_LIBNAME ", software DXTn compression/decompression " - "unavailable"); - } - } + debug_printf("couldn't open " DXTN_LIBNAME ", software DXTn " + "compression/decompression unavailable"); + return; + } + + fetch_2d_texel_rgb_dxt1 = + util_dl_get_proc_address(library, "fetch_2d_texel_rgb_dxt1"); + fetch_2d_texel_rgba_dxt1 = + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt1"); + fetch_2d_texel_rgba_dxt3 = + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt3"); + fetch_2d_texel_rgba_dxt5 = + util_dl_get_proc_address(library, "fetch_2d_texel_rgba_dxt5"); + tx_compress_dxtn = + util_dl_get_proc_address(library, "tx_compress_dxtn"); + + if (!util_format_dxt1_rgb_fetch || + !util_format_dxt1_rgba_fetch || + !util_format_dxt3_rgba_fetch || + !util_format_dxt5_rgba_fetch || + !util_format_dxtn_pack) { + debug_printf("couldn't reference all symbols in " DXTN_LIBNAME + ", software DXTn compression/decompression " + "unavailable"); + return; } + + util_format_dxt1_rgb_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgb_dxt1; + util_format_dxt1_rgba_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgba_dxt1; + util_format_dxt3_rgba_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgba_dxt3; + util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgba_dxt5; + util_format_dxtn_pack = (util_format_dxtn_pack_t)tx_compress_dxtn; + util_format_s3tc_enabled = TRUE; } @@ -97,85 +160,69 @@ util_format_s3tc_init(void) void util_format_dxt1_rgb_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgb_fetch) { - util_format_dxt1_rgb_fetch(0, src, i, j, dst); - } + util_format_dxt1_rgb_fetch(0, src, i, j, dst); } void util_format_dxt1_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgba_fetch) { - util_format_dxt1_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt1_rgba_fetch(0, src, i, j, dst); } void util_format_dxt3_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt3_rgba_fetch) { - util_format_dxt3_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt3_rgba_fetch(0, src, i, j, dst); } void util_format_dxt5_rgba_fetch_8unorm(uint8_t *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt5_rgba_fetch) { - util_format_dxt5_rgba_fetch(0, src, i, j, dst); - } + util_format_dxt5_rgba_fetch(0, src, i, j, dst); } void util_format_dxt1_rgb_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgb_fetch) { - uint8_t tmp[4]; - util_format_dxt1_rgb_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = 1.0; - } + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; } void util_format_dxt1_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt1_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt1_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } void util_format_dxt3_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt3_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt3_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } void util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j) { - if (util_format_dxt5_rgba_fetch) { - uint8_t tmp[4]; - util_format_dxt5_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } @@ -186,188 +233,172 @@ util_format_dxt5_rgba_fetch_float(float *dst, const uint8_t *src, unsigned i, un void util_format_dxt1_rgb_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgb_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - util_format_dxt1_rgb_fetch(0, src, i, j, dst); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt1_rgb_fetch(0, src, i, j, dst); } - src += 8; } - src_row += src_stride; + src += 8; } + src_row += src_stride; } } void util_format_dxt1_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - util_format_dxt1_rgba_fetch(0, src, i, j, dst); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt1_rgba_fetch(0, src, i, j, dst); } - src += 8; } - src_row += src_stride; + src += 8; } + src_row += src_stride; } } void util_format_dxt3_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt3_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - util_format_dxt3_rgba_fetch(0, src, i, j, dst); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt3_rgba_fetch(0, src, i, j, dst); } - src += 16; } - src_row += src_stride; + src += 16; } + src_row += src_stride; } } void util_format_dxt5_rgba_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt5_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - util_format_dxt5_rgba_fetch(0, src, i, j, dst); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + uint8_t *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + util_format_dxt5_rgba_fetch(0, src, i, j, dst); } - src += 16; } - src_row += src_stride; + src += 16; } + src_row += src_stride; } } void util_format_dxt1_rgb_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgb_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - uint8_t tmp[4]; - util_format_dxt1_rgb_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = 1.0; - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt1_rgb_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = 1.0; } - src += 8; } - src_row += src_stride; + src += 8; } + src_row += src_stride; } } void util_format_dxt1_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt1_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - uint8_t tmp[4]; - util_format_dxt1_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt1_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } - src += 8; } - src_row += src_stride; + src += 8; } + src_row += src_stride; } } void util_format_dxt3_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt3_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - uint8_t tmp[4]; - util_format_dxt3_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt3_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } - src += 16; } - src_row += src_stride; + src += 16; } + src_row += src_stride; } } void util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxt5_rgba_fetch) { - unsigned x, y, i, j; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - for(x = 0; x < width; x += 4) { - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; - uint8_t tmp[4]; - util_format_dxt5_rgba_fetch(0, src, i, j, tmp); - dst[0] = ubyte_to_float(tmp[0]); - dst[1] = ubyte_to_float(tmp[1]); - dst[2] = ubyte_to_float(tmp[2]); - dst[3] = ubyte_to_float(tmp[3]); - } + unsigned x, y, i, j; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + for(x = 0; x < width; x += 4) { + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + float *dst = dst_row + (y + j)*dst_stride/sizeof(*dst_row) + (x + i)*4; + uint8_t tmp[4]; + util_format_dxt5_rgba_fetch(0, src, i, j, tmp); + dst[0] = ubyte_to_float(tmp[0]); + dst[1] = ubyte_to_float(tmp[1]); + dst[2] = ubyte_to_float(tmp[2]); + dst[3] = ubyte_to_float(tmp[3]); } - src += 16; } - src_row += src_stride; + src += 16; } + src_row += src_stride; } } @@ -379,216 +410,200 @@ util_format_dxt5_rgba_unpack_float(float *dst_row, unsigned dst_stride, const ui void util_format_dxt1_rgb_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][3]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 3; ++k) { - tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][3]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 3; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; } } - util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); - src += 4*4; - dst += 8; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); + src += 4*4; + dst += 8; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt1_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); - src += 4*4; - dst += 8; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); + src += 4*4; + dst += 8; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt3_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); - src += 4*4; - dst += 16; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt5_rgba_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const uint8_t *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const uint8_t *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = src[(y + j)*src_stride/sizeof(*src) + i*4 + k]; } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); - src += 4*4; - dst += 16; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt1_rgb_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const float *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][3]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 3; ++k) { - tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][3]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 3; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); } } - util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); - src += 4*4; - dst += 8; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(3, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGB, dst, dst_stride); + src += 4*4; + dst += 8; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt1_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const float *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); - src += 4*4; - dst += 8; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT1_RGBA, dst, dst_stride); + src += 4*4; + dst += 8; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt3_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const float *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); - src += 4*4; - dst += 16; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT3_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } void util_format_dxt5_rgba_pack_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height) { - if (util_format_dxtn_pack) { - unsigned x, y, i, j, k; - for(y = 0; y < height; y += 4) { - const float *src = src_row; - uint8_t *dst = dst_row; - for(x = 0; x < width; x += 4) { - uint8_t tmp[4][4][4]; - for(j = 0; j < 4; ++j) { - for(i = 0; i < 4; ++i) { - for(k = 0; k < 4; ++k) { - tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); - } + unsigned x, y, i, j, k; + for(y = 0; y < height; y += 4) { + const float *src = src_row; + uint8_t *dst = dst_row; + for(x = 0; x < width; x += 4) { + uint8_t tmp[4][4][4]; + for(j = 0; j < 4; ++j) { + for(i = 0; i < 4; ++i) { + for(k = 0; k < 4; ++k) { + tmp[j][i][k] = float_to_ubyte(src[(y + j)*src_stride/sizeof(*src) + i*4 + k]); } } - util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); - src += 4*4; - dst += 16; } - src_row += src_stride; - dst_row += 4*dst_stride/sizeof(*dst_row); + util_format_dxtn_pack(4, 4, 4, &tmp[0][0][0], UTIL_FORMAT_DXT5_RGBA, dst, dst_stride); + src += 4*4; + dst += 16; } + src_row += src_stride; + dst_row += 4*dst_stride/sizeof(*dst_row); } } -- cgit v1.2.3 From 68df2949971f6a9c0854bdfb2a252cb82fd9b7aa Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 20:55:31 +0100 Subject: llvmpipe: Add missing include. --- src/gallium/drivers/llvmpipe/lp_texture.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/llvmpipe/lp_texture.h b/src/gallium/drivers/llvmpipe/lp_texture.h index 49623949bf..6b78750f1a 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.h +++ b/src/gallium/drivers/llvmpipe/lp_texture.h @@ -30,6 +30,7 @@ #include "pipe/p_state.h" +#include "util/u_debug.h" #define LP_MAX_TEXTURE_2D_LEVELS 12 /* 2K x 2K for now */ -- cgit v1.2.3 From f15469039a4623ae89e7867e4904eec8eef6395b Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 21:00:05 +0100 Subject: util: Remove the half typedef from p_compiler.h. Unnecessary, and doesn't even guarantee size. --- progs/gallium/unit/u_half_test.c | 4 ++-- src/gallium/auxiliary/util/u_half.h | 8 ++++---- src/gallium/include/pipe/p_compiler.h | 2 -- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/progs/gallium/unit/u_half_test.c b/progs/gallium/unit/u_half_test.c index 9e3392e6d6..00bda7f50a 100644 --- a/progs/gallium/unit/u_half_test.c +++ b/progs/gallium/unit/u_half_test.c @@ -12,9 +12,9 @@ main(int argc, char **argv) unsigned roundtrip_fails = 0; for(i = 0; i < 1 << 16; ++i) { - half h = (half) i; + uint16_t h = (uint16_t) i; union fi f; - half rh; + uint16_t rh; f.ui = util_half_to_floatui(h); rh = util_floatui_to_half(f.ui); if(h != rh) diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index bc41c65b96..5a116dae16 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -26,28 +26,28 @@ extern const uint8_t util_float_to_half_shift_table[512]; */ static INLINE uint32_t -util_half_to_floatui(half h) +util_half_to_floatui(uint16_t h) { unsigned exp = h >> 10; return util_half_to_float_mantissa_table[util_half_to_float_offset_table[exp] + (h & 0x3ff)] + util_half_to_float_exponent_table[exp]; } static INLINE float -util_half_to_float(half h) +util_half_to_float(uint16_t h) { union fi r; r.ui = util_half_to_floatui(h); return r.f; } -static INLINE half +static INLINE uint16_t util_floatui_to_half(uint32_t v) { unsigned signexp = v >> 23; return util_float_to_half_base_table[signexp] + ((v & 0x007fffff) >> util_float_to_half_shift_table[signexp]); } -static INLINE half +static INLINE uint16_t util_float_to_half(float f) { union fi i; diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index d645fd09bf..09d6b6c9e2 100644 --- a/src/gallium/include/pipe/p_compiler.h +++ b/src/gallium/include/pipe/p_compiler.h @@ -74,8 +74,6 @@ typedef unsigned char boolean; #define FALSE false #endif -typedef unsigned short half; - /* Function inlining */ #ifndef INLINE # ifdef __cplusplus -- cgit v1.2.3 From 783e94243a46e5d11d9db51924839a1c64a281bc Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 21:00:18 +0100 Subject: util: Add copyright header to u_half.h --- src/gallium/auxiliary/util/u_half.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/gallium/auxiliary/util/u_half.h b/src/gallium/auxiliary/util/u_half.h index 5a116dae16..ad030e90c6 100644 --- a/src/gallium/auxiliary/util/u_half.h +++ b/src/gallium/auxiliary/util/u_half.h @@ -1,3 +1,30 @@ +/************************************************************************** + * + * Copyright 2010 Luca Barbieri + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + + #ifndef U_HALF_H #define U_HALF_H -- cgit v1.2.3 From 2c06fa4682ec0dd8a9f9d15ace867a6b952fd2e8 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 22:16:18 +0100 Subject: util: Support fixed formats conversion. --- src/gallium/auxiliary/util/u_format_pack.py | 53 +++++++++++++++++++++------- src/gallium/auxiliary/util/u_format_parse.py | 4 +++ src/gallium/auxiliary/util/u_format_tests.c | 35 ++++++++++++++++++ 3 files changed, 80 insertions(+), 12 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index aaeb4ce34c..075f8caa30 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -57,7 +57,7 @@ def generate_format_type(format): print ' unsigned %s:%u;' % (channel.name, channel.size) elif channel.type == UNSIGNED: print ' unsigned %s:%u;' % (channel.name, channel.size) - elif channel.type == SIGNED: + elif channel.type in (SIGNED, FIXED): print ' int %s:%u;' % (channel.name, channel.size) elif channel.type == FLOAT: if channel.size == 32: @@ -111,7 +111,9 @@ def is_format_supported(format): for i in range(4): channel = format.channels[i] - if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT): + if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT, FIXED): + return False + if channel.type == FLOAT and channel.size not in (16, 32, 64): return False # We can only read a color from a depth/stencil format if the depth channel is present @@ -133,7 +135,7 @@ def native_type(format): channel = format.channels[0] if channel.type in (UNSIGNED, VOID): return 'uint%u_t' % channel.size - elif channel.type == SIGNED: + elif channel.type in (SIGNED, FIXED): return 'int%u_t' % channel.size elif channel.type == FLOAT: if channel.size == 16: @@ -179,12 +181,35 @@ def get_one_shift(type): assert False -def get_one(type): +def value_to_native(type, value): '''Get the value of unity for this type.''' - if type.type == 'FLOAT' or not type.norm: - return 1 + if type.type == FLOAT: + return value + if type.type == FIXED: + return int(value * (1 << (type.size/2))) + if not type.norm: + return int(value) + if type.type == UNSIGNED: + return int(value * ((1 << type.size) - 1)) + if type.type == SIGNED: + return int(value * ((1 << (type.size - 1)) - 1)) + assert False + + +def native_to_constant(type, value): + '''Get the value of unity for this type.''' + if type.type == FLOAT: + if type.size <= 32: + return "%ff" % value + else: + return "%ff" % value else: - return (1 << get_one_shift(type)) - 1 + return str(int(value)) + + +def get_one(type): + '''Get the value of unity for this type.''' + return value_to_native(type, 1) def clamp_expr(src_channel, dst_channel, dst_native_type, value): @@ -198,15 +223,19 @@ def clamp_expr(src_channel, dst_channel, dst_native_type, value): src_max = src_channel.max() dst_min = dst_channel.min() dst_max = dst_channel.max() + + # Translate the destination range to the src native value + dst_min_native = value_to_native(src_channel, dst_min) + dst_max_native = value_to_native(src_channel, dst_max) if src_min < dst_min and src_max > dst_max: - return 'CLAMP(%s, %s, %s)' % (value, dst_min, dst_max) + return 'CLAMP(%s, %s, %s)' % (value, dst_min_native, dst_max_native) if src_max > dst_max: - return 'MIN2(%s, %s)' % (value, dst_max) + return 'MIN2(%s, %s)' % (value, dst_max_native) if src_min < dst_min: - return 'MAX2(%s, %s)' % (value, dst_min) + return 'MAX2(%s, %s)' % (value, dst_min_native) return value @@ -290,7 +319,7 @@ def conversion_expr(src_channel, # Promote to either float or double if src_type != FLOAT: - if src_norm: + if src_norm or src_type == FIXED: one = get_one(src_channel) if src_size <= 23: value = '(%s * (1.0f/0x%x))' % (value, one) @@ -314,7 +343,7 @@ def conversion_expr(src_channel, # Convert double or float to non-float if dst_channel.type != FLOAT: - if dst_channel.norm: + if dst_channel.norm or dst_channel.type == FIXED: dst_one = get_one(dst_channel) if dst_channel.size <= 23: value = '(%s * 0x%x)' % (value, dst_one) diff --git a/src/gallium/auxiliary/util/u_format_parse.py b/src/gallium/auxiliary/util/u_format_parse.py index 03dc62d329..96e6451d0d 100755 --- a/src/gallium/auxiliary/util/u_format_parse.py +++ b/src/gallium/auxiliary/util/u_format_parse.py @@ -73,6 +73,8 @@ class Channel: '''Maximum representable number.''' if self.type == FLOAT: return VERY_LARGE + if self.type == FIXED: + return (1 << (self.size/2)) - 1 if self.norm: return 1 if self.type == UNSIGNED: @@ -85,6 +87,8 @@ class Channel: '''Minimum representable number.''' if self.type == FLOAT: return -VERY_LARGE + if self.type == FIXED: + return -(1 << (self.size/2)) if self.type == UNSIGNED: return 0 if self.norm: diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index 55ce283f02..095c4db8e2 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -836,6 +836,41 @@ util_format_test_cases[] = {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0x3c00), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x0000, 0x0000, 0x0000, 0xbc00), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, {PIPE_FORMAT_R16G16B16A16_FLOAT, PACKED_4x16(0xffff, 0xffff, 0xffff, 0xffff), PACKED_4x16(0x3c00, 0x3c00, 0x3c00, 0x3c00), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, + + /* + * 32-bit fixed point formats + */ + + {PIPE_FORMAT_R32_FIXED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_FIXED, PACKED_1x32(0xffffffff), PACKED_1x32(0x00010000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32_FIXED, PACKED_1x32(0xffffffff), PACKED_1x32(0xffff0000), UNPACKED_1x1( -1.0, 0.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00010000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0xffff0000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0x00010000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00000000, 0xffff0000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32_FIXED, PACKED_2x32(0xffffffff, 0xffffffff), PACKED_2x32(0x00010000, 0x00010000), UNPACKED_1x1( 1.0, 1.0, 0.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00010000, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0xffff0000, 0x00000000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00010000, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0xffff0000, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0x00010000), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00000000, 0x00000000, 0xffff0000), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + {PIPE_FORMAT_R32G32B32_FIXED, PACKED_3x32(0xffffffff, 0xffffffff, 0xffffffff), PACKED_3x32(0x00010000, 0x00010000, 0x00010000), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, + + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00010000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0xffff0000, 0x00000000, 0x00000000, 0x00000000), UNPACKED_1x1(-1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00010000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0xffff0000, 0x00000000, 0x00000000), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00010000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0xffff0000, 0x00000000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00010000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xffff0000), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, + {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00010000, 0x00010000, 0x00010000, 0x00010000), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, }; -- cgit v1.2.3 From 40bac07f9b5182890719151c99e9d9035e7984e7 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 7 Apr 2010 22:17:07 +0100 Subject: gallivm: Get the format translation logic write. --- src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 24 ++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c index 433134b809..459a6bfe3f 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c @@ -113,7 +113,7 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, unsigned start; unsigned chan; - /* FIXME: Support more pixel formats */ + assert(format_desc->layout == UTIL_FORMAT_LAYOUT_PLAIN); assert(format_desc->block.width == 1); assert(format_desc->block.height == 1); assert(format_desc->block.bits <= type.width); @@ -227,8 +227,17 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder, break; case UTIL_FORMAT_TYPE_FIXED: - assert(0); - input = lp_build_undef(type); + if (type.floating) { + double scale = 1.0 / ((1 << (format_desc->channel[chan].size/2)) - 1); + LLVMValueRef scale_val = lp_build_const_vec(type, scale); + input = LLVMBuildSIToFP(builder, input, lp_build_vec_type(type), ""); + input = LLVMBuildMul(builder, input, scale_val, ""); + } + else { + /* FIXME */ + assert(0); + input = lp_build_undef(type); + } break; default: @@ -262,9 +271,14 @@ lp_build_fetch_rgba_soa(LLVMBuilderRef builder, LLVMValueRef *rgba) { - if (format_desc->block.width == 1 && + if (format_desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && + (format_desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || + format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS) && + format_desc->block.width == 1 && format_desc->block.height == 1 && - format_desc->block.bits <= type.width) + format_desc->block.bits <= type.width && + (format_desc->channel[0].type != UTIL_FORMAT_TYPE_FLOAT || + format_desc->channel[0].size == 32)) { /* * The packed pixel fits into an element of the destination format. Put -- cgit v1.2.3 From 821abff8c03031603111abc17dabe7cfa28a31e1 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 7 Apr 2010 17:46:55 -0400 Subject: draw llvm: highly reduce the compilation times for draw llvm our code resets pipe_vertex_buffer's with different offsets when rendering vbo, meaning that we kept creating insane number of shaders even for simple apps e.g. geartrain had 54 shaders and it was taking almost 27 seconds just to compile them. this patch passes pipe_vertex_buffer's to the jit function and lets it to the stride/buffer_offset computation at run time. the slowdown at runtime is largely unnoticable but the we go from 54 shaders to 3, and from 27 seconds to less than 1. --- src/gallium/auxiliary/draw/draw_llvm.c | 59 ++++++++++++++++------ src/gallium/auxiliary/draw/draw_llvm.h | 58 +++------------------ .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 6 ++- 3 files changed, 56 insertions(+), 67 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 3a4e14c7a2..be73a67848 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -90,6 +90,29 @@ init_globals(struct draw_llvm *llvm) LLVMTypeRef buffer_ptr = LLVMPointerType(LLVMIntType(8), 0); llvm->buffer_ptr_type = LLVMPointerType(buffer_ptr, 0); } + /* struct pipe_vertex_buffer */ + { + LLVMTypeRef elem_types[4]; + LLVMTypeRef vb_type; + + elem_types[0] = LLVMInt32Type(); + elem_types[1] = LLVMInt32Type(); + elem_types[2] = LLVMInt32Type(); + elem_types[3] = LLVMPointerType(LLVMOpaqueType(), 0); /* vs_constants */ + + vb_type = LLVMStructType(elem_types, Elements(elem_types), 0); + + LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride, + llvm->target, vb_type, 0); + LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, buffer_offset, + llvm->target, vb_type, 2); + LP_CHECK_STRUCT_SIZE(struct pipe_vertex_buffer, + llvm->target, vb_type); + + LLVMAddTypeName(llvm->module, "pipe_vertex_buffer", vb_type); + + llvm->vb_ptr_type = LLVMPointerType(vb_type, 0); + } } static LLVMTypeRef @@ -241,7 +264,7 @@ generate_vs(struct draw_llvm *llvm, num_vs = 4; /* number of vertices per block */ #endif - tgsi_dump(tokens, 0); + /*tgsi_dump(tokens, 0);*/ lp_build_tgsi_soa(builder, tokens, vs_type, @@ -276,20 +299,22 @@ generate_fetch(LLVMBuilderRef builder, LLVMValueRef vbuffers_ptr, LLVMValueRef *res, struct pipe_vertex_element *velem, - struct pipe_vertex_buffer *vbuf, + LLVMValueRef vbuf, LLVMValueRef index) { LLVMValueRef indices = LLVMConstInt(LLVMInt64Type(), velem->vertex_buffer_index, 0); LLVMValueRef vbuffer_ptr = LLVMBuildGEP(builder, vbuffers_ptr, &indices, 1, ""); + LLVMValueRef vb_stride = draw_jit_vbuffer_stride(builder, vbuf); + LLVMValueRef vb_buffer_offset = draw_jit_vbuffer_offset(builder, vbuf); LLVMValueRef stride = LLVMBuildMul(builder, - LLVMConstInt(LLVMInt32Type(), vbuf->stride, 0), + vb_stride, index, ""); vbuffer_ptr = LLVMBuildLoad(builder, vbuffer_ptr, "vbuffer"); stride = LLVMBuildAdd(builder, stride, - LLVMConstInt(LLVMInt32Type(), vbuf->buffer_offset, 0), + vb_buffer_offset, ""); stride = LLVMBuildAdd(builder, stride, LLVMConstInt(LLVMInt32Type(), velem->src_offset, 0), @@ -549,13 +574,13 @@ convert_to_aos(LLVMBuilderRef builder, static void draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) { - LLVMTypeRef arg_types[6]; + LLVMTypeRef arg_types[7]; LLVMTypeRef func_type; LLVMValueRef context_ptr; LLVMBasicBlockRef block; LLVMBuilderRef builder; LLVMValueRef start, end, count, stride, step, io_itr; - LLVMValueRef io_ptr, vbuffers_ptr; + LLVMValueRef io_ptr, vbuffers_ptr, vb_ptr; struct draw_context *draw = llvm->draw; unsigned i, j; struct lp_build_context bld; @@ -570,6 +595,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) arg_types[3] = LLVMInt32Type(); /* start */ arg_types[4] = LLVMInt32Type(); /* count */ arg_types[5] = LLVMInt32Type(); /* stride */ + arg_types[6] = llvm->vb_ptr_type; /* pipe_vertex_buffer's */ func_type = LLVMFunctionType(LLVMVoidType(), arg_types, Elements(arg_types), 0); @@ -585,6 +611,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) start = LLVMGetParam(variant->function, 3); count = LLVMGetParam(variant->function, 4); stride = LLVMGetParam(variant->function, 5); + vb_ptr = LLVMGetParam(variant->function, 6); lp_build_name(context_ptr, "context"); lp_build_name(io_ptr, "io"); @@ -592,6 +619,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) lp_build_name(start, "start"); lp_build_name(count, "count"); lp_build_name(stride, "stride"); + lp_build_name(vb_ptr, "vb"); /* * Function body @@ -631,10 +659,13 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) LLVMConstInt(LLVMInt32Type(), i, 0), ""); for (j = 0; j < draw->pt.nr_vertex_elements; ++j) { struct pipe_vertex_element *velem = &draw->pt.vertex_element[j]; - struct pipe_vertex_buffer *vbuf = &draw->pt.vertex_buffer[ - velem->vertex_buffer_index]; + LLVMValueRef vb_index = LLVMConstInt(LLVMInt32Type(), + velem->vertex_buffer_index, + 0); + LLVMValueRef vb = LLVMBuildGEP(builder, vb_ptr, + &vb_index, 0, ""); generate_fetch(builder, vbuffers_ptr, - &aos_attribs[j][i], velem, vbuf, true_index); + &aos_attribs[j][i], velem, vb, true_index); } } convert_to_soa(builder, aos_attribs, inputs, @@ -660,7 +691,6 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) /* * Translate the LLVM IR into machine code. */ - #ifdef DEBUG if(LLVMVerifyFunction(variant->function, LLVMPrintMessageAction)) { LLVMDumpValue(variant->function); @@ -684,16 +714,13 @@ void draw_llvm_make_variant_key(struct draw_llvm *llvm, struct draw_llvm_variant_key *key) { - key->nr_vertex_buffers = llvm->draw->pt.nr_vertex_buffers; - key->nr_vertex_elements = llvm->draw->pt.nr_vertex_elements; + memset(key, 0, sizeof(struct draw_llvm_variant_key)); - memcpy(key->vertex_buffer, - llvm->draw->pt.vertex_buffer, - sizeof(struct pipe_vertex_buffer) * PIPE_MAX_ATTRIBS); + key->nr_vertex_elements = llvm->draw->pt.nr_vertex_elements; memcpy(key->vertex_element, llvm->draw->pt.vertex_element, - sizeof(struct pipe_vertex_element) * PIPE_MAX_ATTRIBS); + sizeof(struct pipe_vertex_element) * key->nr_vertex_elements); memcpy(&key->vs, &llvm->draw->vs.vertex_shader->state, diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index 774eb16d90..d1cbac4af9 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -74,54 +74,13 @@ struct draw_jit_context #define draw_jit_header_data(_builder, _ptr) \ lp_build_struct_get_ptr(_builder, _ptr, 2, "data") -/* we are construction a function of the form: -struct vertex_header { - uint32 vertex_id; +#define draw_jit_vbuffer_stride(_builder, _ptr) \ + lp_build_struct_get(_builder, _ptr, 0, "stride") - float clip[4]; - float data[][4]; -}; - -struct draw_jit_context -{ - const float *vs_constants; - const float *gs_constants; +#define draw_jit_vbuffer_offset(_builder, _ptr) \ + lp_build_struct_get(_builder, _ptr, 2, "buffer_offset") - struct draw_jit_texture textures[PIPE_MAX_SAMPLERS]; -}; - -void -draw_shader(struct draw_jit_context *context, - struct vertex_header *io, - const void *vbuffers[PIPE_MAX_ATTRIBS], - unsigned start, - unsigned count, - unsigned stride) -{ - // do a fetch and a run vertex shader - for (int i = 0; i < count; ++i) { - struct vertex_header *header = &io[i]; - header->vertex_id = 0xffff; - // follows code-genarted fetch/translate section - // for each vertex_element ... - codegened_translate(header->data[num_element], - context->vertex_elements[num_element], - context->vertex_buffers, - context->vbuffers); - - codegened_vertex_shader(header->data, context->vs_constants); - } - - for (int i = 0; i < count; i += context->primitive_size) { - struct vertex_header *prim[MAX_PRIMITIVE_SIZE]; - for (int j = 0; j < context->primitive_size; ++j) { - header[j] = &io[i + j]; - } - codegened_geometry_shader(prim, gs_constants); - } -} -*/ typedef void (*draw_jit_vert_func)(struct draw_jit_context *context, @@ -129,7 +88,8 @@ typedef void const char *vbuffers[PIPE_MAX_ATTRIBS], unsigned start, unsigned count, - unsigned stride); + unsigned stride, + struct pipe_vertex_buffer *vertex_buffers); struct draw_llvm { struct draw_context *draw; @@ -145,15 +105,13 @@ struct draw_llvm { LLVMTypeRef context_ptr_type; LLVMTypeRef vertex_header_ptr_type; LLVMTypeRef buffer_ptr_type; + LLVMTypeRef vb_ptr_type; }; - struct draw_llvm_variant_key { - struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS]; - unsigned nr_vertex_buffers; struct pipe_vertex_element vertex_element[PIPE_MAX_ATTRIBS]; - unsigned nr_vertex_elements; + unsigned nr_vertex_elements; struct pipe_shader_state vs; }; diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index aa34a3ea5f..42dcc0886f 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -53,6 +53,7 @@ struct llvm_middle_end { struct draw_llvm *llvm; struct draw_llvm_variant *variants; struct draw_llvm_variant *current_variant; + int nr_variants; }; @@ -145,6 +146,7 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle, variant = draw_llvm_prepare(fpme->llvm, nr); variant->next = fpme->variants; fpme->variants = variant; + ++fpme->nr_variants; } fpme->current_variant = variant; @@ -271,7 +273,8 @@ static void llvm_middle_end_linear_run( struct draw_pt_middle_end *middle, (const char **)draw->pt.user.vbuffer, start, count, - fpme->vertex_size ); + fpme->vertex_size, + draw->pt.vertex_buffer ); if (draw_pt_post_vs_run( fpme->post_vs, pipeline_verts, @@ -451,6 +454,7 @@ struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit_llvm( struct draw_cont fpme->variants = NULL; fpme->current_variant = NULL; + fpme->nr_variants = 0; return &fpme->base; -- cgit v1.2.3 From 4b39a0da89f5b07d4a24bc9ce52693e6c2acfe99 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 3 Apr 2010 13:34:29 +1000 Subject: texenvprogram: fix for ARB_draw_buffers. piglit has a test called fbo-drawbuffers, this fails for me on r300g, and fixing the texenv program to use the DATA outputs fixes it. Signed-off-by: Dave Airlie --- src/mesa/main/texenvprogram.c | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 7b8a8b85f2..964ba13c70 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1415,6 +1415,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, struct texenv_fragment_program p; GLuint unit; struct ureg cf, out; + int i; memset(&p, 0, sizeof(p)); p.state = key; @@ -1436,7 +1437,13 @@ create_new_program(GLcontext *ctx, struct state_key *key, p.program->Base.NumAddressRegs = 0; p.program->Base.Parameters = _mesa_new_parameter_list(); p.program->Base.InputsRead = 0x0; - p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR; + + if (ctx->DrawBuffer->_NumColorDrawBuffers == 1) + p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR; + else { + for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) + p.program->Base.OutputsWritten |= (1 << (FRAG_RESULT_DATA0 + i)); + } for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) { p.src_texture[unit] = undef; @@ -1485,22 +1492,28 @@ create_new_program(GLcontext *ctx, struct state_key *key, } cf = get_source( &p, SRC_PREVIOUS, 0 ); - out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_COLOR ); - if (key->separate_specular) { - /* Emit specular add. - */ - struct ureg s = register_input(&p, FRAG_ATTRIB_COL1); - emit_arith( &p, OPCODE_ADD, out, WRITEMASK_XYZ, 0, cf, s, undef ); - emit_arith( &p, OPCODE_MOV, out, WRITEMASK_W, 0, cf, undef, undef ); - } - else if (memcmp(&cf, &out, sizeof(cf)) != 0) { - /* Will wind up in here if no texture enabled or a couple of - * other scenarios (GL_REPLACE for instance). - */ - emit_arith( &p, OPCODE_MOV, out, WRITEMASK_XYZW, 0, cf, undef, undef ); - } + for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) { + if (ctx->DrawBuffer->_NumColorDrawBuffers == 1) + out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_COLOR ); + else { + out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i ); + } + if (key->separate_specular) { + /* Emit specular add. + */ + struct ureg s = register_input(&p, FRAG_ATTRIB_COL1); + emit_arith( &p, OPCODE_ADD, out, WRITEMASK_XYZ, 0, cf, s, undef ); + emit_arith( &p, OPCODE_MOV, out, WRITEMASK_W, 0, cf, undef, undef ); + } + else if (memcmp(&cf, &out, sizeof(cf)) != 0) { + /* Will wind up in here if no texture enabled or a couple of + * other scenarios (GL_REPLACE for instance). + */ + emit_arith( &p, OPCODE_MOV, out, WRITEMASK_XYZW, 0, cf, undef, undef ); + } + } /* Finish up: */ emit_arith( &p, OPCODE_END, undef, WRITEMASK_XYZW, 0, undef, undef, undef); -- cgit v1.2.3 From 968bf9634ec03e61441834603f13f0c914bbb0ce Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 5 Apr 2010 10:06:52 +0800 Subject: st/dri: Fix setTexBuffer2 with __DRI_TEXTURE_FORMAT_RGB. When the format is __DRI_TEXTURE_FORMAT_RGB, the texture should be treated as if there is no alpha channel. --- src/gallium/state_trackers/dri/drm/dri2.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c index 420ff0ee59..bd2517f2cd 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.c +++ b/src/gallium/state_trackers/dri/drm/dri2.c @@ -84,9 +84,25 @@ dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target, pt = drawable->textures[ST_ATTACHMENT_FRONT_LEFT]; if (pt) { + enum pipe_format internal_format = pt->format; + + if (format == __DRI_TEXTURE_FORMAT_RGB) { + /* only need to cover the formats recognized by dri_fill_st_visual */ + switch (internal_format) { + case PIPE_FORMAT_B8G8R8A8_UNORM: + internal_format = PIPE_FORMAT_B8G8R8X8_UNORM; + break; + case PIPE_FORMAT_A8R8G8B8_UNORM: + internal_format = PIPE_FORMAT_X8R8G8B8_UNORM; + break; + default: + break; + } + } + ctx->st->teximage(ctx->st, (target == GL_TEXTURE_2D) ? ST_TEXTURE_2D : ST_TEXTURE_RECT, - 0, drawable->stvis.color_format, pt, FALSE); + 0, internal_format, pt, FALSE); } } -- cgit v1.2.3 From 94e5bc23e704a25b5afc222966bce0e9bb1baafc Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 8 Apr 2010 00:18:46 -0700 Subject: llvmpipe: Remove unnecessary header. --- src/gallium/drivers/llvmpipe/lp_context.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c index d94c2da2ff..270ae451c0 100644 --- a/src/gallium/drivers/llvmpipe/lp_context.c +++ b/src/gallium/drivers/llvmpipe/lp_context.c @@ -40,7 +40,6 @@ #include "lp_context.h" #include "lp_flush.h" #include "lp_perf.h" -#include "lp_screen.h" #include "lp_state.h" #include "lp_surface.h" #include "lp_query.h" -- cgit v1.2.3 From 01ec162d5305c7dc1b20b7c54a0cc163a1ea1bcf Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 8 Apr 2010 00:30:40 -0700 Subject: draw llvm: Remove unnecessary header. --- src/gallium/auxiliary/draw/draw_llvm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index be73a67848..ef93da76f5 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -15,7 +15,6 @@ #include "util/u_cpu_detect.h" #include "util/u_string.h" -#include "tgsi/tgsi_dump.h" #include -- cgit v1.2.3 From bc2bc0306e4dd8c56bd66a8aabf2433f6689653d Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 8 Apr 2010 00:52:35 -0700 Subject: util: util_dl_close(library) before exiting util_format_s3tc_init. --- src/gallium/auxiliary/util/u_format_s3tc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 06cfdcfa8e..7ebc9f3c43 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -141,6 +141,7 @@ util_format_s3tc_init(void) debug_printf("couldn't reference all symbols in " DXTN_LIBNAME ", software DXTn compression/decompression " "unavailable"); + util_dl_close(library); return; } @@ -150,6 +151,7 @@ util_format_s3tc_init(void) util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgba_dxt5; util_format_dxtn_pack = (util_format_dxtn_pack_t)tx_compress_dxtn; util_format_s3tc_enabled = TRUE; + util_dl_close(library); } -- cgit v1.2.3 From d2f8162f91e797af5dbccec3f76a7c238e27f206 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 10:36:16 +0100 Subject: util: Don't call util_dl_close(library) when util_format_s3tc_init is successful." Otherwise the library will be unloaded and function pointers become invalid. This reverts commit bc2bc0306e4dd8c56bd66a8aabf2433f6689653d. --- src/gallium/auxiliary/util/u_format_s3tc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index 7ebc9f3c43..d1f45d751f 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -151,7 +151,6 @@ util_format_s3tc_init(void) util_format_dxt5_rgba_fetch = (util_format_dxtn_fetch_t)fetch_2d_texel_rgba_dxt5; util_format_dxtn_pack = (util_format_dxtn_pack_t)tx_compress_dxtn; util_format_s3tc_enabled = TRUE; - util_dl_close(library); } -- cgit v1.2.3 From 3ceafcf143d2e0cf73ecf116a2391e540873ca18 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 11:00:42 +0100 Subject: draw: Fix vertex buffer indexation. --- src/gallium/auxiliary/draw/draw_llvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index ef93da76f5..122e7bafe0 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -662,7 +662,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) velem->vertex_buffer_index, 0); LLVMValueRef vb = LLVMBuildGEP(builder, vb_ptr, - &vb_index, 0, ""); + &vb_index, 1, ""); generate_fetch(builder, vbuffers_ptr, &aos_attribs[j][i], velem, vb, true_index); } -- cgit v1.2.3 From 074084d5639dc0eba93d3497a5618e018b8b7433 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 8 Apr 2010 10:53:21 -0400 Subject: draw llvm: hook up the generated function into the draw elts path we were only using the jited function in the linear case, now drawelts correctly uses the same path. it results in a significant gain in real world apps (openarena went from 23fps to 29fps) --- .../draw/draw_pt_fetch_shade_pipeline_llvm.c | 40 ++++------------------ 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 42dcc0886f..f71271bd91 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -314,8 +314,6 @@ llvm_middle_end_linear_run_elts( struct draw_pt_middle_end *middle, { struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle; struct draw_context *draw = fpme->draw; - struct draw_vertex_shader *shader = draw->vs.vertex_shader; - struct draw_geometry_shader *geometry_shader = draw->gs.geometry_shader; unsigned opt = fpme->opt; unsigned alloc_count = align( count, 4 ); @@ -325,37 +323,13 @@ llvm_middle_end_linear_run_elts( struct draw_pt_middle_end *middle, if (!pipeline_verts) return FALSE; - /* Fetch into our vertex buffer - */ - draw_pt_fetch_run_linear( fpme->fetch, - start, - count, - (char *)pipeline_verts ); - - /* Run the shader, note that this overwrites the data[] parts of - * the pipeline verts. If there is no shader, ie if - * bypass_vs_clip_and_viewport, then the inputs == outputs, and are - * already in the correct place. - */ - if (opt & PT_SHADE) - { - shader->run_linear(shader, - (const float (*)[4])pipeline_verts->data, - ( float (*)[4])pipeline_verts->data, - draw->pt.user.vs_constants, - count, - fpme->vertex_size, - fpme->vertex_size); - - if (geometry_shader) - draw_geometry_shader_run(geometry_shader, - (const float (*)[4])pipeline_verts->data, - ( float (*)[4])pipeline_verts->data, - draw->pt.user.gs_constants, - count, - fpme->vertex_size, - fpme->vertex_size); - } + fpme->current_variant->jit_func( &fpme->llvm->jit_context, + pipeline_verts, + (const char **)draw->pt.user.vbuffer, + start, + count, + fpme->vertex_size, + draw->pt.vertex_buffer ); if (draw_pt_post_vs_run( fpme->post_vs, pipeline_verts, -- cgit v1.2.3 From 9599da33742b727ba714618d2d14c0486e0408f6 Mon Sep 17 00:00:00 2001 From: Li Peng Date: Thu, 8 Apr 2010 13:52:55 -0400 Subject: intel: Call intel_prepare_render() in intelClear() Make sure we have up to date buffers before we start looking at the tiling bits to determine how to clear. --- src/mesa/drivers/dri/intel/intel_blit.c | 2 -- src/mesa/drivers/dri/intel/intel_clear.c | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c index 167140d274..7d9f302dca 100644 --- a/src/mesa/drivers/dri/intel/intel_blit.c +++ b/src/mesa/drivers/dri/intel/intel_blit.c @@ -233,8 +233,6 @@ intelClearWithBlit(GLcontext *ctx, GLbitfield mask) GLuint buf; all = (cw == fb->Width && ch == fb->Height); - intel_prepare_render(intel); - /* Loop over all renderbuffers */ for (buf = 0; buf < BUFFER_COUNT && mask; buf++) { const GLbitfield bufBit = 1 << buf; diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c index 03b24e2b51..3c22118866 100644 --- a/src/mesa/drivers/dri/intel/intel_clear.c +++ b/src/mesa/drivers/dri/intel/intel_clear.c @@ -90,6 +90,10 @@ intelClear(GLcontext *ctx, GLbitfield mask) tri_mask |= (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT)); } + /* Make sure we have up to date buffers before we start looking at + * the tiling bits to determine how to clear. */ + intel_prepare_render(intel); + /* HW stencil */ if (mask & BUFFER_BIT_STENCIL) { const struct intel_region *stencilRegion -- cgit v1.2.3 From 3f626646793bf6d8d20aa277ad1bc760a4c271f5 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 16:24:43 +0100 Subject: util: Reorder the code generated function so that they are grouped by format. Makes it easier to copy and paste. --- src/gallium/auxiliary/util/u_format_pack.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 075f8caa30..95d7691036 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -657,22 +657,18 @@ def generate(formats): if is_format_supported(format): generate_format_type(format) - channel = Channel(FLOAT, False, 32) - native_type = 'float' - suffix = 'float' - - for format in formats: if not is_format_hand_written(format): + channel = Channel(FLOAT, False, 32) + native_type = 'float' + suffix = 'float' + generate_format_unpack(format, channel, native_type, suffix) generate_format_pack(format, channel, native_type, suffix) generate_format_fetch(format, channel, native_type, suffix) - channel = Channel(UNSIGNED, True, 8) - native_type = 'uint8_t' - suffix = '8unorm' + channel = Channel(UNSIGNED, True, 8) + native_type = 'uint8_t' + suffix = '8unorm' - for format in formats: - if not is_format_hand_written(format): generate_format_unpack(format, channel, native_type, suffix) generate_format_pack(format, channel, native_type, suffix) - -- cgit v1.2.3 From 350bbc946a2415c687deaeb600c7effec67d5fdc Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 17:50:46 +0100 Subject: util: Keep const keyword when unpacking formats. --- src/gallium/auxiliary/util/u_format_pack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 95d7691036..800edd3429 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -3,7 +3,7 @@ ''' /************************************************************************** * - * Copyright 2009 VMware, Inc. + * Copyright 2009-2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -376,7 +376,7 @@ def generate_unpack_kernel(format, dst_channel, dst_native_type): if format.is_bitmask(): depth = format.block_size() - print ' uint%u_t value = *(uint%u_t *)src;' % (depth, depth) + print ' uint%u_t value = *(const uint%u_t *)src;' % (depth, depth) # Declare the intermediate variables for i in range(format.nr_channels()): -- cgit v1.2.3 From 948ac631123d814f3223b7fd9a00aa60e3c8bdf0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 17:51:31 +0100 Subject: util: is_array/mixed/etc is only meaningful for plain formats. --- src/gallium/auxiliary/util/u_format_parse.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format_parse.py b/src/gallium/auxiliary/util/u_format_parse.py index 96e6451d0d..7076c676aa 100755 --- a/src/gallium/auxiliary/util/u_format_parse.py +++ b/src/gallium/auxiliary/util/u_format_parse.py @@ -138,6 +138,8 @@ class Format: return nr_channels def is_array(self): + if self.layout != PLAIN: + return False ref_channel = self.channels[0] for channel in self.channels[1:]: if channel.size and (channel.size != ref_channel.size or channel.size % 8): @@ -145,6 +147,8 @@ class Format: return True def is_mixed(self): + if self.layout != PLAIN: + return False ref_channel = self.channels[0] if ref_channel.type == VOID: ref_channel = self.channels[1] @@ -160,18 +164,24 @@ class Format: return is_pot(self.block_size()) def is_int(self): + if self.layout != PLAIN: + return False for channel in self.channels: if channel.type not in (VOID, UNSIGNED, SIGNED): return False return True def is_float(self): + if self.layout != PLAIN: + return False for channel in self.channels: if channel.type not in (VOID, FLOAT): return False return True def is_bitmask(self): + if self.layout != PLAIN: + return False if self.block_size() not in (8, 16, 32): return False for channel in self.channels: -- cgit v1.2.3 From 1320017049ba3e59e9811a9cfe942f2eef9b0d11 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 18:51:45 +0100 Subject: gallium: Add missing D3D9 color formats. --- src/gallium/include/pipe/p_format.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index c7a90a09a1..a9198097a3 100644 --- a/src/gallium/include/pipe/p_format.h +++ b/src/gallium/include/pipe/p_format.h @@ -171,6 +171,7 @@ enum pipe_format { PIPE_FORMAT_R8SG8SB8UX8U_NORM = 119, PIPE_FORMAT_R5SG5SB6U_NORM = 120, + /* TODO: re-order these */ PIPE_FORMAT_A8B8G8R8_UNORM = 121, PIPE_FORMAT_B5G5R5X1_UNORM = 122, PIPE_FORMAT_R10G10B10A2_USCALED = 123, @@ -178,6 +179,12 @@ enum pipe_format { PIPE_FORMAT_R9G9B9E5_FLOAT = 125, PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED = 126, PIPE_FORMAT_R1_UNORM = 127, + PIPE_FORMAT_R10G10B10X2_USCALED = 128, + PIPE_FORMAT_R10G10B10X2_SNORM = 129, + PIPE_FORMAT_L4A4_UNORM = 130, + PIPE_FORMAT_B10G10R10A2_UNORM = 131, + PIPE_FORMAT_R10SG10SB10SA2U_NORM = 132, + PIPE_FORMAT_R8G8Bx_SNORM = 133, PIPE_FORMAT_COUNT }; -- cgit v1.2.3 From 956b2f74d8048ee9e0cfde4704bb9a5e438c3b03 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 18:55:51 +0100 Subject: util: Describe, implement, and test the new D3D9 color formats. --- src/gallium/auxiliary/Makefile | 1 + src/gallium/auxiliary/SConscript | 1 + src/gallium/auxiliary/util/u_format.csv | 24 ++- src/gallium/auxiliary/util/u_format_other.c | 267 ++++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format_other.h | 108 +++++++++++ src/gallium/auxiliary/util/u_format_pack.py | 3 +- src/gallium/auxiliary/util/u_format_tests.c | 53 +++++- 7 files changed, 450 insertions(+), 7 deletions(-) create mode 100644 src/gallium/auxiliary/util/u_format_other.c create mode 100644 src/gallium/auxiliary/util/u_format_other.h diff --git a/src/gallium/auxiliary/Makefile b/src/gallium/auxiliary/Makefile index 0015ccd715..8d0ed67d94 100644 --- a/src/gallium/auxiliary/Makefile +++ b/src/gallium/auxiliary/Makefile @@ -106,6 +106,7 @@ C_SOURCES = \ util/u_dl.c \ util/u_draw_quad.c \ util/u_format.c \ + util/u_format_other.c \ util/u_format_s3tc.c \ util/u_format_srgb.c \ util/u_format_table.c \ diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript index b6dcd54a35..cadf246058 100644 --- a/src/gallium/auxiliary/SConscript +++ b/src/gallium/auxiliary/SConscript @@ -155,6 +155,7 @@ source = [ 'util/u_dl.c', 'util/u_draw_quad.c', 'util/u_format.c', + 'util/u_format_other.c', 'util/u_format_s3tc.c', 'util/u_format_srgb.c', 'util/u_format_table.c', diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv index f23352fcad..6b89a84577 100644 --- a/src/gallium/auxiliary/util/u_format.csv +++ b/src/gallium/auxiliary/util/u_format.csv @@ -72,11 +72,13 @@ PIPE_FORMAT_B5G5R5A1_UNORM , plain, 1, 1, un5 , un5 , un5 , un1 , zyxw, r PIPE_FORMAT_B4G4R4A4_UNORM , plain, 1, 1, un4 , un4 , un4 , un4 , zyxw, rgb PIPE_FORMAT_B5G6R5_UNORM , plain, 1, 1, un5 , un6 , un5 , , zyx1, rgb PIPE_FORMAT_R10G10B10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , xyzw, rgb +PIPE_FORMAT_B10G10R10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , zyxw, rgb # Luminance/Intensity/Alpha formats PIPE_FORMAT_L8_UNORM , plain, 1, 1, un8 , , , , xxx1, rgb PIPE_FORMAT_A8_UNORM , plain, 1, 1, un8 , , , , 000x, rgb PIPE_FORMAT_I8_UNORM , plain, 1, 1, un8 , , , , xxxx, rgb +PIPE_FORMAT_L4A4_UNORM , plain, 1, 1, un4 , un4 , , , xxxy, rgb PIPE_FORMAT_L8A8_UNORM , plain, 1, 1, un8 , un8 , , , xxxy, rgb PIPE_FORMAT_L16_UNORM , plain, 1, 1, un16, , , , xxx1, rgb @@ -94,6 +96,7 @@ PIPE_FORMAT_X8R8G8B8_SRGB , plain, 1, 1, x8 , un8 , un8 , un8 , yzw1, s # Mixed-sign formats (typically used for bump map textures) PIPE_FORMAT_R8SG8SB8UX8U_NORM , plain, 1, 1, sn8 , sn8 , un8 , x8 , xyz1, rgb +PIPE_FORMAT_R10SG10SB10SA2U_NORM , plain, 1, 1, sn10, sn10, sn10, un2 , xyzw, rgb PIPE_FORMAT_R5SG5SB6U_NORM , plain, 1, 1, sn5 , sn5 , un6 , , xyz1, rgb # Depth-stencil formats @@ -121,6 +124,8 @@ PIPE_FORMAT_R10G10B10A2_USCALED , plain, 1, 1, u10 , u10 , u10 , u2 , x PIPE_FORMAT_R11G11B10_FLOAT , plain, 1, 1, f11 , f11 , f10 , , xyz1, rgb PIPE_FORMAT_R9G9B9E5_FLOAT , other, 1, 1, x32 , , , , xyz1, rgb PIPE_FORMAT_R1_UNORM , other, 8, 1, x8 , , , , x001, rgb +# A.k.a. D3DFMT_CxV8U8 +PIPE_FORMAT_R8G8Bx_SNORM , other, 1, 1, sn8 , sn8 , , , xyz1, rgb # Compressed formats # - http://en.wikipedia.org/wiki/S3_Texture_Compression @@ -171,10 +176,6 @@ PIPE_FORMAT_R32_SSCALED , plain, 1, 1, s32 , , , , x001, r PIPE_FORMAT_R32G32_SSCALED , plain, 1, 1, s32 , s32 , , , xy01, rgb PIPE_FORMAT_R32G32B32_SSCALED , plain, 1, 1, s32 , s32 , s32 , , xyz1, rgb PIPE_FORMAT_R32G32B32A32_SSCALED , plain, 1, 1, s32 , s32 , s32 , s32 , xyzw, rgb -PIPE_FORMAT_R32_FIXED , plain, 1, 1, h32 , , , , x001, rgb -PIPE_FORMAT_R32G32_FIXED , plain, 1, 1, h32 , h32 , , , xy01, rgb -PIPE_FORMAT_R32G32B32_FIXED , plain, 1, 1, h32 , h32 , h32 , , xyz1, rgb -PIPE_FORMAT_R32G32B32A32_FIXED , plain, 1, 1, h32 , h32 , h32 , h32 , xyzw, rgb PIPE_FORMAT_R16_FLOAT , plain, 1, 1, f16 , , , , x001, rgb PIPE_FORMAT_R16G16_FLOAT , plain, 1, 1, f16 , f16 , , , xy01, rgb PIPE_FORMAT_R16G16B16_FLOAT , plain, 1, 1, f16 , f16 , f16 , , xyz1, rgb @@ -211,3 +212,18 @@ PIPE_FORMAT_R8_SSCALED , plain, 1, 1, s8 , , , , x001, r PIPE_FORMAT_R8G8_SSCALED , plain, 1, 1, s8 , s8 , , , xy01, rgb PIPE_FORMAT_R8G8B8_SSCALED , plain, 1, 1, s8 , s8 , s8 , , xyz1, rgb PIPE_FORMAT_R8G8B8A8_SSCALED , plain, 1, 1, s8 , s8 , s8 , s8 , xyzw, rgb + +# GL-specific vertex buffer element formats +# A.k.a. GL_FIXED +PIPE_FORMAT_R32_FIXED , plain, 1, 1, h32 , , , , x001, rgb +PIPE_FORMAT_R32G32_FIXED , plain, 1, 1, h32 , h32 , , , xy01, rgb +PIPE_FORMAT_R32G32B32_FIXED , plain, 1, 1, h32 , h32 , h32 , , xyz1, rgb +PIPE_FORMAT_R32G32B32A32_FIXED , plain, 1, 1, h32 , h32 , h32 , h32 , xyzw, rgb + +# D3D9-specific vertex buffer element formats +# See also: +# - http://msdn.microsoft.com/en-us/library/bb172533.aspx +# A.k.a. D3DDECLTYPE_UDEC3 +PIPE_FORMAT_R10G10B10X2_USCALED , plain, 1, 1, u10 , u10 , u10 , x2 , xyz1, rgb +# A.k.a. D3DDECLTYPE_DEC3N +PIPE_FORMAT_R10G10B10X2_SNORM , plain, 1, 1, sn10, sn10, sn10 , x2 , xyz1, rgb diff --git a/src/gallium/auxiliary/util/u_format_other.c b/src/gallium/auxiliary/util/u_format_other.c new file mode 100644 index 0000000000..cecbe5e5a1 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_other.c @@ -0,0 +1,267 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +#include "u_math.h" +#include "u_format_other.h" + + +void +util_format_r9g9b9e5_float_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + +void +util_format_r9g9b9e5_float_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + +void +util_format_r9g9b9e5_float_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + +} + + +void +util_format_r9g9b9e5_float_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + + +void +util_format_r9g9b9e5_float_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + + +void +util_format_r1_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + + +void +util_format_r1_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + + +void +util_format_r1_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + +} + + +void +util_format_r1_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + +} + + +void +util_format_r1_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ +} + + +/* + * PIPE_FORMAT_R8G8Bx_SNORM + * + * A.k.a. D3DFMT_CxV8U8 + */ + + +void +util_format_r8g8bx_snorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for(y = 0; y < height; y += 1) { + float *dst = dst_row; + const uint16_t *src = (const uint16_t *)src_row; + for(x = 0; x < width; x += 1) { + uint16_t value = *src++; + int16_t r, g; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = ((int16_t)(value << 8)) >> 8; + g = ((int16_t)(value << 0)) >> 8; + + dst[0] = (float)(r * (1.0f/0x7f)); /* r */ + dst[1] = (float)(g * (1.0f/0x7f)); /* g */ + dst[2] = sqrtf(1.0f - dst[0] * dst[0] - dst[1] * dst[1]); /* b */ + dst[3] = 1.0f; /* a */ + dst += 4; + } + src_row += src_stride; + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_r8g8bx_snorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + for(y = 0; y < height; y += 1) { + uint8_t *dst = dst_row; + const uint16_t *src = (const uint16_t *)src_row; + for(x = 0; x < width; x += 1) { + uint16_t value = *src++; + int16_t r, g; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = ((int16_t)(value << 8)) >> 8; + g = ((int16_t)(value << 0)) >> 8; + + dst[0] = (uint8_t)(((uint16_t)MAX2(r, 0)) * 0xff / 0x7f); /* r */ + dst[1] = (uint8_t)(((uint16_t)MAX2(g, 0)) * 0xff / 0x7f); /* g */ + dst[2] = (uint8_t)sqrtf(0x7f*0x7f - r * r - g * g) * 0xff / 0x7f; /* b */ + dst[3] = 255; /* a */ + dst += 4; + } + src_row += src_stride; + dst_row += dst_stride/sizeof(*dst_row); + } +} + + +void +util_format_r8g8bx_snorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + for(y = 0; y < height; y += 1) { + const float *src = src_row; + uint16_t *dst = (uint16_t *)dst_row; + for(x = 0; x < width; x += 1) { + uint16_t value = 0; + + value |= (uint16_t)(((int8_t)(CLAMP(src[0], -1, 1) * 0x7f)) & 0xff) ; + value |= (uint16_t)((((int8_t)(CLAMP(src[1], -1, 1) * 0x7f)) & 0xff) << 8) ; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 4; + } + dst_row += dst_stride; + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_r8g8bx_snorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height) +{ + unsigned x, y; + + for(y = 0; y < height; y += 1) { + const uint8_t *src = src_row; + uint16_t *dst = (uint16_t *)dst_row; + for(x = 0; x < width; x += 1) { + uint16_t value = 0; + + value |= src[0] >> 1; + value |= (src[1] >> 1) << 8; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + *dst++ = value; + + src += 4; + } + dst_row += dst_stride; + src_row += src_stride/sizeof(*src_row); + } +} + + +void +util_format_r8g8bx_snorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j) +{ + uint16_t value = *(const uint16_t *)src; + int16_t r, g; + +#ifdef PIPE_ARCH_BIG_ENDIAN + value = util_bswap32(value); +#endif + + r = ((int16_t)(value << 8)) >> 8; + g = ((int16_t)(value << 0)) >> 8; + + dst[0] = r * (1.0f/0x7f); /* r */ + dst[1] = g * (1.0f/0x7f); /* g */ + dst[2] = sqrtf(1.0f - dst[0] * dst[0] - dst[1] * dst[1]); /* b */ + dst[3] = 1.0f; /* a */ +} diff --git a/src/gallium/auxiliary/util/u_format_other.h b/src/gallium/auxiliary/util/u_format_other.h new file mode 100644 index 0000000000..a46d698188 --- /dev/null +++ b/src/gallium/auxiliary/util/u_format_other.h @@ -0,0 +1,108 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +#ifndef U_FORMAT_OTHER_H_ +#define U_FORMAT_OTHER_H_ + + +#include "pipe/p_compiler.h" + + +void +util_format_r9g9b9e5_float_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r9g9b9e5_float_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r9g9b9e5_float_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + +void +util_format_r9g9b9e5_float_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r9g9b9e5_float_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r1_unorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r1_unorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r1_unorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + +void +util_format_r1_unorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r1_unorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8bx_snorm_unpack_float(float *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8bx_snorm_pack_float(uint8_t *dst_row, unsigned dst_stride, + const float *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8bx_snorm_fetch_float(float *dst, const uint8_t *src, + unsigned i, unsigned j); + +void +util_format_r8g8bx_snorm_unpack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +void +util_format_r8g8bx_snorm_pack_8unorm(uint8_t *dst_row, unsigned dst_stride, + const uint8_t *src_row, unsigned src_stride, + unsigned width, unsigned height); + +#endif /* U_FORMAT_OTHER_H_ */ diff --git a/src/gallium/auxiliary/util/u_format_pack.py b/src/gallium/auxiliary/util/u_format_pack.py index 800edd3429..06831d1e19 100644 --- a/src/gallium/auxiliary/util/u_format_pack.py +++ b/src/gallium/auxiliary/util/u_format_pack.py @@ -641,13 +641,14 @@ def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix): def is_format_hand_written(format): - return format.layout in ('s3tc', 'subsampled') + return format.layout in ('s3tc', 'subsampled', 'other') def generate(formats): print print '#include "pipe/p_compiler.h"' print '#include "u_math.h"' print '#include "u_format.h"' + print '#include "u_format_other.h"' print '#include "u_format_srgb.h"' print '#include "u_format_yuv.h"' print '#include "u_half.h"' diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index 095c4db8e2..b14883d5ac 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -129,6 +129,13 @@ util_format_test_cases[] = {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x3ff00000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + /* * 16-bit rendertarget formats */ @@ -172,6 +179,11 @@ util_format_test_cases[] = {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, {PIPE_FORMAT_I8_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_L4A4_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_L4A4_UNORM, PACKED_1x8(0xff), PACKED_1x8(0x0f), UNPACKED_1x1(1.0, 1.0, 1.0, 0.0)}, + {PIPE_FORMAT_L4A4_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xf0), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_L4A4_UNORM, PACKED_1x8(0xff), PACKED_1x8(0xff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00ff), UNPACKED_1x1(1.0, 1.0, 1.0, 0.0)}, {PIPE_FORMAT_L8A8_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xff00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, @@ -182,8 +194,6 @@ util_format_test_cases[] = /* * SRGB formats - * - * FIXME: Alpha appears to be linear. */ {PIPE_FORMAT_L8_SRGB, PACKED_1x8(0xff), PACKED_1x8(0x00), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, @@ -288,6 +298,15 @@ util_format_test_cases[] = {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x81, 0x00, 0x00), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, {PIPE_FORMAT_R8SG8SB8UX8U_NORM, PACKED_4x8(0xff, 0xff, 0xff, 0x00), PACKED_4x8(0x00, 0x00, 0xff, 0x00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000001ff), UNPACKED_1x1( 1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000201), UNPACKED_1x1(-1.0, 0.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x0007fc00), UNPACKED_1x1( 0.0, 1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00080400), UNPACKED_1x1( 0.0, -1.0, 0.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x1ff00000), UNPACKED_1x1( 0.0, 0.0, 1.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x20100000), UNPACKED_1x1( 0.0, 0.0, -1.0, 0.0)}, + {PIPE_FORMAT_R10SG10SB10SA2U_NORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xc0000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0011), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, @@ -295,6 +314,12 @@ util_format_test_cases[] = {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0x0220), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, {PIPE_FORMAT_R5SG5SB6U_NORM, PACKED_1x16(0xffff), PACKED_1x16(0xfc00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8Bx_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x00), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8Bx_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x7f, 0x00), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8Bx_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x81, 0x00), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8Bx_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x7f), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8Bx_SNORM, PACKED_2x8(0xff, 0xff), PACKED_2x8(0x00, 0x81), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + /* * TODO: Depth-stencil formats */ @@ -871,6 +896,30 @@ util_format_test_cases[] = {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0x00010000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00000000, 0x00000000, 0x00000000, 0xffff0000), UNPACKED_1x1( 0.0, 0.0, 0.0, -1.0)}, {PIPE_FORMAT_R32G32B32A32_FIXED, PACKED_4x32(0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff), PACKED_4x32(0x00010000, 0x00010000, 0x00010000, 0x00010000), UNPACKED_1x1( 1.0, 1.0, 1.0, 1.0)}, + + + /* + * D3D9 specific vertex formats + */ + + {PIPE_FORMAT_R10G10B10X2_USCALED, PACKED_1x32(0x3fffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_USCALED, PACKED_1x32(0x3fffffff), PACKED_1x32(0x000003ff), UNPACKED_1x1(1023.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_USCALED, PACKED_1x32(0x3fffffff), PACKED_1x32(0x000ffc00), UNPACKED_1x1( 0.0, 1023.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_USCALED, PACKED_1x32(0x3fffffff), PACKED_1x32(0x3ff00000), UNPACKED_1x1( 0.0, 0.0, 1023.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_USCALED, PACKED_1x32(0x3fffffff), PACKED_1x32(0x3fffffff), UNPACKED_1x1(1023.0, 1023.0, 1023.0, 1.0)}, + + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x00000000), UNPACKED_1x1( 0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x000001ff), UNPACKED_1x1( 1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x00000201), UNPACKED_1x1(-1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x0007fc00), UNPACKED_1x1( 0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x00080400), UNPACKED_1x1( 0.0, -1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x1ff00000), UNPACKED_1x1( 0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R10G10B10X2_SNORM, PACKED_1x32(0x3fffffff), PACKED_1x32(0x20100000), UNPACKED_1x1( 0.0, 0.0, -1.0, 1.0)}, + + /* + * Special formats that not fit anywhere else + */ + }; -- cgit v1.2.3 From 89ceb2f3c761d7287f5e2dca84d43dc16f400da0 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 19:03:05 +0100 Subject: util: (Almost) universal format translation function. Untested. --- src/gallium/auxiliary/util/u_format.c | 167 ++++++++++++++++++++++++++++++++++ src/gallium/auxiliary/util/u_format.h | 13 +++ 2 files changed, 180 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c index 7f16cf7d01..418b354a96 100644 --- a/src/gallium/auxiliary/util/u_format.c +++ b/src/gallium/auxiliary/util/u_format.c @@ -32,6 +32,9 @@ * @author Jose Fonseca */ +#include "u_math.h" +#include "u_memory.h" +#include "u_rect.h" #include "u_format.h" @@ -116,3 +119,167 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_ format_desc->pack_8unorm(dst_row, dst_stride, src_row, src_stride, w, h); } + +static INLINE boolean +util_format_fits_8unorm(const struct util_format_description *format_desc) +{ + unsigned chan; + + switch (format_desc->layout) { + + case UTIL_FORMAT_LAYOUT_S3TC: + case UTIL_FORMAT_LAYOUT_RGTC: + /* + * These are straight forward. + */ + + return TRUE; + + case UTIL_FORMAT_LAYOUT_PLAIN: + /* + * For these we can find a generic rule. + */ + + for (chan = 0; chan < format_desc->nr_channels; ++chan) { + switch (format_desc->channel[chan].type) { + case UTIL_FORMAT_TYPE_VOID: + break; + case UTIL_FORMAT_TYPE_UNSIGNED: + if (!format_desc->channel[chan].normalized || + format_desc->channel[chan].size > 8) { + return FALSE; + } + default: + return FALSE; + } + } + return TRUE; + + default: + /* + * Handle all others on a case by case basis. + */ + + switch (format_desc->format) { + case PIPE_FORMAT_R1_UNORM: + case PIPE_FORMAT_UYVY: + case PIPE_FORMAT_YUYV: + case PIPE_FORMAT_R8G8_B8G8_UNORM: + case PIPE_FORMAT_G8R8_G8B8_UNORM: + return TRUE; + + default: + return FALSE; + } + } +} + + +void +util_format_translate(enum pipe_format dst_format, + void *dst, unsigned dst_stride, + unsigned dst_x, unsigned dst_y, + enum pipe_format src_format, + const void *src, unsigned src_stride, + unsigned src_x, unsigned src_y, + unsigned width, unsigned height) +{ + const struct util_format_description *dst_format_desc; + const struct util_format_description *src_format_desc; + uint8_t *dst_row; + const uint8_t *src_row; + unsigned y_step; + unsigned dst_step; + unsigned src_step; + + if (dst_format == src_format) { + /* + * Trivial case. + */ + + util_copy_rect(dst, dst_format, dst_stride, dst_x, dst_y, + width, height, src, (int)src_stride, + src_x, src_y); + return; + } + + dst_format_desc = util_format_description(dst_format); + src_format_desc = util_format_description(src_format); + + assert(dst_x % dst_format_desc->block.width == 0); + assert(dst_y % dst_format_desc->block.height == 0); + assert(src_x % src_format_desc->block.width == 0); + assert(src_y % src_format_desc->block.height == 0); + + dst_row = (uint8_t *)dst + dst_y*dst_stride + dst_x*(dst_format_desc->block.bits/8); + src_row = (const uint8_t *)src + src_y*src_stride + src_x*(src_format_desc->block.bits/8); + + /* + * This works because all pixel formats have pixel blocks with power of two + * sizes. + */ + + y_step = MAX2(dst_format_desc->block.height, src_format_desc->block.height); + assert(y_step % dst_format_desc->block.height == 0); + assert(y_step % src_format_desc->block.height == 0); + + dst_step = y_step / dst_format_desc->block.height * dst_stride; + src_step = y_step / src_format_desc->block.height * src_stride; + + /* + * TODO: double formats will loose precision + * TODO: Add a special case for formats that are mere swizzles of each other + */ + + if (util_format_fits_8unorm(src_format_desc) || + util_format_fits_8unorm(dst_format_desc)) { + unsigned tmp_stride; + uint8_t *tmp_row; + + tmp_stride = width * 4 * sizeof *tmp_row; + tmp_row = MALLOC(y_step * tmp_stride); + if (!tmp_row) + return; + + while (height >= y_step) { + src_format_desc->unpack_8unorm(tmp_row, tmp_stride, src_row, src_stride, width, y_step); + dst_format_desc->pack_8unorm(dst_row, dst_stride, tmp_row, tmp_stride, width, y_step); + + dst_row += dst_step; + src_row += src_step; + height -= y_step; + } + + if (height) { + src_format_desc->unpack_8unorm(tmp_row, tmp_stride, src_row, src_stride, width, height); + dst_format_desc->pack_8unorm(dst_row, dst_stride, tmp_row, tmp_stride, width, height); + } + + FREE(tmp_row); + } + else { + unsigned tmp_stride; + float *tmp_row; + + tmp_stride = width * 4 * sizeof *tmp_row; + tmp_row = MALLOC(y_step * tmp_stride); + if (!tmp_row) + return; + + while (height >= y_step) { + src_format_desc->unpack_float(tmp_row, tmp_stride, src_row, src_stride, width, y_step); + dst_format_desc->pack_float(dst_row, dst_stride, tmp_row, tmp_stride, width, y_step); + + dst_row += dst_step; + src_row += src_step; + height -= y_step; + } + + if (height) { + src_format_desc->unpack_float(tmp_row, tmp_stride, src_row, src_stride, width, height); + dst_format_desc->pack_float(dst_row, dst_stride, tmp_row, tmp_stride, width, height); + } + + FREE(tmp_row); + } +} diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h index 93818a3161..a7c24f0c00 100644 --- a/src/gallium/auxiliary/util/u_format.h +++ b/src/gallium/auxiliary/util/u_format.h @@ -530,6 +530,19 @@ util_format_write_4ub(enum pipe_format format, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h); +/* + * Generic format conversion; + */ + +void +util_format_translate(enum pipe_format dst_format, + void *dst, unsigned dst_stride, + unsigned dst_x, unsigned dst_y, + enum pipe_format src_format, + const void *src, unsigned src_stride, + unsigned src_x, unsigned src_y, + unsigned width, unsigned height); + #ifdef __cplusplus } // extern "C" { #endif -- cgit v1.2.3 From 4459a21e07ffb21aabcc16630d2662355452e891 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 19:47:40 +0100 Subject: gallium: Add a couple more of D3D9 formats forgotten earlier. --- src/gallium/include/pipe/p_format.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h index a9198097a3..d588928982 100644 --- a/src/gallium/include/pipe/p_format.h +++ b/src/gallium/include/pipe/p_format.h @@ -185,6 +185,8 @@ enum pipe_format { PIPE_FORMAT_B10G10R10A2_UNORM = 131, PIPE_FORMAT_R10SG10SB10SA2U_NORM = 132, PIPE_FORMAT_R8G8Bx_SNORM = 133, + PIPE_FORMAT_R8G8B8X8_UNORM = 134, + PIPE_FORMAT_B4G4R4X4_UNORM = 135, PIPE_FORMAT_COUNT }; -- cgit v1.2.3 From c6781e9c78e623b64a9ecfff8a107a1c3f2923c8 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 8 Apr 2010 19:48:02 +0100 Subject: util: Support PIPE_FORMAT_B4G4R4X4_UNORM and PIPE_FORMAT_R8G8B8X8_UNORM. --- src/gallium/auxiliary/util/u_format.csv | 3 +++ src/gallium/auxiliary/util/u_format_tests.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv index 6b89a84577..016e73c4a1 100644 --- a/src/gallium/auxiliary/util/u_format.csv +++ b/src/gallium/auxiliary/util/u_format.csv @@ -67,9 +67,12 @@ PIPE_FORMAT_A8R8G8B8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , yzwx, r PIPE_FORMAT_X8R8G8B8_UNORM , plain, 1, 1, x8 , un8 , un8 , un8 , yzw1, rgb PIPE_FORMAT_A8B8G8R8_UNORM , plain, 1, 1, un8 , un8 , un8 , un8 , wzyx, rgb PIPE_FORMAT_X8B8G8R8_UNORM , plain, 1, 1, x8 , un8 , un8 , un8 , wzy1, rgb +# PIPE_FORMAT_R8G8B8A8_UNORM is below +PIPE_FORMAT_R8G8B8X8_UNORM , plain, 1, 1, un8 , un8 , un8 , x8 , xyz1, rgb PIPE_FORMAT_B5G5R5X1_UNORM , plain, 1, 1, un5 , un5 , un5 , x1 , zyx1, rgb PIPE_FORMAT_B5G5R5A1_UNORM , plain, 1, 1, un5 , un5 , un5 , un1 , zyxw, rgb PIPE_FORMAT_B4G4R4A4_UNORM , plain, 1, 1, un4 , un4 , un4 , un4 , zyxw, rgb +PIPE_FORMAT_B4G4R4X4_UNORM , plain, 1, 1, un4 , un4 , un4 , x4 , zyx1, rgb PIPE_FORMAT_B5G6R5_UNORM , plain, 1, 1, un5 , un6 , un5 , , zyx1, rgb PIPE_FORMAT_R10G10B10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , xyzw, rgb PIPE_FORMAT_B10G10R10A2_UNORM , plain, 1, 1, un10, un10, un10, un2 , zyxw, rgb diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c index b14883d5ac..60cc91bd8b 100644 --- a/src/gallium/auxiliary/util/u_format_tests.c +++ b/src/gallium/auxiliary/util/u_format_tests.c @@ -122,6 +122,13 @@ util_format_test_cases[] = {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xff000000), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_X8B8G8R8_UNORM, PACKED_1x32(0xffffff00), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x000000ff), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x0000ff00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0x00ff0000), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000003ff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)}, {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, @@ -153,6 +160,12 @@ util_format_test_cases[] = {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x8000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, {PIPE_FORMAT_B5G5R5A1_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_B4G4R4X4_UNORM, PACKED_1x16(0x0fff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B4G4R4X4_UNORM, PACKED_1x16(0x0fff), PACKED_1x16(0x000f), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)}, + {PIPE_FORMAT_B4G4R4X4_UNORM, PACKED_1x16(0x0fff), PACKED_1x16(0x00f0), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)}, + {PIPE_FORMAT_B4G4R4X4_UNORM, PACKED_1x16(0x0fff), PACKED_1x16(0x0f00), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)}, + {PIPE_FORMAT_B4G4R4X4_UNORM, PACKED_1x16(0x0fff), PACKED_1x16(0x0fff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)}, + {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)}, {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x000f), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)}, {PIPE_FORMAT_B4G4R4A4_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x00f0), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)}, -- cgit v1.2.3 From 08100aa44449e9f43d7b3b7b195d68185c109703 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 9 Apr 2010 00:40:15 -0700 Subject: util: Set DXTN_LIBNAME to libtxc_dxtn.dylib on Mac OS X. --- src/gallium/auxiliary/util/u_format_s3tc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/auxiliary/util/u_format_s3tc.c b/src/gallium/auxiliary/util/u_format_s3tc.c index d1f45d751f..35950ee47a 100644 --- a/src/gallium/auxiliary/util/u_format_s3tc.c +++ b/src/gallium/auxiliary/util/u_format_s3tc.c @@ -30,6 +30,8 @@ #if defined(_WIN32) || defined(WIN32) #define DXTN_LIBNAME "dxtn.dll" +#elif defined(__APPLE__) +#define DXTN_LIBNAME "libtxc_dxtn.dylib" #else #define DXTN_LIBNAME "libtxc_dxtn.so" #endif -- cgit v1.2.3 From f69b35fa15f43747dde29addaeec845604d7e127 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 9 Apr 2010 17:27:06 +0800 Subject: st/egl: Remove pbuffer from the native interface. A pbuffer is an EGL resource. It does not need a native display to create. --- src/gallium/state_trackers/egl/common/egl_g3d.c | 41 ++++++++----- src/gallium/state_trackers/egl/common/egl_g3d.h | 2 + src/gallium/state_trackers/egl/common/egl_g3d_st.c | 57 +++++++++++++++++- src/gallium/state_trackers/egl/common/native.h | 8 --- src/gallium/state_trackers/egl/kms/native_kms.c | 32 +--------- src/gallium/state_trackers/egl/kms/native_kms.h | 6 -- src/gallium/state_trackers/egl/x11/native_dri2.c | 69 +--------------------- src/gallium/state_trackers/egl/x11/native_ximage.c | 60 +++++-------------- 8 files changed, 105 insertions(+), 170 deletions(-) diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c index 5eabe10558..21fa6c8d4f 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d.c @@ -524,9 +524,6 @@ egl_g3d_create_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, case EGL_PIXMAP_BIT: err = "eglCreatePixmapSurface"; break; - case EGL_PBUFFER_BIT: - err = "eglCreatePBufferSurface"; - break; #ifdef EGL_MESA_screen_surface case EGL_SCREEN_BIT_MESA: err = "eglCreateScreenSurface"; @@ -558,10 +555,6 @@ egl_g3d_create_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, nsurf = gdpy->native->create_pixmap_surface(gdpy->native, arg->u.pix, gconf->native); break; - case EGL_PBUFFER_BIT: - nsurf = gdpy->native->create_pbuffer_surface(gdpy->native, - gconf->native, gsurf->base.Width, gsurf->base.Height); - break; #ifdef EGL_MESA_screen_surface case EGL_SCREEN_BIT_MESA: /* prefer back buffer (move to _eglInitSurface?) */ @@ -593,7 +586,7 @@ egl_g3d_create_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, gsurf->stfbi = egl_g3d_create_st_framebuffer(&gsurf->base); if (!gsurf->stfbi) { - gsurf->native->destroy(gsurf->native); + nsurf->destroy(nsurf); free(gsurf); return NULL; } @@ -636,12 +629,29 @@ static _EGLSurface * egl_g3d_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, const EGLint *attribs) { - struct egl_g3d_create_surface_arg arg; + struct egl_g3d_config *gconf = egl_g3d_config(conf); + struct egl_g3d_surface *gsurf; - memset(&arg, 0, sizeof(arg)); - arg.type = EGL_PBUFFER_BIT; + gsurf = CALLOC_STRUCT(egl_g3d_surface); + if (!gsurf) { + _eglError(EGL_BAD_ALLOC, "eglCreatePbufferSurface"); + return NULL; + } - return egl_g3d_create_surface(drv, dpy, conf, &arg, attribs); + if (!_eglInitSurface(&gsurf->base, dpy, EGL_PBUFFER_BIT, conf, attribs)) { + free(gsurf); + return NULL; + } + + gsurf->stvis = gconf->stvis; + + gsurf->stfbi = egl_g3d_create_st_framebuffer(&gsurf->base); + if (!gsurf->stfbi) { + free(gsurf); + return NULL; + } + + return &gsurf->base; } /** @@ -658,7 +668,8 @@ destroy_surface(_EGLDisplay *dpy, _EGLSurface *surf) pipe_texture_reference(&gsurf->render_texture, NULL); egl_g3d_destroy_st_framebuffer(gsurf->stfbi); - gsurf->native->destroy(gsurf->native); + if (gsurf->native) + gsurf->native->destroy(gsurf->native); free(gsurf); } @@ -879,7 +890,9 @@ egl_g3d_wait_native(_EGLDriver *drv, _EGLDisplay *dpy, EGLint engine) if (ctx && ctx->DrawSurface) { struct egl_g3d_surface *gsurf = egl_g3d_surface(ctx->DrawSurface); - gsurf->native->wait(gsurf->native); + + if (gsurf->native) + gsurf->native->wait(gsurf->native); } return EGL_TRUE; diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.h b/src/gallium/state_trackers/egl/common/egl_g3d.h index 2788f1bf4a..ad1c2859aa 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.h +++ b/src/gallium/state_trackers/egl/common/egl_g3d.h @@ -70,8 +70,10 @@ struct egl_g3d_surface { struct st_visual stvis; struct st_framebuffer_iface *stfbi; + /* the native surface; NULL for pbuffers */ struct native_surface *native; struct pipe_texture *render_texture; + unsigned int sequence_number; }; diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_st.c b/src/gallium/state_trackers/egl/common/egl_g3d_st.c index 9573ba09d1..f4934982ed 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_st.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d_st.c @@ -140,6 +140,53 @@ egl_g3d_destroy_st_manager(struct st_manager *smapi) free(gsmapi); } +static boolean +egl_g3d_st_framebuffer_flush_front_pbuffer(struct st_framebuffer_iface *stfbi, + enum st_attachment_type statt) +{ + return TRUE; +} + +static boolean +egl_g3d_st_framebuffer_validate_pbuffer(struct st_framebuffer_iface *stfbi, + const enum st_attachment_type *statts, + unsigned count, + struct pipe_texture **out) +{ + _EGLSurface *surf = (_EGLSurface *) stfbi->st_manager_private; + struct egl_g3d_surface *gsurf = egl_g3d_surface(surf); + struct pipe_texture templ; + unsigned i; + + for (i = 0; i < count; i++) { + out[i] = NULL; + + if (gsurf->stvis.render_buffer != statts[i]) + continue; + + if (!gsurf->render_texture) { + struct egl_g3d_display *gdpy = + egl_g3d_display(gsurf->base.Resource.Display); + struct pipe_screen *screen = gdpy->native->screen; + + memset(&templ, 0, sizeof(templ)); + templ.target = PIPE_TEXTURE_2D; + templ.last_level = 0; + templ.width0 = gsurf->base.Width; + templ.height0 = gsurf->base.Height; + templ.depth0 = 1; + templ.format = gsurf->stvis.color_format; + templ.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET; + + gsurf->render_texture = screen->texture_create(screen, &templ); + } + + pipe_texture_reference(&out[i], gsurf->render_texture); + } + + return TRUE; +} + static boolean egl_g3d_st_framebuffer_flush_front(struct st_framebuffer_iface *stfbi, enum st_attachment_type statt) @@ -246,8 +293,14 @@ egl_g3d_create_st_framebuffer(_EGLSurface *surf) return NULL; stfbi->visual = &gsurf->stvis; - stfbi->flush_front = egl_g3d_st_framebuffer_flush_front; - stfbi->validate = egl_g3d_st_framebuffer_validate; + if (gsurf->base.Type != EGL_PBUFFER_BIT) { + stfbi->flush_front = egl_g3d_st_framebuffer_flush_front; + stfbi->validate = egl_g3d_st_framebuffer_validate; + } + else { + stfbi->flush_front = egl_g3d_st_framebuffer_flush_front_pbuffer; + stfbi->validate = egl_g3d_st_framebuffer_validate_pbuffer; + } stfbi->st_manager_private = (void *) &gsurf->base; return stfbi; diff --git a/src/gallium/state_trackers/egl/common/native.h b/src/gallium/state_trackers/egl/common/native.h index 93c81b26e1..5062ea1076 100644 --- a/src/gallium/state_trackers/egl/common/native.h +++ b/src/gallium/state_trackers/egl/common/native.h @@ -197,14 +197,6 @@ struct native_display { EGLNativePixmapType pix, const struct native_config *nconf); - /** - * Create a pbuffer surface. Required unless no config has GLX_PBUFFER_BIT - * set. - */ - struct native_surface *(*create_pbuffer_surface)(struct native_display *ndpy, - const struct native_config *nconf, - uint width, uint height); - const struct native_display_modeset *modeset; }; diff --git a/src/gallium/state_trackers/egl/kms/native_kms.c b/src/gallium/state_trackers/egl/kms/native_kms.c index 3174774490..46d3b1c8b1 100644 --- a/src/gallium/state_trackers/egl/kms/native_kms.c +++ b/src/gallium/state_trackers/egl/kms/native_kms.c @@ -53,9 +53,8 @@ kms_surface_validate(struct native_surface *nsurf, uint attachment_mask, templ.height0 = ksurf->height; templ.depth0 = 1; templ.format = ksurf->color_format; - templ.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET; - if (ksurf->type == KMS_SURFACE_TYPE_SCANOUT) - templ.tex_usage |= PIPE_TEXTURE_USAGE_SCANOUT; + templ.tex_usage = + PIPE_TEXTURE_USAGE_RENDER_TARGET | PIPE_TEXTURE_USAGE_SCANOUT; } /* create textures */ @@ -155,10 +154,6 @@ kms_surface_flush_frontbuffer(struct native_surface *nsurf) struct kms_surface *ksurf = kms_surface(nsurf); struct kms_display *kdpy = ksurf->kdpy; - /* pbuffer is private */ - if (ksurf->type == KMS_SURFACE_TYPE_PBUFFER) - return TRUE; - if (ksurf->front_fb.is_passive) drmModeDirtyFB(kdpy->fd, ksurf->front_fb.buffer_id, NULL, 0); #endif @@ -176,10 +171,6 @@ kms_surface_swap_buffers(struct native_surface *nsurf) struct pipe_texture *tmp_texture; int err; - /* pbuffer is private */ - if (ksurf->type == KMS_SURFACE_TYPE_PBUFFER) - return TRUE; - if (!ksurf->back_fb.buffer_id) { if (!kms_surface_init_framebuffers(&ksurf->base, TRUE)) return FALSE; @@ -244,7 +235,6 @@ kms_surface_destroy(struct native_surface *nsurf) static struct kms_surface * kms_display_create_surface(struct native_display *ndpy, - enum kms_surface_type type, const struct native_config *nconf, uint width, uint height) { @@ -257,7 +247,6 @@ kms_display_create_surface(struct native_display *ndpy, return NULL; ksurf->kdpy = kdpy; - ksurf->type = type; ksurf->color_format = kconf->base.color_format; ksurf->width = width; ksurf->height = height; @@ -567,24 +556,10 @@ kms_display_create_scanout_surface(struct native_display *ndpy, { struct kms_surface *ksurf; - ksurf = kms_display_create_surface(ndpy, - KMS_SURFACE_TYPE_SCANOUT, nconf, width, height); - return &ksurf->base; -} - -static struct native_surface * -kms_display_create_pbuffer_surface(struct native_display *ndpy, - const struct native_config *nconf, - uint width, uint height) -{ - struct kms_surface *ksurf; - - ksurf = kms_display_create_surface(ndpy, - KMS_SURFACE_TYPE_PBUFFER, nconf, width, height); + ksurf = kms_display_create_surface(ndpy, nconf, width, height); return &ksurf->base; } - static boolean kms_display_is_format_supported(struct native_display *ndpy, enum pipe_format fmt, boolean is_color) @@ -832,7 +807,6 @@ kms_create_display(EGLNativeDisplayType dpy, kdpy->base.destroy = kms_display_destroy; kdpy->base.get_param = kms_display_get_param; kdpy->base.get_configs = kms_display_get_configs; - kdpy->base.create_pbuffer_surface = kms_display_create_pbuffer_surface; kdpy->base.modeset = &kms_display_modeset; diff --git a/src/gallium/state_trackers/egl/kms/native_kms.h b/src/gallium/state_trackers/egl/kms/native_kms.h index f9cbcb158b..b1d1b915b2 100644 --- a/src/gallium/state_trackers/egl/kms/native_kms.h +++ b/src/gallium/state_trackers/egl/kms/native_kms.h @@ -35,11 +35,6 @@ #include "common/native.h" -enum kms_surface_type { - KMS_SURFACE_TYPE_PBUFFER, - KMS_SURFACE_TYPE_SCANOUT -}; - struct kms_config; struct kms_connector; struct kms_mode; @@ -77,7 +72,6 @@ struct kms_framebuffer { struct kms_surface { struct native_surface base; - enum kms_surface_type type; enum pipe_format color_format; struct kms_display *kdpy; int width, height; diff --git a/src/gallium/state_trackers/egl/x11/native_dri2.c b/src/gallium/state_trackers/egl/x11/native_dri2.c index 8c0553ce0d..ad2fc24ed0 100644 --- a/src/gallium/state_trackers/egl/x11/native_dri2.c +++ b/src/gallium/state_trackers/egl/x11/native_dri2.c @@ -40,7 +40,6 @@ enum dri2_surface_type { DRI2_SURFACE_TYPE_WINDOW, DRI2_SURFACE_TYPE_PIXMAP, - DRI2_SURFACE_TYPE_PBUFFER }; struct dri2_display { @@ -257,47 +256,8 @@ static boolean dri2_surface_update_buffers(struct native_surface *nsurf, uint buffer_mask) { struct dri2_surface *dri2surf = dri2_surface(nsurf); - struct dri2_display *dri2dpy = dri2surf->dri2dpy; - - /* create textures for pbuffer */ - if (dri2surf->type == DRI2_SURFACE_TYPE_PBUFFER) { - struct pipe_screen *screen = dri2dpy->base.screen; - struct pipe_texture templ; - uint new_valid = 0x0; - int att; - buffer_mask &= ~dri2surf->valid_mask; - if (!buffer_mask) - return TRUE; - - memset(&templ, 0, sizeof(templ)); - templ.target = PIPE_TEXTURE_2D; - templ.last_level = 0; - templ.width0 = dri2surf->width; - templ.height0 = dri2surf->height; - templ.depth0 = 1; - templ.format = dri2surf->color_format; - templ.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET; - - for (att = 0; att < NUM_NATIVE_ATTACHMENTS; att++) { - if (native_attachment_mask_test(buffer_mask, att)) { - assert(!dri2surf->textures[att]); - - dri2surf->textures[att] = screen->texture_create(screen, &templ); - if (!dri2surf->textures[att]) - break; - - new_valid |= 1 << att; - if (new_valid == buffer_mask) - break; - } - } - dri2surf->valid_mask |= new_valid; - /* no need to update the stamps */ - } - else { - dri2_surface_get_buffers(&dri2surf->base, buffer_mask); - } + dri2_surface_get_buffers(&dri2surf->base, buffer_mask); return ((dri2surf->valid_mask & buffer_mask) == buffer_mask); } @@ -318,10 +278,6 @@ dri2_surface_flush_frontbuffer(struct native_surface *nsurf) struct dri2_surface *dri2surf = dri2_surface(nsurf); struct dri2_display *dri2dpy = dri2surf->dri2dpy; - /* pbuffer is private */ - if (dri2surf->type == DRI2_SURFACE_TYPE_PBUFFER) - return TRUE; - /* copy to real front buffer */ if (dri2surf->have_fake) x11_drawable_copy_buffers(dri2dpy->xscr, dri2surf->drawable, @@ -344,10 +300,6 @@ dri2_surface_swap_buffers(struct native_surface *nsurf) struct dri2_surface *dri2surf = dri2_surface(nsurf); struct dri2_display *dri2dpy = dri2surf->dri2dpy; - /* pbuffer is private */ - if (dri2surf->type == DRI2_SURFACE_TYPE_PBUFFER) - return TRUE; - /* copy to front buffer */ if (dri2surf->have_back) x11_drawable_copy_buffers(dri2dpy->xscr, dri2surf->drawable, @@ -504,22 +456,6 @@ dri2_display_create_pixmap_surface(struct native_display *ndpy, return (dri2surf) ? &dri2surf->base : NULL; } -static struct native_surface * -dri2_display_create_pbuffer_surface(struct native_display *ndpy, - const struct native_config *nconf, - uint width, uint height) -{ - struct dri2_surface *dri2surf; - - dri2surf = dri2_display_create_surface(ndpy, DRI2_SURFACE_TYPE_PBUFFER, - (Drawable) None, nconf); - if (dri2surf) { - dri2surf->width = width; - dri2surf->height = height; - } - return (dri2surf) ? &dri2surf->base : NULL; -} - static int choose_color_format(const __GLcontextModes *mode, enum pipe_format formats[32]) { @@ -603,7 +539,7 @@ dri2_display_convert_config(struct native_display *ndpy, nconf->mode = *mode; nconf->mode.renderType = GLX_RGBA_BIT; nconf->mode.rgbMode = TRUE; - /* pbuffer is allocated locally and is always supported */ + /* pbuffer is always supported */ nconf->mode.drawableType |= GLX_PBUFFER_BIT; /* the swap method is always copy */ nconf->mode.swapMethod = GLX_SWAP_COPY_OML; @@ -877,7 +813,6 @@ x11_create_dri2_display(EGLNativeDisplayType dpy, dri2dpy->base.is_pixmap_supported = dri2_display_is_pixmap_supported; dri2dpy->base.create_window_surface = dri2_display_create_window_surface; dri2dpy->base.create_pixmap_surface = dri2_display_create_pixmap_surface; - dri2dpy->base.create_pbuffer_surface = dri2_display_create_pbuffer_surface; return &dri2dpy->base; } diff --git a/src/gallium/state_trackers/egl/x11/native_ximage.c b/src/gallium/state_trackers/egl/x11/native_ximage.c index d69011ac5e..fdb4825b5f 100644 --- a/src/gallium/state_trackers/egl/x11/native_ximage.c +++ b/src/gallium/state_trackers/egl/x11/native_ximage.c @@ -47,7 +47,6 @@ enum ximage_surface_type { XIMAGE_SURFACE_TYPE_WINDOW, XIMAGE_SURFACE_TYPE_PIXMAP, - XIMAGE_SURFACE_TYPE_PBUFFER }; struct ximage_display { @@ -140,20 +139,19 @@ ximage_surface_alloc_buffer(struct native_surface *nsurf, templ.depth0 = 1; templ.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET; - if (xsurf->type != XIMAGE_SURFACE_TYPE_PBUFFER) { - switch (which) { - case NATIVE_ATTACHMENT_FRONT_LEFT: - case NATIVE_ATTACHMENT_FRONT_RIGHT: - templ.tex_usage |= PIPE_TEXTURE_USAGE_SCANOUT; - break; - case NATIVE_ATTACHMENT_BACK_LEFT: - case NATIVE_ATTACHMENT_BACK_RIGHT: - templ.tex_usage |= PIPE_TEXTURE_USAGE_DISPLAY_TARGET; - break; - default: - break; - } + switch (which) { + case NATIVE_ATTACHMENT_FRONT_LEFT: + case NATIVE_ATTACHMENT_FRONT_RIGHT: + templ.tex_usage |= PIPE_TEXTURE_USAGE_SCANOUT; + break; + case NATIVE_ATTACHMENT_BACK_LEFT: + case NATIVE_ATTACHMENT_BACK_RIGHT: + templ.tex_usage |= PIPE_TEXTURE_USAGE_DISPLAY_TARGET; + break; + default: + break; } + xbuf->texture = screen->texture_create(screen, &templ); if (xbuf->texture) { xbuf->xdraw.visual = xsurf->visual.visual; @@ -182,10 +180,6 @@ ximage_surface_update_geometry(struct native_surface *nsurf) unsigned int w, h, border, depth; boolean updated = FALSE; - /* pbuffer has fixed geometry */ - if (xsurf->type == XIMAGE_SURFACE_TYPE_PBUFFER) - return FALSE; - ok = XGetGeometry(xsurf->xdpy->dpy, xsurf->drawable, &root, &x, &y, &w, &h, &border, &depth); if (ok && (xsurf->width != w || xsurf->height != h)) { @@ -263,9 +257,6 @@ ximage_surface_draw_buffer(struct native_surface *nsurf, struct pipe_screen *screen = xsurf->xdpy->base.screen; struct pipe_surface *psurf; - if (xsurf->type == XIMAGE_SURFACE_TYPE_PBUFFER) - return TRUE; - assert(xsurf->drawable && xbuf->texture); psurf = xsurf->draw_surface; @@ -404,12 +395,10 @@ ximage_display_create_surface(struct native_display *ndpy, xsurf->color_format = xconf->base.color_format; xsurf->drawable = drawable; - if (xsurf->type != XIMAGE_SURFACE_TYPE_PBUFFER) { - xsurf->drawable = drawable; - xsurf->visual = *xconf->visual; - /* initialize the geometry */ - ximage_surface_update_buffers(&xsurf->base, 0x0); - } + xsurf->drawable = drawable; + xsurf->visual = *xconf->visual; + /* initialize the geometry */ + ximage_surface_update_buffers(&xsurf->base, 0x0); xsurf->base.destroy = ximage_surface_destroy; xsurf->base.swap_buffers = ximage_surface_swap_buffers; @@ -444,22 +433,6 @@ ximage_display_create_pixmap_surface(struct native_display *ndpy, return (xsurf) ? &xsurf->base : NULL; } -static struct native_surface * -ximage_display_create_pbuffer_surface(struct native_display *ndpy, - const struct native_config *nconf, - uint width, uint height) -{ - struct ximage_surface *xsurf; - - xsurf = ximage_display_create_surface(ndpy, XIMAGE_SURFACE_TYPE_PBUFFER, - (Drawable) None, nconf); - if (xsurf) { - xsurf->width = width; - xsurf->height = height; - } - return (xsurf) ? &xsurf->base : NULL; -} - static enum pipe_format choose_format(const XVisualInfo *vinfo) { @@ -718,7 +691,6 @@ x11_create_ximage_display(EGLNativeDisplayType dpy, xdpy->base.is_pixmap_supported = ximage_display_is_pixmap_supported; xdpy->base.create_window_surface = ximage_display_create_window_surface; xdpy->base.create_pixmap_surface = ximage_display_create_pixmap_surface; - xdpy->base.create_pbuffer_surface = ximage_display_create_pbuffer_surface; return &xdpy->base; } -- cgit v1.2.3 From b80b817195d47984907f46ab74d5146e91bce4cf Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 9 Apr 2010 17:49:55 +0800 Subject: st/egl: Move probe interface to native_probe.h. native.h is getting a little messy over time. --- src/gallium/state_trackers/egl/common/native.h | 38 +----------- .../state_trackers/egl/common/native_probe.h | 67 ++++++++++++++++++++++ 2 files changed, 68 insertions(+), 37 deletions(-) create mode 100644 src/gallium/state_trackers/egl/common/native_probe.h diff --git a/src/gallium/state_trackers/egl/common/native.h b/src/gallium/state_trackers/egl/common/native.h index 5062ea1076..d1b022a1b0 100644 --- a/src/gallium/state_trackers/egl/common/native.h +++ b/src/gallium/state_trackers/egl/common/native.h @@ -34,6 +34,7 @@ #include "pipe/p_context.h" #include "pipe/p_state.h" +#include "native_probe.h" #include "native_modeset.h" /** @@ -57,27 +58,6 @@ enum native_param_type { NATIVE_PARAM_USE_NATIVE_BUFFER }; -/** - * Enumerations for probe results. - */ -enum native_probe_result { - NATIVE_PROBE_UNKNOWN, - NATIVE_PROBE_FALLBACK, - NATIVE_PROBE_SUPPORTED, - NATIVE_PROBE_EXACT, -}; - -/** - * A probe object for display probe. - */ -struct native_probe { - int magic; - EGLNativeDisplayType display; - void *data; - - void (*destroy)(struct native_probe *nprobe); -}; - struct native_surface { /** * Available for caller's use. @@ -223,22 +203,6 @@ native_attachment_mask_test(uint mask, enum native_attachment att) return !!(mask & (1 << att)); } -/** - * Return a probe object for the given display. - * - * Note that the returned object may be cached and used by different native - * display modules. It allows fast probing when multiple modules probe the - * same display. - */ -struct native_probe * -native_create_probe(EGLNativeDisplayType dpy); - -/** - * Probe the probe object. - */ -enum native_probe_result -native_get_probe_result(struct native_probe *nprobe); - const char * native_get_name(void); diff --git a/src/gallium/state_trackers/egl/common/native_probe.h b/src/gallium/state_trackers/egl/common/native_probe.h new file mode 100644 index 0000000000..4ed37a524e --- /dev/null +++ b/src/gallium/state_trackers/egl/common/native_probe.h @@ -0,0 +1,67 @@ +/* + * Mesa 3-D graphics library + * Version: 7.8 + * + * Copyright (C) 2009-2010 Chia-I Wu + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _NATIVE_PROBE_H_ +#define _NATIVE_PROBE_H_ + +#include "EGL/egl.h" /* for EGL native types */ + +/** + * Enumerations for probe results. + */ +enum native_probe_result { + NATIVE_PROBE_UNKNOWN, + NATIVE_PROBE_FALLBACK, + NATIVE_PROBE_SUPPORTED, + NATIVE_PROBE_EXACT, +}; + +/** + * A probe object for display probe. + */ +struct native_probe { + int magic; + EGLNativeDisplayType display; + void *data; + + void (*destroy)(struct native_probe *nprobe); +}; + +/** + * Return a probe object for the given display. + * + * Note that the returned object may be cached and used by different native + * display modules. It allows fast probing when multiple modules probe the + * same display. + */ +struct native_probe * +native_create_probe(EGLNativeDisplayType dpy); + +/** + * Probe the probe object. + */ +enum native_probe_result +native_get_probe_result(struct native_probe *nprobe); + +#endif /* _NATIVE_PROBE_H_ */ -- cgit v1.2.3 From 9c2efb071f8b0a377b6a6e713cbae332b64a6705 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Tue, 24 Nov 2009 07:42:44 -0800 Subject: util: Include u_debug for debug_print_format. Caused fun linker errors on r600g. --- src/gallium/auxiliary/util/u_pack_color.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/auxiliary/util/u_pack_color.h b/src/gallium/auxiliary/util/u_pack_color.h index ad4a06dc77..3ebef9fb74 100644 --- a/src/gallium/auxiliary/util/u_pack_color.h +++ b/src/gallium/auxiliary/util/u_pack_color.h @@ -37,6 +37,7 @@ #include "pipe/p_compiler.h" #include "pipe/p_format.h" +#include "util/u_debug.h" #include "util/u_format.h" #include "util/u_math.h" -- cgit v1.2.3 From d2cf1e85c88890b60fdfa1b0236a90bb6916d267 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Fri, 9 Apr 2010 03:37:53 -0700 Subject: r300g: Fill out dummy fence functions. xorg st needs them. --- src/gallium/drivers/r300/r300_screen.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 894a8c28c2..00c16b8662 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -264,6 +264,26 @@ static void r300_destroy_screen(struct pipe_screen* pscreen) FREE(r300screen); } +static void r300_fence_reference(struct pipe_screen *screen, + struct pipe_fence_handle **ptr, + struct pipe_fence_handle *fence) +{ +} + +static int r300_fence_signalled(struct pipe_screen *screen, + struct pipe_fence_handle *fence, + unsigned flags) +{ + return 0; +} + +static int r300_fence_finish(struct pipe_screen *screen, + struct pipe_fence_handle *fence, + unsigned flags) +{ + return 0; +} + struct pipe_screen* r300_create_screen(struct r300_winsys_screen *rws) { struct r300_screen *r300screen = CALLOC_STRUCT(r300_screen); @@ -290,6 +310,10 @@ struct pipe_screen* r300_create_screen(struct r300_winsys_screen *rws) r300screen->screen.is_format_supported = r300_is_format_supported; r300screen->screen.context_create = r300_create_context; + r300screen->screen.fence_reference = r300_fence_reference; + r300screen->screen.fence_signalled = r300_fence_signalled; + r300screen->screen.fence_finish = r300_fence_finish; + r300_init_screen_texture_functions(&r300screen->screen); r300_screen_init_buffer_functions(r300screen); -- cgit v1.2.3 From 8ddb4e2c81c88c9320ed7fb75464e0b37f4d4536 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Fri, 9 Apr 2010 03:38:23 -0700 Subject: st/xorg: Fix bad paramf. Should be an integer param, according to docs. --- src/gallium/state_trackers/xorg/xorg_driver.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index 8ac5179545..d5dd0d761d 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -676,10 +676,8 @@ drv_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } if (ms->screen) { - float maxf; int max; - maxf = ms->screen->get_paramf(ms->screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS); - max = (1 << (int)(maxf - 1.0f)); + max = ms->screen->get_param(ms->screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS); max_width = max < max_width ? max : max_width; max_height = max < max_height ? max : max_height; } -- cgit v1.2.3 From 54526154c5b02be0fbae6b0dad766c6be1bee21c Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Fri, 9 Apr 2010 20:58:29 +1000 Subject: nouveau: Import latest nouveau_class.h from renouveau And fix nv50_screen.c to compile against the updated header. --- src/gallium/drivers/nouveau/nouveau_class.h | 9024 ++++++++++++++++++++++++++ src/gallium/drivers/nv50/nv50_screen.c | 4 +- src/mesa/drivers/dri/nouveau/nouveau_class.h | 1 + 3 files changed, 9027 insertions(+), 2 deletions(-) create mode 100644 src/gallium/drivers/nouveau/nouveau_class.h create mode 120000 src/mesa/drivers/dri/nouveau/nouveau_class.h diff --git a/src/gallium/drivers/nouveau/nouveau_class.h b/src/gallium/drivers/nouveau/nouveau_class.h new file mode 100644 index 0000000000..a701b9d631 --- /dev/null +++ b/src/gallium/drivers/nouveau/nouveau_class.h @@ -0,0 +1,9024 @@ +/************************************************************************* + + Autogenerated file, do not edit ! + + This file was generated by renouveau-gen from renouveau.xml, the + XML database of nvidia objects and methods. renouveau-gen and + renouveau.xml can be found in CVS module renouveau of sourceforge.net + project nouveau: + +cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P renouveau + +************************************************************************** + + Copyright (C) 2006-2008 : + Dmitry Baryshkov, + Laurent Carlier, + Matthieu Castet, + Dawid Gajownik, + Jeremy Kolb, + Stephane Loeuillet, + Patrice Mandin, + Stephane Marchesin, + Serge Martin, + Sylvain Munaut, + Simon Raffeiner, + Ben Skeggs, + Erik Waling, + koala_br, + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*************************************************************************/ + + +#ifndef NOUVEAU_REG_H +#define NOUVEAU_REG_H 1 + + +#define NV01_ROOT 0x00000001 + + + +#define NV01_CONTEXT_DMA 0x00000002 + + + +#define NV01_DEVICE 0x00000003 + + + +#define NV01_TIMER 0x00000004 + +#define NV01_TIMER_SYNCHRONIZE 0x00000100 +#define NV01_TIMER_STOP_ALARM 0x00000104 +#define NV01_TIMER_DMA_NOTIFY 0x00000180 +#define NV01_TIMER_TIME(x) (0x00000300+((x)*4)) +#define NV01_TIMER_TIME__SIZE 0x00000002 +#define NV01_TIMER_ALARM_NOTIFY 0x00000308 + + +#define NV01_CONTEXT_BETA1 0x00000012 + +#define NV01_CONTEXT_BETA1_NOP 0x00000100 +#define NV01_CONTEXT_BETA1_NOTIFY 0x00000104 +#define NV01_CONTEXT_BETA1_DMA_NOTIFY 0x00000180 +#define NV01_CONTEXT_BETA1_BETA_1D31 0x00000300 + + +#define NV01_CONTEXT_COLOR_KEY 0x00000017 + +#define NV01_CONTEXT_COLOR_KEY_NOP 0x00000100 +#define NV01_CONTEXT_COLOR_KEY_NOTIFY 0x00000104 +#define NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY 0x00000180 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT 0x00000300 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A8Y8 0x00000001 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X24Y8 0x00000002 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5 0x00000003 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X17R5G5B5 0x00000004 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8 0x00000005 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X8R8G8B8 0x00000006 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16Y16 0x00000007 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16Y16 0x00000008 +#define NV01_CONTEXT_COLOR_KEY_COLOR 0x00000304 + + +#define NV04_CONTEXT_COLOR_KEY 0x00000057 + + + +#define NV01_CONTEXT_PATTERN 0x00000018 + +#define NV01_CONTEXT_PATTERN_NOP 0x00000100 +#define NV01_CONTEXT_PATTERN_NOTIFY 0x00000104 +#define NV01_CONTEXT_PATTERN_DMA_NOTIFY 0x00000180 +#define NV01_CONTEXT_PATTERN_COLOR_FORMAT 0x00000300 +#define NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT 0x00000304 +#define NV01_CONTEXT_PATTERN_SHAPE 0x00000308 +#define NV01_CONTEXT_PATTERN_COLOR(x) (0x00000310+((x)*4)) +#define NV01_CONTEXT_PATTERN_COLOR__SIZE 0x00000002 +#define NV01_CONTEXT_PATTERN_PATTERN(x) (0x00000318+((x)*4)) +#define NV01_CONTEXT_PATTERN_PATTERN__SIZE 0x00000002 + + +#define NV01_CONTEXT_CLIP_RECTANGLE 0x00000019 + +#define NV01_CONTEXT_CLIP_RECTANGLE_NOP 0x00000100 +#define NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY 0x00000104 +#define NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY 0x00000180 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT 0x00000300 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_SHIFT 0 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_MASK 0x0000ffff +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_SHIFT 16 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_MASK 0xffff0000 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE 0x00000304 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_SHIFT 0 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_MASK 0x0000ffff +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_SHIFT 16 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_MASK 0xffff0000 + + +#define NV01_RENDER_SOLID_LINE 0x0000001c + +#define NV01_RENDER_SOLID_LINE_NOP 0x00000100 +#define NV01_RENDER_SOLID_LINE_NOTIFY 0x00000104 +#define NV01_RENDER_SOLID_LINE_PATCH 0x0000010c +#define NV01_RENDER_SOLID_LINE_DMA_NOTIFY 0x00000180 +#define NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE 0x00000184 +#define NV01_RENDER_SOLID_LINE_PATTERN 0x00000188 +#define NV01_RENDER_SOLID_LINE_ROP 0x0000018c +#define NV01_RENDER_SOLID_LINE_BETA1 0x00000190 +#define NV01_RENDER_SOLID_LINE_SURFACE 0x00000194 +#define NV01_RENDER_SOLID_LINE_OPERATION 0x000002fc +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND 0x00000000 +#define NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND 0x00000001 +#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND 0x00000002 +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY 0x00000003 +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT 0x00000005 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT 0x00000300 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A8Y8 0x00000001 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X24Y8 0x00000002 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5 0x00000003 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X17R5G5B5 0x00000004 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8 0x00000005 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X8R8G8B8 0x00000006 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16Y16 0x00000007 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16Y16 0x00000008 +#define NV01_RENDER_SOLID_LINE_COLOR 0x00000304 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0(x) (0x00000400+((x)*8)) +#define NV01_RENDER_SOLID_LINE_LINE_POINT0__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X_SHIFT 0 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_SHIFT 16 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1(x) (0x00000404+((x)*8)) +#define NV01_RENDER_SOLID_LINE_LINE_POINT1__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X_SHIFT 0 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_SHIFT 16 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(x) (0x00000480+((x)*16)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(x) (0x00000484+((x)*16)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(x) (0x00000488+((x)*16)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(x) (0x0000048c+((x)*16)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_POLYLINE(x) (0x00000500+((x)*4)) +#define NV01_RENDER_SOLID_LINE_POLYLINE__SIZE 0x00000020 +#define NV01_RENDER_SOLID_LINE_POLYLINE_X_SHIFT 0 +#define NV01_RENDER_SOLID_LINE_POLYLINE_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_LINE_POLYLINE_Y_SHIFT 16 +#define NV01_RENDER_SOLID_LINE_POLYLINE_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(x) (0x00000580+((x)*8)) +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(x) (0x00000584+((x)*8)) +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(x) (0x00000600+((x)*8)) +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(x) (0x00000604+((x)*8)) +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__SIZE 0x00000010 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_SHIFT 0 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_SHIFT 16 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_MASK 0xffff0000 + + +#define NV04_RENDER_SOLID_LINE 0x0000005c + +#define NV04_RENDER_SOLID_LINE_BETA4 0x00000194 +#define NV04_RENDER_SOLID_LINE_SURFACE 0x00000198 + + +#define NV01_RENDER_SOLID_TRIANGLE 0x0000001d + +#define NV01_RENDER_SOLID_TRIANGLE_NOP 0x00000100 +#define NV01_RENDER_SOLID_TRIANGLE_NOTIFY 0x00000104 +#define NV01_RENDER_SOLID_TRIANGLE_PATCH 0x0000010c +#define NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY 0x00000180 +#define NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE 0x00000184 +#define NV01_RENDER_SOLID_TRIANGLE_PATTERN 0x00000188 +#define NV01_RENDER_SOLID_TRIANGLE_ROP 0x0000018c +#define NV01_RENDER_SOLID_TRIANGLE_BETA1 0x00000190 +#define NV01_RENDER_SOLID_TRIANGLE_SURFACE 0x00000194 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION 0x000002fc +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND 0x00000000 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND 0x00000001 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND 0x00000002 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY 0x00000003 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT 0x00000005 +#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT 0x00000300 +#define NV01_RENDER_SOLID_TRIANGLE_COLOR 0x00000304 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0 0x00000310 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1 0x00000314 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2 0x00000318 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X 0x00000320 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y 0x00000324 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X 0x00000328 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y 0x0000032c +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X 0x00000330 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y 0x00000334 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH(x) (0x00000400+((x)*4)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__SIZE 0x00000020 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(x) (0x00000480+((x)*8)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__SIZE 0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(x) (0x00000484+((x)*8)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__SIZE 0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(x) (0x00000500+((x)*16)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__SIZE 0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(x) (0x00000504+((x)*16)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__SIZE 0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(x) (0x00000508+((x)*16)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__SIZE 0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(x) (0x0000050c+((x)*16)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__SIZE 0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(x) (0x00000580+((x)*8)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__SIZE 0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(x) (0x00000584+((x)*8)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__SIZE 0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_SHIFT 0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_SHIFT 16 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_MASK 0xffff0000 + + +#define NV04_RENDER_SOLID_TRIANGLE 0x0000005d + +#define NV04_RENDER_SOLID_TRIANGLE_BETA4 0x00000194 +#define NV04_RENDER_SOLID_TRIANGLE_SURFACE 0x00000198 + + +#define NV01_RENDER_SOLID_RECTANGLE 0x0000001e + +#define NV01_RENDER_SOLID_RECTANGLE_NOP 0x00000100 +#define NV01_RENDER_SOLID_RECTANGLE_NOTIFY 0x00000104 +#define NV01_RENDER_SOLID_RECTANGLE_PATCH 0x0000010c +#define NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY 0x00000180 +#define NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE 0x00000184 +#define NV01_RENDER_SOLID_RECTANGLE_PATTERN 0x00000188 +#define NV01_RENDER_SOLID_RECTANGLE_ROP 0x0000018c +#define NV01_RENDER_SOLID_RECTANGLE_BETA1 0x00000190 +#define NV01_RENDER_SOLID_RECTANGLE_SURFACE 0x00000194 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION 0x000002fc +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND 0x00000000 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND 0x00000001 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND 0x00000002 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY 0x00000003 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT 0x00000005 +#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT 0x00000300 +#define NV01_RENDER_SOLID_RECTANGLE_COLOR 0x00000304 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(x) (0x00000400+((x)*8)) +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__SIZE 0x00000010 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_SHIFT 0 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_MASK 0x0000ffff +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_SHIFT 16 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_MASK 0xffff0000 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(x) (0x00000404+((x)*8)) +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__SIZE 0x00000010 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_SHIFT 0 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_MASK 0x0000ffff +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_SHIFT 16 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_MASK 0xffff0000 + + +#define NV04_RENDER_SOLID_RECTANGLE 0x0000005e + +#define NV04_RENDER_SOLID_RECTANGLE_BETA4 0x00000194 +#define NV04_RENDER_SOLID_RECTANGLE_SURFACE 0x00000198 + + +#define NV01_IMAGE_BLIT 0x0000001f + +#define NV01_IMAGE_BLIT_NOP 0x00000100 +#define NV01_IMAGE_BLIT_NOTIFY 0x00000104 +#define NV01_IMAGE_BLIT_PATCH 0x0000010c +#define NV01_IMAGE_BLIT_DMA_NOTIFY 0x00000180 +#define NV01_IMAGE_BLIT_COLOR_KEY 0x00000184 +#define NV01_IMAGE_BLIT_CLIP_RECTANGLE 0x00000188 +#define NV01_IMAGE_BLIT_PATTERN 0x0000018c +#define NV01_IMAGE_BLIT_ROP 0x00000190 +#define NV01_IMAGE_BLIT_BETA1 0x00000194 +#define NV01_IMAGE_BLIT_SURFACE 0x0000019c +#define NV01_IMAGE_BLIT_OPERATION 0x000002fc +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND 0x00000000 +#define NV01_IMAGE_BLIT_OPERATION_ROP_AND 0x00000001 +#define NV01_IMAGE_BLIT_OPERATION_BLEND_AND 0x00000002 +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY 0x00000003 +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT 0x00000005 +#define NV01_IMAGE_BLIT_IMAGE_INPUT 0x00000204 +#define NV01_IMAGE_BLIT_POINT_IN 0x00000300 +#define NV01_IMAGE_BLIT_POINT_IN_X_SHIFT 0 +#define NV01_IMAGE_BLIT_POINT_IN_X_MASK 0x0000ffff +#define NV01_IMAGE_BLIT_POINT_IN_Y_SHIFT 16 +#define NV01_IMAGE_BLIT_POINT_IN_Y_MASK 0xffff0000 +#define NV01_IMAGE_BLIT_POINT_OUT 0x00000304 +#define NV01_IMAGE_BLIT_POINT_OUT_X_SHIFT 0 +#define NV01_IMAGE_BLIT_POINT_OUT_X_MASK 0x0000ffff +#define NV01_IMAGE_BLIT_POINT_OUT_Y_SHIFT 16 +#define NV01_IMAGE_BLIT_POINT_OUT_Y_MASK 0xffff0000 +#define NV01_IMAGE_BLIT_SIZE 0x00000308 +#define NV01_IMAGE_BLIT_SIZE_W_SHIFT 0 +#define NV01_IMAGE_BLIT_SIZE_W_MASK 0x0000ffff +#define NV01_IMAGE_BLIT_SIZE_H_SHIFT 16 +#define NV01_IMAGE_BLIT_SIZE_H_MASK 0xffff0000 + + +#define NV04_IMAGE_BLIT 0x0000005f + +#define NV04_IMAGE_BLIT_ROP 0x00000190 +#define NV04_IMAGE_BLIT_BETA4 0x00000198 +#define NV04_IMAGE_BLIT_SURFACE 0x0000019c + + +#define NV12_IMAGE_BLIT 0x0000009f + +#define NV12_IMAGE_BLIT_WAIT_FOR_IDLE 0x00000108 + + +#define NV01_IMAGE_FROM_CPU 0x00000021 + +#define NV01_IMAGE_FROM_CPU_NOP 0x00000100 +#define NV01_IMAGE_FROM_CPU_NOTIFY 0x00000104 +#define NV01_IMAGE_FROM_CPU_PATCH 0x0000010c +#define NV01_IMAGE_FROM_CPU_DMA_NOTIFY 0x00000180 +#define NV01_IMAGE_FROM_CPU_COLOR_KEY 0x00000184 +#define NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE 0x00000188 +#define NV01_IMAGE_FROM_CPU_PATTERN 0x0000018c +#define NV01_IMAGE_FROM_CPU_ROP 0x00000190 +#define NV01_IMAGE_FROM_CPU_BETA1 0x00000194 +#define NV01_IMAGE_FROM_CPU_SURFACE 0x00000198 +#define NV01_IMAGE_FROM_CPU_OPERATION 0x000002fc +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND 0x00000000 +#define NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND 0x00000001 +#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND 0x00000002 +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY 0x00000003 +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT 0x00000005 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT 0x00000300 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_Y8 0x00000001 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5 0x00000002 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5 0x00000003 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8 0x00000004 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8 0x00000005 +#define NV01_IMAGE_FROM_CPU_POINT 0x00000304 +#define NV01_IMAGE_FROM_CPU_POINT_X_SHIFT 0 +#define NV01_IMAGE_FROM_CPU_POINT_X_MASK 0x0000ffff +#define NV01_IMAGE_FROM_CPU_POINT_Y_SHIFT 16 +#define NV01_IMAGE_FROM_CPU_POINT_Y_MASK 0xffff0000 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT 0x00000308 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W_SHIFT 0 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W_MASK 0x0000ffff +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H_SHIFT 16 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H_MASK 0xffff0000 +#define NV01_IMAGE_FROM_CPU_SIZE_IN 0x0000030c +#define NV01_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT 0 +#define NV01_IMAGE_FROM_CPU_SIZE_IN_W_MASK 0x0000ffff +#define NV01_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT 16 +#define NV01_IMAGE_FROM_CPU_SIZE_IN_H_MASK 0xffff0000 +#define NV01_IMAGE_FROM_CPU_COLOR(x) (0x00000400+((x)*4)) +#define NV01_IMAGE_FROM_CPU_COLOR__SIZE 0x00000020 + + +#define NV04_IMAGE_FROM_CPU 0x00000061 + +#define NV04_IMAGE_FROM_CPU_BETA4 0x00000198 +#define NV04_IMAGE_FROM_CPU_SURFACE 0x0000019c + + +#define NV05_IMAGE_FROM_CPU 0x00000065 + +#define NV05_IMAGE_FROM_CPU_COLOR_CONVERSION 0x000002f8 + + +#define NV10_IMAGE_FROM_CPU 0x0000008a + +#define NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE 0x00000108 + + +#define NV30_IMAGE_FROM_CPU 0x0000038a + + + +#define NV40_IMAGE_FROM_CPU 0x0000308a + + + +#define NV01_NULL 0x00000030 + + + +#define NV03_STRETCHED_IMAGE_FROM_CPU 0x00000036 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_NOP 0x00000100 +#define NV03_STRETCHED_IMAGE_FROM_CPU_NOTIFY 0x00000104 +#define NV03_STRETCHED_IMAGE_FROM_CPU_PATCH 0x0000010c +#define NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY 0x00000180 +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY 0x00000184 +#define NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN 0x00000188 +#define NV03_STRETCHED_IMAGE_FROM_CPU_ROP 0x0000018c +#define NV03_STRETCHED_IMAGE_FROM_CPU_BETA1 0x00000190 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE 0x00000194 +#define NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION 0x000002fc +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT 0x00000300 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN 0x00000304 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT 0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_MASK 0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT 16 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_MASK 0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU 0x00000308 +#define NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV 0x0000030c +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT 0x00000310 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_SHIFT 0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_MASK 0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_SHIFT 16 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_MASK 0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE 0x00000314 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_SHIFT 0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_MASK 0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_SHIFT 16 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_MASK 0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4 0x00000318 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_SHIFT 0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_MASK 0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_SHIFT 16 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_MASK 0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(x) (0x00000400+((x)*4)) +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__SIZE 0x00000020 + + +#define NV04_STRETCHED_IMAGE_FROM_CPU 0x00000076 + +#define NV04_STRETCHED_IMAGE_FROM_CPU_BETA4 0x00000194 +#define NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE 0x00000198 + + +#define NV05_STRETCHED_IMAGE_FROM_CPU 0x00000066 + +#define NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION 0x000002f8 + + +#define NV30_STRETCHED_IMAGE_FROM_CPU 0x00000366 + + + +#define NV40_STRETCHED_IMAGE_FROM_CPU 0x00003066 + + + +#define NV03_SCALED_IMAGE_FROM_MEMORY 0x00000037 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_NOP 0x00000100 +#define NV03_SCALED_IMAGE_FROM_MEMORY_NOTIFY 0x00000104 +#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY 0x00000180 +#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE 0x00000184 +#define NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN 0x00000188 +#define NV03_SCALED_IMAGE_FROM_MEMORY_ROP 0x0000018c +#define NV03_SCALED_IMAGE_FROM_MEMORY_BETA1 0x00000190 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE 0x00000194 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT 0x00000300 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5 0x00000001 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5 0x00000002 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8 0x00000003 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8 0x00000004 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8 0x00000005 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8 0x00000006 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5 0x00000007 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8 0x00000008 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8 0x00000009 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION 0x00000304 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND 0x00000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND 0x00000001 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND 0x00000002 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY 0x00000003 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT 0x00000005 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT 0x00000308 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK 0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE 0x0000030c +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK 0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT 0x00000310 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK 0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE 0x00000314 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK 0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX 0x00000318 +#define NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY 0x0000031c +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE 0x00000400 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK 0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT 0x00000404 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK 0x00ff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER 0x00010000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER 0x00020000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT 24 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK 0xff000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE 0x00000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR 0x01000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET 0x00000408 +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT 0x0000040c +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_SHIFT 0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_MASK 0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_SHIFT 16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_MASK 0xffff0000 + + +#define NV04_SCALED_IMAGE_FROM_MEMORY 0x00000077 + +#define NV04_SCALED_IMAGE_FROM_MEMORY_BETA4 0x00000194 +#define NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE 0x00000198 + + +#define NV05_SCALED_IMAGE_FROM_MEMORY 0x00000063 + +#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION 0x000002fc +#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER 0x00000000 +#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE 0x00000001 +#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE 0x00000002 + + +#define NV10_SCALED_IMAGE_FROM_MEMORY 0x00000089 + +#define NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE 0x00000108 + + +#define NV30_SCALED_IMAGE_FROM_MEMORY 0x00000389 + + + +#define NV40_SCALED_IMAGE_FROM_MEMORY 0x00003089 + + + +#define NV04_DVD_SUBPICTURE 0x00000038 + +#define NV04_DVD_SUBPICTURE_NOP 0x00000100 +#define NV04_DVD_SUBPICTURE_NOTIFY 0x00000104 +#define NV04_DVD_SUBPICTURE_DMA_NOTIFY 0x00000180 +#define NV04_DVD_SUBPICTURE_DMA_OVERLAY 0x00000184 +#define NV04_DVD_SUBPICTURE_DMA_IMAGEIN 0x00000188 +#define NV04_DVD_SUBPICTURE_DMA_IMAGEOUT 0x0000018c +#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT 0x00000300 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE 0x00000304 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT 0x00000308 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_IMAGEOUT_OFFSET 0x0000030c +#define NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DU_DX 0x00000310 +#define NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DV_DY 0x00000314 +#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE 0x00000318 +#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT 0x0000031c +#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_IMAGEIN_OFFSET 0x00000320 +#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT 0x00000324 +#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_SHIFT 0 +#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_SHIFT 16 +#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DU_DX 0x00000328 +#define NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DV_DY 0x0000032c +#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE 0x00000330 +#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_SHIFT 0 +#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_SHIFT 16 +#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT 0x00000334 +#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_SHIFT 0 +#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_SHIFT 16 +#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_MASK 0xffff0000 +#define NV04_DVD_SUBPICTURE_OVERLAY_OFFSET 0x00000338 +#define NV04_DVD_SUBPICTURE_OVERLAY_POINT 0x0000033c +#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_SHIFT 0 +#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_MASK 0x0000ffff +#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_SHIFT 16 +#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_MASK 0xffff0000 + + +#define NV10_DVD_SUBPICTURE 0x00000088 + +#define NV10_DVD_SUBPICTURE_WAIT_FOR_IDLE 0x00000108 + + +#define NV04_MEMORY_TO_MEMORY_FORMAT 0x00000039 + +#define NV04_MEMORY_TO_MEMORY_FORMAT_NOP 0x00000100 +#define NV04_MEMORY_TO_MEMORY_FORMAT_NOTIFY 0x00000104 +#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY 0x00000180 +#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN 0x00000184 +#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_OUT 0x00000188 +#define NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN 0x0000030c +#define NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT 0x00000310 +#define NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_IN 0x00000314 +#define NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT 0x00000318 +#define NV04_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN 0x0000031c +#define NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT 0x00000320 +#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT 0x00000324 +#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT 0 +#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK 0x000000ff +#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT 8 +#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK 0x0000ff00 +#define NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY 0x00000328 + + +#define NV50_MEMORY_TO_MEMORY_FORMAT 0x00005039 + +#define NV50_MEMORY_TO_MEMORY_FORMAT_SERIALIZE 0x00000110 +#define NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_IN 0x00000200 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN 0x00000204 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN 0x00000208 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN 0x0000020c +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN 0x00000210 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z 0x00000214 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN 0x00000218 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_SHIFT 0 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_MASK 0x0000ffff +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_SHIFT 16 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_MASK 0xffff0000 +#define NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT 0x0000021c +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT 0x00000220 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT 0x00000224 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT 0x00000228 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT 0x0000022c +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z 0x00000230 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT 0x00000234 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_SHIFT 0 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_MASK 0x0000ffff +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_SHIFT 16 +#define NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_MASK 0xffff0000 +#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH 0x00000238 +#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH 0x0000023c + + +#define NV01_MEMORY_LOCAL_BANKED 0x0000003d + + + +#define NV01_MAPPING_SYSTEM 0x0000003e + + + +#define NV03_MEMORY_LOCAL_CURSOR 0x0000003f + + + +#define NV01_MEMORY_LOCAL_LINEAR 0x00000040 + + + +#define NV01_MAPPING_LOCAL 0x00000041 + + + +#define NV04_CONTEXT_SURFACES_2D 0x00000042 + +#define NV04_CONTEXT_SURFACES_2D_NOP 0x00000100 +#define NV04_CONTEXT_SURFACES_2D_NOTIFY 0x00000104 +#define NV04_CONTEXT_SURFACES_2D_PM_TRIGGER 0x00000140 +#define NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY 0x00000180 +#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE 0x00000184 +#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_DESTIN 0x00000188 +#define NV04_CONTEXT_SURFACES_2D_FORMAT 0x00000300 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y8 0x00000001 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_Z1R5G5B5 0x00000002 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_X1R5G5B5 0x00000003 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5 0x00000004 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y16 0x00000005 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_Z8R8G8B8 0x00000006 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_X8R8G8B8 0x00000007 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8 0x00000008 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8 0x00000009 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8 0x0000000a +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y32 0x0000000b +#define NV04_CONTEXT_SURFACES_2D_PITCH 0x00000304 +#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT 0 +#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK 0x0000ffff +#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT 16 +#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK 0xffff0000 +#define NV04_CONTEXT_SURFACES_2D_OFFSET_SOURCE 0x00000308 +#define NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN 0x0000030c + + +#define NV10_CONTEXT_SURFACES_2D 0x00000062 + + + +#define NV30_CONTEXT_SURFACES_2D 0x00000362 + + + +#define NV40_CONTEXT_SURFACES_2D 0x00003062 + + + +#define NV03_CONTEXT_ROP 0x00000043 + +#define NV03_CONTEXT_ROP_NOP 0x00000100 +#define NV03_CONTEXT_ROP_NOTIFY 0x00000104 +#define NV03_CONTEXT_ROP_DMA_NOTIFY 0x00000180 +#define NV03_CONTEXT_ROP_ROP 0x00000300 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SHIFT 0 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_MASK 0x0000000f +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_CLEAR 0x00000000 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOR 0x00000001 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_INVERTED 0x00000002 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY_INVERTED 0x00000003 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_REVERSE 0x00000004 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_INVERT 0x00000005 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_XOR 0x00000006 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NAND 0x00000007 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND 0x00000008 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_EQUI 0x00000009 +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOOP 0x0000000a +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_INVERTED 0x0000000b +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY 0x0000000c +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_REVERSE 0x0000000d +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR 0x0000000e +#define NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SET 0x0000000f +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SHIFT 4 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_MASK 0x000000f0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_CLEAR 0x00000000 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOR 0x00000010 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_INVERTED 0x00000020 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY_INVERTED 0x00000030 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_REVERSE 0x00000040 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_INVERT 0x00000050 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_XOR 0x00000060 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NAND 0x00000070 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND 0x00000080 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_EQUI 0x00000090 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOOP 0x000000a0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_INVERTED 0x000000b0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY 0x000000c0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_REVERSE 0x000000d0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR 0x000000e0 +#define NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SET 0x000000f0 + + +#define NV04_IMAGE_PATTERN 0x00000044 + +#define NV04_IMAGE_PATTERN_NOP 0x00000100 +#define NV04_IMAGE_PATTERN_NOTIFY 0x00000104 +#define NV04_IMAGE_PATTERN_DMA_NOTIFY 0x00000180 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT 0x00000300 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5 0x00000001 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_X16A1R5G5B5 0x00000002 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8 0x00000003 +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT 0x00000304 +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6 0x00000001 +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_LE 0x00000002 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE 0x00000308 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8 0x00000000 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_64X1 0x00000001 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_1X64 0x00000002 +#define NV04_IMAGE_PATTERN_PATTERN_SELECT 0x0000030c +#define NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO 0x00000001 +#define NV04_IMAGE_PATTERN_PATTERN_SELECT_COLOR 0x00000002 +#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR0 0x00000310 +#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR1 0x00000314 +#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0 0x00000318 +#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1 0x0000031c +#define NV04_IMAGE_PATTERN_PATTERN_Y8(x) (0x00000400+((x)*4)) +#define NV04_IMAGE_PATTERN_PATTERN_Y8__SIZE 0x00000010 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_SHIFT 0 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_MASK 0x000000ff +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_SHIFT 8 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_MASK 0x0000ff00 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_SHIFT 16 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_MASK 0x00ff0000 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_SHIFT 24 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_MASK 0xff000000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5(x) (0x00000500+((x)*4)) +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5__SIZE 0x00000020 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_SHIFT 0 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_MASK 0x0000001f +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_SHIFT 5 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_MASK 0x000007e0 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_SHIFT 11 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_MASK 0x0000f800 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_SHIFT 16 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_MASK 0x001f0000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_SHIFT 21 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_MASK 0x07e00000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_SHIFT 27 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_MASK 0xf8000000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5(x) (0x00000600+((x)*4)) +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__SIZE 0x00000020 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_SHIFT 0 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_MASK 0x0000001f +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_SHIFT 5 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_MASK 0x000003e0 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_SHIFT 10 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_MASK 0x00007c00 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_SHIFT 16 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_MASK 0x001f0000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_SHIFT 21 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_MASK 0x03e00000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_SHIFT 26 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_MASK 0x7c000000 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8(x) (0x00000700+((x)*4)) +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__SIZE 0x00000040 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_SHIFT 0 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_MASK 0x000000ff +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_SHIFT 8 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_MASK 0x0000ff00 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_SHIFT 16 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_MASK 0x00ff0000 + + +#define NV03_VIDEO_LUT_CURSOR_DAC 0x00000046 + +#define NV03_VIDEO_LUT_CURSOR_DAC_SYNCHRONIZE 0x00000100 +#define NV03_VIDEO_LUT_CURSOR_DAC_STOP_IMAGE 0x00000104 +#define NV03_VIDEO_LUT_CURSOR_DAC_STOP_CURSOR 0x00000108 +#define NV03_VIDEO_LUT_CURSOR_DAC_STOP_DAC 0x0000010c +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_NOTIFY 0x00000180 +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE(x) (0x00000184+((x)*4)) +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT(x) (0x0000018c+((x)*4)) +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR(x) (0x00000194+((x)*4)) +#define NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_GET 0x000002fc +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET(x) (0x00000300+((x)*8)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT(x) (0x00000304+((x)*8)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_MASK 0x0fff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_SHIFT 28 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_MASK 0xf0000000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET(x) (0x00000340+((x)*12)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT(x) (0x00000344+((x)*12)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_MASK 0xffff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT(x) (0x00000348+((x)*12)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A 0x00000358 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_MASK 0xffff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE(x) (0x00000380+((x)*16)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_MASK 0xffff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC(x) (0x00000384+((x)*16)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_MASK 0x0fff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_SHIFT 28 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_MASK 0xf0000000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC(x) (0x00000388+((x)*16)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_MASK 0x0fff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_SHIFT 28 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_MASK 0xf0000000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE(x) (0x0000038c+((x)*16)) +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE__SIZE 0x00000002 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_SHIFT 0 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_MASK 0x0000ffff +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_SHIFT 16 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_MASK 0x0fff0000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_SHIFT 28 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_MASK 0xf0000000 +#define NV03_VIDEO_LUT_CURSOR_DAC_SET_PIXEL_CLOCK 0x000003a0 + + +#define NV03_TEXTURED_TRIANGLE 0x00000048 + +#define NV03_TEXTURED_TRIANGLE_NOP 0x00000100 +#define NV03_TEXTURED_TRIANGLE_NOTIFY 0x00000104 +#define NV03_TEXTURED_TRIANGLE_PATCH 0x0000010c +#define NV03_TEXTURED_TRIANGLE_DMA_NOTIFY 0x00000180 +#define NV03_TEXTURED_TRIANGLE_DMA_TEXTURE 0x00000184 +#define NV03_TEXTURED_TRIANGLE_CLIP_RECTANGLE 0x00000188 +#define NV03_TEXTURED_TRIANGLE_SURFACE 0x0000018c +#define NV03_TEXTURED_TRIANGLE_TEXTURE_OFFSET 0x00000304 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT 0x00000308 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_MASK 0x0000ffff +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_SHIFT 16 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_MASK 0x000f0000 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT 20 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK 0x00f00000 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_SHIFT 24 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_MASK 0x0f000000 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_SHIFT 28 +#define NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_MASK 0xf0000000 +#define NV03_TEXTURED_TRIANGLE_FILTER 0x0000030c +#define NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_MASK 0x0000001f +#define NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_SHIFT 8 +#define NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_MASK 0x00001f00 +#define NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_SHIFT 16 +#define NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_MASK 0x00ff0000 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR 0x00000310 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_MASK 0x000000ff +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_SHIFT 8 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_MASK 0x0000ff00 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_SHIFT 16 +#define NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_MASK 0x00ff0000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT 0x00000314 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_MASK 0x0000000f +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_SHIFT 4 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_MASK 0x00000030 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_SHIFT 6 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_MASK 0x000000c0 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_SHIFT 8 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_MASK 0x00000f00 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_SHIFT 12 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_MASK 0x00007000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_PERSPECTIVE_ENABLE (1 << 15) +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_SHIFT 16 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_MASK 0x000f0000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_SHIFT 20 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_MASK 0x00f00000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_SHIFT 24 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_MASK 0x07000000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_SHIFT 27 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_MASK 0x18000000 +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_BETA (1 << 29) +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_DST_BLEND (1 << 30) +#define NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SRC_BLEND (1 << 31) +#define NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL 0x00000318 +#define NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK 0x000000ff +#define NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT 8 +#define NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK 0xffffff00 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x) (0x00001000+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_SHIFT 0 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_MASK 0x0000000f +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_SHIFT 4 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_MASK 0x000000f0 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_SHIFT 8 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_MASK 0x00000f00 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_SHIFT 12 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_MASK 0x0000f000 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_SHIFT 16 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_MASK 0x000f0000 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_SHIFT 20 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_MASK 0x00f00000 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT 24 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK 0xff000000 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x) (0x00001004+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SX(x) (0x00001008+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SY(x) (0x0000100c+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ(x) (0x00001010+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW(x) (0x00001014+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_TU(x) (0x00001018+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE 0x00000080 +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_TV(x) (0x0000101c+((x)*32)) +#define NV03_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE 0x00000080 + + +#define NV04_GDI_RECTANGLE_TEXT 0x0000004a + +#define NV04_GDI_RECTANGLE_TEXT_NOP 0x00000100 +#define NV04_GDI_RECTANGLE_TEXT_NOTIFY 0x00000104 +#define NV04_GDI_RECTANGLE_TEXT_PATCH 0x0000010c +#define NV04_GDI_RECTANGLE_TEXT_PM_TRIGGER 0x00000140 +#define NV04_GDI_RECTANGLE_TEXT_DMA_NOTIFY 0x00000180 +#define NV04_GDI_RECTANGLE_TEXT_DMA_FONTS 0x00000184 +#define NV04_GDI_RECTANGLE_TEXT_PATTERN 0x00000188 +#define NV04_GDI_RECTANGLE_TEXT_ROP 0x0000018c +#define NV04_GDI_RECTANGLE_TEXT_BETA1 0x00000190 +#define NV04_GDI_RECTANGLE_TEXT_BETA4 0x00000194 +#define NV04_GDI_RECTANGLE_TEXT_SURFACE 0x00000198 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION 0x000002fc +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_AND 0x00000000 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_ROP_AND 0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_AND 0x00000002 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY 0x00000003 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_PREMULT 0x00000005 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT 0x00000300 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5 0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_X16A1R5G5B5 0x00000002 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8 0x00000003 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT 0x00000304 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_CGA6 0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_LE 0x00000002 +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_A 0x000003fc +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(x) (0x00000400+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__SIZE 0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE(x) (0x00000404+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__SIZE 0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0 0x000005f4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1 0x000005f8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_B 0x000005fc +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0(x) (0x00000600+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__SIZE 0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1(x) (0x00000604+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__SIZE 0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0 0x000007ec +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1 0x000007f0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_C 0x000007f4 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C 0x000007f8 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_POINT_C 0x000007fc +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x) (0x00000800+((x)*4)) +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE 0x00000080 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0 0x00000be4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1 0x00000be8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_COLOR0_E 0x00000bec +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_E 0x00000bf0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E 0x00000bf4 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E 0x00000bf8 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_POINT_E 0x00000bfc +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x) (0x00000c00+((x)*4)) +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE 0x00000080 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F 0x00000ff0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_MASK 0x0fffffff +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_SHIFT 28 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_MASK 0xf0000000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0 0x00000ff4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1 0x00000ff8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_F 0x00000ffc +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F(x) (0x00001000+((x)*4)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__SIZE 0x00000100 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_MASK 0x000000ff +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_SHIFT 8 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_MASK 0x000fff00 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_SHIFT 20 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_MASK 0xfff00000 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G 0x000017f0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_MASK 0x0fffffff +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_SHIFT 28 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_MASK 0xf0000000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0 0x000017f4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1 0x000017f8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_G 0x000017fc +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT(x) (0x00001800+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__SIZE 0x00000100 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_SHIFT 0 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_MASK 0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_SHIFT 16 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_MASK 0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX(x) (0x00001804+((x)*8)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__SIZE 0x00000100 + + +#define NV03_GDI_RECTANGLE_TEXT 0x0000004b + +#define NV03_GDI_RECTANGLE_TEXT_NOP 0x00000100 +#define NV03_GDI_RECTANGLE_TEXT_NOTIFY 0x00000104 +#define NV03_GDI_RECTANGLE_TEXT_DMA_NOTIFY 0x00000180 +#define NV03_GDI_RECTANGLE_TEXT_PATTERN 0x00000184 +#define NV03_GDI_RECTANGLE_TEXT_ROP 0x00000188 +#define NV03_GDI_RECTANGLE_TEXT_BETA1 0x0000018c +#define NV03_GDI_RECTANGLE_TEXT_SURFACE 0x00000190 +#define NV03_GDI_RECTANGLE_TEXT_OPERATION 0x000002fc +#define NV03_GDI_RECTANGLE_TEXT_COLOR_FORMAT 0x00000300 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT 0x00000304 +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_A 0x000003fc +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT 0x00000400 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE 0x00000404 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B 0x000007f4 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B 0x000007f8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_B 0x000007fc +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0 0x00000800 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1 0x00000804 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0 0x00000bec +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1 0x00000bf0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_C 0x00000bf4 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C 0x00000bf8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_C 0x00000bfc +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x) (0x00000c00+((x)*4)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE 0x00000020 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0 0x00000fe8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1 0x00000fec +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_D 0x00000ff0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D 0x00000ff4 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D 0x00000ff8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_D 0x00000ffc +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D(x) (0x00001000+((x)*4)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__SIZE 0x00000020 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0 0x000013e4 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1 0x000013e8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_COLOR0_E 0x000013ec +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_E 0x000013f0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E 0x000013f4 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E 0x000013f8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_E 0x000013fc +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT 0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X_MASK 0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT 16 +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK 0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x) (0x00001400+((x)*4)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE 0x00000020 + + +#define NV04_SWIZZLED_SURFACE 0x00000052 + +#define NV04_SWIZZLED_SURFACE_NOP 0x00000100 +#define NV04_SWIZZLED_SURFACE_NOTIFY 0x00000104 +#define NV04_SWIZZLED_SURFACE_DMA_NOTIFY 0x00000180 +#define NV04_SWIZZLED_SURFACE_DMA_IMAGE 0x00000184 +#define NV04_SWIZZLED_SURFACE_FORMAT 0x00000300 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_SHIFT 0 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_MASK 0x000000ff +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8 0x00000001 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5 0x00000002 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_X1R5G5B5 0x00000003 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5 0x00000004 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y16 0x00000005 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8 0x00000006 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_X8R8G8B8 0x00000007 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8 0x00000008 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8 0x00000009 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8 0x0000000a +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y32 0x0000000b +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_SHIFT 16 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_MASK 0x00ff0000 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_SHIFT 24 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_MASK 0xff000000 +#define NV04_SWIZZLED_SURFACE_OFFSET 0x00000304 + + +#define NV20_SWIZZLED_SURFACE 0x0000009e + + + +#define NV30_SWIZZLED_SURFACE 0x0000039e + + + +#define NV40_SWIZZLED_SURFACE 0x0000309e + + + +#define NV04_CONTEXT_SURFACES_3D 0x00000053 + +#define NV04_CONTEXT_SURFACES_3D_NOP 0x00000100 +#define NV04_CONTEXT_SURFACES_3D_NOTIFY 0x00000104 +#define NV04_CONTEXT_SURFACES_3D_DMA_NOTIFY 0x00000180 +#define NV04_CONTEXT_SURFACES_3D_DMA_COLOR 0x00000184 +#define NV04_CONTEXT_SURFACES_3D_DMA_ZETA 0x00000188 +#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL 0x000002f8 +#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_SHIFT 0 +#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_MASK 0x0000ffff +#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_SHIFT 16 +#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_MASK 0xffff0000 +#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL 0x000002fc +#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_SHIFT 0 +#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_MASK 0x0000ffff +#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_SHIFT 16 +#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_MASK 0xffff0000 +#define NV04_CONTEXT_SURFACES_3D_FORMAT 0x00000300 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_SHIFT 0 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_MASK 0x000000ff +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5 0x00000001 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_X1R5G5B5 0x00000002 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_R5G6B5 0x00000003 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8 0x00000004 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_X8R8G8B8 0x00000005 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8 0x00000006 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8 0x00000007 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_A8R8G8B8 0x00000008 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SHIFT 8 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_MASK 0x0000ff00 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_PITCH 0x00000100 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SWIZZLE 0x00000200 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_SHIFT 16 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_MASK 0x00ff0000 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_SHIFT 24 +#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_MASK 0xff000000 +#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE 0x00000304 +#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_SHIFT 0 +#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_MASK 0x0000ffff +#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_SHIFT 16 +#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_MASK 0xffff0000 +#define NV04_CONTEXT_SURFACES_3D_PITCH 0x00000308 +#define NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_SHIFT 0 +#define NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_MASK 0x0000ffff +#define NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_SHIFT 16 +#define NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_MASK 0xffff0000 +#define NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR 0x0000030c +#define NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA 0x00000310 + + +#define NV10_CONTEXT_SURFACES_3D 0x00000093 + + + +#define NV04_TEXTURED_TRIANGLE 0x00000054 + +#define NV04_TEXTURED_TRIANGLE_NOP 0x00000100 +#define NV04_TEXTURED_TRIANGLE_NOTIFY 0x00000104 +#define NV04_TEXTURED_TRIANGLE_DMA_NOTIFY 0x00000180 +#define NV04_TEXTURED_TRIANGLE_DMA_A 0x00000184 +#define NV04_TEXTURED_TRIANGLE_DMA_B 0x00000188 +#define NV04_TEXTURED_TRIANGLE_SURFACE 0x0000018c +#define NV04_TEXTURED_TRIANGLE_COLORKEY 0x00000300 +#define NV04_TEXTURED_TRIANGLE_OFFSET 0x00000304 +#define NV04_TEXTURED_TRIANGLE_FORMAT 0x00000308 +#define NV04_TEXTURED_TRIANGLE_FORMAT_DMA_A (1 << 0) +#define NV04_TEXTURED_TRIANGLE_FORMAT_DMA_B (1 << 1) +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_SHIFT 2 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_MASK 0x0000000c +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT 4 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK 0x00000030 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER 0x00000010 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER 0x00000020 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT 6 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_MASK 0x000000c0 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER 0x00000040 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER 0x00000080 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_MASK 0x00000f00 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8 0x00000100 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5 0x00000200 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5 0x00000300 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4 0x00000400 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5 0x00000500 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8 0x00000600 +#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8 0x00000700 +#define NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT 12 +#define NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK 0x0000f000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_MASK 0x000f0000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT 20 +#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_MASK 0x00f00000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MASK 0x07000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT 0x01000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT 0x02000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE 0x03000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER 0x04000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP 0x05000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_WRAPU (1 << 27) +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_SHIFT 28 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MASK 0x70000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT 0x10000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT 0x20000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE 0x30000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER 0x40000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP 0x50000000 +#define NV04_TEXTURED_TRIANGLE_FORMAT_WRAPV (1 << 31) +#define NV04_TEXTURED_TRIANGLE_FILTER 0x0000030c +#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK 0x000000ff +#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK 0x00007f00 +#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE (1 << 15) +#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK 0x00ff0000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_MASK 0x07000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST 0x01000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR 0x02000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST 0x03000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST 0x04000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR 0x05000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR 0x06000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE (1 << 27) +#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_SHIFT 28 +#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_MASK 0x70000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST 0x10000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR 0x20000000 +#define NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE (1 << 31) +#define NV04_TEXTURED_TRIANGLE_BLEND 0x00000310 +#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MASK 0x0000000f +#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_SHIFT 4 +#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MASK 0x00000030 +#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_SHIFT 6 +#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_MASK 0x000000c0 +#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT 0x00000040 +#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD 0x00000080 +#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG 0x000000c0 +#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE (1 << 8) +#define NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE (1 << 12) +#define NV04_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE (1 << 16) +#define NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE (1 << 20) +#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_MASK 0x0f000000 +#define NV04_TEXTURED_TRIANGLE_BLEND_DST_SHIFT 28 +#define NV04_TEXTURED_TRIANGLE_BLEND_DST_MASK 0xf0000000 +#define NV04_TEXTURED_TRIANGLE_CONTROL 0x00000314 +#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_MASK 0x000000ff +#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_MASK 0x00000f00 +#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_ENABLE (1 << 12) +#define NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN (1 << 13) +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE (1 << 14) +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_MASK 0x000f0000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_SHIFT 20 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_MASK 0x00300000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_BOTH 0x00000000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_NONE 0x00100000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CW 0x00200000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CCW 0x00300000 +#define NV04_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE (1 << 22) +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE (1 << 23) +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE (1 << 24) +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_SHIFT 30 +#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_MASK 0xc0000000 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR 0x00000318 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_MASK 0x000000ff +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_MASK 0x0000ff00 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_MASK 0x00ff0000 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_MASK 0xff000000 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SX(x) (0x00000400+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SY(x) (0x00000404+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ(x) (0x00000408+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW(x) (0x0000040c+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x) (0x00000410+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_MASK 0x000000ff +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_MASK 0x0000ff00 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_MASK 0x00ff0000 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_MASK 0xff000000 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x) (0x00000414+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_MASK 0x000000ff +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_MASK 0x0000ff00 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_MASK 0x00ff0000 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT 24 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK 0xff000000 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TU(x) (0x00000418+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TV(x) (0x0000041c+((x)*32)) +#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE 0x00000010 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE(x) (0x00000600+((x)*4)) +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE__SIZE 0x00000040 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT 0 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_MASK 0x0000000f +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT 4 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_MASK 0x000000f0 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT 8 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_MASK 0x00000f00 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT 12 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_MASK 0x0000f000 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT 16 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_MASK 0x000f0000 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT 20 +#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_MASK 0x00f00000 + + +#define NV10_TEXTURED_TRIANGLE 0x00000094 + + + +#define NV04_MULTITEX_TRIANGLE 0x00000055 + +#define NV04_MULTITEX_TRIANGLE_NOP 0x00000100 +#define NV04_MULTITEX_TRIANGLE_NOTIFY 0x00000104 +#define NV04_MULTITEX_TRIANGLE_DMA_NOTIFY 0x00000180 +#define NV04_MULTITEX_TRIANGLE_DMA_A 0x00000184 +#define NV04_MULTITEX_TRIANGLE_DMA_B 0x00000188 +#define NV04_MULTITEX_TRIANGLE_SURFACE 0x0000018c +#define NV04_MULTITEX_TRIANGLE_OFFSET(x) (0x00000308+((x)*4)) +#define NV04_MULTITEX_TRIANGLE_OFFSET__SIZE 0x00000002 +#define NV04_MULTITEX_TRIANGLE_FORMAT(x) (0x00000310+((x)*4)) +#define NV04_MULTITEX_TRIANGLE_FORMAT__SIZE 0x00000002 +#define NV04_MULTITEX_TRIANGLE_FORMAT_DMA_A (1 << 0) +#define NV04_MULTITEX_TRIANGLE_FORMAT_DMA_B (1 << 1) +#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT 4 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK 0x00000030 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT 6 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_MASK 0x000000c0 +#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_MASK 0x00000f00 +#define NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT 12 +#define NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK 0x0000f000 +#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_MASK 0x000f0000 +#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT 20 +#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_MASK 0x00f00000 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MASK 0x07000000 +#define NV04_MULTITEX_TRIANGLE_FORMAT_WRAPU (1 << 27) +#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT 28 +#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MASK 0x70000000 +#define NV04_MULTITEX_TRIANGLE_FORMAT_WRAPV (1 << 31) +#define NV04_MULTITEX_TRIANGLE_FILTER(x) (0x00000318+((x)*4)) +#define NV04_MULTITEX_TRIANGLE_FILTER__SIZE 0x00000002 +#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK 0x00007f00 +#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE (1 << 15) +#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_MASK 0x07000000 +#define NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE (1 << 27) +#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT 28 +#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_MASK 0x70000000 +#define NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE (1 << 31) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA(x) (0x00000320+((x)*12)) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA__SIZE 0x00000002 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE0 (1 << 0) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_SHIFT 2 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_MASK 0x000000fc +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_ZERO 0x00000004 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_CONSTANT 0x00000008 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PRIMARY_COLOR 0x0000000c +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PREVIOUS 0x00000010 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE0 0x00000014 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE1 0x00000018 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE1 (1 << 8) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_SHIFT 10 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_MASK 0x0000fc00 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_ZERO 0x00000400 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_CONSTANT 0x00000800 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PRIMARY_COLOR 0x00000c00 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PREVIOUS 0x00001000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE0 0x00001400 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE1 0x00001800 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE2 (1 << 16) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_SHIFT 18 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_MASK 0x00fc0000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_ZERO 0x00040000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_CONSTANT 0x00080000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PRIMARY_COLOR 0x000c0000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PREVIOUS 0x00100000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE0 0x00140000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE1 0x00180000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE3 (1 << 24) +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_SHIFT 26 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_MASK 0x1c000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_ZERO 0x04000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_CONSTANT 0x08000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PRIMARY_COLOR 0x0c000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PREVIOUS 0x10000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE0 0x14000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE1 0x18000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SHIFT 29 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_MASK 0xe0000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_IDENTITY 0x20000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE2 0x40000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE4 0x60000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS 0x80000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS_SCALE2 0xe0000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR(x) (0x00000324+((x)*12)) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR__SIZE 0x00000002 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE0 (1 << 0) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA0 (1 << 1) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_SHIFT 2 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_MASK 0x000000fc +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_ZERO 0x00000004 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_CONSTANT 0x00000008 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PRIMARY_COLOR 0x0000000c +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PREVIOUS 0x00000010 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE0 0x00000014 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE1 0x00000018 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE1 (1 << 8) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA1 (1 << 9) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_SHIFT 10 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_MASK 0x0000fc00 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_ZERO 0x00000400 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_CONSTANT 0x00000800 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PRIMARY_COLOR 0x00000c00 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PREVIOUS 0x00001000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE0 0x00001400 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE1 0x00001800 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE2 (1 << 16) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA2 (1 << 17) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_SHIFT 18 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_MASK 0x00fc0000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_ZERO 0x00040000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_CONSTANT 0x00080000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PRIMARY_COLOR 0x000c0000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PREVIOUS 0x00100000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE0 0x00140000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE1 0x00180000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE3 (1 << 24) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA3 (1 << 25) +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_SHIFT 26 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_MASK 0x1c000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_ZERO 0x04000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_CONSTANT 0x08000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PRIMARY_COLOR 0x0c000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PREVIOUS 0x10000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE0 0x14000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE1 0x18000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SHIFT 29 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_MASK 0xe0000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_IDENTITY 0x20000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE2 0x40000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE4 0x60000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS 0x80000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS_SCALE2 0xe0000000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR 0x00000334 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_MASK 0x0000ff00 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_MASK 0xff000000 +#define NV04_MULTITEX_TRIANGLE_BLEND 0x00000338 +#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_SHIFT 4 +#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MASK 0x00000030 +#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_SHIFT 6 +#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_MASK 0x000000c0 +#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_FLAT 0x00000040 +#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_GOURAUD 0x00000080 +#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_PHONG 0x000000c0 +#define NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE (1 << 8) +#define NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE (1 << 12) +#define NV04_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE (1 << 16) +#define NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE (1 << 20) +#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_MASK 0x0f000000 +#define NV04_MULTITEX_TRIANGLE_BLEND_DST_SHIFT 28 +#define NV04_MULTITEX_TRIANGLE_BLEND_DST_MASK 0xf0000000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0 0x0000033c +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_MASK 0x00000f00 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_ENABLE (1 << 12) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN (1 << 13) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE (1 << 14) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_MASK 0x000f0000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_SHIFT 20 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_MASK 0x00300000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_BOTH 0x00000000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_NONE 0x00100000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CW 0x00200000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CCW 0x00300000 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE (1 << 22) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE (1 << 23) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE (1 << 24) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE (1 << 25) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE (1 << 26) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE (1 << 27) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE (1 << 28) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE (1 << 29) +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_SHIFT 30 +#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_MASK 0xc0000000 +#define NV04_MULTITEX_TRIANGLE_CONTROL1 0x00000340 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE (1 << 0) +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT 4 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_MASK 0x000000f0 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_MASK 0x0000ff00 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK 0xff000000 +#define NV04_MULTITEX_TRIANGLE_CONTROL2 0x00000344 +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_MASK 0x0000000f +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT 4 +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_MASK 0x000000f0 +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_MASK 0x00000f00 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR 0x00000348 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_MASK 0x0000ff00 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_MASK 0xff000000 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX(x) (0x00000400+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY(x) (0x00000404+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(x) (0x00000408+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(x) (0x0000040c+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(x) (0x00000410+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_MASK 0x0000ff00 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_MASK 0xff000000 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(x) (0x00000414+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_MASK 0x000000ff +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_MASK 0x0000ff00 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_MASK 0x00ff0000 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_SHIFT 24 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_MASK 0xff000000 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(x) (0x00000418+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(x) (0x0000041c+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(x) (0x00000420+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(x) (0x00000424+((x)*40)) +#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1__SIZE 0x00000008 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE(x) (0x00000540+((x)*4)) +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE__SIZE 0x00000030 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT 0 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_MASK 0x0000000f +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT 4 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_MASK 0x000000f0 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT 8 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_MASK 0x00000f00 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT 12 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_MASK 0x0000f000 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT 16 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_MASK 0x000f0000 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT 20 +#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_MASK 0x00f00000 + + +#define NV10_MULTITEX_TRIANGLE 0x00000095 + + + +#define NV10TCL 0x00000056 + +#define NV10TCL_NOP 0x00000100 +#define NV10TCL_NOTIFY 0x00000104 +#define NV10TCL_DMA_NOTIFY 0x00000180 +#define NV10TCL_DMA_IN_MEMORY0 0x00000184 +#define NV10TCL_DMA_IN_MEMORY1 0x00000188 +#define NV10TCL_DMA_VTXBUF0 0x0000018c +#define NV10TCL_DMA_IN_MEMORY2 0x00000194 +#define NV10TCL_DMA_IN_MEMORY3 0x00000198 +#define NV10TCL_RT_HORIZ 0x00000200 +#define NV10TCL_RT_HORIZ_X_SHIFT 0 +#define NV10TCL_RT_HORIZ_X_MASK 0x0000ffff +#define NV10TCL_RT_HORIZ_W_SHIFT 16 +#define NV10TCL_RT_HORIZ_W_MASK 0xffff0000 +#define NV10TCL_RT_VERT 0x00000204 +#define NV10TCL_RT_VERT_Y_SHIFT 0 +#define NV10TCL_RT_VERT_Y_MASK 0x0000ffff +#define NV10TCL_RT_VERT_H_SHIFT 16 +#define NV10TCL_RT_VERT_H_MASK 0xffff0000 +#define NV10TCL_RT_FORMAT 0x00000208 +#define NV10TCL_RT_FORMAT_TYPE_SHIFT 8 +#define NV10TCL_RT_FORMAT_TYPE_MASK 0x00000f00 +#define NV10TCL_RT_FORMAT_TYPE_LINEAR 0x00000100 +#define NV10TCL_RT_FORMAT_TYPE_SWIZZLED 0x00000200 +#define NV10TCL_RT_FORMAT_COLOR_SHIFT 0 +#define NV10TCL_RT_FORMAT_COLOR_MASK 0x0000001f +#define NV10TCL_RT_FORMAT_COLOR_R5G6B5 0x00000003 +#define NV10TCL_RT_FORMAT_COLOR_X8R8G8B8 0x00000005 +#define NV10TCL_RT_FORMAT_COLOR_A8R8G8B8 0x00000008 +#define NV10TCL_RT_FORMAT_COLOR_B8 0x00000009 +#define NV10TCL_RT_FORMAT_COLOR_UNKNOWN 0x0000000d +#define NV10TCL_RT_FORMAT_COLOR_X8B8G8R8 0x0000000f +#define NV10TCL_RT_FORMAT_COLOR_A8B8G8R8 0x00000010 +#define NV10TCL_RT_PITCH 0x0000020c +#define NV10TCL_RT_PITCH_COLOR_PITCH_SHIFT 0 +#define NV10TCL_RT_PITCH_COLOR_PITCH_MASK 0x0000ffff +#define NV10TCL_RT_PITCH_ZETA_PITCH_SHIFT 16 +#define NV10TCL_RT_PITCH_ZETA_PITCH_MASK 0xffff0000 +#define NV10TCL_COLOR_OFFSET 0x00000210 +#define NV10TCL_ZETA_OFFSET 0x00000214 +#define NV10TCL_TX_OFFSET(x) (0x00000218+((x)*4)) +#define NV10TCL_TX_OFFSET__SIZE 0x00000002 +#define NV10TCL_TX_FORMAT(x) (0x00000220+((x)*4)) +#define NV10TCL_TX_FORMAT__SIZE 0x00000002 +#define NV10TCL_TX_FORMAT_DMA0 (1 << 0) +#define NV10TCL_TX_FORMAT_DMA1 (1 << 1) +#define NV10TCL_TX_FORMAT_CUBE_MAP (1 << 2) +#define NV10TCL_TX_FORMAT_FORMAT_SHIFT 7 +#define NV10TCL_TX_FORMAT_FORMAT_MASK 0x00000f80 +#define NV10TCL_TX_FORMAT_FORMAT_L8 0x00000000 +#define NV10TCL_TX_FORMAT_FORMAT_A8 0x00000080 +#define NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5 0x00000100 +#define NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4 0x00000200 +#define NV10TCL_TX_FORMAT_FORMAT_R5G6B5 0x00000280 +#define NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8 0x00000300 +#define NV10TCL_TX_FORMAT_FORMAT_X8R8G8B8 0x00000380 +#define NV10TCL_TX_FORMAT_FORMAT_INDEX8 0x00000580 +#define NV10TCL_TX_FORMAT_FORMAT_DXT1 0x00000600 +#define NV10TCL_TX_FORMAT_FORMAT_DXT3 0x00000700 +#define NV10TCL_TX_FORMAT_FORMAT_DXT5 0x00000780 +#define NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT 0x00000800 +#define NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT 0x00000880 +#define NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT 0x00000900 +#define NV10TCL_TX_FORMAT_FORMAT_A8_RECT 0x00000980 +#define NV10TCL_TX_FORMAT_MIPMAP (1 << 15) +#define NV10TCL_TX_FORMAT_BASE_SIZE_U_SHIFT 16 +#define NV10TCL_TX_FORMAT_BASE_SIZE_U_MASK 0x000f0000 +#define NV10TCL_TX_FORMAT_BASE_SIZE_V_SHIFT 20 +#define NV10TCL_TX_FORMAT_BASE_SIZE_V_MASK 0x00f00000 +#define NV10TCL_TX_FORMAT_WRAP_S_SHIFT 24 +#define NV10TCL_TX_FORMAT_WRAP_S_MASK 0x0f000000 +#define NV10TCL_TX_FORMAT_WRAP_S_REPEAT 0x01000000 +#define NV10TCL_TX_FORMAT_WRAP_S_MIRRORED_REPEAT 0x02000000 +#define NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_EDGE 0x03000000 +#define NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_BORDER 0x04000000 +#define NV10TCL_TX_FORMAT_WRAP_S_CLAMP 0x05000000 +#define NV10TCL_TX_FORMAT_WRAP_T_SHIFT 28 +#define NV10TCL_TX_FORMAT_WRAP_T_MASK 0xf0000000 +#define NV10TCL_TX_FORMAT_WRAP_T_REPEAT 0x10000000 +#define NV10TCL_TX_FORMAT_WRAP_T_MIRRORED_REPEAT 0x20000000 +#define NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_EDGE 0x30000000 +#define NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_BORDER 0x40000000 +#define NV10TCL_TX_FORMAT_WRAP_T_CLAMP 0x50000000 +#define NV10TCL_TX_ENABLE(x) (0x00000228+((x)*4)) +#define NV10TCL_TX_ENABLE__SIZE 0x00000002 +#define NV10TCL_TX_ENABLE_CULL_SHIFT 0 +#define NV10TCL_TX_ENABLE_CULL_MASK 0x0000000f +#define NV10TCL_TX_ENABLE_CULL_DISABLED 0x00000000 +#define NV10TCL_TX_ENABLE_CULL_TEST_ALL 0x00000003 +#define NV10TCL_TX_ENABLE_CULL_TEST_ALPHA 0x00000004 +#define NV10TCL_TX_ENABLE_ANISOTROPY_SHIFT 4 +#define NV10TCL_TX_ENABLE_ANISOTROPY_MASK 0x00000030 +#define NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT 14 +#define NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK 0x0003c000 +#define NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT 26 +#define NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK 0x3c000000 +#define NV10TCL_TX_ENABLE_ENABLE (1 << 30) +#define NV10TCL_TX_NPOT_PITCH(x) (0x00000230+((x)*4)) +#define NV10TCL_TX_NPOT_PITCH__SIZE 0x00000002 +#define NV10TCL_TX_NPOT_PITCH_PITCH_SHIFT 16 +#define NV10TCL_TX_NPOT_PITCH_PITCH_MASK 0xffff0000 +#define NV10TCL_TX_NPOT_SIZE(x) (0x00000240+((x)*4)) +#define NV10TCL_TX_NPOT_SIZE__SIZE 0x00000002 +#define NV10TCL_TX_NPOT_SIZE_H_SHIFT 0 +#define NV10TCL_TX_NPOT_SIZE_H_MASK 0x0000ffff +#define NV10TCL_TX_NPOT_SIZE_W_SHIFT 16 +#define NV10TCL_TX_NPOT_SIZE_W_MASK 0xffff0000 +#define NV10TCL_TX_FILTER(x) (0x00000248+((x)*4)) +#define NV10TCL_TX_FILTER__SIZE 0x00000002 +#define NV10TCL_TX_FILTER_LOD_BIAS_SHIFT 8 +#define NV10TCL_TX_FILTER_LOD_BIAS_MASK 0x00000f00 +#define NV10TCL_TX_FILTER_MINIFY_SHIFT 24 +#define NV10TCL_TX_FILTER_MINIFY_MASK 0x0f000000 +#define NV10TCL_TX_FILTER_MINIFY_NEAREST 0x01000000 +#define NV10TCL_TX_FILTER_MINIFY_LINEAR 0x02000000 +#define NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST 0x03000000 +#define NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST 0x04000000 +#define NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR 0x05000000 +#define NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR 0x06000000 +#define NV10TCL_TX_FILTER_MAGNIFY_SHIFT 28 +#define NV10TCL_TX_FILTER_MAGNIFY_MASK 0xf0000000 +#define NV10TCL_TX_FILTER_MAGNIFY_NEAREST 0x10000000 +#define NV10TCL_TX_FILTER_MAGNIFY_LINEAR 0x20000000 +#define NV10TCL_TX_PALETTE_OFFSET(x) (0x00000250+((x)*4)) +#define NV10TCL_TX_PALETTE_OFFSET__SIZE 0x00000002 +#define NV10TCL_RC_IN_ALPHA(x) (0x00000260+((x)*4)) +#define NV10TCL_RC_IN_ALPHA__SIZE 0x00000002 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_SHIFT 0 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_MASK 0x0000000f +#define NV10TCL_RC_IN_ALPHA_D_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_FOG 0x00000003 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0 0x00000008 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1 0x00000009 +#define NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0 0x0000000c +#define NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1 0x0000000d +#define NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F 0x0000000f +#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2 0x0000000a +#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3 0x0000000b +#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4) +#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000 +#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_SHIFT 5 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_MASK 0x000000e0 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_SHIFT 8 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_MASK 0x00000f00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_FOG 0x00000300 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12) +#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000 +#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_SHIFT 13 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_MASK 0x0000e000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_SHIFT 16 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_MASK 0x000f0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_FOG 0x00030000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0 0x00080000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1 0x00090000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0 0x000c0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1 0x000d0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F 0x000f0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2 0x000a0000 +#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3 0x000b0000 +#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20) +#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000 +#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_SHIFT 21 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_MASK 0x00e00000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_SHIFT 24 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_MASK 0x0f000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_FOG 0x03000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0 0x08000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1 0x09000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0 0x0c000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1 0x0d000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F 0x0f000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2 0x0a000000 +#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3 0x0b000000 +#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28) +#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000 +#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_SHIFT 29 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_MASK 0xe0000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV10TCL_RC_IN_RGB(x) (0x00000268+((x)*4)) +#define NV10TCL_RC_IN_RGB__SIZE 0x00000002 +#define NV10TCL_RC_IN_RGB_D_INPUT_SHIFT 0 +#define NV10TCL_RC_IN_RGB_D_INPUT_MASK 0x0000000f +#define NV10TCL_RC_IN_RGB_D_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV10TCL_RC_IN_RGB_D_INPUT_FOG 0x00000003 +#define NV10TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV10TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE0 0x00000008 +#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE1 0x00000009 +#define NV10TCL_RC_IN_RGB_D_INPUT_SPARE0 0x0000000c +#define NV10TCL_RC_IN_RGB_D_INPUT_SPARE1 0x0000000d +#define NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F 0x0000000f +#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE2 0x0000000a +#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE3 0x0000000b +#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4) +#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV10TCL_RC_IN_RGB_D_MAPPING_SHIFT 5 +#define NV10TCL_RC_IN_RGB_D_MAPPING_MASK 0x000000e0 +#define NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV10TCL_RC_IN_RGB_C_INPUT_SHIFT 8 +#define NV10TCL_RC_IN_RGB_C_INPUT_MASK 0x00000f00 +#define NV10TCL_RC_IN_RGB_C_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_IN_RGB_C_INPUT_FOG 0x00000300 +#define NV10TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_IN_RGB_C_INPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_IN_RGB_C_INPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12) +#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_SHIFT 13 +#define NV10TCL_RC_IN_RGB_C_MAPPING_MASK 0x0000e000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV10TCL_RC_IN_RGB_B_INPUT_SHIFT 16 +#define NV10TCL_RC_IN_RGB_B_INPUT_MASK 0x000f0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV10TCL_RC_IN_RGB_B_INPUT_FOG 0x00030000 +#define NV10TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV10TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE0 0x00080000 +#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1 0x00090000 +#define NV10TCL_RC_IN_RGB_B_INPUT_SPARE0 0x000c0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_SPARE1 0x000d0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F 0x000f0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE2 0x000a0000 +#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE3 0x000b0000 +#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20) +#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_SHIFT 21 +#define NV10TCL_RC_IN_RGB_B_MAPPING_MASK 0x00e00000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV10TCL_RC_IN_RGB_A_INPUT_SHIFT 24 +#define NV10TCL_RC_IN_RGB_A_INPUT_MASK 0x0f000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_FOG 0x03000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0 0x08000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE1 0x09000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_SPARE0 0x0c000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_SPARE1 0x0d000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F 0x0f000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE2 0x0a000000 +#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE3 0x0b000000 +#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28) +#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_SHIFT 29 +#define NV10TCL_RC_IN_RGB_A_MAPPING_MASK 0xe0000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV10TCL_RC_COLOR(x) (0x00000270+((x)*4)) +#define NV10TCL_RC_COLOR__SIZE 0x00000002 +#define NV10TCL_RC_COLOR_B_SHIFT 0 +#define NV10TCL_RC_COLOR_B_MASK 0x000000ff +#define NV10TCL_RC_COLOR_G_SHIFT 8 +#define NV10TCL_RC_COLOR_G_MASK 0x0000ff00 +#define NV10TCL_RC_COLOR_R_SHIFT 16 +#define NV10TCL_RC_COLOR_R_MASK 0x00ff0000 +#define NV10TCL_RC_COLOR_A_SHIFT 24 +#define NV10TCL_RC_COLOR_A_MASK 0xff000000 +#define NV10TCL_RC_OUT_ALPHA(x) (0x00000278+((x)*4)) +#define NV10TCL_RC_OUT_ALPHA__SIZE 0x00000002 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT 0 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK 0x0000000f +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG 0x00000003 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0 0x0000000c +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1 0x0000000d +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG 0x00000030 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0 0x000000c0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1 0x000000d0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG 0x00000300 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12) +#define NV10TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13) +#define NV10TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14) +#define NV10TCL_RC_OUT_ALPHA_BIAS (1 << 15) +#define NV10TCL_RC_OUT_ALPHA_BIAS_NONE 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV10TCL_RC_OUT_ALPHA_SCALE_SHIFT 17 +#define NV10TCL_RC_OUT_ALPHA_SCALE_MASK 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_SCALE_NONE 0x00000000 +#define NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO 0x00020000 +#define NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV10TCL_RC_OUT_RGB(x) (0x00000280+((x)*4)) +#define NV10TCL_RC_OUT_RGB__SIZE 0x00000002 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT 0 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_FOG 0x00000003 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0 0x0000000c +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1 0x0000000d +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_FOG 0x00000030 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0 0x000000c0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1 0x000000d0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_FOG 0x00000300 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12) +#define NV10TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13) +#define NV10TCL_RC_OUT_RGB_MUX_SUM (1 << 14) +#define NV10TCL_RC_OUT_RGB_BIAS (1 << 15) +#define NV10TCL_RC_OUT_RGB_BIAS_NONE 0x00000000 +#define NV10TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV10TCL_RC_OUT_RGB_SCALE_SHIFT 17 +#define NV10TCL_RC_OUT_RGB_SCALE_MASK 0x00000000 +#define NV10TCL_RC_OUT_RGB_SCALE_NONE 0x00000000 +#define NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO 0x00020000 +#define NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV10TCL_RC_OUT_RGB_OPERATION_SHIFT 27 +#define NV10TCL_RC_OUT_RGB_OPERATION_MASK 0x38000000 +#define NV10TCL_RC_FINAL0 0x00000288 +#define NV10TCL_RC_FINAL0_D_INPUT_SHIFT 0 +#define NV10TCL_RC_FINAL0_D_INPUT_MASK 0x0000000f +#define NV10TCL_RC_FINAL0_D_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV10TCL_RC_FINAL0_D_INPUT_FOG 0x00000003 +#define NV10TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV10TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE0 0x00000008 +#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE1 0x00000009 +#define NV10TCL_RC_FINAL0_D_INPUT_SPARE0 0x0000000c +#define NV10TCL_RC_FINAL0_D_INPUT_SPARE1 0x0000000d +#define NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F 0x0000000f +#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE2 0x0000000a +#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE3 0x0000000b +#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4) +#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV10TCL_RC_FINAL0_D_MAPPING_SHIFT 5 +#define NV10TCL_RC_FINAL0_D_MAPPING_MASK 0x000000e0 +#define NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV10TCL_RC_FINAL0_C_INPUT_SHIFT 8 +#define NV10TCL_RC_FINAL0_C_INPUT_MASK 0x00000f00 +#define NV10TCL_RC_FINAL0_C_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_FINAL0_C_INPUT_FOG 0x00000300 +#define NV10TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_FINAL0_C_INPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_FINAL0_C_INPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12) +#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV10TCL_RC_FINAL0_C_MAPPING_SHIFT 13 +#define NV10TCL_RC_FINAL0_C_MAPPING_MASK 0x0000e000 +#define NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV10TCL_RC_FINAL0_B_INPUT_SHIFT 16 +#define NV10TCL_RC_FINAL0_B_INPUT_MASK 0x000f0000 +#define NV10TCL_RC_FINAL0_B_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV10TCL_RC_FINAL0_B_INPUT_FOG 0x00030000 +#define NV10TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV10TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE0 0x00080000 +#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE1 0x00090000 +#define NV10TCL_RC_FINAL0_B_INPUT_SPARE0 0x000c0000 +#define NV10TCL_RC_FINAL0_B_INPUT_SPARE1 0x000d0000 +#define NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F 0x000f0000 +#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE2 0x000a0000 +#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE3 0x000b0000 +#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20) +#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV10TCL_RC_FINAL0_B_MAPPING_SHIFT 21 +#define NV10TCL_RC_FINAL0_B_MAPPING_MASK 0x00e00000 +#define NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV10TCL_RC_FINAL0_A_INPUT_SHIFT 24 +#define NV10TCL_RC_FINAL0_A_INPUT_MASK 0x0f000000 +#define NV10TCL_RC_FINAL0_A_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV10TCL_RC_FINAL0_A_INPUT_FOG 0x03000000 +#define NV10TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV10TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE0 0x08000000 +#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE1 0x09000000 +#define NV10TCL_RC_FINAL0_A_INPUT_SPARE0 0x0c000000 +#define NV10TCL_RC_FINAL0_A_INPUT_SPARE1 0x0d000000 +#define NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F 0x0f000000 +#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE2 0x0a000000 +#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE3 0x0b000000 +#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28) +#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_SHIFT 29 +#define NV10TCL_RC_FINAL0_A_MAPPING_MASK 0xe0000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV10TCL_RC_FINAL1 0x0000028c +#define NV10TCL_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7) +#define NV10TCL_RC_FINAL1_G_INPUT_SHIFT 8 +#define NV10TCL_RC_FINAL1_G_INPUT_MASK 0x00000f00 +#define NV10TCL_RC_FINAL1_G_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV10TCL_RC_FINAL1_G_INPUT_FOG 0x00000300 +#define NV10TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR 0x00000400 +#define NV10TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR 0x00000500 +#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE0 0x00000800 +#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE1 0x00000900 +#define NV10TCL_RC_FINAL1_G_INPUT_SPARE0 0x00000c00 +#define NV10TCL_RC_FINAL1_G_INPUT_SPARE1 0x00000d00 +#define NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F 0x00000f00 +#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE2 0x00000a00 +#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE3 0x00000b00 +#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12) +#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV10TCL_RC_FINAL1_G_MAPPING_SHIFT 13 +#define NV10TCL_RC_FINAL1_G_MAPPING_MASK 0x0000e000 +#define NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV10TCL_RC_FINAL1_F_INPUT_SHIFT 16 +#define NV10TCL_RC_FINAL1_F_INPUT_MASK 0x000f0000 +#define NV10TCL_RC_FINAL1_F_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV10TCL_RC_FINAL1_F_INPUT_FOG 0x00030000 +#define NV10TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR 0x00040000 +#define NV10TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR 0x00050000 +#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE0 0x00080000 +#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE1 0x00090000 +#define NV10TCL_RC_FINAL1_F_INPUT_SPARE0 0x000c0000 +#define NV10TCL_RC_FINAL1_F_INPUT_SPARE1 0x000d0000 +#define NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F 0x000f0000 +#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE2 0x000a0000 +#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE3 0x000b0000 +#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20) +#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV10TCL_RC_FINAL1_F_MAPPING_SHIFT 21 +#define NV10TCL_RC_FINAL1_F_MAPPING_MASK 0x00e00000 +#define NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV10TCL_RC_FINAL1_E_INPUT_SHIFT 24 +#define NV10TCL_RC_FINAL1_E_INPUT_MASK 0x0f000000 +#define NV10TCL_RC_FINAL1_E_INPUT_ZERO 0x00000000 +#define NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV10TCL_RC_FINAL1_E_INPUT_FOG 0x03000000 +#define NV10TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR 0x04000000 +#define NV10TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR 0x05000000 +#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE0 0x08000000 +#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE1 0x09000000 +#define NV10TCL_RC_FINAL1_E_INPUT_SPARE0 0x0c000000 +#define NV10TCL_RC_FINAL1_E_INPUT_SPARE1 0x0d000000 +#define NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F 0x0f000000 +#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE2 0x0a000000 +#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE3 0x0b000000 +#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28) +#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000 +#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_SHIFT 29 +#define NV10TCL_RC_FINAL1_E_MAPPING_MASK 0xe0000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV10TCL_LIGHT_MODEL 0x00000294 +#define NV10TCL_LIGHT_MODEL_VERTEX_SPECULAR (1 << 0) +#define NV10TCL_LIGHT_MODEL_SEPARATE_SPECULAR (1 << 1) +#define NV10TCL_LIGHT_MODEL_LOCAL_VIEWER (1 << 16) +#define NV10TCL_COLOR_MATERIAL 0x00000298 +#define NV10TCL_COLOR_MATERIAL_EMISSION (1 << 0) +#define NV10TCL_COLOR_MATERIAL_AMBIENT (1 << 1) +#define NV10TCL_COLOR_MATERIAL_DIFFUSE (1 << 2) +#define NV10TCL_COLOR_MATERIAL_SPECULAR (1 << 3) +#define NV10TCL_FOG_MODE 0x0000029c +#define NV10TCL_FOG_MODE_LINEAR 0x00002601 +#define NV10TCL_FOG_MODE_EXP 0x00000800 +#define NV10TCL_FOG_MODE_EXP_ABS 0x00000802 +#define NV10TCL_FOG_MODE_EXP2 0x00000803 +#define NV10TCL_FOG_COORD 0x000002a0 +#define NV10TCL_FOG_COORD_FOG 0x00000000 +#define NV10TCL_FOG_COORD_DIST_RADIAL 0x00000001 +#define NV10TCL_FOG_COORD_DIST_ORTHOGONAL 0x00000002 +#define NV10TCL_FOG_COORD_DIST_ORTHOGONAL_ABS 0x00000003 +#define NV10TCL_FOG_ENABLE 0x000002a4 +#define NV10TCL_FOG_COLOR 0x000002a8 +#define NV10TCL_FOG_COLOR_R_SHIFT 0 +#define NV10TCL_FOG_COLOR_R_MASK 0x000000ff +#define NV10TCL_FOG_COLOR_G_SHIFT 8 +#define NV10TCL_FOG_COLOR_G_MASK 0x0000ff00 +#define NV10TCL_FOG_COLOR_B_SHIFT 16 +#define NV10TCL_FOG_COLOR_B_MASK 0x00ff0000 +#define NV10TCL_FOG_COLOR_A_SHIFT 24 +#define NV10TCL_FOG_COLOR_A_MASK 0xff000000 +#define NV10TCL_VIEWPORT_CLIP_MODE 0x000002b4 +#define NV10TCL_VIEWPORT_CLIP_HORIZ(x) (0x000002c0+((x)*4)) +#define NV10TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_SHIFT 0 +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_MASK 0x000007ff +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_LEFT_ENABLE (1 << 11) +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_SHIFT 16 +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_MASK 0x07ff0000 +#define NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_RIGHT_ENABLE (1 << 27) +#define NV10TCL_VIEWPORT_CLIP_VERT(x) (0x000002e0+((x)*4)) +#define NV10TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_SHIFT 0 +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_MASK 0x000007ff +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_TOP_ENABLE (1 << 11) +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_SHIFT 16 +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_MASK 0x07ff0000 +#define NV10TCL_VIEWPORT_CLIP_VERT_CLIP_BOTTOM_ENABLE (1 << 27) +#define NV10TCL_ALPHA_FUNC_ENABLE 0x00000300 +#define NV10TCL_BLEND_FUNC_ENABLE 0x00000304 +#define NV10TCL_CULL_FACE_ENABLE 0x00000308 +#define NV10TCL_DEPTH_TEST_ENABLE 0x0000030c +#define NV10TCL_DITHER_ENABLE 0x00000310 +#define NV10TCL_LIGHTING_ENABLE 0x00000314 +#define NV10TCL_POINT_PARAMETERS_ENABLE 0x00000318 +#define NV10TCL_POINT_SMOOTH_ENABLE 0x0000031c +#define NV10TCL_LINE_SMOOTH_ENABLE 0x00000320 +#define NV10TCL_POLYGON_SMOOTH_ENABLE 0x00000324 +#define NV10TCL_VERTEX_WEIGHT_ENABLE 0x00000328 +#define NV10TCL_STENCIL_ENABLE 0x0000032c +#define NV10TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000330 +#define NV10TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000334 +#define NV10TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000338 +#define NV10TCL_ALPHA_FUNC_FUNC 0x0000033c +#define NV10TCL_ALPHA_FUNC_FUNC_NEVER 0x00000200 +#define NV10TCL_ALPHA_FUNC_FUNC_LESS 0x00000201 +#define NV10TCL_ALPHA_FUNC_FUNC_EQUAL 0x00000202 +#define NV10TCL_ALPHA_FUNC_FUNC_LEQUAL 0x00000203 +#define NV10TCL_ALPHA_FUNC_FUNC_GREATER 0x00000204 +#define NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV10TCL_ALPHA_FUNC_FUNC_GEQUAL 0x00000206 +#define NV10TCL_ALPHA_FUNC_FUNC_ALWAYS 0x00000207 +#define NV10TCL_ALPHA_FUNC_REF 0x00000340 +#define NV10TCL_BLEND_FUNC_SRC 0x00000344 +#define NV10TCL_BLEND_FUNC_SRC_ZERO 0x00000000 +#define NV10TCL_BLEND_FUNC_SRC_ONE 0x00000001 +#define NV10TCL_BLEND_FUNC_SRC_SRC_COLOR 0x00000300 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA 0x00000302 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV10TCL_BLEND_FUNC_SRC_DST_ALPHA 0x00000304 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV10TCL_BLEND_FUNC_SRC_DST_COLOR 0x00000306 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR 0x00000307 +#define NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE 0x00000308 +#define NV10TCL_BLEND_FUNC_SRC_CONSTANT_COLOR 0x00008001 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV10TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA 0x00008003 +#define NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV10TCL_BLEND_FUNC_DST 0x00000348 +#define NV10TCL_BLEND_FUNC_DST_ZERO 0x00000000 +#define NV10TCL_BLEND_FUNC_DST_ONE 0x00000001 +#define NV10TCL_BLEND_FUNC_DST_SRC_COLOR 0x00000300 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV10TCL_BLEND_FUNC_DST_SRC_ALPHA 0x00000302 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV10TCL_BLEND_FUNC_DST_DST_ALPHA 0x00000304 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV10TCL_BLEND_FUNC_DST_DST_COLOR 0x00000306 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR 0x00000307 +#define NV10TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE 0x00000308 +#define NV10TCL_BLEND_FUNC_DST_CONSTANT_COLOR 0x00008001 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV10TCL_BLEND_FUNC_DST_CONSTANT_ALPHA 0x00008003 +#define NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV10TCL_BLEND_COLOR 0x0000034c +#define NV10TCL_BLEND_COLOR_B_SHIFT 0 +#define NV10TCL_BLEND_COLOR_B_MASK 0x000000ff +#define NV10TCL_BLEND_COLOR_G_SHIFT 8 +#define NV10TCL_BLEND_COLOR_G_MASK 0x0000ff00 +#define NV10TCL_BLEND_COLOR_R_SHIFT 16 +#define NV10TCL_BLEND_COLOR_R_MASK 0x00ff0000 +#define NV10TCL_BLEND_COLOR_A_SHIFT 24 +#define NV10TCL_BLEND_COLOR_A_MASK 0xff000000 +#define NV10TCL_BLEND_EQUATION 0x00000350 +#define NV10TCL_BLEND_EQUATION_FUNC_ADD 0x00008006 +#define NV10TCL_BLEND_EQUATION_MIN 0x00008007 +#define NV10TCL_BLEND_EQUATION_MAX 0x00008008 +#define NV10TCL_BLEND_EQUATION_FUNC_SUBTRACT 0x0000800a +#define NV10TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV10TCL_DEPTH_FUNC 0x00000354 +#define NV10TCL_DEPTH_FUNC_NEVER 0x00000200 +#define NV10TCL_DEPTH_FUNC_LESS 0x00000201 +#define NV10TCL_DEPTH_FUNC_EQUAL 0x00000202 +#define NV10TCL_DEPTH_FUNC_LEQUAL 0x00000203 +#define NV10TCL_DEPTH_FUNC_GREATER 0x00000204 +#define NV10TCL_DEPTH_FUNC_NOTEQUAL 0x00000205 +#define NV10TCL_DEPTH_FUNC_GEQUAL 0x00000206 +#define NV10TCL_DEPTH_FUNC_ALWAYS 0x00000207 +#define NV10TCL_COLOR_MASK 0x00000358 +#define NV10TCL_COLOR_MASK_B (1 << 0) +#define NV10TCL_COLOR_MASK_G (1 << 8) +#define NV10TCL_COLOR_MASK_R (1 << 16) +#define NV10TCL_COLOR_MASK_A (1 << 24) +#define NV10TCL_DEPTH_WRITE_ENABLE 0x0000035c +#define NV10TCL_STENCIL_MASK 0x00000360 +#define NV10TCL_STENCIL_FUNC_FUNC 0x00000364 +#define NV10TCL_STENCIL_FUNC_FUNC_NEVER 0x00000200 +#define NV10TCL_STENCIL_FUNC_FUNC_LESS 0x00000201 +#define NV10TCL_STENCIL_FUNC_FUNC_EQUAL 0x00000202 +#define NV10TCL_STENCIL_FUNC_FUNC_LEQUAL 0x00000203 +#define NV10TCL_STENCIL_FUNC_FUNC_GREATER 0x00000204 +#define NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV10TCL_STENCIL_FUNC_FUNC_GEQUAL 0x00000206 +#define NV10TCL_STENCIL_FUNC_FUNC_ALWAYS 0x00000207 +#define NV10TCL_STENCIL_FUNC_REF 0x00000368 +#define NV10TCL_STENCIL_FUNC_MASK 0x0000036c +#define NV10TCL_STENCIL_OP_FAIL 0x00000370 +#define NV10TCL_STENCIL_OP_FAIL_ZERO 0x00000000 +#define NV10TCL_STENCIL_OP_FAIL_INVERT 0x0000150a +#define NV10TCL_STENCIL_OP_FAIL_KEEP 0x00001e00 +#define NV10TCL_STENCIL_OP_FAIL_REPLACE 0x00001e01 +#define NV10TCL_STENCIL_OP_FAIL_INCR 0x00001e02 +#define NV10TCL_STENCIL_OP_FAIL_DECR 0x00001e03 +#define NV10TCL_STENCIL_OP_FAIL_INCR_WRAP 0x00008507 +#define NV10TCL_STENCIL_OP_FAIL_DECR_WRAP 0x00008508 +#define NV10TCL_STENCIL_OP_ZFAIL 0x00000374 +#define NV10TCL_STENCIL_OP_ZFAIL_ZERO 0x00000000 +#define NV10TCL_STENCIL_OP_ZFAIL_INVERT 0x0000150a +#define NV10TCL_STENCIL_OP_ZFAIL_KEEP 0x00001e00 +#define NV10TCL_STENCIL_OP_ZFAIL_REPLACE 0x00001e01 +#define NV10TCL_STENCIL_OP_ZFAIL_INCR 0x00001e02 +#define NV10TCL_STENCIL_OP_ZFAIL_DECR 0x00001e03 +#define NV10TCL_STENCIL_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV10TCL_STENCIL_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV10TCL_STENCIL_OP_ZPASS 0x00000378 +#define NV10TCL_STENCIL_OP_ZPASS_ZERO 0x00000000 +#define NV10TCL_STENCIL_OP_ZPASS_INVERT 0x0000150a +#define NV10TCL_STENCIL_OP_ZPASS_KEEP 0x00001e00 +#define NV10TCL_STENCIL_OP_ZPASS_REPLACE 0x00001e01 +#define NV10TCL_STENCIL_OP_ZPASS_INCR 0x00001e02 +#define NV10TCL_STENCIL_OP_ZPASS_DECR 0x00001e03 +#define NV10TCL_STENCIL_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV10TCL_STENCIL_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV10TCL_SHADE_MODEL 0x0000037c +#define NV10TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NV10TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NV10TCL_LINE_WIDTH 0x00000380 +#define NV10TCL_POLYGON_OFFSET_FACTOR 0x00000384 +#define NV10TCL_POLYGON_OFFSET_UNITS 0x00000388 +#define NV10TCL_POLYGON_MODE_FRONT 0x0000038c +#define NV10TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NV10TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NV10TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NV10TCL_POLYGON_MODE_BACK 0x00000390 +#define NV10TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NV10TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NV10TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NV10TCL_DEPTH_RANGE_NEAR 0x00000394 +#define NV10TCL_DEPTH_RANGE_FAR 0x00000398 +#define NV10TCL_CULL_FACE 0x0000039c +#define NV10TCL_CULL_FACE_FRONT 0x00000404 +#define NV10TCL_CULL_FACE_BACK 0x00000405 +#define NV10TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NV10TCL_FRONT_FACE 0x000003a0 +#define NV10TCL_FRONT_FACE_CW 0x00000900 +#define NV10TCL_FRONT_FACE_CCW 0x00000901 +#define NV10TCL_NORMALIZE_ENABLE 0x000003a4 +#define NV10TCL_MATERIAL_FACTOR_R 0x000003a8 +#define NV10TCL_MATERIAL_FACTOR_G 0x000003ac +#define NV10TCL_MATERIAL_FACTOR_B 0x000003b0 +#define NV10TCL_MATERIAL_FACTOR_A 0x000003b4 +#define NV10TCL_SEPARATE_SPECULAR_ENABLE 0x000003b8 +#define NV10TCL_ENABLED_LIGHTS 0x000003bc +#define NV10TCL_ENABLED_LIGHTS_0_SHIFT 0 +#define NV10TCL_ENABLED_LIGHTS_0_MASK 0x00000003 +#define NV10TCL_ENABLED_LIGHTS_0_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_0_NONPOSITIONAL 0x00000001 +#define NV10TCL_ENABLED_LIGHTS_0_POSITIONAL 0x00000002 +#define NV10TCL_ENABLED_LIGHTS_0_DIRECTIONAL 0x00000003 +#define NV10TCL_ENABLED_LIGHTS_1_SHIFT 2 +#define NV10TCL_ENABLED_LIGHTS_1_MASK 0x0000000c +#define NV10TCL_ENABLED_LIGHTS_1_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_1_NONPOSITIONAL 0x00000004 +#define NV10TCL_ENABLED_LIGHTS_1_POSITIONAL 0x00000008 +#define NV10TCL_ENABLED_LIGHTS_1_DIRECTIONAL 0x0000000c +#define NV10TCL_ENABLED_LIGHTS_2_SHIFT 4 +#define NV10TCL_ENABLED_LIGHTS_2_MASK 0x00000030 +#define NV10TCL_ENABLED_LIGHTS_2_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_2_NONPOSITIONAL 0x00000010 +#define NV10TCL_ENABLED_LIGHTS_2_POSITIONAL 0x00000020 +#define NV10TCL_ENABLED_LIGHTS_2_DIRECTIONAL 0x00000030 +#define NV10TCL_ENABLED_LIGHTS_3_SHIFT 6 +#define NV10TCL_ENABLED_LIGHTS_3_MASK 0x000000c0 +#define NV10TCL_ENABLED_LIGHTS_3_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_3_NONPOSITIONAL 0x00000040 +#define NV10TCL_ENABLED_LIGHTS_3_POSITIONAL 0x00000080 +#define NV10TCL_ENABLED_LIGHTS_3_DIRECTIONAL 0x000000c0 +#define NV10TCL_ENABLED_LIGHTS_4_SHIFT 8 +#define NV10TCL_ENABLED_LIGHTS_4_MASK 0x00000300 +#define NV10TCL_ENABLED_LIGHTS_4_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_4_NONPOSITIONAL 0x00000100 +#define NV10TCL_ENABLED_LIGHTS_4_POSITIONAL 0x00000200 +#define NV10TCL_ENABLED_LIGHTS_4_DIRECTIONAL 0x00000300 +#define NV10TCL_ENABLED_LIGHTS_5_SHIFT 10 +#define NV10TCL_ENABLED_LIGHTS_5_MASK 0x00000c00 +#define NV10TCL_ENABLED_LIGHTS_5_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_5_NONPOSITIONAL 0x00000400 +#define NV10TCL_ENABLED_LIGHTS_5_POSITIONAL 0x00000800 +#define NV10TCL_ENABLED_LIGHTS_5_DIRECTIONAL 0x00000c00 +#define NV10TCL_ENABLED_LIGHTS_6_SHIFT 12 +#define NV10TCL_ENABLED_LIGHTS_6_MASK 0x00003000 +#define NV10TCL_ENABLED_LIGHTS_6_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_6_NONPOSITIONAL 0x00001000 +#define NV10TCL_ENABLED_LIGHTS_6_POSITIONAL 0x00002000 +#define NV10TCL_ENABLED_LIGHTS_6_DIRECTIONAL 0x00003000 +#define NV10TCL_ENABLED_LIGHTS_7_SHIFT 14 +#define NV10TCL_ENABLED_LIGHTS_7_MASK 0x0000c000 +#define NV10TCL_ENABLED_LIGHTS_7_DISABLED 0x00000000 +#define NV10TCL_ENABLED_LIGHTS_7_NONPOSITIONAL 0x00004000 +#define NV10TCL_ENABLED_LIGHTS_7_POSITIONAL 0x00008000 +#define NV10TCL_ENABLED_LIGHTS_7_DIRECTIONAL 0x0000c000 +#define NV10TCL_TX_GEN_MODE_S(x) (0x000003c0+((x)*16)) +#define NV10TCL_TX_GEN_MODE_S__SIZE 0x00000002 +#define NV10TCL_TX_GEN_MODE_S_FALSE 0x00000000 +#define NV10TCL_TX_GEN_MODE_S_EYE_LINEAR 0x00002400 +#define NV10TCL_TX_GEN_MODE_S_OBJECT_LINEAR 0x00002401 +#define NV10TCL_TX_GEN_MODE_S_SPHERE_MAP 0x00002402 +#define NV10TCL_TX_GEN_MODE_S_NORMAL_MAP 0x00008511 +#define NV10TCL_TX_GEN_MODE_S_REFLECTION_MAP 0x00008512 +#define NV10TCL_TX_GEN_MODE_T(x) (0x000003c4+((x)*16)) +#define NV10TCL_TX_GEN_MODE_T__SIZE 0x00000002 +#define NV10TCL_TX_GEN_MODE_T_FALSE 0x00000000 +#define NV10TCL_TX_GEN_MODE_T_EYE_LINEAR 0x00002400 +#define NV10TCL_TX_GEN_MODE_T_OBJECT_LINEAR 0x00002401 +#define NV10TCL_TX_GEN_MODE_T_SPHERE_MAP 0x00002402 +#define NV10TCL_TX_GEN_MODE_T_NORMAL_MAP 0x00008511 +#define NV10TCL_TX_GEN_MODE_T_REFLECTION_MAP 0x00008512 +#define NV10TCL_TX_GEN_MODE_R(x) (0x000003c8+((x)*16)) +#define NV10TCL_TX_GEN_MODE_R__SIZE 0x00000002 +#define NV10TCL_TX_GEN_MODE_R_FALSE 0x00000000 +#define NV10TCL_TX_GEN_MODE_R_EYE_LINEAR 0x00002400 +#define NV10TCL_TX_GEN_MODE_R_OBJECT_LINEAR 0x00002401 +#define NV10TCL_TX_GEN_MODE_R_SPHERE_MAP 0x00002402 +#define NV10TCL_TX_GEN_MODE_R_NORMAL_MAP 0x00008511 +#define NV10TCL_TX_GEN_MODE_R_REFLECTION_MAP 0x00008512 +#define NV10TCL_TX_GEN_MODE_Q(x) (0x000003cc+((x)*16)) +#define NV10TCL_TX_GEN_MODE_Q__SIZE 0x00000002 +#define NV10TCL_TX_GEN_MODE_Q_FALSE 0x00000000 +#define NV10TCL_TX_GEN_MODE_Q_EYE_LINEAR 0x00002400 +#define NV10TCL_TX_GEN_MODE_Q_OBJECT_LINEAR 0x00002401 +#define NV10TCL_TX_GEN_MODE_Q_SPHERE_MAP 0x00002402 +#define NV10TCL_TX_GEN_MODE_Q_NORMAL_MAP 0x00008511 +#define NV10TCL_TX_GEN_MODE_Q_REFLECTION_MAP 0x00008512 +#define NV10TCL_TX_MATRIX_ENABLE(x) (0x000003e0+((x)*4)) +#define NV10TCL_TX_MATRIX_ENABLE__SIZE 0x00000002 +#define NV10TCL_VIEW_MATRIX_ENABLE 0x000003e8 +#define NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW1 (1 << 0) +#define NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW0 (1 << 1) +#define NV10TCL_VIEW_MATRIX_ENABLE_PROJECTION (1 << 2) +#define NV10TCL_POINT_SIZE 0x000003ec +#define NV10TCL_MODELVIEW0_MATRIX(x) (0x00000400+((x)*4)) +#define NV10TCL_MODELVIEW0_MATRIX__SIZE 0x00000010 +#define NV10TCL_MODELVIEW1_MATRIX(x) (0x00000440+((x)*4)) +#define NV10TCL_MODELVIEW1_MATRIX__SIZE 0x00000010 +#define NV10TCL_INVERSE_MODELVIEW0_MATRIX(x) (0x00000480+((x)*4)) +#define NV10TCL_INVERSE_MODELVIEW0_MATRIX__SIZE 0x00000010 +#define NV10TCL_INVERSE_MODELVIEW1_MATRIX(x) (0x000004c0+((x)*4)) +#define NV10TCL_INVERSE_MODELVIEW1_MATRIX__SIZE 0x00000010 +#define NV10TCL_PROJECTION_MATRIX(x) (0x00000500+((x)*4)) +#define NV10TCL_PROJECTION_MATRIX__SIZE 0x00000010 +#define NV10TCL_TX0_MATRIX(x) (0x00000540+((x)*4)) +#define NV10TCL_TX0_MATRIX__SIZE 0x00000010 +#define NV10TCL_TX1_MATRIX(x) (0x00000580+((x)*4)) +#define NV10TCL_TX1_MATRIX__SIZE 0x00000010 +#define NV10TCL_TX_GEN_COEFF_S_A(x) (0x00000600+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_S_A__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_S_B(x) (0x00000604+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_S_B__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_S_C(x) (0x00000608+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_S_C__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_S_D(x) (0x0000060c+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_S_D__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_T_A(x) (0x00000610+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_T_A__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_T_B(x) (0x00000614+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_T_B__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_T_C(x) (0x00000618+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_T_C__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_T_D(x) (0x0000061c+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_T_D__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_R_A(x) (0x00000620+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_R_A__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_R_B(x) (0x00000624+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_R_B__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_R_C(x) (0x00000628+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_R_C__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_R_D(x) (0x0000062c+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_R_D__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_Q_A(x) (0x00000630+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_Q_A__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_Q_B(x) (0x00000634+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_Q_B__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_Q_C(x) (0x00000638+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_Q_C__SIZE 0x00000002 +#define NV10TCL_TX_GEN_COEFF_Q_D(x) (0x0000063c+((x)*64)) +#define NV10TCL_TX_GEN_COEFF_Q_D__SIZE 0x00000002 +#define NV10TCL_FOG_EQUATION_CONSTANT 0x00000680 +#define NV10TCL_FOG_EQUATION_LINEAR 0x00000684 +#define NV10TCL_FOG_EQUATION_QUADRATIC 0x00000688 +#define NV10TCL_MATERIAL_SHININESS(x) (0x000006a0+((x)*4)) +#define NV10TCL_MATERIAL_SHININESS__SIZE 0x00000006 +#define NV10TCL_LIGHT_MODEL_AMBIENT_R 0x000006c4 +#define NV10TCL_LIGHT_MODEL_AMBIENT_G 0x000006c8 +#define NV10TCL_LIGHT_MODEL_AMBIENT_B 0x000006cc +#define NV10TCL_VIEWPORT_TRANSLATE_X 0x000006e8 +#define NV10TCL_VIEWPORT_TRANSLATE_Y 0x000006ec +#define NV10TCL_VIEWPORT_TRANSLATE_Z 0x000006f0 +#define NV10TCL_VIEWPORT_TRANSLATE_W 0x000006f4 +#define NV10TCL_POINT_PARAMETER(x) (0x000006f8+((x)*4)) +#define NV10TCL_POINT_PARAMETER__SIZE 0x00000008 +#define NV10TCL_LIGHT_AMBIENT_R(x) (0x00000800+((x)*128)) +#define NV10TCL_LIGHT_AMBIENT_R__SIZE 0x00000008 +#define NV10TCL_LIGHT_AMBIENT_G(x) (0x00000804+((x)*128)) +#define NV10TCL_LIGHT_AMBIENT_G__SIZE 0x00000008 +#define NV10TCL_LIGHT_AMBIENT_B(x) (0x00000808+((x)*128)) +#define NV10TCL_LIGHT_AMBIENT_B__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIFFUSE_R(x) (0x0000080c+((x)*128)) +#define NV10TCL_LIGHT_DIFFUSE_R__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIFFUSE_G(x) (0x00000810+((x)*128)) +#define NV10TCL_LIGHT_DIFFUSE_G__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIFFUSE_B(x) (0x00000814+((x)*128)) +#define NV10TCL_LIGHT_DIFFUSE_B__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPECULAR_R(x) (0x00000818+((x)*128)) +#define NV10TCL_LIGHT_SPECULAR_R__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPECULAR_G(x) (0x0000081c+((x)*128)) +#define NV10TCL_LIGHT_SPECULAR_G__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPECULAR_B(x) (0x00000820+((x)*128)) +#define NV10TCL_LIGHT_SPECULAR_B__SIZE 0x00000008 +#define NV10TCL_LIGHT_HALF_VECTOR_X(x) (0x00000828+((x)*128)) +#define NV10TCL_LIGHT_HALF_VECTOR_X__SIZE 0x00000008 +#define NV10TCL_LIGHT_HALF_VECTOR_Y(x) (0x0000082c+((x)*128)) +#define NV10TCL_LIGHT_HALF_VECTOR_Y__SIZE 0x00000008 +#define NV10TCL_LIGHT_HALF_VECTOR_Z(x) (0x00000830+((x)*128)) +#define NV10TCL_LIGHT_HALF_VECTOR_Z__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIRECTION_X(x) (0x00000834+((x)*128)) +#define NV10TCL_LIGHT_DIRECTION_X__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIRECTION_Y(x) (0x00000838+((x)*128)) +#define NV10TCL_LIGHT_DIRECTION_Y__SIZE 0x00000008 +#define NV10TCL_LIGHT_DIRECTION_Z(x) (0x0000083c+((x)*128)) +#define NV10TCL_LIGHT_DIRECTION_Z__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_CUTOFF_A(x) (0x00000840+((x)*128)) +#define NV10TCL_LIGHT_SPOT_CUTOFF_A__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_CUTOFF_B(x) (0x00000844+((x)*128)) +#define NV10TCL_LIGHT_SPOT_CUTOFF_B__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_CUTOFF_C(x) (0x00000848+((x)*128)) +#define NV10TCL_LIGHT_SPOT_CUTOFF_C__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_DIR_X(x) (0x0000084c+((x)*128)) +#define NV10TCL_LIGHT_SPOT_DIR_X__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_DIR_Y(x) (0x00000850+((x)*128)) +#define NV10TCL_LIGHT_SPOT_DIR_Y__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_DIR_Z(x) (0x00000854+((x)*128)) +#define NV10TCL_LIGHT_SPOT_DIR_Z__SIZE 0x00000008 +#define NV10TCL_LIGHT_SPOT_CUTOFF_D(x) (0x00000858+((x)*128)) +#define NV10TCL_LIGHT_SPOT_CUTOFF_D__SIZE 0x00000008 +#define NV10TCL_LIGHT_POSITION_X(x) (0x0000085c+((x)*128)) +#define NV10TCL_LIGHT_POSITION_X__SIZE 0x00000008 +#define NV10TCL_LIGHT_POSITION_Y(x) (0x00000860+((x)*128)) +#define NV10TCL_LIGHT_POSITION_Y__SIZE 0x00000008 +#define NV10TCL_LIGHT_POSITION_Z(x) (0x00000864+((x)*128)) +#define NV10TCL_LIGHT_POSITION_Z__SIZE 0x00000008 +#define NV10TCL_LIGHT_ATTENUATION_CONSTANT(x) (0x00000868+((x)*128)) +#define NV10TCL_LIGHT_ATTENUATION_CONSTANT__SIZE 0x00000008 +#define NV10TCL_LIGHT_ATTENUATION_LINEAR(x) (0x0000086c+((x)*128)) +#define NV10TCL_LIGHT_ATTENUATION_LINEAR__SIZE 0x00000008 +#define NV10TCL_LIGHT_ATTENUATION_QUADRATIC(x) (0x00000870+((x)*128)) +#define NV10TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE 0x00000008 +#define NV10TCL_VERTEX_POS_3F_X 0x00000c00 +#define NV10TCL_VERTEX_POS_3F_Y 0x00000c04 +#define NV10TCL_VERTEX_POS_3F_Z 0x00000c08 +#define NV10TCL_VERTEX_POS_4F_X 0x00000c18 +#define NV10TCL_VERTEX_POS_4F_Y 0x00000c1c +#define NV10TCL_VERTEX_POS_4F_Z 0x00000c20 +#define NV10TCL_VERTEX_POS_4F_W 0x00000c24 +#define NV10TCL_VERTEX_NOR_3F_X 0x00000c30 +#define NV10TCL_VERTEX_NOR_3F_Y 0x00000c34 +#define NV10TCL_VERTEX_NOR_3F_Z 0x00000c38 +#define NV10TCL_VERTEX_NOR_3I_XY 0x00000c40 +#define NV10TCL_VERTEX_NOR_3I_XY_X_SHIFT 0 +#define NV10TCL_VERTEX_NOR_3I_XY_X_MASK 0x0000ffff +#define NV10TCL_VERTEX_NOR_3I_XY_Y_SHIFT 16 +#define NV10TCL_VERTEX_NOR_3I_XY_Y_MASK 0xffff0000 +#define NV10TCL_VERTEX_NOR_3I_Z 0x00000c44 +#define NV10TCL_VERTEX_NOR_3I_Z_Z_SHIFT 0 +#define NV10TCL_VERTEX_NOR_3I_Z_Z_MASK 0x0000ffff +#define NV10TCL_VERTEX_COL_4F_R 0x00000c50 +#define NV10TCL_VERTEX_COL_4F_G 0x00000c54 +#define NV10TCL_VERTEX_COL_4F_B 0x00000c58 +#define NV10TCL_VERTEX_COL_4F_A 0x00000c5c +#define NV10TCL_VERTEX_COL_3F_R 0x00000c60 +#define NV10TCL_VERTEX_COL_3F_G 0x00000c64 +#define NV10TCL_VERTEX_COL_3F_B 0x00000c68 +#define NV10TCL_VERTEX_COL_4I 0x00000c6c +#define NV10TCL_VERTEX_COL_4I_R_SHIFT 0 +#define NV10TCL_VERTEX_COL_4I_R_MASK 0x000000ff +#define NV10TCL_VERTEX_COL_4I_G_SHIFT 8 +#define NV10TCL_VERTEX_COL_4I_G_MASK 0x0000ff00 +#define NV10TCL_VERTEX_COL_4I_B_SHIFT 16 +#define NV10TCL_VERTEX_COL_4I_B_MASK 0x00ff0000 +#define NV10TCL_VERTEX_COL_4I_A_SHIFT 24 +#define NV10TCL_VERTEX_COL_4I_A_MASK 0xff000000 +#define NV10TCL_VERTEX_COL2_3F_R 0x00000c80 +#define NV10TCL_VERTEX_COL2_3F_G 0x00000c84 +#define NV10TCL_VERTEX_COL2_3F_B 0x00000c88 +#define NV10TCL_VERTEX_COL2_3I 0x00000c8c +#define NV10TCL_VERTEX_COL2_3I_R_SHIFT 0 +#define NV10TCL_VERTEX_COL2_3I_R_MASK 0x000000ff +#define NV10TCL_VERTEX_COL2_3I_G_SHIFT 8 +#define NV10TCL_VERTEX_COL2_3I_G_MASK 0x0000ff00 +#define NV10TCL_VERTEX_COL2_3I_B_SHIFT 16 +#define NV10TCL_VERTEX_COL2_3I_B_MASK 0x00ff0000 +#define NV10TCL_VERTEX_TX0_2F_S 0x00000c90 +#define NV10TCL_VERTEX_TX0_2F_T 0x00000c94 +#define NV10TCL_VERTEX_TX0_2I 0x00000c98 +#define NV10TCL_VERTEX_TX0_2I_S_SHIFT 0 +#define NV10TCL_VERTEX_TX0_2I_S_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX0_2I_T_SHIFT 16 +#define NV10TCL_VERTEX_TX0_2I_T_MASK 0xffff0000 +#define NV10TCL_VERTEX_TX0_4F_S 0x00000ca0 +#define NV10TCL_VERTEX_TX0_4F_T 0x00000ca4 +#define NV10TCL_VERTEX_TX0_4F_R 0x00000ca8 +#define NV10TCL_VERTEX_TX0_4F_Q 0x00000cac +#define NV10TCL_VERTEX_TX0_4I_ST 0x00000cb0 +#define NV10TCL_VERTEX_TX0_4I_ST_S_SHIFT 0 +#define NV10TCL_VERTEX_TX0_4I_ST_S_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX0_4I_ST_T_SHIFT 16 +#define NV10TCL_VERTEX_TX0_4I_ST_T_MASK 0xffff0000 +#define NV10TCL_VERTEX_TX0_4I_RQ 0x00000cb4 +#define NV10TCL_VERTEX_TX0_4I_RQ_R_SHIFT 0 +#define NV10TCL_VERTEX_TX0_4I_RQ_R_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX0_4I_RQ_Q_SHIFT 16 +#define NV10TCL_VERTEX_TX0_4I_RQ_Q_MASK 0xffff0000 +#define NV10TCL_VERTEX_TX1_2F_S 0x00000cb8 +#define NV10TCL_VERTEX_TX1_2F_T 0x00000cbc +#define NV10TCL_VERTEX_TX1_2I 0x00000cc0 +#define NV10TCL_VERTEX_TX1_2I_S_SHIFT 0 +#define NV10TCL_VERTEX_TX1_2I_S_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX1_2I_T_SHIFT 16 +#define NV10TCL_VERTEX_TX1_2I_T_MASK 0xffff0000 +#define NV10TCL_VERTEX_TX1_4F_S 0x00000cc8 +#define NV10TCL_VERTEX_TX1_4F_T 0x00000ccc +#define NV10TCL_VERTEX_TX1_4F_R 0x00000cd0 +#define NV10TCL_VERTEX_TX1_4F_Q 0x00000cd4 +#define NV10TCL_VERTEX_TX1_4I_ST 0x00000cd8 +#define NV10TCL_VERTEX_TX1_4I_ST_S_SHIFT 0 +#define NV10TCL_VERTEX_TX1_4I_ST_S_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX1_4I_ST_T_SHIFT 16 +#define NV10TCL_VERTEX_TX1_4I_ST_T_MASK 0xffff0000 +#define NV10TCL_VERTEX_TX1_4I_RQ 0x00000cdc +#define NV10TCL_VERTEX_TX1_4I_RQ_R_SHIFT 0 +#define NV10TCL_VERTEX_TX1_4I_RQ_R_MASK 0x0000ffff +#define NV10TCL_VERTEX_TX1_4I_RQ_Q_SHIFT 16 +#define NV10TCL_VERTEX_TX1_4I_RQ_Q_MASK 0xffff0000 +#define NV10TCL_VERTEX_FOG_1F 0x00000ce0 +#define NV10TCL_VERTEX_WGH_1F 0x00000ce4 +#define NV10TCL_EDGEFLAG_ENABLE 0x00000cec +#define NV10TCL_VERTEX_ARRAY_VALIDATE 0x00000cf0 +#define NV10TCL_VTXBUF_ADDRESS(x) (0x00000d00+((x)*8)) +#define NV10TCL_VTXBUF_ADDRESS__SIZE 0x00000008 +#define NV10TCL_VTXFMT(x) (0x00000d04+((x)*8)) +#define NV10TCL_VTXFMT__SIZE 0x00000008 +#define NV10TCL_VTXFMT_TYPE_SHIFT 0 +#define NV10TCL_VTXFMT_TYPE_MASK 0x0000000f +#define NV10TCL_VTXFMT_TYPE_BYTE_BGRA 0x00000000 +#define NV10TCL_VTXFMT_TYPE_SHORT 0x00000001 +#define NV10TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV10TCL_VTXFMT_TYPE_BYTE_RGBA 0x00000004 +#define NV10TCL_VTXFMT_FIELDS_SHIFT 4 +#define NV10TCL_VTXFMT_FIELDS_MASK 0x000000f0 +#define NV10TCL_VTXFMT_STRIDE_SHIFT 8 +#define NV10TCL_VTXFMT_STRIDE_MASK 0x0000ff00 +#define NV10TCL_VTXFMT_POS_HOMOGENEOUS (1 << 24) +#define NV10TCL_VERTEX_BEGIN_END 0x00000dfc +#define NV10TCL_VERTEX_BEGIN_END_STOP 0x00000000 +#define NV10TCL_VERTEX_BEGIN_END_POINTS 0x00000001 +#define NV10TCL_VERTEX_BEGIN_END_LINES 0x00000002 +#define NV10TCL_VERTEX_BEGIN_END_LINE_LOOP 0x00000003 +#define NV10TCL_VERTEX_BEGIN_END_LINE_STRIP 0x00000004 +#define NV10TCL_VERTEX_BEGIN_END_TRIANGLES 0x00000005 +#define NV10TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP 0x00000006 +#define NV10TCL_VERTEX_BEGIN_END_TRIANGLE_FAN 0x00000007 +#define NV10TCL_VERTEX_BEGIN_END_QUADS 0x00000008 +#define NV10TCL_VERTEX_BEGIN_END_QUAD_STRIP 0x00000009 +#define NV10TCL_VERTEX_BEGIN_END_POLYGON 0x0000000a +#define NV10TCL_VB_ELEMENT_U16 0x00000e00 +#define NV10TCL_VB_ELEMENT_U16_I0_SHIFT 0 +#define NV10TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff +#define NV10TCL_VB_ELEMENT_U16_I1_SHIFT 16 +#define NV10TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NV10TCL_VB_ELEMENT_U32 0x00001100 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END 0x000013fc +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_STOP 0x00000000 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_POINTS 0x00000001 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_LINES 0x00000002 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_LOOP 0x00000003 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_STRIP 0x00000004 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLES 0x00000005 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_STRIP 0x00000006 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_FAN 0x00000007 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_QUADS 0x00000008 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_QUAD_STRIP 0x00000009 +#define NV10TCL_VERTEX_BUFFER_BEGIN_END_POLYGON 0x0000000a +#define NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS 0x00001400 +#define NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_SHIFT 0 +#define NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_MASK 0x0000ffff +#define NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_SHIFT 24 +#define NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_MASK 0xff000000 +#define NV10TCL_VERTEX_ARRAY_DATA 0x00001800 + + +#define NV11TCL 0x00000096 + +#define NV11TCL_COLOR_LOGIC_OP_ENABLE 0x00000d40 +#define NV11TCL_COLOR_LOGIC_OP_OP 0x00000d44 +#define NV11TCL_COLOR_LOGIC_OP_OP_CLEAR 0x00001500 +#define NV11TCL_COLOR_LOGIC_OP_OP_AND 0x00001501 +#define NV11TCL_COLOR_LOGIC_OP_OP_AND_REVERSE 0x00001502 +#define NV11TCL_COLOR_LOGIC_OP_OP_COPY 0x00001503 +#define NV11TCL_COLOR_LOGIC_OP_OP_AND_INVERTED 0x00001504 +#define NV11TCL_COLOR_LOGIC_OP_OP_NOOP 0x00001505 +#define NV11TCL_COLOR_LOGIC_OP_OP_XOR 0x00001506 +#define NV11TCL_COLOR_LOGIC_OP_OP_OR 0x00001507 +#define NV11TCL_COLOR_LOGIC_OP_OP_NOR 0x00001508 +#define NV11TCL_COLOR_LOGIC_OP_OP_EQUIV 0x00001509 +#define NV11TCL_COLOR_LOGIC_OP_OP_INVERT 0x0000150a +#define NV11TCL_COLOR_LOGIC_OP_OP_OR_REVERSE 0x0000150b +#define NV11TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED 0x0000150c +#define NV11TCL_COLOR_LOGIC_OP_OP_OR_INVERTED 0x0000150d +#define NV11TCL_COLOR_LOGIC_OP_OP_NAND 0x0000150e +#define NV11TCL_COLOR_LOGIC_OP_OP_SET 0x0000150f + + +#define NV17TCL 0x00000099 + +#define NV17TCL_DMA_IN_MEMORY4 0x000001ac +#define NV17TCL_DMA_IN_MEMORY5 0x000001b0 +#define NV17TCL_COLOR_MASK_ENABLE 0x000002bc +#define NV17TCL_LMA_DEPTH_BUFFER_PITCH 0x00000d5c +#define NV17TCL_LMA_DEPTH_BUFFER_OFFSET 0x00000d60 +#define NV17TCL_LMA_DEPTH_FILL_VALUE 0x00000d68 +#define NV17TCL_LMA_DEPTH_BUFFER_CLEAR 0x00000d6c +#define NV17TCL_LMA_DEPTH_WINDOW_X 0x00001638 +#define NV17TCL_LMA_DEPTH_WINDOW_Y 0x0000163c +#define NV17TCL_LMA_DEPTH_WINDOW_Z 0x00001640 +#define NV17TCL_LMA_DEPTH_WINDOW_W 0x00001644 +#define NV17TCL_LMA_DEPTH_ENABLE 0x00001658 + + +#define NV03_CONTEXT_SURFACES_2D 0x00000058 + +#define NV03_CONTEXT_SURFACES_2D_SYNCHRONIZE 0x00000100 +#define NV03_CONTEXT_SURFACES_2D_DMA_NOTIFY 0x00000180 +#define NV03_CONTEXT_SURFACES_2D_DMA_SOURCE 0x00000184 +#define NV03_CONTEXT_SURFACES_2D_DMA_DESTIN 0x00000188 +#define NV03_CONTEXT_SURFACES_2D_COLOR_FORMAT 0x00000300 +#define NV03_CONTEXT_SURFACES_2D_PITCH 0x00000304 +#define NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT 0 +#define NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK 0x0000ffff +#define NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT 16 +#define NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK 0xffff0000 +#define NV03_CONTEXT_SURFACES_2D_OFFSET_SOURCE 0x00000308 +#define NV03_CONTEXT_SURFACES_2D_OFFSET_DESTIN 0x0000030c + + +#define NV03_CONTEXT_SURFACES_3D 0x0000005a + +#define NV03_CONTEXT_SURFACES_3D_SYNCHRONIZE 0x00000100 +#define NV03_CONTEXT_SURFACES_3D_DMA_NOTIFY 0x00000180 +#define NV03_CONTEXT_SURFACES_3D_DMA_SURFACE 0x00000184 +#define NV03_CONTEXT_SURFACES_3D_PITCH 0x00000300 +#define NV03_CONTEXT_SURFACES_3D_OFFSET_COLOR 0x00000304 +#define NV03_CONTEXT_SURFACES_3D_OFFSET_ZETA 0x00000308 + + +#define NV04_INDEXED_IMAGE_FROM_CPU 0x00000060 + +#define NV04_INDEXED_IMAGE_FROM_CPU_NOP 0x00000100 +#define NV04_INDEXED_IMAGE_FROM_CPU_NOTIFY 0x00000104 +#define NV04_INDEXED_IMAGE_FROM_CPU_PATCH 0x0000010c +#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY 0x00000180 +#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT 0x00000184 +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_KEY 0x00000188 +#define NV04_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE 0x0000018c +#define NV04_INDEXED_IMAGE_FROM_CPU_PATTERN 0x00000190 +#define NV04_INDEXED_IMAGE_FROM_CPU_ROP 0x00000194 +#define NV04_INDEXED_IMAGE_FROM_CPU_BETA1 0x00000198 +#define NV04_INDEXED_IMAGE_FROM_CPU_BETA4 0x0000019c +#define NV04_INDEXED_IMAGE_FROM_CPU_SURFACE 0x000001a0 +#define NV04_INDEXED_IMAGE_FROM_CPU_OPERATION 0x000003e4 +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT 0x000003e8 +#define NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT 0x000003ec +#define NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET 0x000003f0 +#define NV04_INDEXED_IMAGE_FROM_CPU_POINT 0x000003f4 +#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT 0x000003f8 +#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN 0x000003fc +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR(x) (0x00000400+((x)*4)) +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR__SIZE 0x00000700 + + +#define NV05_INDEXED_IMAGE_FROM_CPU 0x00000064 + +#define NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION 0x000003e0 + + +#define NV03_CHANNEL_PIO 0x0000006a + + + +#define NV03_CHANNEL_DMA 0x0000006b + + + +#define NV04_BETA_SOLID 0x00000072 + +#define NV04_BETA_SOLID_NOP 0x00000100 +#define NV04_BETA_SOLID_NOTIFY 0x00000104 +#define NV04_BETA_SOLID_DMA_NOTIFY 0x00000180 +#define NV04_BETA_SOLID_BETA_OUTPUT 0x00000200 +#define NV04_BETA_SOLID_BETA_FACTOR 0x00000300 + + +#define NV10_TEXTURE_FROM_CPU 0x0000007b + +#define NV10_TEXTURE_FROM_CPU_NOP 0x00000100 +#define NV10_TEXTURE_FROM_CPU_NOTIFY 0x00000104 +#define NV10_TEXTURE_FROM_CPU_WAIT_FOR_IDLE 0x00000108 +#define NV10_TEXTURE_FROM_CPU_PM_TRIGGER 0x00000140 +#define NV10_TEXTURE_FROM_CPU_DMA_NOTIFY 0x00000180 +#define NV10_TEXTURE_FROM_CPU_SURFACE 0x00000184 +#define NV10_TEXTURE_FROM_CPU_COLOR_FORMAT 0x00000300 +#define NV10_TEXTURE_FROM_CPU_POINT 0x00000304 +#define NV10_TEXTURE_FROM_CPU_POINT_X_SHIFT 0 +#define NV10_TEXTURE_FROM_CPU_POINT_X_MASK 0x0000ffff +#define NV10_TEXTURE_FROM_CPU_POINT_Y_SHIFT 16 +#define NV10_TEXTURE_FROM_CPU_POINT_Y_MASK 0xffff0000 +#define NV10_TEXTURE_FROM_CPU_SIZE 0x00000308 +#define NV10_TEXTURE_FROM_CPU_SIZE_W_SHIFT 0 +#define NV10_TEXTURE_FROM_CPU_SIZE_W_MASK 0x0000ffff +#define NV10_TEXTURE_FROM_CPU_SIZE_H_SHIFT 16 +#define NV10_TEXTURE_FROM_CPU_SIZE_H_MASK 0xffff0000 +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL 0x0000030c +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_SHIFT 0 +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_MASK 0x0000ffff +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_SHIFT 16 +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_MASK 0xffff0000 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL 0x00000310 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_SHIFT 0 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_MASK 0x0000ffff +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_SHIFT 16 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_MASK 0xffff0000 +#define NV10_TEXTURE_FROM_CPU_COLOR(x) (0x00000400+((x)*4)) +#define NV10_TEXTURE_FROM_CPU_COLOR__SIZE 0x00000700 + + +#define NV30_TEXTURE_FROM_CPU 0x0000037b + + + +#define NV40_TEXTURE_FROM_CPU 0x0000307b + + + +#define NV10_VIDEO_DISPLAY 0x0000007c + + + +#define NV20TCL 0x00000097 + +#define NV20TCL_NOP 0x00000100 +#define NV20TCL_NOTIFY 0x00000104 +#define NV20TCL_DMA_NOTIFY 0x00000180 +#define NV20TCL_DMA_TEXTURE0 0x00000184 +#define NV20TCL_DMA_TEXTURE1 0x00000188 +#define NV20TCL_DMA_COLOR 0x00000194 +#define NV20TCL_DMA_ZETA 0x00000198 +#define NV20TCL_DMA_VTXBUF0 0x0000019c +#define NV20TCL_DMA_VTXBUF1 0x000001a0 +#define NV20TCL_DMA_FENCE 0x000001a4 +#define NV20TCL_DMA_QUERY 0x000001a8 +#define NV20TCL_RT_HORIZ 0x00000200 +#define NV20TCL_RT_HORIZ_X_SHIFT 0 +#define NV20TCL_RT_HORIZ_X_MASK 0x0000ffff +#define NV20TCL_RT_HORIZ_W_SHIFT 16 +#define NV20TCL_RT_HORIZ_W_MASK 0xffff0000 +#define NV20TCL_RT_VERT 0x00000204 +#define NV20TCL_RT_VERT_Y_SHIFT 0 +#define NV20TCL_RT_VERT_Y_MASK 0x0000ffff +#define NV20TCL_RT_VERT_H_SHIFT 16 +#define NV20TCL_RT_VERT_H_MASK 0xffff0000 +#define NV20TCL_RT_FORMAT 0x00000208 +#define NV20TCL_RT_FORMAT_TYPE_SHIFT 8 +#define NV20TCL_RT_FORMAT_TYPE_MASK 0x00000f00 +#define NV20TCL_RT_FORMAT_TYPE_LINEAR 0x00000100 +#define NV20TCL_RT_FORMAT_TYPE_SWIZZLED 0x00000200 +#define NV20TCL_RT_FORMAT_COLOR_SHIFT 0 +#define NV20TCL_RT_FORMAT_COLOR_MASK 0x0000001f +#define NV20TCL_RT_FORMAT_COLOR_R5G6B5 0x00000003 +#define NV20TCL_RT_FORMAT_COLOR_X8R8G8B8 0x00000005 +#define NV20TCL_RT_FORMAT_COLOR_A8R8G8B8 0x00000008 +#define NV20TCL_RT_FORMAT_COLOR_B8 0x00000009 +#define NV20TCL_RT_FORMAT_COLOR_UNKNOWN 0x0000000d +#define NV20TCL_RT_FORMAT_COLOR_X8B8G8R8 0x0000000f +#define NV20TCL_RT_FORMAT_COLOR_A8B8G8R8 0x00000010 +#define NV20TCL_RT_PITCH 0x0000020c +#define NV20TCL_RT_PITCH_COLOR_PITCH_SHIFT 0 +#define NV20TCL_RT_PITCH_COLOR_PITCH_MASK 0x0000ffff +#define NV20TCL_RT_PITCH_ZETA_PITCH_SHIFT 16 +#define NV20TCL_RT_PITCH_ZETA_PITCH_MASK 0xffff0000 +#define NV20TCL_COLOR_OFFSET 0x00000210 +#define NV20TCL_ZETA_OFFSET 0x00000214 +#define NV20TCL_RC_IN_ALPHA(x) (0x00000260+((x)*4)) +#define NV20TCL_RC_IN_ALPHA__SIZE 0x00000008 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_SHIFT 0 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_MASK 0x0000000f +#define NV20TCL_RC_IN_ALPHA_D_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_FOG 0x00000003 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0 0x00000008 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1 0x00000009 +#define NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0 0x0000000c +#define NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE1 0x0000000d +#define NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV20TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F 0x0000000f +#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2 0x0000000a +#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3 0x0000000b +#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4) +#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000 +#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_SHIFT 5 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_MASK 0x000000e0 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_SHIFT 8 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_MASK 0x00000f00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_FOG 0x00000300 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12) +#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000 +#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_SHIFT 13 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_MASK 0x0000e000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_SHIFT 16 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_MASK 0x000f0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_FOG 0x00030000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0 0x00080000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1 0x00090000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0 0x000c0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE1 0x000d0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F 0x000f0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2 0x000a0000 +#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3 0x000b0000 +#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20) +#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000 +#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_SHIFT 21 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_MASK 0x00e00000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_SHIFT 24 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_MASK 0x0f000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_FOG 0x03000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0 0x08000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1 0x09000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0 0x0c000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE1 0x0d000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F 0x0f000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2 0x0a000000 +#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3 0x0b000000 +#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28) +#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000 +#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_SHIFT 29 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_MASK 0xe0000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV20TCL_RC_FINAL0 0x00000288 +#define NV20TCL_RC_FINAL0_D_INPUT_SHIFT 0 +#define NV20TCL_RC_FINAL0_D_INPUT_MASK 0x0000000f +#define NV20TCL_RC_FINAL0_D_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV20TCL_RC_FINAL0_D_INPUT_FOG 0x00000003 +#define NV20TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV20TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE0 0x00000008 +#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE1 0x00000009 +#define NV20TCL_RC_FINAL0_D_INPUT_SPARE0 0x0000000c +#define NV20TCL_RC_FINAL0_D_INPUT_SPARE1 0x0000000d +#define NV20TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV20TCL_RC_FINAL0_D_INPUT_E_TIMES_F 0x0000000f +#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE2 0x0000000a +#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE3 0x0000000b +#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4) +#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV20TCL_RC_FINAL0_D_MAPPING_SHIFT 5 +#define NV20TCL_RC_FINAL0_D_MAPPING_MASK 0x000000e0 +#define NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV20TCL_RC_FINAL0_C_INPUT_SHIFT 8 +#define NV20TCL_RC_FINAL0_C_INPUT_MASK 0x00000f00 +#define NV20TCL_RC_FINAL0_C_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_FINAL0_C_INPUT_FOG 0x00000300 +#define NV20TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_FINAL0_C_INPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_FINAL0_C_INPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_FINAL0_C_INPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12) +#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV20TCL_RC_FINAL0_C_MAPPING_SHIFT 13 +#define NV20TCL_RC_FINAL0_C_MAPPING_MASK 0x0000e000 +#define NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV20TCL_RC_FINAL0_B_INPUT_SHIFT 16 +#define NV20TCL_RC_FINAL0_B_INPUT_MASK 0x000f0000 +#define NV20TCL_RC_FINAL0_B_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV20TCL_RC_FINAL0_B_INPUT_FOG 0x00030000 +#define NV20TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV20TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE0 0x00080000 +#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE1 0x00090000 +#define NV20TCL_RC_FINAL0_B_INPUT_SPARE0 0x000c0000 +#define NV20TCL_RC_FINAL0_B_INPUT_SPARE1 0x000d0000 +#define NV20TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV20TCL_RC_FINAL0_B_INPUT_E_TIMES_F 0x000f0000 +#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE2 0x000a0000 +#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE3 0x000b0000 +#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20) +#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV20TCL_RC_FINAL0_B_MAPPING_SHIFT 21 +#define NV20TCL_RC_FINAL0_B_MAPPING_MASK 0x00e00000 +#define NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV20TCL_RC_FINAL0_A_INPUT_SHIFT 24 +#define NV20TCL_RC_FINAL0_A_INPUT_MASK 0x0f000000 +#define NV20TCL_RC_FINAL0_A_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV20TCL_RC_FINAL0_A_INPUT_FOG 0x03000000 +#define NV20TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV20TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE0 0x08000000 +#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE1 0x09000000 +#define NV20TCL_RC_FINAL0_A_INPUT_SPARE0 0x0c000000 +#define NV20TCL_RC_FINAL0_A_INPUT_SPARE1 0x0d000000 +#define NV20TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV20TCL_RC_FINAL0_A_INPUT_E_TIMES_F 0x0f000000 +#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE2 0x0a000000 +#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE3 0x0b000000 +#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28) +#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_SHIFT 29 +#define NV20TCL_RC_FINAL0_A_MAPPING_MASK 0xe0000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV20TCL_RC_FINAL1 0x0000028c +#define NV20TCL_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7) +#define NV20TCL_RC_FINAL1_G_INPUT_SHIFT 8 +#define NV20TCL_RC_FINAL1_G_INPUT_MASK 0x00000f00 +#define NV20TCL_RC_FINAL1_G_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_FINAL1_G_INPUT_FOG 0x00000300 +#define NV20TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_FINAL1_G_INPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_FINAL1_G_INPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_FINAL1_G_INPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12) +#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV20TCL_RC_FINAL1_G_MAPPING_SHIFT 13 +#define NV20TCL_RC_FINAL1_G_MAPPING_MASK 0x0000e000 +#define NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV20TCL_RC_FINAL1_F_INPUT_SHIFT 16 +#define NV20TCL_RC_FINAL1_F_INPUT_MASK 0x000f0000 +#define NV20TCL_RC_FINAL1_F_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV20TCL_RC_FINAL1_F_INPUT_FOG 0x00030000 +#define NV20TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR 0x00040000 +#define NV20TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR 0x00050000 +#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE0 0x00080000 +#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE1 0x00090000 +#define NV20TCL_RC_FINAL1_F_INPUT_SPARE0 0x000c0000 +#define NV20TCL_RC_FINAL1_F_INPUT_SPARE1 0x000d0000 +#define NV20TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV20TCL_RC_FINAL1_F_INPUT_E_TIMES_F 0x000f0000 +#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE2 0x000a0000 +#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE3 0x000b0000 +#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20) +#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV20TCL_RC_FINAL1_F_MAPPING_SHIFT 21 +#define NV20TCL_RC_FINAL1_F_MAPPING_MASK 0x00e00000 +#define NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV20TCL_RC_FINAL1_E_INPUT_SHIFT 24 +#define NV20TCL_RC_FINAL1_E_INPUT_MASK 0x0f000000 +#define NV20TCL_RC_FINAL1_E_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV20TCL_RC_FINAL1_E_INPUT_FOG 0x03000000 +#define NV20TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR 0x04000000 +#define NV20TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR 0x05000000 +#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE0 0x08000000 +#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE1 0x09000000 +#define NV20TCL_RC_FINAL1_E_INPUT_SPARE0 0x0c000000 +#define NV20TCL_RC_FINAL1_E_INPUT_SPARE1 0x0d000000 +#define NV20TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV20TCL_RC_FINAL1_E_INPUT_E_TIMES_F 0x0f000000 +#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE2 0x0a000000 +#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE3 0x0b000000 +#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28) +#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_SHIFT 29 +#define NV20TCL_RC_FINAL1_E_MAPPING_MASK 0xe0000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV20TCL_LIGHT_MODEL 0x00000294 +#define NV20TCL_LIGHT_MODEL_VIEWER_SHIFT 16 +#define NV20TCL_LIGHT_MODEL_VIEWER_MASK 0x00030000 +#define NV20TCL_LIGHT_MODEL_VIEWER_NONLOCAL 0x00020000 +#define NV20TCL_LIGHT_MODEL_VIEWER_LOCAL 0x00030000 +#define NV20TCL_LIGHT_MODEL_SEPARATE_SPECULAR (1 << 0) +#define NV20TCL_COLOR_MATERIAL 0x00000298 +#define NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_SHIFT 0 +#define NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_MASK 0x00000003 +#define NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL1 0x00000001 +#define NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL2 0x00000002 +#define NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_SHIFT 2 +#define NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_MASK 0x0000000c +#define NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL1 0x00000004 +#define NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL2 0x00000008 +#define NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_SHIFT 4 +#define NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_MASK 0x00000030 +#define NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL1 0x00000010 +#define NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL2 0x00000020 +#define NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_SHIFT 6 +#define NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_MASK 0x000000c0 +#define NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL1 0x00000040 +#define NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL2 0x00000080 +#define NV20TCL_COLOR_MATERIAL_BACK_EMISSION_SHIFT 8 +#define NV20TCL_COLOR_MATERIAL_BACK_EMISSION_MASK 0x00000300 +#define NV20TCL_COLOR_MATERIAL_BACK_EMISSION_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL1 0x00000100 +#define NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL2 0x00000200 +#define NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_SHIFT 10 +#define NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_MASK 0x00000c00 +#define NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL1 0x00000400 +#define NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL2 0x00000800 +#define NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_SHIFT 12 +#define NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_MASK 0x00003000 +#define NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL1 0x00001000 +#define NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL2 0x00002000 +#define NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_SHIFT 14 +#define NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_MASK 0x0000c000 +#define NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_OFF 0x00000000 +#define NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL1 0x00004000 +#define NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL2 0x00008000 +#define NV20TCL_FOG_MODE 0x0000029c +#define NV20TCL_FOG_MODE_LINEAR_UNSIGNED 0x00000804 +#define NV20TCL_FOG_MODE_LINEAR_SIGNED 0x00002601 +#define NV20TCL_FOG_MODE_EXP_UNSIGNED 0x00000802 +#define NV20TCL_FOG_MODE_EXP_SIGNED 0x00000800 +#define NV20TCL_FOG_MODE_EXP2_UNSIGNED 0x00000803 +#define NV20TCL_FOG_MODE_EXP2_SIGNED 0x00000801 +#define NV20TCL_FOG_COORD 0x000002a0 +#define NV20TCL_FOG_COORD_DIST_RADIAL 0x00000001 +#define NV20TCL_FOG_COORD_DIST_ORTHOGONAL 0x00000002 +#define NV20TCL_FOG_COORD_DIST_ORTHOGONAL_ABS 0x00000003 +#define NV20TCL_FOG_COORD_FOG 0x00000006 +#define NV20TCL_FOG_ENABLE 0x000002a4 +#define NV20TCL_FOG_COLOR 0x000002a8 +#define NV20TCL_FOG_COLOR_R_SHIFT 0 +#define NV20TCL_FOG_COLOR_R_MASK 0x000000ff +#define NV20TCL_FOG_COLOR_G_SHIFT 8 +#define NV20TCL_FOG_COLOR_G_MASK 0x0000ff00 +#define NV20TCL_FOG_COLOR_B_SHIFT 16 +#define NV20TCL_FOG_COLOR_B_MASK 0x00ff0000 +#define NV20TCL_FOG_COLOR_A_SHIFT 24 +#define NV20TCL_FOG_COLOR_A_MASK 0xff000000 +#define NV20TCL_VIEWPORT_CLIP_MODE 0x000002b4 +#define NV20TCL_VIEWPORT_CLIP_HORIZ(x) (0x000002c0+((x)*4)) +#define NV20TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV20TCL_VIEWPORT_CLIP_VERT(x) (0x000002e0+((x)*4)) +#define NV20TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV20TCL_ALPHA_FUNC_ENABLE 0x00000300 +#define NV20TCL_BLEND_FUNC_ENABLE 0x00000304 +#define NV20TCL_CULL_FACE_ENABLE 0x00000308 +#define NV20TCL_DEPTH_TEST_ENABLE 0x0000030c +#define NV20TCL_DITHER_ENABLE 0x00000310 +#define NV20TCL_LIGHTING_ENABLE 0x00000314 +#define NV20TCL_POINT_PARAMETERS_ENABLE 0x00000318 +#define NV20TCL_POINT_SMOOTH_ENABLE 0x0000031c +#define NV20TCL_LINE_SMOOTH_ENABLE 0x00000320 +#define NV20TCL_POLYGON_SMOOTH_ENABLE 0x00000324 +#define NV20TCL_STENCIL_ENABLE 0x0000032c +#define NV20TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000330 +#define NV20TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000334 +#define NV20TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000338 +#define NV20TCL_ALPHA_FUNC_FUNC 0x0000033c +#define NV20TCL_ALPHA_FUNC_FUNC_NEVER 0x00000200 +#define NV20TCL_ALPHA_FUNC_FUNC_LESS 0x00000201 +#define NV20TCL_ALPHA_FUNC_FUNC_EQUAL 0x00000202 +#define NV20TCL_ALPHA_FUNC_FUNC_LEQUAL 0x00000203 +#define NV20TCL_ALPHA_FUNC_FUNC_GREATER 0x00000204 +#define NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV20TCL_ALPHA_FUNC_FUNC_GEQUAL 0x00000206 +#define NV20TCL_ALPHA_FUNC_FUNC_ALWAYS 0x00000207 +#define NV20TCL_ALPHA_FUNC_REF 0x00000340 +#define NV20TCL_BLEND_FUNC_SRC 0x00000344 +#define NV20TCL_BLEND_FUNC_SRC_ZERO 0x00000000 +#define NV20TCL_BLEND_FUNC_SRC_ONE 0x00000001 +#define NV20TCL_BLEND_FUNC_SRC_SRC_COLOR 0x00000300 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA 0x00000302 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV20TCL_BLEND_FUNC_SRC_DST_ALPHA 0x00000304 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV20TCL_BLEND_FUNC_SRC_DST_COLOR 0x00000306 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR 0x00000307 +#define NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE 0x00000308 +#define NV20TCL_BLEND_FUNC_SRC_CONSTANT_COLOR 0x00008001 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV20TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA 0x00008003 +#define NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV20TCL_BLEND_FUNC_DST 0x00000348 +#define NV20TCL_BLEND_FUNC_DST_ZERO 0x00000000 +#define NV20TCL_BLEND_FUNC_DST_ONE 0x00000001 +#define NV20TCL_BLEND_FUNC_DST_SRC_COLOR 0x00000300 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV20TCL_BLEND_FUNC_DST_SRC_ALPHA 0x00000302 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV20TCL_BLEND_FUNC_DST_DST_ALPHA 0x00000304 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV20TCL_BLEND_FUNC_DST_DST_COLOR 0x00000306 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR 0x00000307 +#define NV20TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE 0x00000308 +#define NV20TCL_BLEND_FUNC_DST_CONSTANT_COLOR 0x00008001 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV20TCL_BLEND_FUNC_DST_CONSTANT_ALPHA 0x00008003 +#define NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV20TCL_BLEND_COLOR 0x0000034c +#define NV20TCL_BLEND_COLOR_B_SHIFT 0 +#define NV20TCL_BLEND_COLOR_B_MASK 0x000000ff +#define NV20TCL_BLEND_COLOR_G_SHIFT 8 +#define NV20TCL_BLEND_COLOR_G_MASK 0x0000ff00 +#define NV20TCL_BLEND_COLOR_R_SHIFT 16 +#define NV20TCL_BLEND_COLOR_R_MASK 0x00ff0000 +#define NV20TCL_BLEND_COLOR_A_SHIFT 24 +#define NV20TCL_BLEND_COLOR_A_MASK 0xff000000 +#define NV20TCL_BLEND_EQUATION 0x00000350 +#define NV20TCL_BLEND_EQUATION_FUNC_ADD 0x00008006 +#define NV20TCL_BLEND_EQUATION_MIN 0x00008007 +#define NV20TCL_BLEND_EQUATION_MAX 0x00008008 +#define NV20TCL_BLEND_EQUATION_FUNC_SUBTRACT 0x0000800a +#define NV20TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV20TCL_DEPTH_FUNC 0x00000354 +#define NV20TCL_DEPTH_FUNC_NEVER 0x00000200 +#define NV20TCL_DEPTH_FUNC_LESS 0x00000201 +#define NV20TCL_DEPTH_FUNC_EQUAL 0x00000202 +#define NV20TCL_DEPTH_FUNC_LEQUAL 0x00000203 +#define NV20TCL_DEPTH_FUNC_GREATER 0x00000204 +#define NV20TCL_DEPTH_FUNC_NOTEQUAL 0x00000205 +#define NV20TCL_DEPTH_FUNC_GEQUAL 0x00000206 +#define NV20TCL_DEPTH_FUNC_ALWAYS 0x00000207 +#define NV20TCL_COLOR_MASK 0x00000358 +#define NV20TCL_COLOR_MASK_B (1 << 0) +#define NV20TCL_COLOR_MASK_G (1 << 8) +#define NV20TCL_COLOR_MASK_R (1 << 16) +#define NV20TCL_COLOR_MASK_A (1 << 24) +#define NV20TCL_DEPTH_WRITE_ENABLE 0x0000035c +#define NV20TCL_STENCIL_MASK 0x00000360 +#define NV20TCL_STENCIL_FUNC_FUNC 0x00000364 +#define NV20TCL_STENCIL_FUNC_FUNC_NEVER 0x00000200 +#define NV20TCL_STENCIL_FUNC_FUNC_LESS 0x00000201 +#define NV20TCL_STENCIL_FUNC_FUNC_EQUAL 0x00000202 +#define NV20TCL_STENCIL_FUNC_FUNC_LEQUAL 0x00000203 +#define NV20TCL_STENCIL_FUNC_FUNC_GREATER 0x00000204 +#define NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV20TCL_STENCIL_FUNC_FUNC_GEQUAL 0x00000206 +#define NV20TCL_STENCIL_FUNC_FUNC_ALWAYS 0x00000207 +#define NV20TCL_STENCIL_FUNC_REF 0x00000368 +#define NV20TCL_STENCIL_FUNC_MASK 0x0000036c +#define NV20TCL_STENCIL_OP_FAIL 0x00000370 +#define NV20TCL_STENCIL_OP_FAIL_ZERO 0x00000000 +#define NV20TCL_STENCIL_OP_FAIL_INVERT 0x0000150a +#define NV20TCL_STENCIL_OP_FAIL_KEEP 0x00001e00 +#define NV20TCL_STENCIL_OP_FAIL_REPLACE 0x00001e01 +#define NV20TCL_STENCIL_OP_FAIL_INCR 0x00001e02 +#define NV20TCL_STENCIL_OP_FAIL_DECR 0x00001e03 +#define NV20TCL_STENCIL_OP_FAIL_INCR_WRAP 0x00008507 +#define NV20TCL_STENCIL_OP_FAIL_DECR_WRAP 0x00008508 +#define NV20TCL_STENCIL_OP_ZFAIL 0x00000374 +#define NV20TCL_STENCIL_OP_ZFAIL_ZERO 0x00000000 +#define NV20TCL_STENCIL_OP_ZFAIL_INVERT 0x0000150a +#define NV20TCL_STENCIL_OP_ZFAIL_KEEP 0x00001e00 +#define NV20TCL_STENCIL_OP_ZFAIL_REPLACE 0x00001e01 +#define NV20TCL_STENCIL_OP_ZFAIL_INCR 0x00001e02 +#define NV20TCL_STENCIL_OP_ZFAIL_DECR 0x00001e03 +#define NV20TCL_STENCIL_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV20TCL_STENCIL_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV20TCL_STENCIL_OP_ZPASS 0x00000378 +#define NV20TCL_STENCIL_OP_ZPASS_ZERO 0x00000000 +#define NV20TCL_STENCIL_OP_ZPASS_INVERT 0x0000150a +#define NV20TCL_STENCIL_OP_ZPASS_KEEP 0x00001e00 +#define NV20TCL_STENCIL_OP_ZPASS_REPLACE 0x00001e01 +#define NV20TCL_STENCIL_OP_ZPASS_INCR 0x00001e02 +#define NV20TCL_STENCIL_OP_ZPASS_DECR 0x00001e03 +#define NV20TCL_STENCIL_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV20TCL_STENCIL_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV20TCL_SHADE_MODEL 0x0000037c +#define NV20TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NV20TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NV20TCL_LINE_WIDTH 0x00000380 +#define NV20TCL_POLYGON_OFFSET_FACTOR 0x00000384 +#define NV20TCL_POLYGON_OFFSET_UNITS 0x00000388 +#define NV20TCL_POLYGON_MODE_FRONT 0x0000038c +#define NV20TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NV20TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NV20TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NV20TCL_POLYGON_MODE_BACK 0x00000390 +#define NV20TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NV20TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NV20TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NV20TCL_DEPTH_RANGE_NEAR 0x00000394 +#define NV20TCL_DEPTH_RANGE_FAR 0x00000398 +#define NV20TCL_CULL_FACE 0x0000039c +#define NV20TCL_CULL_FACE_FRONT 0x00000404 +#define NV20TCL_CULL_FACE_BACK 0x00000405 +#define NV20TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NV20TCL_FRONT_FACE 0x000003a0 +#define NV20TCL_FRONT_FACE_CW 0x00000900 +#define NV20TCL_FRONT_FACE_CCW 0x00000901 +#define NV20TCL_NORMALIZE_ENABLE 0x000003a4 +#define NV20TCL_MATERIAL_FACTOR_FRONT_R 0x000003a8 +#define NV20TCL_MATERIAL_FACTOR_FRONT_G 0x000003ac +#define NV20TCL_MATERIAL_FACTOR_FRONT_B 0x000003b0 +#define NV20TCL_MATERIAL_FACTOR_FRONT_A 0x000003b4 +#define NV20TCL_SEPARATE_SPECULAR_ENABLE 0x000003b8 +#define NV20TCL_ENABLED_LIGHTS 0x000003bc +#define NV20TCL_ENABLED_LIGHTS_0_SHIFT 0 +#define NV20TCL_ENABLED_LIGHTS_0_MASK 0x00000003 +#define NV20TCL_ENABLED_LIGHTS_0_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_0_NONPOSITIONAL 0x00000001 +#define NV20TCL_ENABLED_LIGHTS_0_POSITIONAL 0x00000002 +#define NV20TCL_ENABLED_LIGHTS_0_DIRECTIONAL 0x00000003 +#define NV20TCL_ENABLED_LIGHTS_1_SHIFT 2 +#define NV20TCL_ENABLED_LIGHTS_1_MASK 0x0000000c +#define NV20TCL_ENABLED_LIGHTS_1_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_1_NONPOSITIONAL 0x00000004 +#define NV20TCL_ENABLED_LIGHTS_1_POSITIONAL 0x00000008 +#define NV20TCL_ENABLED_LIGHTS_1_DIRECTIONAL 0x0000000c +#define NV20TCL_ENABLED_LIGHTS_2_SHIFT 4 +#define NV20TCL_ENABLED_LIGHTS_2_MASK 0x00000030 +#define NV20TCL_ENABLED_LIGHTS_2_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_2_NONPOSITIONAL 0x00000010 +#define NV20TCL_ENABLED_LIGHTS_2_POSITIONAL 0x00000020 +#define NV20TCL_ENABLED_LIGHTS_2_DIRECTIONAL 0x00000030 +#define NV20TCL_ENABLED_LIGHTS_3_SHIFT 6 +#define NV20TCL_ENABLED_LIGHTS_3_MASK 0x000000c0 +#define NV20TCL_ENABLED_LIGHTS_3_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_3_NONPOSITIONAL 0x00000040 +#define NV20TCL_ENABLED_LIGHTS_3_POSITIONAL 0x00000080 +#define NV20TCL_ENABLED_LIGHTS_3_DIRECTIONAL 0x000000c0 +#define NV20TCL_ENABLED_LIGHTS_4_SHIFT 8 +#define NV20TCL_ENABLED_LIGHTS_4_MASK 0x00000300 +#define NV20TCL_ENABLED_LIGHTS_4_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_4_NONPOSITIONAL 0x00000100 +#define NV20TCL_ENABLED_LIGHTS_4_POSITIONAL 0x00000200 +#define NV20TCL_ENABLED_LIGHTS_4_DIRECTIONAL 0x00000300 +#define NV20TCL_ENABLED_LIGHTS_5_SHIFT 10 +#define NV20TCL_ENABLED_LIGHTS_5_MASK 0x00000c00 +#define NV20TCL_ENABLED_LIGHTS_5_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_5_NONPOSITIONAL 0x00000400 +#define NV20TCL_ENABLED_LIGHTS_5_POSITIONAL 0x00000800 +#define NV20TCL_ENABLED_LIGHTS_5_DIRECTIONAL 0x00000c00 +#define NV20TCL_ENABLED_LIGHTS_6_SHIFT 12 +#define NV20TCL_ENABLED_LIGHTS_6_MASK 0x00003000 +#define NV20TCL_ENABLED_LIGHTS_6_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_6_NONPOSITIONAL 0x00001000 +#define NV20TCL_ENABLED_LIGHTS_6_POSITIONAL 0x00002000 +#define NV20TCL_ENABLED_LIGHTS_6_DIRECTIONAL 0x00003000 +#define NV20TCL_ENABLED_LIGHTS_7_SHIFT 14 +#define NV20TCL_ENABLED_LIGHTS_7_MASK 0x0000c000 +#define NV20TCL_ENABLED_LIGHTS_7_DISABLED 0x00000000 +#define NV20TCL_ENABLED_LIGHTS_7_NONPOSITIONAL 0x00004000 +#define NV20TCL_ENABLED_LIGHTS_7_POSITIONAL 0x00008000 +#define NV20TCL_ENABLED_LIGHTS_7_DIRECTIONAL 0x0000c000 +#define NV20TCL_TX_GEN_MODE_S(x) (0x000003c0+((x)*16)) +#define NV20TCL_TX_GEN_MODE_S__SIZE 0x00000004 +#define NV20TCL_TX_GEN_MODE_S_FALSE 0x00000000 +#define NV20TCL_TX_GEN_MODE_S_EYE_LINEAR 0x00002400 +#define NV20TCL_TX_GEN_MODE_S_OBJECT_LINEAR 0x00002401 +#define NV20TCL_TX_GEN_MODE_S_SPHERE_MAP 0x00002402 +#define NV20TCL_TX_GEN_MODE_S_NORMAL_MAP 0x00008511 +#define NV20TCL_TX_GEN_MODE_S_REFLECTION_MAP 0x00008512 +#define NV20TCL_TX_GEN_MODE_T(x) (0x000003c4+((x)*16)) +#define NV20TCL_TX_GEN_MODE_T__SIZE 0x00000004 +#define NV20TCL_TX_GEN_MODE_T_FALSE 0x00000000 +#define NV20TCL_TX_GEN_MODE_T_EYE_LINEAR 0x00002400 +#define NV20TCL_TX_GEN_MODE_T_OBJECT_LINEAR 0x00002401 +#define NV20TCL_TX_GEN_MODE_T_SPHERE_MAP 0x00002402 +#define NV20TCL_TX_GEN_MODE_T_NORMAL_MAP 0x00008511 +#define NV20TCL_TX_GEN_MODE_T_REFLECTION_MAP 0x00008512 +#define NV20TCL_TX_GEN_MODE_R(x) (0x000003c8+((x)*16)) +#define NV20TCL_TX_GEN_MODE_R__SIZE 0x00000004 +#define NV20TCL_TX_GEN_MODE_R_FALSE 0x00000000 +#define NV20TCL_TX_GEN_MODE_R_EYE_LINEAR 0x00002400 +#define NV20TCL_TX_GEN_MODE_R_OBJECT_LINEAR 0x00002401 +#define NV20TCL_TX_GEN_MODE_R_SPHERE_MAP 0x00002402 +#define NV20TCL_TX_GEN_MODE_R_NORMAL_MAP 0x00008511 +#define NV20TCL_TX_GEN_MODE_R_REFLECTION_MAP 0x00008512 +#define NV20TCL_TX_GEN_MODE_Q(x) (0x000003cc+((x)*16)) +#define NV20TCL_TX_GEN_MODE_Q__SIZE 0x00000004 +#define NV20TCL_TX_GEN_MODE_Q_FALSE 0x00000000 +#define NV20TCL_TX_GEN_MODE_Q_EYE_LINEAR 0x00002400 +#define NV20TCL_TX_GEN_MODE_Q_OBJECT_LINEAR 0x00002401 +#define NV20TCL_TX_GEN_MODE_Q_SPHERE_MAP 0x00002402 +#define NV20TCL_TX_GEN_MODE_Q_NORMAL_MAP 0x00008511 +#define NV20TCL_TX_GEN_MODE_Q_REFLECTION_MAP 0x00008512 +#define NV20TCL_TX_MATRIX_ENABLE(x) (0x00000420+((x)*4)) +#define NV20TCL_TX_MATRIX_ENABLE__SIZE 0x00000004 +#define NV20TCL_POINT_SIZE 0x0000043c +#define NV20TCL_MODELVIEW0_MATRIX(x) (0x00000480+((x)*4)) +#define NV20TCL_MODELVIEW0_MATRIX__SIZE 0x00000010 +#define NV20TCL_MODELVIEW1_MATRIX(x) (0x000004c0+((x)*4)) +#define NV20TCL_MODELVIEW1_MATRIX__SIZE 0x00000010 +#define NV20TCL_MODELVIEW2_MATRIX(x) (0x00000500+((x)*4)) +#define NV20TCL_MODELVIEW2_MATRIX__SIZE 0x00000010 +#define NV20TCL_MODELVIEW3_MATRIX(x) (0x00000540+((x)*4)) +#define NV20TCL_MODELVIEW3_MATRIX__SIZE 0x00000010 +#define NV20TCL_INVERSE_MODELVIEW0_MATRIX(x) (0x00000580+((x)*4)) +#define NV20TCL_INVERSE_MODELVIEW0_MATRIX__SIZE 0x00000010 +#define NV20TCL_INVERSE_MODELVIEW1_MATRIX(x) (0x000005c0+((x)*4)) +#define NV20TCL_INVERSE_MODELVIEW1_MATRIX__SIZE 0x00000010 +#define NV20TCL_INVERSE_MODELVIEW2_MATRIX(x) (0x00000600+((x)*4)) +#define NV20TCL_INVERSE_MODELVIEW2_MATRIX__SIZE 0x00000010 +#define NV20TCL_INVERSE_MODELVIEW3_MATRIX(x) (0x00000640+((x)*4)) +#define NV20TCL_INVERSE_MODELVIEW3_MATRIX__SIZE 0x00000010 +#define NV20TCL_PROJECTION_MATRIX(x) (0x00000680+((x)*4)) +#define NV20TCL_PROJECTION_MATRIX__SIZE 0x00000010 +#define NV20TCL_TX0_MATRIX(x) (0x000006c0+((x)*4)) +#define NV20TCL_TX0_MATRIX__SIZE 0x00000010 +#define NV20TCL_TX1_MATRIX(x) (0x00000700+((x)*4)) +#define NV20TCL_TX1_MATRIX__SIZE 0x00000010 +#define NV20TCL_TX2_MATRIX(x) (0x00000740+((x)*4)) +#define NV20TCL_TX2_MATRIX__SIZE 0x00000010 +#define NV20TCL_TX3_MATRIX(x) (0x00000780+((x)*4)) +#define NV20TCL_TX3_MATRIX__SIZE 0x00000010 +#define NV20TCL_TX_GEN_COEFF_S_A(x) (0x00000840+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_S_A__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_S_B(x) (0x00000844+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_S_B__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_S_C(x) (0x00000848+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_S_C__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_S_D(x) (0x0000084c+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_S_D__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_T_A(x) (0x00000850+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_T_A__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_T_B(x) (0x00000854+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_T_B__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_T_C(x) (0x00000858+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_T_C__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_T_D(x) (0x0000085c+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_T_D__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_R_A(x) (0x00000860+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_R_A__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_R_B(x) (0x00000864+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_R_B__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_R_C(x) (0x00000868+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_R_C__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_R_D(x) (0x0000086c+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_R_D__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_Q_A(x) (0x00000870+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_Q_A__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_Q_B(x) (0x00000874+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_Q_B__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_Q_C(x) (0x00000878+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_Q_C__SIZE 0x00000004 +#define NV20TCL_TX_GEN_COEFF_Q_D(x) (0x0000087c+((x)*64)) +#define NV20TCL_TX_GEN_COEFF_Q_D__SIZE 0x00000004 +#define NV20TCL_FOG_EQUATION_CONSTANT 0x000009c0 +#define NV20TCL_FOG_EQUATION_LINEAR 0x000009c4 +#define NV20TCL_FOG_EQUATION_QUADRATIC 0x000009c8 +#define NV20TCL_FRONT_MATERIAL_SHININESS(x) (0x000009e0+((x)*4)) +#define NV20TCL_FRONT_MATERIAL_SHININESS__SIZE 0x00000006 +#define NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_R 0x00000a10 +#define NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_G 0x00000a14 +#define NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_B 0x00000a18 +#define NV20TCL_VIEWPORT_TRANSLATE_X 0x00000a20 +#define NV20TCL_VIEWPORT_TRANSLATE_Y 0x00000a24 +#define NV20TCL_VIEWPORT_TRANSLATE_Z 0x00000a28 +#define NV20TCL_VIEWPORT_TRANSLATE_W 0x00000a2c +#define NV20TCL_POINT_PARAMETER(x) (0x00000a30+((x)*4)) +#define NV20TCL_POINT_PARAMETER__SIZE 0x00000008 +#define NV20TCL_RC_CONSTANT_COLOR0(x) (0x00000a60+((x)*4)) +#define NV20TCL_RC_CONSTANT_COLOR0__SIZE 0x00000008 +#define NV20TCL_RC_CONSTANT_COLOR0_B_SHIFT 0 +#define NV20TCL_RC_CONSTANT_COLOR0_B_MASK 0x000000ff +#define NV20TCL_RC_CONSTANT_COLOR0_G_SHIFT 8 +#define NV20TCL_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00 +#define NV20TCL_RC_CONSTANT_COLOR0_R_SHIFT 16 +#define NV20TCL_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000 +#define NV20TCL_RC_CONSTANT_COLOR0_A_SHIFT 24 +#define NV20TCL_RC_CONSTANT_COLOR0_A_MASK 0xff000000 +#define NV20TCL_RC_CONSTANT_COLOR1(x) (0x00000a80+((x)*4)) +#define NV20TCL_RC_CONSTANT_COLOR1__SIZE 0x00000008 +#define NV20TCL_RC_CONSTANT_COLOR1_B_SHIFT 0 +#define NV20TCL_RC_CONSTANT_COLOR1_B_MASK 0x000000ff +#define NV20TCL_RC_CONSTANT_COLOR1_G_SHIFT 8 +#define NV20TCL_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00 +#define NV20TCL_RC_CONSTANT_COLOR1_R_SHIFT 16 +#define NV20TCL_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000 +#define NV20TCL_RC_CONSTANT_COLOR1_A_SHIFT 24 +#define NV20TCL_RC_CONSTANT_COLOR1_A_MASK 0xff000000 +#define NV20TCL_RC_OUT_ALPHA(x) (0x00000aa0+((x)*4)) +#define NV20TCL_RC_OUT_ALPHA__SIZE 0x00000008 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT 0 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK 0x0000000f +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG 0x00000003 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0 0x0000000c +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1 0x0000000d +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG 0x00000030 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0 0x000000c0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1 0x000000d0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG 0x00000300 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12) +#define NV20TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13) +#define NV20TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14) +#define NV20TCL_RC_OUT_ALPHA_BIAS (1 << 15) +#define NV20TCL_RC_OUT_ALPHA_BIAS_NONE 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV20TCL_RC_OUT_ALPHA_SCALE_SHIFT 17 +#define NV20TCL_RC_OUT_ALPHA_SCALE_MASK 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_SCALE_NONE 0x00000000 +#define NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO 0x00020000 +#define NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV20TCL_RC_IN_RGB(x) (0x00000ac0+((x)*4)) +#define NV20TCL_RC_IN_RGB__SIZE 0x00000008 +#define NV20TCL_RC_IN_RGB_D_INPUT_SHIFT 0 +#define NV20TCL_RC_IN_RGB_D_INPUT_MASK 0x0000000f +#define NV20TCL_RC_IN_RGB_D_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV20TCL_RC_IN_RGB_D_INPUT_FOG 0x00000003 +#define NV20TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV20TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE0 0x00000008 +#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE1 0x00000009 +#define NV20TCL_RC_IN_RGB_D_INPUT_SPARE0 0x0000000c +#define NV20TCL_RC_IN_RGB_D_INPUT_SPARE1 0x0000000d +#define NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV20TCL_RC_IN_RGB_D_INPUT_E_TIMES_F 0x0000000f +#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE2 0x0000000a +#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE3 0x0000000b +#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4) +#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV20TCL_RC_IN_RGB_D_MAPPING_SHIFT 5 +#define NV20TCL_RC_IN_RGB_D_MAPPING_MASK 0x000000e0 +#define NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV20TCL_RC_IN_RGB_C_INPUT_SHIFT 8 +#define NV20TCL_RC_IN_RGB_C_INPUT_MASK 0x00000f00 +#define NV20TCL_RC_IN_RGB_C_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_IN_RGB_C_INPUT_FOG 0x00000300 +#define NV20TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_IN_RGB_C_INPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_IN_RGB_C_INPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_IN_RGB_C_INPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12) +#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_SHIFT 13 +#define NV20TCL_RC_IN_RGB_C_MAPPING_MASK 0x0000e000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV20TCL_RC_IN_RGB_B_INPUT_SHIFT 16 +#define NV20TCL_RC_IN_RGB_B_INPUT_MASK 0x000f0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV20TCL_RC_IN_RGB_B_INPUT_FOG 0x00030000 +#define NV20TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV20TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE0 0x00080000 +#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE1 0x00090000 +#define NV20TCL_RC_IN_RGB_B_INPUT_SPARE0 0x000c0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_SPARE1 0x000d0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_E_TIMES_F 0x000f0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE2 0x000a0000 +#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE3 0x000b0000 +#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20) +#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_SHIFT 21 +#define NV20TCL_RC_IN_RGB_B_MAPPING_MASK 0x00e00000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV20TCL_RC_IN_RGB_A_INPUT_SHIFT 24 +#define NV20TCL_RC_IN_RGB_A_INPUT_MASK 0x0f000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_ZERO 0x00000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_FOG 0x03000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE0 0x08000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE1 0x09000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_SPARE0 0x0c000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_SPARE1 0x0d000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_E_TIMES_F 0x0f000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE2 0x0a000000 +#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE3 0x0b000000 +#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28) +#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_SHIFT 29 +#define NV20TCL_RC_IN_RGB_A_MAPPING_MASK 0xe0000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV20TCL_VIEWPORT_SCALE_X 0x00000af0 +#define NV20TCL_VIEWPORT_SCALE_Y 0x00000af4 +#define NV20TCL_VIEWPORT_SCALE_Z 0x00000af8 +#define NV20TCL_VIEWPORT_SCALE_W 0x00000afc +#define NV20TCL_VP_UPLOAD_INST(x) (0x00000b00+((x)*4)) +#define NV20TCL_VP_UPLOAD_INST__SIZE 0x00000004 +#define NV20TCL_VP_UPLOAD_CONST(x) (0x00000b80+((x)*4)) +#define NV20TCL_VP_UPLOAD_CONST__SIZE 0x00000004 +#define NV20TCL_LIGHT_BACK_AMBIENT_R(x) (0x00000c00+((x)*64)) +#define NV20TCL_LIGHT_BACK_AMBIENT_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_AMBIENT_G(x) (0x00000c04+((x)*64)) +#define NV20TCL_LIGHT_BACK_AMBIENT_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_AMBIENT_B(x) (0x00000c08+((x)*64)) +#define NV20TCL_LIGHT_BACK_AMBIENT_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_DIFFUSE_R(x) (0x00000c0c+((x)*64)) +#define NV20TCL_LIGHT_BACK_DIFFUSE_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_DIFFUSE_G(x) (0x00000c10+((x)*64)) +#define NV20TCL_LIGHT_BACK_DIFFUSE_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_DIFFUSE_B(x) (0x00000c14+((x)*64)) +#define NV20TCL_LIGHT_BACK_DIFFUSE_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_SPECULAR_R(x) (0x00000c18+((x)*64)) +#define NV20TCL_LIGHT_BACK_SPECULAR_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_SPECULAR_G(x) (0x00000c1c+((x)*64)) +#define NV20TCL_LIGHT_BACK_SPECULAR_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_BACK_SPECULAR_B(x) (0x00000c20+((x)*64)) +#define NV20TCL_LIGHT_BACK_SPECULAR_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_AMBIENT_R(x) (0x00001000+((x)*128)) +#define NV20TCL_LIGHT_FRONT_AMBIENT_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_AMBIENT_G(x) (0x00001004+((x)*128)) +#define NV20TCL_LIGHT_FRONT_AMBIENT_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_AMBIENT_B(x) (0x00001008+((x)*128)) +#define NV20TCL_LIGHT_FRONT_AMBIENT_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_DIFFUSE_R(x) (0x0000100c+((x)*128)) +#define NV20TCL_LIGHT_FRONT_DIFFUSE_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_DIFFUSE_G(x) (0x00001010+((x)*128)) +#define NV20TCL_LIGHT_FRONT_DIFFUSE_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_DIFFUSE_B(x) (0x00001014+((x)*128)) +#define NV20TCL_LIGHT_FRONT_DIFFUSE_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_SPECULAR_R(x) (0x00001018+((x)*128)) +#define NV20TCL_LIGHT_FRONT_SPECULAR_R__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_SPECULAR_G(x) (0x0000101c+((x)*128)) +#define NV20TCL_LIGHT_FRONT_SPECULAR_G__SIZE 0x00000008 +#define NV20TCL_LIGHT_FRONT_SPECULAR_B(x) (0x00001020+((x)*128)) +#define NV20TCL_LIGHT_FRONT_SPECULAR_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_HALF_VECTOR_X(x) (0x00001028+((x)*128)) +#define NV20TCL_LIGHT_HALF_VECTOR_X__SIZE 0x00000008 +#define NV20TCL_LIGHT_HALF_VECTOR_Y(x) (0x0000102c+((x)*128)) +#define NV20TCL_LIGHT_HALF_VECTOR_Y__SIZE 0x00000008 +#define NV20TCL_LIGHT_HALF_VECTOR_Z(x) (0x00001030+((x)*128)) +#define NV20TCL_LIGHT_HALF_VECTOR_Z__SIZE 0x00000008 +#define NV20TCL_LIGHT_DIRECTION_X(x) (0x00001034+((x)*128)) +#define NV20TCL_LIGHT_DIRECTION_X__SIZE 0x00000008 +#define NV20TCL_LIGHT_DIRECTION_Y(x) (0x00001038+((x)*128)) +#define NV20TCL_LIGHT_DIRECTION_Y__SIZE 0x00000008 +#define NV20TCL_LIGHT_DIRECTION_Z(x) (0x0000103c+((x)*128)) +#define NV20TCL_LIGHT_DIRECTION_Z__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_CUTOFF_A(x) (0x00001040+((x)*128)) +#define NV20TCL_LIGHT_SPOT_CUTOFF_A__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_CUTOFF_B(x) (0x00001044+((x)*128)) +#define NV20TCL_LIGHT_SPOT_CUTOFF_B__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_CUTOFF_C(x) (0x00001048+((x)*128)) +#define NV20TCL_LIGHT_SPOT_CUTOFF_C__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_DIR_X(x) (0x0000104c+((x)*128)) +#define NV20TCL_LIGHT_SPOT_DIR_X__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_DIR_Y(x) (0x00001050+((x)*128)) +#define NV20TCL_LIGHT_SPOT_DIR_Y__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_DIR_Z(x) (0x00001054+((x)*128)) +#define NV20TCL_LIGHT_SPOT_DIR_Z__SIZE 0x00000008 +#define NV20TCL_LIGHT_SPOT_CUTOFF_D(x) (0x00001058+((x)*128)) +#define NV20TCL_LIGHT_SPOT_CUTOFF_D__SIZE 0x00000008 +#define NV20TCL_LIGHT_POSITION_X(x) (0x0000105c+((x)*128)) +#define NV20TCL_LIGHT_POSITION_X__SIZE 0x00000008 +#define NV20TCL_LIGHT_POSITION_Y(x) (0x00001060+((x)*128)) +#define NV20TCL_LIGHT_POSITION_Y__SIZE 0x00000008 +#define NV20TCL_LIGHT_POSITION_Z(x) (0x00001064+((x)*128)) +#define NV20TCL_LIGHT_POSITION_Z__SIZE 0x00000008 +#define NV20TCL_LIGHT_ATTENUATION_CONSTANT(x) (0x00001068+((x)*128)) +#define NV20TCL_LIGHT_ATTENUATION_CONSTANT__SIZE 0x00000008 +#define NV20TCL_LIGHT_ATTENUATION_LINEAR(x) (0x0000106c+((x)*128)) +#define NV20TCL_LIGHT_ATTENUATION_LINEAR__SIZE 0x00000008 +#define NV20TCL_LIGHT_ATTENUATION_QUADRATIC(x) (0x00001070+((x)*128)) +#define NV20TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE 0x00000008 +#define NV20TCL_POLYGON_STIPPLE_ENABLE 0x0000147c +#define NV20TCL_POLYGON_STIPPLE_PATTERN(x) (0x00001480+((x)*4)) +#define NV20TCL_POLYGON_STIPPLE_PATTERN__SIZE 0x00000020 +#define NV20TCL_VERTEX_POS_3F_X 0x00001500 +#define NV20TCL_VERTEX_POS_3F_Y 0x00001504 +#define NV20TCL_VERTEX_POS_3F_Z 0x00001508 +#define NV20TCL_VERTEX_POS_4F_X 0x00001518 +#define NV20TCL_VERTEX_POS_4F_Y 0x0000151c +#define NV20TCL_VERTEX_POS_4F_Z 0x00001520 +#define NV20TCL_VERTEX_POS_3I_XY 0x00001528 +#define NV20TCL_VERTEX_POS_3I_XY_X_SHIFT 0 +#define NV20TCL_VERTEX_POS_3I_XY_X_MASK 0x0000ffff +#define NV20TCL_VERTEX_POS_3I_XY_Y_SHIFT 16 +#define NV20TCL_VERTEX_POS_3I_XY_Y_MASK 0xffff0000 +#define NV20TCL_VERTEX_POS_3I_Z 0x0000152c +#define NV20TCL_VERTEX_POS_3I_Z_Z_SHIFT 0 +#define NV20TCL_VERTEX_POS_3I_Z_Z_MASK 0x0000ffff +#define NV20TCL_VERTEX_NOR_3F_X 0x00001530 +#define NV20TCL_VERTEX_NOR_3F_Y 0x00001534 +#define NV20TCL_VERTEX_NOR_3F_Z 0x00001538 +#define NV20TCL_VERTEX_NOR_3I_XY 0x00001540 +#define NV20TCL_VERTEX_NOR_3I_XY_X_SHIFT 0 +#define NV20TCL_VERTEX_NOR_3I_XY_X_MASK 0x0000ffff +#define NV20TCL_VERTEX_NOR_3I_XY_Y_SHIFT 16 +#define NV20TCL_VERTEX_NOR_3I_XY_Y_MASK 0xffff0000 +#define NV20TCL_VERTEX_NOR_3I_Z 0x00001544 +#define NV20TCL_VERTEX_NOR_3I_Z_Z_SHIFT 0 +#define NV20TCL_VERTEX_NOR_3I_Z_Z_MASK 0x0000ffff +#define NV20TCL_VERTEX_COL_4F_X 0x00001550 +#define NV20TCL_VERTEX_COL_4F_Y 0x00001554 +#define NV20TCL_VERTEX_COL_4F_Z 0x00001558 +#define NV20TCL_VERTEX_COL_4F_W 0x0000155c +#define NV20TCL_VERTEX_COL_3F_X 0x00001560 +#define NV20TCL_VERTEX_COL_3F_Y 0x00001564 +#define NV20TCL_VERTEX_COL_3F_Z 0x00001568 +#define NV20TCL_VERTEX_COL_4I 0x0000156c +#define NV20TCL_VERTEX_COL_4I_R_SHIFT 0 +#define NV20TCL_VERTEX_COL_4I_R_MASK 0x000000ff +#define NV20TCL_VERTEX_COL_4I_G_SHIFT 8 +#define NV20TCL_VERTEX_COL_4I_G_MASK 0x0000ff00 +#define NV20TCL_VERTEX_COL_4I_B_SHIFT 16 +#define NV20TCL_VERTEX_COL_4I_B_MASK 0x00ff0000 +#define NV20TCL_VERTEX_COL_4I_A_SHIFT 24 +#define NV20TCL_VERTEX_COL_4I_A_MASK 0xff000000 +#define NV20TCL_VERTEX_COL2_3F_X 0x00001580 +#define NV20TCL_VERTEX_COL2_3F_Y 0x00001584 +#define NV20TCL_VERTEX_COL2_3F_Z 0x00001588 +#define NV20TCL_VERTEX_COL2_4I 0x0000158c +#define NV20TCL_VERTEX_COL2_4I_R_SHIFT 0 +#define NV20TCL_VERTEX_COL2_4I_R_MASK 0x000000ff +#define NV20TCL_VERTEX_COL2_4I_G_SHIFT 8 +#define NV20TCL_VERTEX_COL2_4I_G_MASK 0x0000ff00 +#define NV20TCL_VERTEX_COL2_4I_B_SHIFT 16 +#define NV20TCL_VERTEX_COL2_4I_B_MASK 0x00ff0000 +#define NV20TCL_VERTEX_COL2_4I_A_SHIFT 24 +#define NV20TCL_VERTEX_COL2_4I_A_MASK 0xff000000 +#define NV20TCL_VERTEX_TX0_2F_S 0x00001590 +#define NV20TCL_VERTEX_TX0_2F_T 0x00001594 +#define NV20TCL_VERTEX_TX0_2I 0x00001598 +#define NV20TCL_VERTEX_TX0_2I_S_SHIFT 0 +#define NV20TCL_VERTEX_TX0_2I_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX0_2I_T_SHIFT 16 +#define NV20TCL_VERTEX_TX0_2I_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX0_4F_S 0x000015a0 +#define NV20TCL_VERTEX_TX0_4F_T 0x000015a4 +#define NV20TCL_VERTEX_TX0_4F_R 0x000015a8 +#define NV20TCL_VERTEX_TX0_4F_Q 0x000015ac +#define NV20TCL_VERTEX_TX0_4I_ST 0x000015b0 +#define NV20TCL_VERTEX_TX0_4I_ST_S_SHIFT 0 +#define NV20TCL_VERTEX_TX0_4I_ST_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX0_4I_ST_T_SHIFT 16 +#define NV20TCL_VERTEX_TX0_4I_ST_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX0_4I_RQ 0x000015b4 +#define NV20TCL_VERTEX_TX0_4I_RQ_R_SHIFT 0 +#define NV20TCL_VERTEX_TX0_4I_RQ_R_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX0_4I_RQ_Q_SHIFT 16 +#define NV20TCL_VERTEX_TX0_4I_RQ_Q_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX1_2F_S 0x000015b8 +#define NV20TCL_VERTEX_TX1_2F_T 0x000015bc +#define NV20TCL_VERTEX_TX1_2I 0x000015c0 +#define NV20TCL_VERTEX_TX1_2I_S_SHIFT 0 +#define NV20TCL_VERTEX_TX1_2I_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX1_2I_T_SHIFT 16 +#define NV20TCL_VERTEX_TX1_2I_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX1_4F_S 0x000015c8 +#define NV20TCL_VERTEX_TX1_4F_T 0x000015cc +#define NV20TCL_VERTEX_TX1_4F_R 0x000015d0 +#define NV20TCL_VERTEX_TX1_4F_Q 0x000015d4 +#define NV20TCL_VERTEX_TX1_4I_ST 0x000015d8 +#define NV20TCL_VERTEX_TX1_4I_ST_S_SHIFT 0 +#define NV20TCL_VERTEX_TX1_4I_ST_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX1_4I_ST_T_SHIFT 16 +#define NV20TCL_VERTEX_TX1_4I_ST_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX1_4I_RQ 0x000015dc +#define NV20TCL_VERTEX_TX1_4I_RQ_R_SHIFT 0 +#define NV20TCL_VERTEX_TX1_4I_RQ_R_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX1_4I_RQ_Q_SHIFT 16 +#define NV20TCL_VERTEX_TX1_4I_RQ_Q_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX2_2F_S 0x000015e0 +#define NV20TCL_VERTEX_TX2_2F_T 0x000015e4 +#define NV20TCL_VERTEX_TX2_2I 0x000015e8 +#define NV20TCL_VERTEX_TX2_2I_S_SHIFT 0 +#define NV20TCL_VERTEX_TX2_2I_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX2_2I_T_SHIFT 16 +#define NV20TCL_VERTEX_TX2_2I_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX2_4F_S 0x000015f0 +#define NV20TCL_VERTEX_TX2_4F_T 0x000015f4 +#define NV20TCL_VERTEX_TX2_4F_R 0x000015f8 +#define NV20TCL_VERTEX_TX2_4F_Q 0x000015fc +#define NV20TCL_VERTEX_TX2_4I_ST 0x00001600 +#define NV20TCL_VERTEX_TX2_4I_ST_S_SHIFT 0 +#define NV20TCL_VERTEX_TX2_4I_ST_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX2_4I_ST_T_SHIFT 16 +#define NV20TCL_VERTEX_TX2_4I_ST_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX2_4I_RQ 0x00001604 +#define NV20TCL_VERTEX_TX2_4I_RQ_R_SHIFT 0 +#define NV20TCL_VERTEX_TX2_4I_RQ_R_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX2_4I_RQ_Q_SHIFT 16 +#define NV20TCL_VERTEX_TX2_4I_RQ_Q_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX3_2F_S 0x00001608 +#define NV20TCL_VERTEX_TX3_2F_T 0x0000160c +#define NV20TCL_VERTEX_TX3_2I 0x00001610 +#define NV20TCL_VERTEX_TX3_2I_S_SHIFT 0 +#define NV20TCL_VERTEX_TX3_2I_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX3_2I_T_SHIFT 16 +#define NV20TCL_VERTEX_TX3_2I_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX3_4F_S 0x00001620 +#define NV20TCL_VERTEX_TX3_4F_T 0x00001624 +#define NV20TCL_VERTEX_TX3_4F_R 0x00001628 +#define NV20TCL_VERTEX_TX3_4F_Q 0x0000162c +#define NV20TCL_VERTEX_TX3_4I_ST 0x00001630 +#define NV20TCL_VERTEX_TX3_4I_ST_S_SHIFT 0 +#define NV20TCL_VERTEX_TX3_4I_ST_S_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX3_4I_ST_T_SHIFT 16 +#define NV20TCL_VERTEX_TX3_4I_ST_T_MASK 0xffff0000 +#define NV20TCL_VERTEX_TX3_4I_RQ 0x00001634 +#define NV20TCL_VERTEX_TX3_4I_RQ_R_SHIFT 0 +#define NV20TCL_VERTEX_TX3_4I_RQ_R_MASK 0x0000ffff +#define NV20TCL_VERTEX_TX3_4I_RQ_Q_SHIFT 16 +#define NV20TCL_VERTEX_TX3_4I_RQ_Q_MASK 0xffff0000 +#define NV20TCL_VERTEX_FOG_1F 0x00001698 +#define NV20TCL_EDGEFLAG_ENABLE 0x000016bc +#define NV20TCL_VTX_CACHE_INVALIDATE 0x00001710 +#define NV20TCL_VTXBUF_ADDRESS(x) (0x00001720+((x)*4)) +#define NV20TCL_VTXBUF_ADDRESS__SIZE 0x00000010 +#define NV20TCL_VTXBUF_ADDRESS_DMA1 (1 << 31) +#define NV20TCL_VTXBUF_ADDRESS_OFFSET_SHIFT 0 +#define NV20TCL_VTXBUF_ADDRESS_OFFSET_MASK 0x0fffffff +#define NV20TCL_VTXFMT(x) (0x00001760+((x)*4)) +#define NV20TCL_VTXFMT__SIZE 0x00000010 +#define NV20TCL_VTXFMT_TYPE_SHIFT 0 +#define NV20TCL_VTXFMT_TYPE_MASK 0x0000000f +#define NV20TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV20TCL_VTXFMT_TYPE_UBYTE 0x00000004 +#define NV20TCL_VTXFMT_TYPE_USHORT 0x00000005 +#define NV20TCL_VTXFMT_SIZE_SHIFT 4 +#define NV20TCL_VTXFMT_SIZE_MASK 0x000000f0 +#define NV20TCL_VTXFMT_STRIDE_SHIFT 8 +#define NV20TCL_VTXFMT_STRIDE_MASK 0x0000ff00 +#define NV20TCL_LIGHT_MODEL_BACK_AMBIENT_R 0x000017a0 +#define NV20TCL_LIGHT_MODEL_BACK_AMBIENT_G 0x000017a4 +#define NV20TCL_LIGHT_MODEL_BACK_AMBIENT_B 0x000017a8 +#define NV20TCL_MATERIAL_FACTOR_BACK_A 0x000017ac +#define NV20TCL_MATERIAL_FACTOR_BACK_R 0x000017b0 +#define NV20TCL_MATERIAL_FACTOR_BACK_G 0x000017b4 +#define NV20TCL_MATERIAL_FACTOR_BACK_B 0x000017b8 +#define NV20TCL_COLOR_LOGIC_OP_ENABLE 0x000017bc +#define NV20TCL_COLOR_LOGIC_OP_OP 0x000017c0 +#define NV20TCL_COLOR_LOGIC_OP_OP_CLEAR 0x00001500 +#define NV20TCL_COLOR_LOGIC_OP_OP_AND 0x00001501 +#define NV20TCL_COLOR_LOGIC_OP_OP_AND_REVERSE 0x00001502 +#define NV20TCL_COLOR_LOGIC_OP_OP_COPY 0x00001503 +#define NV20TCL_COLOR_LOGIC_OP_OP_AND_INVERTED 0x00001504 +#define NV20TCL_COLOR_LOGIC_OP_OP_NOOP 0x00001505 +#define NV20TCL_COLOR_LOGIC_OP_OP_XOR 0x00001506 +#define NV20TCL_COLOR_LOGIC_OP_OP_OR 0x00001507 +#define NV20TCL_COLOR_LOGIC_OP_OP_NOR 0x00001508 +#define NV20TCL_COLOR_LOGIC_OP_OP_EQUIV 0x00001509 +#define NV20TCL_COLOR_LOGIC_OP_OP_INVERT 0x0000150a +#define NV20TCL_COLOR_LOGIC_OP_OP_OR_REVERSE 0x0000150b +#define NV20TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED 0x0000150c +#define NV20TCL_COLOR_LOGIC_OP_OP_OR_INVERTED 0x0000150d +#define NV20TCL_COLOR_LOGIC_OP_OP_NAND 0x0000150e +#define NV20TCL_COLOR_LOGIC_OP_OP_SET 0x0000150f +#define NV20TCL_LIGHT_MODEL_TWO_SIDE_ENABLE 0x000017c4 +#define NV20TCL_TX_SHADER_CULL_MODE 0x000017f8 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_S (1 << 0) +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_S_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_S_LESS 0x00000001 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_T (1 << 1) +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_T_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_T_LESS 0x00000002 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_R (1 << 2) +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_R_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_R_LESS 0x00000004 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_Q (1 << 3) +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_LESS 0x00000008 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_S (1 << 4) +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_S_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_S_LESS 0x00000010 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_T (1 << 5) +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_T_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_T_LESS 0x00000020 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_R (1 << 6) +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_R_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_R_LESS 0x00000040 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_Q (1 << 7) +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_LESS 0x00000080 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_S (1 << 8) +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_S_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_S_LESS 0x00000100 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_T (1 << 9) +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_T_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_T_LESS 0x00000200 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_R (1 << 10) +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_R_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_R_LESS 0x00000400 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_Q (1 << 11) +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_LESS 0x00000800 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_S (1 << 12) +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_S_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_S_LESS 0x00001000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_T (1 << 13) +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_T_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_T_LESS 0x00002000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_R (1 << 14) +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_R_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_R_LESS 0x00004000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_Q (1 << 15) +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_GEQUAL 0x00000000 +#define NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_LESS 0x00008000 +#define NV20TCL_VERTEX_BEGIN_END 0x000017fc +#define NV20TCL_VERTEX_BEGIN_END_STOP 0x00000000 +#define NV20TCL_VERTEX_BEGIN_END_POINTS 0x00000001 +#define NV20TCL_VERTEX_BEGIN_END_LINES 0x00000002 +#define NV20TCL_VERTEX_BEGIN_END_LINE_LOOP 0x00000003 +#define NV20TCL_VERTEX_BEGIN_END_LINE_STRIP 0x00000004 +#define NV20TCL_VERTEX_BEGIN_END_TRIANGLES 0x00000005 +#define NV20TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP 0x00000006 +#define NV20TCL_VERTEX_BEGIN_END_TRIANGLE_FAN 0x00000007 +#define NV20TCL_VERTEX_BEGIN_END_QUADS 0x00000008 +#define NV20TCL_VERTEX_BEGIN_END_QUAD_STRIP 0x00000009 +#define NV20TCL_VERTEX_BEGIN_END_POLYGON 0x0000000a +#define NV20TCL_VB_ELEMENT_U16 0x00001800 +#define NV20TCL_VB_ELEMENT_U16_I0_SHIFT 0 +#define NV20TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff +#define NV20TCL_VB_ELEMENT_U16_I1_SHIFT 16 +#define NV20TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NV20TCL_VB_ELEMENT_U32 0x00001808 +#define NV20TCL_VB_VERTEX_BATCH 0x00001810 +#define NV20TCL_VB_VERTEX_BATCH_OFFSET_SHIFT 0 +#define NV20TCL_VB_VERTEX_BATCH_OFFSET_MASK 0x00ffffff +#define NV20TCL_VB_VERTEX_BATCH_COUNT_SHIFT 24 +#define NV20TCL_VB_VERTEX_BATCH_COUNT_MASK 0xff000000 +#define NV20TCL_VERTEX_DATA 0x00001818 +#define NV20TCL_TX_SHADER_CONST_EYE_X 0x0000181c +#define NV20TCL_TX_SHADER_CONST_EYE_Y 0x00001820 +#define NV20TCL_TX_SHADER_CONST_EYE_Z 0x00001824 +#define NV20TCL_VTX_ATTR_4F_X(x) (0x00001a00+((x)*16)) +#define NV20TCL_VTX_ATTR_4F_X__SIZE 0x00000010 +#define NV20TCL_VTX_ATTR_4F_Y(x) (0x00001a04+((x)*16)) +#define NV20TCL_VTX_ATTR_4F_Y__SIZE 0x00000010 +#define NV20TCL_VTX_ATTR_4F_Z(x) (0x00001a08+((x)*16)) +#define NV20TCL_VTX_ATTR_4F_Z__SIZE 0x00000010 +#define NV20TCL_VTX_ATTR_4F_W(x) (0x00001a0c+((x)*16)) +#define NV20TCL_VTX_ATTR_4F_W__SIZE 0x00000010 +#define NV20TCL_TX_OFFSET(x) (0x00001b00+((x)*64)) +#define NV20TCL_TX_OFFSET__SIZE 0x00000004 +#define NV20TCL_TX_FORMAT(x) (0x00001b04+((x)*64)) +#define NV20TCL_TX_FORMAT__SIZE 0x00000004 +#define NV20TCL_TX_FORMAT_DMA0 (1 << 0) +#define NV20TCL_TX_FORMAT_DMA1 (1 << 1) +#define NV20TCL_TX_FORMAT_CUBIC (1 << 2) +#define NV20TCL_TX_FORMAT_NO_BORDER (1 << 3) +#define NV20TCL_TX_FORMAT_DIMS_SHIFT 4 +#define NV20TCL_TX_FORMAT_DIMS_MASK 0x000000f0 +#define NV20TCL_TX_FORMAT_DIMS_1D 0x00000010 +#define NV20TCL_TX_FORMAT_DIMS_2D 0x00000020 +#define NV20TCL_TX_FORMAT_DIMS_3D 0x00000030 +#define NV20TCL_TX_FORMAT_FORMAT_SHIFT 8 +#define NV20TCL_TX_FORMAT_FORMAT_MASK 0x0000ff00 +#define NV20TCL_TX_FORMAT_FORMAT_L8 0x00000000 +#define NV20TCL_TX_FORMAT_FORMAT_A8 0x00000100 +#define NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5 0x00000200 +#define NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4 0x00000400 +#define NV20TCL_TX_FORMAT_FORMAT_R5G6B5 0x00000500 +#define NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8 0x00000600 +#define NV20TCL_TX_FORMAT_FORMAT_X8R8G8B8 0x00000700 +#define NV20TCL_TX_FORMAT_FORMAT_INDEX8 0x00000b00 +#define NV20TCL_TX_FORMAT_FORMAT_DXT1 0x00000c00 +#define NV20TCL_TX_FORMAT_FORMAT_DXT3 0x00000e00 +#define NV20TCL_TX_FORMAT_FORMAT_DXT5 0x00000f00 +#define NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT 0x00001000 +#define NV20TCL_TX_FORMAT_FORMAT_R5G6B5_RECT 0x00001100 +#define NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT 0x00001200 +#define NV20TCL_TX_FORMAT_FORMAT_L8_RECT 0x00001300 +#define NV20TCL_TX_FORMAT_FORMAT_DSDT8_RECT 0x00001700 +#define NV20TCL_TX_FORMAT_FORMAT_A8L8 0x00001a00 +#define NV20TCL_TX_FORMAT_FORMAT_A8_RECT 0x00001b00 +#define NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT 0x00001d00 +#define NV20TCL_TX_FORMAT_FORMAT_R8G8B8_RECT 0x00001e00 +#define NV20TCL_TX_FORMAT_FORMAT_A8L8_RECT 0x00002000 +#define NV20TCL_TX_FORMAT_FORMAT_DSDT8 0x00002800 +#define NV20TCL_TX_FORMAT_FORMAT_HILO16 0x00003300 +#define NV20TCL_TX_FORMAT_FORMAT_HILO16_RECT 0x00003600 +#define NV20TCL_TX_FORMAT_FORMAT_HILO8 0x00004400 +#define NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8 0x00004500 +#define NV20TCL_TX_FORMAT_FORMAT_HILO8_RECT 0x00004600 +#define NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT 0x00004700 +#define NV20TCL_TX_FORMAT_FORMAT_A16 0x00003200 +#define NV20TCL_TX_FORMAT_FORMAT_A16_RECT 0x00003500 +#define NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV 0x00004a00 +#define NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV 0x00004b00 +#define NV20TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV 0x00004c00 +#define NV20TCL_TX_FORMAT_MIPMAP (1 << 19) +#define NV20TCL_TX_FORMAT_BASE_SIZE_U_SHIFT 20 +#define NV20TCL_TX_FORMAT_BASE_SIZE_U_MASK 0x00f00000 +#define NV20TCL_TX_FORMAT_BASE_SIZE_V_SHIFT 24 +#define NV20TCL_TX_FORMAT_BASE_SIZE_V_MASK 0x0f000000 +#define NV20TCL_TX_FORMAT_BASE_SIZE_W_SHIFT 28 +#define NV20TCL_TX_FORMAT_BASE_SIZE_W_MASK 0xf0000000 +#define NV20TCL_TX_WRAP(x) (0x00001b08+((x)*64)) +#define NV20TCL_TX_WRAP__SIZE 0x00000004 +#define NV20TCL_TX_WRAP_S_SHIFT 0 +#define NV20TCL_TX_WRAP_S_MASK 0x000000ff +#define NV20TCL_TX_WRAP_S_REPEAT 0x00000001 +#define NV20TCL_TX_WRAP_S_MIRRORED_REPEAT 0x00000002 +#define NV20TCL_TX_WRAP_S_CLAMP_TO_EDGE 0x00000003 +#define NV20TCL_TX_WRAP_S_CLAMP_TO_BORDER 0x00000004 +#define NV20TCL_TX_WRAP_S_CLAMP 0x00000005 +#define NV20TCL_TX_WRAP_T_SHIFT 8 +#define NV20TCL_TX_WRAP_T_MASK 0x00000f00 +#define NV20TCL_TX_WRAP_T_REPEAT 0x00000100 +#define NV20TCL_TX_WRAP_T_MIRRORED_REPEAT 0x00000200 +#define NV20TCL_TX_WRAP_T_CLAMP_TO_EDGE 0x00000300 +#define NV20TCL_TX_WRAP_T_CLAMP_TO_BORDER 0x00000400 +#define NV20TCL_TX_WRAP_T_CLAMP 0x00000500 +#define NV20TCL_TX_WRAP_R_SHIFT 16 +#define NV20TCL_TX_WRAP_R_MASK 0x000f0000 +#define NV20TCL_TX_WRAP_R_REPEAT 0x00010000 +#define NV20TCL_TX_WRAP_R_MIRRORED_REPEAT 0x00020000 +#define NV20TCL_TX_WRAP_R_CLAMP_TO_EDGE 0x00030000 +#define NV20TCL_TX_WRAP_R_CLAMP_TO_BORDER 0x00040000 +#define NV20TCL_TX_WRAP_R_CLAMP 0x00050000 +#define NV20TCL_TX_ENABLE(x) (0x00001b0c+((x)*64)) +#define NV20TCL_TX_ENABLE__SIZE 0x00000004 +#define NV20TCL_TX_ENABLE_ANISO_SHIFT 4 +#define NV20TCL_TX_ENABLE_ANISO_MASK 0x00000030 +#define NV20TCL_TX_ENABLE_ANISO_NONE 0x00000000 +#define NV20TCL_TX_ENABLE_ANISO_2X 0x00000010 +#define NV20TCL_TX_ENABLE_ANISO_4X 0x00000020 +#define NV20TCL_TX_ENABLE_ANISO_8X 0x00000030 +#define NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT 14 +#define NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK 0x0003c000 +#define NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT 26 +#define NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK 0x3c000000 +#define NV20TCL_TX_ENABLE_ENABLE (1 << 30) +#define NV20TCL_TX_NPOT_PITCH(x) (0x00001b10+((x)*64)) +#define NV20TCL_TX_NPOT_PITCH__SIZE 0x00000004 +#define NV20TCL_TX_NPOT_PITCH_PITCH_SHIFT 16 +#define NV20TCL_TX_NPOT_PITCH_PITCH_MASK 0xffff0000 +#define NV20TCL_TX_FILTER(x) (0x00001b14+((x)*64)) +#define NV20TCL_TX_FILTER__SIZE 0x00000004 +#define NV20TCL_TX_FILTER_LOD_BIAS_SHIFT 8 +#define NV20TCL_TX_FILTER_LOD_BIAS_MASK 0x00000f00 +#define NV20TCL_TX_FILTER_MINIFY_SHIFT 16 +#define NV20TCL_TX_FILTER_MINIFY_MASK 0x000f0000 +#define NV20TCL_TX_FILTER_MINIFY_NEAREST 0x00010000 +#define NV20TCL_TX_FILTER_MINIFY_LINEAR 0x00020000 +#define NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST 0x00030000 +#define NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST 0x00040000 +#define NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR 0x00050000 +#define NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR 0x00060000 +#define NV20TCL_TX_FILTER_MAGNIFY_SHIFT 24 +#define NV20TCL_TX_FILTER_MAGNIFY_MASK 0x0f000000 +#define NV20TCL_TX_FILTER_MAGNIFY_NEAREST 0x01000000 +#define NV20TCL_TX_FILTER_MAGNIFY_LINEAR 0x02000000 +#define NV20TCL_TX_NPOT_SIZE(x) (0x00001b1c+((x)*64)) +#define NV20TCL_TX_NPOT_SIZE__SIZE 0x00000004 +#define NV20TCL_TX_NPOT_SIZE_H_SHIFT 0 +#define NV20TCL_TX_NPOT_SIZE_H_MASK 0x0000ffff +#define NV20TCL_TX_NPOT_SIZE_W_SHIFT 16 +#define NV20TCL_TX_NPOT_SIZE_W_MASK 0xffff0000 +#define NV20TCL_TX_PALETTE_OFFSET(x) (0x00001b20+((x)*64)) +#define NV20TCL_TX_PALETTE_OFFSET__SIZE 0x00000004 +#define NV20TCL_TX_BORDER_COLOR(x) (0x00001b24+((x)*64)) +#define NV20TCL_TX_BORDER_COLOR__SIZE 0x00000004 +#define NV20TCL_TX_BORDER_COLOR_B_SHIFT 0 +#define NV20TCL_TX_BORDER_COLOR_B_MASK 0x000000ff +#define NV20TCL_TX_BORDER_COLOR_G_SHIFT 8 +#define NV20TCL_TX_BORDER_COLOR_G_MASK 0x0000ff00 +#define NV20TCL_TX_BORDER_COLOR_R_SHIFT 16 +#define NV20TCL_TX_BORDER_COLOR_R_MASK 0x00ff0000 +#define NV20TCL_TX_BORDER_COLOR_A_SHIFT 24 +#define NV20TCL_TX_BORDER_COLOR_A_MASK 0xff000000 +#define NV20TCL_TX_SHADER_OFFSET_MATRIX00(x) (0x00001b28+((x)*64)) +#define NV20TCL_TX_SHADER_OFFSET_MATRIX00__SIZE 0x00000004 +#define NV20TCL_TX_SHADER_OFFSET_MATRIX01(x) (0x00001b2c+((x)*64)) +#define NV20TCL_TX_SHADER_OFFSET_MATRIX01__SIZE 0x00000004 +#define NV20TCL_TX_SHADER_OFFSET_MATRIX11(x) (0x00001b30+((x)*64)) +#define NV20TCL_TX_SHADER_OFFSET_MATRIX11__SIZE 0x00000004 +#define NV20TCL_TX_SHADER_OFFSET_MATRIX10(x) (0x00001b34+((x)*64)) +#define NV20TCL_TX_SHADER_OFFSET_MATRIX10__SIZE 0x00000004 +#define NV20TCL_DEPTH_UNK17D8 0x00001d78 +#define NV20TCL_DEPTH_UNK17D8_CLAMP_SHIFT 4 +#define NV20TCL_DEPTH_UNK17D8_CLAMP_MASK 0x000000f0 +#define NV20TCL_MULTISAMPLE_CONTROL 0x00001d7c +#define NV20TCL_CLEAR_DEPTH_VALUE 0x00001d8c +#define NV20TCL_CLEAR_VALUE 0x00001d90 +#define NV20TCL_CLEAR_BUFFERS 0x00001d94 +#define NV20TCL_CLEAR_BUFFERS_COLOR_A (1 << 7) +#define NV20TCL_CLEAR_BUFFERS_COLOR_B (1 << 6) +#define NV20TCL_CLEAR_BUFFERS_COLOR_G (1 << 5) +#define NV20TCL_CLEAR_BUFFERS_COLOR_R (1 << 4) +#define NV20TCL_CLEAR_BUFFERS_STENCIL (1 << 1) +#define NV20TCL_CLEAR_BUFFERS_DEPTH (1 << 0) +#define NV20TCL_RC_COLOR0 0x00001e20 +#define NV20TCL_RC_COLOR0_B_SHIFT 0 +#define NV20TCL_RC_COLOR0_B_MASK 0x000000ff +#define NV20TCL_RC_COLOR0_G_SHIFT 8 +#define NV20TCL_RC_COLOR0_G_MASK 0x0000ff00 +#define NV20TCL_RC_COLOR0_R_SHIFT 16 +#define NV20TCL_RC_COLOR0_R_MASK 0x00ff0000 +#define NV20TCL_RC_COLOR0_A_SHIFT 24 +#define NV20TCL_RC_COLOR0_A_MASK 0xff000000 +#define NV20TCL_RC_COLOR1 0x00001e24 +#define NV20TCL_RC_COLOR1_B_SHIFT 0 +#define NV20TCL_RC_COLOR1_B_MASK 0x000000ff +#define NV20TCL_RC_COLOR1_G_SHIFT 8 +#define NV20TCL_RC_COLOR1_G_MASK 0x0000ff00 +#define NV20TCL_RC_COLOR1_R_SHIFT 16 +#define NV20TCL_RC_COLOR1_R_MASK 0x00ff0000 +#define NV20TCL_RC_COLOR1_A_SHIFT 24 +#define NV20TCL_RC_COLOR1_A_MASK 0xff000000 +#define NV20TCL_BACK_MATERIAL_SHININESS(x) (0x00001e28+((x)*4)) +#define NV20TCL_BACK_MATERIAL_SHININESS__SIZE 0x00000006 +#define NV20TCL_RC_OUT_RGB(x) (0x00001e40+((x)*4)) +#define NV20TCL_RC_OUT_RGB__SIZE 0x00000008 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT 0 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_FOG 0x00000003 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0 0x0000000c +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1 0x0000000d +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_FOG 0x00000030 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0 0x000000c0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1 0x000000d0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_FOG 0x00000300 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV20TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12) +#define NV20TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13) +#define NV20TCL_RC_OUT_RGB_MUX_SUM (1 << 14) +#define NV20TCL_RC_OUT_RGB_BIAS (1 << 15) +#define NV20TCL_RC_OUT_RGB_BIAS_NONE 0x00000000 +#define NV20TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV20TCL_RC_OUT_RGB_SCALE_SHIFT 17 +#define NV20TCL_RC_OUT_RGB_SCALE_MASK 0x00000000 +#define NV20TCL_RC_OUT_RGB_SCALE_NONE 0x00000000 +#define NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO 0x00020000 +#define NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV20TCL_RC_ENABLE 0x00001e60 +#define NV20TCL_RC_ENABLE_NUM_COMBINERS_SHIFT 0 +#define NV20TCL_RC_ENABLE_NUM_COMBINERS_MASK 0x0000000f +#define NV20TCL_TX_RCOMP 0x00001e6c +#define NV20TCL_TX_RCOMP_NEVER 0x00000000 +#define NV20TCL_TX_RCOMP_GREATER 0x00000001 +#define NV20TCL_TX_RCOMP_EQUAL 0x00000002 +#define NV20TCL_TX_RCOMP_GEQUAL 0x00000003 +#define NV20TCL_TX_RCOMP_LESS 0x00000004 +#define NV20TCL_TX_RCOMP_NOTEQUAL 0x00000005 +#define NV20TCL_TX_RCOMP_LEQUAL 0x00000006 +#define NV20TCL_TX_RCOMP_ALWAYS 0x00000007 +#define NV20TCL_TX_SHADER_OP 0x00001e70 +#define NV20TCL_TX_SHADER_OP_TX0_SHIFT 0 +#define NV20TCL_TX_SHADER_OP_TX0_MASK 0x0000001f +#define NV20TCL_TX_SHADER_OP_TX0_NONE 0x00000000 +#define NV20TCL_TX_SHADER_OP_TX0_TEXTURE_2D 0x00000001 +#define NV20TCL_TX_SHADER_OP_TX0_PASS_THROUGH 0x00000004 +#define NV20TCL_TX_SHADER_OP_TX0_CULL_FRAGMENT 0x00000005 +#define NV20TCL_TX_SHADER_OP_TX0_OFFSET_TEXTURE_2D 0x00000006 +#define NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_TEXTURE_2D 0x00000009 +#define NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_DEPTH_REPLACE 0x0000000a +#define NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_AR_TEXTURE_2D 0x0000000f +#define NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_GB_TEXTURE_2D 0x00000010 +#define NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT 0x00000011 +#define NV20TCL_TX_SHADER_OP_TX1_SHIFT 5 +#define NV20TCL_TX_SHADER_OP_TX1_MASK 0x000003e0 +#define NV20TCL_TX_SHADER_OP_TX1_NONE 0x00000000 +#define NV20TCL_TX_SHADER_OP_TX1_TEXTURE_2D 0x00000020 +#define NV20TCL_TX_SHADER_OP_TX1_PASS_THROUGH 0x00000080 +#define NV20TCL_TX_SHADER_OP_TX1_CULL_FRAGMENT 0x000000a0 +#define NV20TCL_TX_SHADER_OP_TX1_OFFSET_TEXTURE_2D 0x000000c0 +#define NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_TEXTURE_2D 0x00000120 +#define NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_DEPTH_REPLACE 0x00000140 +#define NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_AR_TEXTURE_2D 0x000001e0 +#define NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_GB_TEXTURE_2D 0x00000200 +#define NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT 0x00000220 +#define NV20TCL_TX_SHADER_OP_TX2_SHIFT 10 +#define NV20TCL_TX_SHADER_OP_TX2_MASK 0x00007c00 +#define NV20TCL_TX_SHADER_OP_TX2_NONE 0x00000000 +#define NV20TCL_TX_SHADER_OP_TX2_TEXTURE_2D 0x00000400 +#define NV20TCL_TX_SHADER_OP_TX2_PASS_THROUGH 0x00001000 +#define NV20TCL_TX_SHADER_OP_TX2_CULL_FRAGMENT 0x00001400 +#define NV20TCL_TX_SHADER_OP_TX2_OFFSET_TEXTURE_2D 0x00001800 +#define NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_TEXTURE_2D 0x00002400 +#define NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_DEPTH_REPLACE 0x00002800 +#define NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_AR_TEXTURE_2D 0x00003c00 +#define NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_GB_TEXTURE_2D 0x00004000 +#define NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT 0x00004400 +#define NV20TCL_TX_SHADER_OP_TX3_SHIFT 15 +#define NV20TCL_TX_SHADER_OP_TX3_MASK 0x000f8000 +#define NV20TCL_TX_SHADER_OP_TX3_NONE 0x00000000 +#define NV20TCL_TX_SHADER_OP_TX3_TEXTURE_2D 0x00008000 +#define NV20TCL_TX_SHADER_OP_TX3_PASS_THROUGH 0x00020000 +#define NV20TCL_TX_SHADER_OP_TX3_CULL_FRAGMENT 0x00028000 +#define NV20TCL_TX_SHADER_OP_TX3_OFFSET_TEXTURE_2D 0x00030000 +#define NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_TEXTURE_2D 0x00048000 +#define NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_DEPTH_REPLACE 0x00050000 +#define NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_AR_TEXTURE_2D 0x00078000 +#define NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_GB_TEXTURE_2D 0x00080000 +#define NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT 0x00088000 +#define NV20TCL_TX_SHADER_DOTMAPPING 0x00001e74 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX0_SHIFT 0 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX0_MASK 0x0000000f +#define NV20TCL_TX_SHADER_DOTMAPPING_TX1_SHIFT 4 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX1_MASK 0x000000f0 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX2_SHIFT 8 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX2_MASK 0x00000f00 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX3_SHIFT 12 +#define NV20TCL_TX_SHADER_DOTMAPPING_TX3_MASK 0x0000f000 +#define NV20TCL_TX_SHADER_PREVIOUS 0x00001e78 +#define NV20TCL_TX_SHADER_PREVIOUS_TX0_SHIFT 8 +#define NV20TCL_TX_SHADER_PREVIOUS_TX0_MASK 0x00000f00 +#define NV20TCL_TX_SHADER_PREVIOUS_TX1_SHIFT 12 +#define NV20TCL_TX_SHADER_PREVIOUS_TX1_MASK 0x0000f000 +#define NV20TCL_TX_SHADER_PREVIOUS_TX2_SHIFT 16 +#define NV20TCL_TX_SHADER_PREVIOUS_TX2_MASK 0x00030000 +#define NV20TCL_TX_SHADER_PREVIOUS_TX3_SHIFT 20 +#define NV20TCL_TX_SHADER_PREVIOUS_TX3_MASK 0x00300000 +#define NV20TCL_ENGINE 0x00001e94 +#define NV20TCL_ENGINE_VP (1 << 1) +#define NV20TCL_ENGINE_FIXED (1 << 2) +#define NV20TCL_VP_UPLOAD_FROM_ID 0x00001e9c +#define NV20TCL_VP_START_FROM_ID 0x00001ea0 +#define NV20TCL_VP_UPLOAD_CONST_ID 0x00001ea4 + + +#define NV25TCL 0x00000597 + +#define NV25TCL_DMA_IN_MEMORY4 0x0000019c +#define NV25TCL_DMA_IN_MEMORY5 0x000001a0 +#define NV25TCL_DMA_IN_MEMORY8 0x000001ac +#define NV25TCL_DMA_IN_MEMORY9 0x000001b0 + + +#define NV30TCL 0x00000397 + + + +#define NV35TCL 0x00000497 + + + +#define NV34TCL 0x00000697 + +#define NV34TCL_NOP 0x00000100 +#define NV34TCL_NOTIFY 0x00000104 +#define NV34TCL_DMA_NOTIFY 0x00000180 +#define NV34TCL_DMA_TEXTURE0 0x00000184 +#define NV34TCL_DMA_TEXTURE1 0x00000188 +#define NV34TCL_DMA_COLOR1 0x0000018c +#define NV34TCL_DMA_COLOR0 0x00000194 +#define NV34TCL_DMA_ZETA 0x00000198 +#define NV34TCL_DMA_VTXBUF0 0x0000019c +#define NV34TCL_DMA_VTXBUF1 0x000001a0 +#define NV34TCL_DMA_FENCE 0x000001a4 +#define NV34TCL_DMA_QUERY 0x000001a8 +#define NV34TCL_DMA_IN_MEMORY7 0x000001ac +#define NV34TCL_DMA_IN_MEMORY8 0x000001b0 +#define NV34TCL_RT_HORIZ 0x00000200 +#define NV34TCL_RT_HORIZ_X_SHIFT 0 +#define NV34TCL_RT_HORIZ_X_MASK 0x0000ffff +#define NV34TCL_RT_HORIZ_W_SHIFT 16 +#define NV34TCL_RT_HORIZ_W_MASK 0xffff0000 +#define NV34TCL_RT_VERT 0x00000204 +#define NV34TCL_RT_VERT_Y_SHIFT 0 +#define NV34TCL_RT_VERT_Y_MASK 0x0000ffff +#define NV34TCL_RT_VERT_H_SHIFT 16 +#define NV34TCL_RT_VERT_H_MASK 0xffff0000 +#define NV34TCL_RT_FORMAT 0x00000208 +#define NV34TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT 24 +#define NV34TCL_RT_FORMAT_LOG2_HEIGHT_MASK 0xff000000 +#define NV34TCL_RT_FORMAT_LOG2_WIDTH_SHIFT 16 +#define NV34TCL_RT_FORMAT_LOG2_WIDTH_MASK 0x00ff0000 +#define NV34TCL_RT_FORMAT_TYPE_SHIFT 8 +#define NV34TCL_RT_FORMAT_TYPE_MASK 0x00000f00 +#define NV34TCL_RT_FORMAT_TYPE_LINEAR 0x00000100 +#define NV34TCL_RT_FORMAT_TYPE_SWIZZLED 0x00000200 +#define NV34TCL_RT_FORMAT_ZETA_SHIFT 5 +#define NV34TCL_RT_FORMAT_ZETA_MASK 0x000000e0 +#define NV34TCL_RT_FORMAT_ZETA_Z16 0x00000020 +#define NV34TCL_RT_FORMAT_ZETA_Z24S8 0x00000040 +#define NV34TCL_RT_FORMAT_COLOR_SHIFT 0 +#define NV34TCL_RT_FORMAT_COLOR_MASK 0x0000001f +#define NV34TCL_RT_FORMAT_COLOR_R5G6B5 0x00000003 +#define NV34TCL_RT_FORMAT_COLOR_X8R8G8B8 0x00000005 +#define NV34TCL_RT_FORMAT_COLOR_A8R8G8B8 0x00000008 +#define NV34TCL_RT_FORMAT_COLOR_B8 0x00000009 +#define NV34TCL_RT_FORMAT_COLOR_UNKNOWN 0x0000000d +#define NV34TCL_RT_FORMAT_COLOR_X8B8G8R8 0x0000000f +#define NV34TCL_RT_FORMAT_COLOR_A8B8G8R8 0x00000010 +#define NV34TCL_COLOR0_PITCH 0x0000020c +#define NV34TCL_COLOR0_PITCH_COLOR0_SHIFT 0 +#define NV34TCL_COLOR0_PITCH_COLOR0_MASK 0x0000ffff +#define NV34TCL_COLOR0_PITCH_ZETA_SHIFT 16 +#define NV34TCL_COLOR0_PITCH_ZETA_MASK 0xffff0000 +#define NV34TCL_COLOR0_OFFSET 0x00000210 +#define NV34TCL_ZETA_OFFSET 0x00000214 +#define NV34TCL_COLOR1_OFFSET 0x00000218 +#define NV34TCL_COLOR1_PITCH 0x0000021c +#define NV34TCL_RT_ENABLE 0x00000220 +#define NV34TCL_RT_ENABLE_MRT (1 << 4) +#define NV34TCL_RT_ENABLE_COLOR1 (1 << 1) +#define NV34TCL_RT_ENABLE_COLOR0 (1 << 0) +#define NV34TCL_LMA_DEPTH_PITCH 0x0000022c +#define NV34TCL_LMA_DEPTH_OFFSET 0x00000230 +#define NV34TCL_TX_UNITS_ENABLE 0x0000023c +#define NV34TCL_TX_UNITS_ENABLE_TX0 (1 << 0) +#define NV34TCL_TX_UNITS_ENABLE_TX1 (1 << 1) +#define NV34TCL_TX_UNITS_ENABLE_TX2 (1 << 2) +#define NV34TCL_TX_UNITS_ENABLE_TX3 (1 << 3) +#define NV34TCL_TX_UNITS_ENABLE_TX4 (1 << 4) +#define NV34TCL_TX_UNITS_ENABLE_TX5 (1 << 5) +#define NV34TCL_TX_UNITS_ENABLE_TX6 (1 << 6) +#define NV34TCL_TX_UNITS_ENABLE_TX7 (1 << 7) +#define NV34TCL_TX_MATRIX_ENABLE(x) (0x00000240+((x)*4)) +#define NV34TCL_TX_MATRIX_ENABLE__SIZE 0x00000008 +#define NV34TCL_VIEWPORT_TX_ORIGIN 0x000002b8 +#define NV34TCL_VIEWPORT_TX_ORIGIN_X_SHIFT 0 +#define NV34TCL_VIEWPORT_TX_ORIGIN_X_MASK 0x0000ffff +#define NV34TCL_VIEWPORT_TX_ORIGIN_Y_SHIFT 16 +#define NV34TCL_VIEWPORT_TX_ORIGIN_Y_MASK 0xffff0000 +#define NV34TCL_VIEWPORT_CLIP_MODE 0x000002bc +#define NV34TCL_VIEWPORT_CLIP_HORIZ(x) (0x000002c0+((x)*8)) +#define NV34TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV34TCL_VIEWPORT_CLIP_HORIZ_L_SHIFT 0 +#define NV34TCL_VIEWPORT_CLIP_HORIZ_L_MASK 0x0000ffff +#define NV34TCL_VIEWPORT_CLIP_HORIZ_R_SHIFT 16 +#define NV34TCL_VIEWPORT_CLIP_HORIZ_R_MASK 0xffff0000 +#define NV34TCL_VIEWPORT_CLIP_VERT(x) (0x000002c4+((x)*8)) +#define NV34TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV34TCL_VIEWPORT_CLIP_VERT_T_SHIFT 0 +#define NV34TCL_VIEWPORT_CLIP_VERT_T_MASK 0x0000ffff +#define NV34TCL_VIEWPORT_CLIP_VERT_D_SHIFT 16 +#define NV34TCL_VIEWPORT_CLIP_VERT_D_MASK 0xffff0000 +#define NV34TCL_DITHER_ENABLE 0x00000300 +#define NV34TCL_ALPHA_FUNC_ENABLE 0x00000304 +#define NV34TCL_ALPHA_FUNC_FUNC 0x00000308 +#define NV34TCL_ALPHA_FUNC_FUNC_NEVER 0x00000200 +#define NV34TCL_ALPHA_FUNC_FUNC_LESS 0x00000201 +#define NV34TCL_ALPHA_FUNC_FUNC_EQUAL 0x00000202 +#define NV34TCL_ALPHA_FUNC_FUNC_LEQUAL 0x00000203 +#define NV34TCL_ALPHA_FUNC_FUNC_GREATER 0x00000204 +#define NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV34TCL_ALPHA_FUNC_FUNC_GEQUAL 0x00000206 +#define NV34TCL_ALPHA_FUNC_FUNC_ALWAYS 0x00000207 +#define NV34TCL_ALPHA_FUNC_REF 0x0000030c +#define NV34TCL_BLEND_FUNC_ENABLE 0x00000310 +#define NV34TCL_BLEND_FUNC_SRC 0x00000314 +#define NV34TCL_BLEND_FUNC_SRC_RGB_SHIFT 0 +#define NV34TCL_BLEND_FUNC_SRC_RGB_MASK 0x0000ffff +#define NV34TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00000000 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE 0x00000001 +#define NV34TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00000300 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00000302 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV34TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00000304 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV34TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00000306 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x00008001 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x00008003 +#define NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_SHIFT 16 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_MASK 0xffff0000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00000000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00010000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x03000000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x03010000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x03020000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x03030000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x03040000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x03050000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x03060000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x03070000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x03080000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x80010000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x80020000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x80030000 +#define NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x80040000 +#define NV34TCL_BLEND_FUNC_DST 0x00000318 +#define NV34TCL_BLEND_FUNC_DST_RGB_SHIFT 0 +#define NV34TCL_BLEND_FUNC_DST_RGB_MASK 0x0000ffff +#define NV34TCL_BLEND_FUNC_DST_RGB_ZERO 0x00000000 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE 0x00000001 +#define NV34TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00000300 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00000302 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV34TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00000304 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV34TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00000306 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x00008001 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x00008003 +#define NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_SHIFT 16 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_MASK 0xffff0000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00000000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00010000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x03000000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x03010000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x03020000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x03030000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x03040000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x03050000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x03060000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x03070000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x03080000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x80010000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x80020000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x80030000 +#define NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x80040000 +#define NV34TCL_BLEND_COLOR 0x0000031c +#define NV34TCL_BLEND_COLOR_B_SHIFT 0 +#define NV34TCL_BLEND_COLOR_B_MASK 0x000000ff +#define NV34TCL_BLEND_COLOR_G_SHIFT 8 +#define NV34TCL_BLEND_COLOR_G_MASK 0x0000ff00 +#define NV34TCL_BLEND_COLOR_R_SHIFT 16 +#define NV34TCL_BLEND_COLOR_R_MASK 0x00ff0000 +#define NV34TCL_BLEND_COLOR_A_SHIFT 24 +#define NV34TCL_BLEND_COLOR_A_MASK 0xff000000 +#define NV34TCL_BLEND_EQUATION 0x00000320 +#define NV34TCL_BLEND_EQUATION_FUNC_ADD 0x00008006 +#define NV34TCL_BLEND_EQUATION_MIN 0x00008007 +#define NV34TCL_BLEND_EQUATION_MAX 0x00008008 +#define NV34TCL_BLEND_EQUATION_FUNC_SUBTRACT 0x0000800a +#define NV34TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV34TCL_COLOR_MASK 0x00000324 +#define NV34TCL_COLOR_MASK_B_SHIFT 0 +#define NV34TCL_COLOR_MASK_B_MASK 0x000000ff +#define NV34TCL_COLOR_MASK_G_SHIFT 8 +#define NV34TCL_COLOR_MASK_G_MASK 0x0000ff00 +#define NV34TCL_COLOR_MASK_R_SHIFT 16 +#define NV34TCL_COLOR_MASK_R_MASK 0x00ff0000 +#define NV34TCL_COLOR_MASK_A_SHIFT 24 +#define NV34TCL_COLOR_MASK_A_MASK 0xff000000 +#define NV34TCL_STENCIL_FRONT_ENABLE 0x00000328 +#define NV34TCL_STENCIL_FRONT_MASK 0x0000032c +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC 0x00000330 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_NEVER 0x00000200 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_LESS 0x00000201 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL 0x00000202 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL 0x00000203 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER 0x00000204 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL 0x00000206 +#define NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS 0x00000207 +#define NV34TCL_STENCIL_FRONT_FUNC_REF 0x00000334 +#define NV34TCL_STENCIL_FRONT_FUNC_MASK 0x00000338 +#define NV34TCL_STENCIL_FRONT_OP_FAIL 0x0000033c +#define NV34TCL_STENCIL_FRONT_OP_FAIL_ZERO 0x00000000 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_INVERT 0x0000150a +#define NV34TCL_STENCIL_FRONT_OP_FAIL_KEEP 0x00001e00 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_INCR 0x00001e02 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_DECR 0x00001e03 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP 0x00008508 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL 0x00000340 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_ZERO 0x00000000 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_INVERT 0x0000150a +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_KEEP 0x00001e00 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR 0x00001e02 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR 0x00001e03 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS 0x00000344 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_ZERO 0x00000000 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_INVERT 0x0000150a +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_KEEP 0x00001e00 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR 0x00001e02 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR 0x00001e03 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV34TCL_STENCIL_BACK_ENABLE 0x00000348 +#define NV34TCL_STENCIL_BACK_MASK 0x0000034c +#define NV34TCL_STENCIL_BACK_FUNC_FUNC 0x00000350 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_NEVER 0x00000200 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_LESS 0x00000201 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL 0x00000202 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL 0x00000203 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER 0x00000204 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL 0x00000206 +#define NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS 0x00000207 +#define NV34TCL_STENCIL_BACK_FUNC_REF 0x00000354 +#define NV34TCL_STENCIL_BACK_FUNC_MASK 0x00000358 +#define NV34TCL_STENCIL_BACK_OP_FAIL 0x0000035c +#define NV34TCL_STENCIL_BACK_OP_FAIL_ZERO 0x00000000 +#define NV34TCL_STENCIL_BACK_OP_FAIL_INVERT 0x0000150a +#define NV34TCL_STENCIL_BACK_OP_FAIL_KEEP 0x00001e00 +#define NV34TCL_STENCIL_BACK_OP_FAIL_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_BACK_OP_FAIL_INCR 0x00001e02 +#define NV34TCL_STENCIL_BACK_OP_FAIL_DECR 0x00001e03 +#define NV34TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP 0x00008508 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL 0x00000360 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_ZERO 0x00000000 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_INVERT 0x0000150a +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_KEEP 0x00001e00 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR 0x00001e02 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR 0x00001e03 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV34TCL_STENCIL_BACK_OP_ZPASS 0x00000364 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_ZERO 0x00000000 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_INVERT 0x0000150a +#define NV34TCL_STENCIL_BACK_OP_ZPASS_KEEP 0x00001e00 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_REPLACE 0x00001e01 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_INCR 0x00001e02 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_DECR 0x00001e03 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV34TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV34TCL_SHADE_MODEL 0x00000368 +#define NV34TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NV34TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NV34TCL_FOG_ENABLE 0x0000036c +#define NV34TCL_FOG_COLOR 0x00000370 +#define NV34TCL_FOG_COLOR_R_SHIFT 0 +#define NV34TCL_FOG_COLOR_R_MASK 0x000000ff +#define NV34TCL_FOG_COLOR_G_SHIFT 8 +#define NV34TCL_FOG_COLOR_G_MASK 0x0000ff00 +#define NV34TCL_FOG_COLOR_B_SHIFT 16 +#define NV34TCL_FOG_COLOR_B_MASK 0x00ff0000 +#define NV34TCL_FOG_COLOR_A_SHIFT 24 +#define NV34TCL_FOG_COLOR_A_MASK 0xff000000 +#define NV34TCL_COLOR_LOGIC_OP_ENABLE 0x00000374 +#define NV34TCL_COLOR_LOGIC_OP_OP 0x00000378 +#define NV34TCL_COLOR_LOGIC_OP_OP_CLEAR 0x00001500 +#define NV34TCL_COLOR_LOGIC_OP_OP_AND 0x00001501 +#define NV34TCL_COLOR_LOGIC_OP_OP_AND_REVERSE 0x00001502 +#define NV34TCL_COLOR_LOGIC_OP_OP_COPY 0x00001503 +#define NV34TCL_COLOR_LOGIC_OP_OP_AND_INVERTED 0x00001504 +#define NV34TCL_COLOR_LOGIC_OP_OP_NOOP 0x00001505 +#define NV34TCL_COLOR_LOGIC_OP_OP_XOR 0x00001506 +#define NV34TCL_COLOR_LOGIC_OP_OP_OR 0x00001507 +#define NV34TCL_COLOR_LOGIC_OP_OP_NOR 0x00001508 +#define NV34TCL_COLOR_LOGIC_OP_OP_EQUIV 0x00001509 +#define NV34TCL_COLOR_LOGIC_OP_OP_INVERT 0x0000150a +#define NV34TCL_COLOR_LOGIC_OP_OP_OR_REVERSE 0x0000150b +#define NV34TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED 0x0000150c +#define NV34TCL_COLOR_LOGIC_OP_OP_OR_INVERTED 0x0000150d +#define NV34TCL_COLOR_LOGIC_OP_OP_NAND 0x0000150e +#define NV34TCL_COLOR_LOGIC_OP_OP_SET 0x0000150f +#define NV34TCL_NORMALIZE_ENABLE 0x0000037c +#define NV34TCL_COLOR_MATERIAL 0x00000390 +#define NV34TCL_COLOR_MATERIAL_FRONT_EMISSION_ENABLE (1 << 0) +#define NV34TCL_COLOR_MATERIAL_FRONT_AMBIENT_ENABLE (1 << 2) +#define NV34TCL_COLOR_MATERIAL_FRONT_DIFFUSE_ENABLE (1 << 4) +#define NV34TCL_COLOR_MATERIAL_FRONT_SPECULAR_ENABLE (1 << 6) +#define NV34TCL_COLOR_MATERIAL_BACK_EMISSION_ENABLE (1 << 8) +#define NV34TCL_COLOR_MATERIAL_BACK_AMBIENT_ENABLE (1 << 10) +#define NV34TCL_COLOR_MATERIAL_BACK_DIFFUSE_ENABLE (1 << 12) +#define NV34TCL_COLOR_MATERIAL_BACK_SPECULAR_ENABLE (1 << 14) +#define NV34TCL_DEPTH_RANGE_NEAR 0x00000394 +#define NV34TCL_DEPTH_RANGE_FAR 0x00000398 +#define NV34TCL_COLOR_MATERIAL_FRONT_R 0x000003a0 +#define NV34TCL_COLOR_MATERIAL_FRONT_G 0x000003a4 +#define NV34TCL_COLOR_MATERIAL_FRONT_B 0x000003a8 +#define NV34TCL_COLOR_MATERIAL_FRONT_A 0x000003b4 +#define NV34TCL_LINE_WIDTH 0x000003b8 +#define NV34TCL_LINE_SMOOTH_ENABLE 0x000003bc +#define NV34TCL_TX_GEN_S(x) (0x00000400+((x)*16)) +#define NV34TCL_TX_GEN_S__SIZE 0x00000008 +#define NV34TCL_TX_GEN_S_FALSE 0x00000000 +#define NV34TCL_TX_GEN_S_EYE_LINEAR 0x00002400 +#define NV34TCL_TX_GEN_S_OBJECT_LINEAR 0x00002401 +#define NV34TCL_TX_GEN_S_SPHERE_MAP 0x00002402 +#define NV34TCL_TX_GEN_S_NORMAL_MAP 0x00008511 +#define NV34TCL_TX_GEN_S_REFLECTION_MAP 0x00008512 +#define NV34TCL_TX_GEN_T(x) (0x00000404+((x)*16)) +#define NV34TCL_TX_GEN_T__SIZE 0x00000008 +#define NV34TCL_TX_GEN_T_FALSE 0x00000000 +#define NV34TCL_TX_GEN_T_EYE_LINEAR 0x00002400 +#define NV34TCL_TX_GEN_T_OBJECT_LINEAR 0x00002401 +#define NV34TCL_TX_GEN_T_SPHERE_MAP 0x00002402 +#define NV34TCL_TX_GEN_T_NORMAL_MAP 0x00008511 +#define NV34TCL_TX_GEN_T_REFLECTION_MAP 0x00008512 +#define NV34TCL_TX_GEN_R(x) (0x00000408+((x)*16)) +#define NV34TCL_TX_GEN_R__SIZE 0x00000008 +#define NV34TCL_TX_GEN_R_FALSE 0x00000000 +#define NV34TCL_TX_GEN_R_EYE_LINEAR 0x00002400 +#define NV34TCL_TX_GEN_R_OBJECT_LINEAR 0x00002401 +#define NV34TCL_TX_GEN_R_SPHERE_MAP 0x00002402 +#define NV34TCL_TX_GEN_R_NORMAL_MAP 0x00008511 +#define NV34TCL_TX_GEN_R_REFLECTION_MAP 0x00008512 +#define NV34TCL_TX_GEN_Q(x) (0x0000040c+((x)*16)) +#define NV34TCL_TX_GEN_Q__SIZE 0x00000008 +#define NV34TCL_TX_GEN_Q_FALSE 0x00000000 +#define NV34TCL_TX_GEN_Q_EYE_LINEAR 0x00002400 +#define NV34TCL_TX_GEN_Q_OBJECT_LINEAR 0x00002401 +#define NV34TCL_TX_GEN_Q_SPHERE_MAP 0x00002402 +#define NV34TCL_TX_GEN_Q_NORMAL_MAP 0x00008511 +#define NV34TCL_TX_GEN_Q_REFLECTION_MAP 0x00008512 +#define NV34TCL_MODELVIEW_MATRIX(x) (0x00000480+((x)*4)) +#define NV34TCL_MODELVIEW_MATRIX__SIZE 0x00000010 +#define NV34TCL_INVERSE_MODELVIEW_MATRIX(x) (0x00000580+((x)*4)) +#define NV34TCL_INVERSE_MODELVIEW_MATRIX__SIZE 0x0000000c +#define NV34TCL_PROJECTION_MATRIX(x) (0x00000680+((x)*4)) +#define NV34TCL_PROJECTION_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX0_MATRIX(x) (0x000006c0+((x)*4)) +#define NV34TCL_TX0_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX1_MATRIX(x) (0x00000700+((x)*4)) +#define NV34TCL_TX1_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX2_MATRIX(x) (0x00000740+((x)*4)) +#define NV34TCL_TX2_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX3_MATRIX(x) (0x00000780+((x)*4)) +#define NV34TCL_TX3_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX4_MATRIX(x) (0x000007c0+((x)*4)) +#define NV34TCL_TX4_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX5_MATRIX(x) (0x00000800+((x)*4)) +#define NV34TCL_TX5_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX6_MATRIX(x) (0x00000840+((x)*4)) +#define NV34TCL_TX6_MATRIX__SIZE 0x00000010 +#define NV34TCL_TX7_MATRIX(x) (0x00000880+((x)*4)) +#define NV34TCL_TX7_MATRIX__SIZE 0x00000010 +#define NV34TCL_SCISSOR_HORIZ 0x000008c0 +#define NV34TCL_SCISSOR_HORIZ_X_SHIFT 0 +#define NV34TCL_SCISSOR_HORIZ_X_MASK 0x0000ffff +#define NV34TCL_SCISSOR_HORIZ_W_SHIFT 16 +#define NV34TCL_SCISSOR_HORIZ_W_MASK 0xffff0000 +#define NV34TCL_SCISSOR_VERT 0x000008c4 +#define NV34TCL_SCISSOR_VERT_Y_SHIFT 0 +#define NV34TCL_SCISSOR_VERT_Y_MASK 0x0000ffff +#define NV34TCL_SCISSOR_VERT_H_SHIFT 16 +#define NV34TCL_SCISSOR_VERT_H_MASK 0xffff0000 +#define NV34TCL_FOG_COORD_DIST 0x000008c8 +#define NV34TCL_FOG_MODE 0x000008cc +#define NV34TCL_FOG_EQUATION_CONSTANT 0x000008d0 +#define NV34TCL_FOG_EQUATION_LINEAR 0x000008d4 +#define NV34TCL_FOG_EQUATION_QUADRATIC 0x000008d8 +#define NV34TCL_FP_ACTIVE_PROGRAM 0x000008e4 +#define NV34TCL_FP_ACTIVE_PROGRAM_DMA0 (1 << 0) +#define NV34TCL_FP_ACTIVE_PROGRAM_DMA1 (1 << 1) +#define NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_SHIFT 2 +#define NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_MASK 0xfffffffc +#define NV34TCL_RC_COLOR0 0x000008ec +#define NV34TCL_RC_COLOR0_B_SHIFT 0 +#define NV34TCL_RC_COLOR0_B_MASK 0x000000ff +#define NV34TCL_RC_COLOR0_G_SHIFT 8 +#define NV34TCL_RC_COLOR0_G_MASK 0x0000ff00 +#define NV34TCL_RC_COLOR0_R_SHIFT 16 +#define NV34TCL_RC_COLOR0_R_MASK 0x00ff0000 +#define NV34TCL_RC_COLOR0_A_SHIFT 24 +#define NV34TCL_RC_COLOR0_A_MASK 0xff000000 +#define NV34TCL_RC_COLOR1 0x000008f0 +#define NV34TCL_RC_COLOR1_B_SHIFT 0 +#define NV34TCL_RC_COLOR1_B_MASK 0x000000ff +#define NV34TCL_RC_COLOR1_G_SHIFT 8 +#define NV34TCL_RC_COLOR1_G_MASK 0x0000ff00 +#define NV34TCL_RC_COLOR1_R_SHIFT 16 +#define NV34TCL_RC_COLOR1_R_MASK 0x00ff0000 +#define NV34TCL_RC_COLOR1_A_SHIFT 24 +#define NV34TCL_RC_COLOR1_A_MASK 0xff000000 +#define NV34TCL_RC_FINAL0 0x000008f4 +#define NV34TCL_RC_FINAL0_D_INPUT_SHIFT 0 +#define NV34TCL_RC_FINAL0_D_INPUT_MASK 0x0000000f +#define NV34TCL_RC_FINAL0_D_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV34TCL_RC_FINAL0_D_INPUT_FOG 0x00000003 +#define NV34TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV34TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE0 0x00000008 +#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE1 0x00000009 +#define NV34TCL_RC_FINAL0_D_INPUT_SPARE0 0x0000000c +#define NV34TCL_RC_FINAL0_D_INPUT_SPARE1 0x0000000d +#define NV34TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV34TCL_RC_FINAL0_D_INPUT_E_TIMES_F 0x0000000f +#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE2 0x0000000a +#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE3 0x0000000b +#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4) +#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV34TCL_RC_FINAL0_D_MAPPING_SHIFT 5 +#define NV34TCL_RC_FINAL0_D_MAPPING_MASK 0x000000e0 +#define NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV34TCL_RC_FINAL0_C_INPUT_SHIFT 8 +#define NV34TCL_RC_FINAL0_C_INPUT_MASK 0x00000f00 +#define NV34TCL_RC_FINAL0_C_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_FINAL0_C_INPUT_FOG 0x00000300 +#define NV34TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_FINAL0_C_INPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_FINAL0_C_INPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_FINAL0_C_INPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12) +#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV34TCL_RC_FINAL0_C_MAPPING_SHIFT 13 +#define NV34TCL_RC_FINAL0_C_MAPPING_MASK 0x0000e000 +#define NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV34TCL_RC_FINAL0_B_INPUT_SHIFT 16 +#define NV34TCL_RC_FINAL0_B_INPUT_MASK 0x000f0000 +#define NV34TCL_RC_FINAL0_B_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV34TCL_RC_FINAL0_B_INPUT_FOG 0x00030000 +#define NV34TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV34TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE0 0x00080000 +#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE1 0x00090000 +#define NV34TCL_RC_FINAL0_B_INPUT_SPARE0 0x000c0000 +#define NV34TCL_RC_FINAL0_B_INPUT_SPARE1 0x000d0000 +#define NV34TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV34TCL_RC_FINAL0_B_INPUT_E_TIMES_F 0x000f0000 +#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE2 0x000a0000 +#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE3 0x000b0000 +#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20) +#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV34TCL_RC_FINAL0_B_MAPPING_SHIFT 21 +#define NV34TCL_RC_FINAL0_B_MAPPING_MASK 0x00e00000 +#define NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV34TCL_RC_FINAL0_A_INPUT_SHIFT 24 +#define NV34TCL_RC_FINAL0_A_INPUT_MASK 0x0f000000 +#define NV34TCL_RC_FINAL0_A_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV34TCL_RC_FINAL0_A_INPUT_FOG 0x03000000 +#define NV34TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV34TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE0 0x08000000 +#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE1 0x09000000 +#define NV34TCL_RC_FINAL0_A_INPUT_SPARE0 0x0c000000 +#define NV34TCL_RC_FINAL0_A_INPUT_SPARE1 0x0d000000 +#define NV34TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV34TCL_RC_FINAL0_A_INPUT_E_TIMES_F 0x0f000000 +#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE2 0x0a000000 +#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE3 0x0b000000 +#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28) +#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_SHIFT 29 +#define NV34TCL_RC_FINAL0_A_MAPPING_MASK 0xe0000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV34TCL_RC_FINAL1 0x000008f8 +#define NV34TCL_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7) +#define NV34TCL_RC_FINAL1_G_INPUT_SHIFT 8 +#define NV34TCL_RC_FINAL1_G_INPUT_MASK 0x00000f00 +#define NV34TCL_RC_FINAL1_G_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_FINAL1_G_INPUT_FOG 0x00000300 +#define NV34TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_FINAL1_G_INPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_FINAL1_G_INPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_FINAL1_G_INPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12) +#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV34TCL_RC_FINAL1_G_MAPPING_SHIFT 13 +#define NV34TCL_RC_FINAL1_G_MAPPING_MASK 0x0000e000 +#define NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV34TCL_RC_FINAL1_F_INPUT_SHIFT 16 +#define NV34TCL_RC_FINAL1_F_INPUT_MASK 0x000f0000 +#define NV34TCL_RC_FINAL1_F_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV34TCL_RC_FINAL1_F_INPUT_FOG 0x00030000 +#define NV34TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR 0x00040000 +#define NV34TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR 0x00050000 +#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE0 0x00080000 +#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE1 0x00090000 +#define NV34TCL_RC_FINAL1_F_INPUT_SPARE0 0x000c0000 +#define NV34TCL_RC_FINAL1_F_INPUT_SPARE1 0x000d0000 +#define NV34TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV34TCL_RC_FINAL1_F_INPUT_E_TIMES_F 0x000f0000 +#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE2 0x000a0000 +#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE3 0x000b0000 +#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20) +#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV34TCL_RC_FINAL1_F_MAPPING_SHIFT 21 +#define NV34TCL_RC_FINAL1_F_MAPPING_MASK 0x00e00000 +#define NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV34TCL_RC_FINAL1_E_INPUT_SHIFT 24 +#define NV34TCL_RC_FINAL1_E_INPUT_MASK 0x0f000000 +#define NV34TCL_RC_FINAL1_E_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV34TCL_RC_FINAL1_E_INPUT_FOG 0x03000000 +#define NV34TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR 0x04000000 +#define NV34TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR 0x05000000 +#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE0 0x08000000 +#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE1 0x09000000 +#define NV34TCL_RC_FINAL1_E_INPUT_SPARE0 0x0c000000 +#define NV34TCL_RC_FINAL1_E_INPUT_SPARE1 0x0d000000 +#define NV34TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV34TCL_RC_FINAL1_E_INPUT_E_TIMES_F 0x0f000000 +#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE2 0x0a000000 +#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE3 0x0b000000 +#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28) +#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_SHIFT 29 +#define NV34TCL_RC_FINAL1_E_MAPPING_MASK 0xe0000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV34TCL_RC_ENABLE 0x000008fc +#define NV34TCL_RC_ENABLE_NUM_COMBINERS_SHIFT 0 +#define NV34TCL_RC_ENABLE_NUM_COMBINERS_MASK 0x0000000f +#define NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_SHIFT 12 +#define NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_MASK 0x0000f000 +#define NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_SHIFT 16 +#define NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_MASK 0x000f0000 +#define NV34TCL_RC_IN_ALPHA(x) (0x00000900+((x)*32)) +#define NV34TCL_RC_IN_ALPHA__SIZE 0x00000008 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_SHIFT 0 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_MASK 0x0000000f +#define NV34TCL_RC_IN_ALPHA_D_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_FOG 0x00000003 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0 0x00000008 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1 0x00000009 +#define NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0 0x0000000c +#define NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE1 0x0000000d +#define NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV34TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F 0x0000000f +#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2 0x0000000a +#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3 0x0000000b +#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4) +#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000 +#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_SHIFT 5 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_MASK 0x000000e0 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_SHIFT 8 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_MASK 0x00000f00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_FOG 0x00000300 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12) +#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000 +#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_SHIFT 13 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_MASK 0x0000e000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_SHIFT 16 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_MASK 0x000f0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_FOG 0x00030000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0 0x00080000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1 0x00090000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0 0x000c0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE1 0x000d0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F 0x000f0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2 0x000a0000 +#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3 0x000b0000 +#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20) +#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000 +#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_SHIFT 21 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_MASK 0x00e00000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_SHIFT 24 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_MASK 0x0f000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_FOG 0x03000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0 0x08000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1 0x09000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0 0x0c000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE1 0x0d000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F 0x0f000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2 0x0a000000 +#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3 0x0b000000 +#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28) +#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000 +#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_SHIFT 29 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_MASK 0xe0000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV34TCL_RC_IN_RGB(x) (0x00000904+((x)*32)) +#define NV34TCL_RC_IN_RGB__SIZE 0x00000008 +#define NV34TCL_RC_IN_RGB_D_INPUT_SHIFT 0 +#define NV34TCL_RC_IN_RGB_D_INPUT_MASK 0x0000000f +#define NV34TCL_RC_IN_RGB_D_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0 0x00000001 +#define NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1 0x00000002 +#define NV34TCL_RC_IN_RGB_D_INPUT_FOG 0x00000003 +#define NV34TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR 0x00000004 +#define NV34TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR 0x00000005 +#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE0 0x00000008 +#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE1 0x00000009 +#define NV34TCL_RC_IN_RGB_D_INPUT_SPARE0 0x0000000c +#define NV34TCL_RC_IN_RGB_D_INPUT_SPARE1 0x0000000d +#define NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV34TCL_RC_IN_RGB_D_INPUT_E_TIMES_F 0x0000000f +#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE2 0x0000000a +#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE3 0x0000000b +#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4) +#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010 +#define NV34TCL_RC_IN_RGB_D_MAPPING_SHIFT 5 +#define NV34TCL_RC_IN_RGB_D_MAPPING_MASK 0x000000e0 +#define NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT 0x00000020 +#define NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL 0x00000040 +#define NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE 0x00000060 +#define NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL 0x00000080 +#define NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE 0x000000a0 +#define NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY 0x000000c0 +#define NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE 0x000000e0 +#define NV34TCL_RC_IN_RGB_C_INPUT_SHIFT 8 +#define NV34TCL_RC_IN_RGB_C_INPUT_MASK 0x00000f00 +#define NV34TCL_RC_IN_RGB_C_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_IN_RGB_C_INPUT_FOG 0x00000300 +#define NV34TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_IN_RGB_C_INPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_IN_RGB_C_INPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_IN_RGB_C_INPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12) +#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_SHIFT 13 +#define NV34TCL_RC_IN_RGB_C_MAPPING_MASK 0x0000e000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT 0x00002000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL 0x00004000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE 0x00006000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL 0x00008000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE 0x0000a000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY 0x0000c000 +#define NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE 0x0000e000 +#define NV34TCL_RC_IN_RGB_B_INPUT_SHIFT 16 +#define NV34TCL_RC_IN_RGB_B_INPUT_MASK 0x000f0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0 0x00010000 +#define NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1 0x00020000 +#define NV34TCL_RC_IN_RGB_B_INPUT_FOG 0x00030000 +#define NV34TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR 0x00040000 +#define NV34TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR 0x00050000 +#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE0 0x00080000 +#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE1 0x00090000 +#define NV34TCL_RC_IN_RGB_B_INPUT_SPARE0 0x000c0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_SPARE1 0x000d0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000e0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_E_TIMES_F 0x000f0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE2 0x000a0000 +#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE3 0x000b0000 +#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20) +#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_SHIFT 21 +#define NV34TCL_RC_IN_RGB_B_MAPPING_MASK 0x00e00000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT 0x00200000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL 0x00400000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE 0x00600000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL 0x00800000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE 0x00a00000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY 0x00c00000 +#define NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE 0x00e00000 +#define NV34TCL_RC_IN_RGB_A_INPUT_SHIFT 24 +#define NV34TCL_RC_IN_RGB_A_INPUT_MASK 0x0f000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_ZERO 0x00000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0 0x01000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1 0x02000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_FOG 0x03000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR 0x04000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR 0x05000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE0 0x08000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE1 0x09000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_SPARE0 0x0c000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_SPARE1 0x0d000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0e000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_E_TIMES_F 0x0f000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE2 0x0a000000 +#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE3 0x0b000000 +#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28) +#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000 +#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_SHIFT 29 +#define NV34TCL_RC_IN_RGB_A_MAPPING_MASK 0xe0000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY 0x00000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT 0x20000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL 0x40000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE 0x60000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL 0x80000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE 0xa0000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY 0xc0000000 +#define NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE 0xe0000000 +#define NV34TCL_RC_CONSTANT_COLOR0(x) (0x00000908+((x)*32)) +#define NV34TCL_RC_CONSTANT_COLOR0__SIZE 0x00000008 +#define NV34TCL_RC_CONSTANT_COLOR0_B_SHIFT 0 +#define NV34TCL_RC_CONSTANT_COLOR0_B_MASK 0x000000ff +#define NV34TCL_RC_CONSTANT_COLOR0_G_SHIFT 8 +#define NV34TCL_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00 +#define NV34TCL_RC_CONSTANT_COLOR0_R_SHIFT 16 +#define NV34TCL_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000 +#define NV34TCL_RC_CONSTANT_COLOR0_A_SHIFT 24 +#define NV34TCL_RC_CONSTANT_COLOR0_A_MASK 0xff000000 +#define NV34TCL_RC_CONSTANT_COLOR1(x) (0x0000090c+((x)*32)) +#define NV34TCL_RC_CONSTANT_COLOR1__SIZE 0x00000008 +#define NV34TCL_RC_CONSTANT_COLOR1_B_SHIFT 0 +#define NV34TCL_RC_CONSTANT_COLOR1_B_MASK 0x000000ff +#define NV34TCL_RC_CONSTANT_COLOR1_G_SHIFT 8 +#define NV34TCL_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00 +#define NV34TCL_RC_CONSTANT_COLOR1_R_SHIFT 16 +#define NV34TCL_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000 +#define NV34TCL_RC_CONSTANT_COLOR1_A_SHIFT 24 +#define NV34TCL_RC_CONSTANT_COLOR1_A_MASK 0xff000000 +#define NV34TCL_RC_OUT_ALPHA(x) (0x00000910+((x)*32)) +#define NV34TCL_RC_OUT_ALPHA__SIZE 0x00000008 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT 0 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK 0x0000000f +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG 0x00000003 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0 0x0000000c +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1 0x0000000d +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG 0x00000030 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0 0x000000c0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1 0x000000d0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG 0x00000300 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12) +#define NV34TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13) +#define NV34TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14) +#define NV34TCL_RC_OUT_ALPHA_BIAS (1 << 15) +#define NV34TCL_RC_OUT_ALPHA_BIAS_NONE 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV34TCL_RC_OUT_ALPHA_SCALE_SHIFT 17 +#define NV34TCL_RC_OUT_ALPHA_SCALE_MASK 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_SCALE_NONE 0x00000000 +#define NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO 0x00020000 +#define NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV34TCL_RC_OUT_RGB(x) (0x00000914+((x)*32)) +#define NV34TCL_RC_OUT_RGB__SIZE 0x00000008 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT 0 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0 0x00000001 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1 0x00000002 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_FOG 0x00000003 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR 0x00000004 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR 0x00000005 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0 0x00000008 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1 0x00000009 +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0 0x0000000c +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1 0x0000000d +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x0000000e +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F 0x0000000f +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2 0x0000000a +#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3 0x0000000b +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0 0x00000010 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1 0x00000020 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_FOG 0x00000030 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR 0x00000040 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR 0x00000050 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0 0x00000080 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1 0x00000090 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0 0x000000c0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1 0x000000d0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x000000e0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F 0x000000f0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2 0x000000a0 +#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3 0x000000b0 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0 0x00000100 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1 0x00000200 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_FOG 0x00000300 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR 0x00000400 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR 0x00000500 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0 0x00000800 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1 0x00000900 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0 0x00000c00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1 0x00000d00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR 0x00000e00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F 0x00000f00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2 0x00000a00 +#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3 0x00000b00 +#define NV34TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12) +#define NV34TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13) +#define NV34TCL_RC_OUT_RGB_MUX_SUM (1 << 14) +#define NV34TCL_RC_OUT_RGB_BIAS (1 << 15) +#define NV34TCL_RC_OUT_RGB_BIAS_NONE 0x00000000 +#define NV34TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF 0x00008000 +#define NV34TCL_RC_OUT_RGB_SCALE_SHIFT 17 +#define NV34TCL_RC_OUT_RGB_SCALE_MASK 0x00000000 +#define NV34TCL_RC_OUT_RGB_SCALE_NONE 0x00000000 +#define NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO 0x00020000 +#define NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR 0x00040000 +#define NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF 0x00060000 +#define NV34TCL_VIEWPORT_HORIZ 0x00000a00 +#define NV34TCL_VIEWPORT_HORIZ_X_SHIFT 0 +#define NV34TCL_VIEWPORT_HORIZ_X_MASK 0x0000ffff +#define NV34TCL_VIEWPORT_HORIZ_W_SHIFT 16 +#define NV34TCL_VIEWPORT_HORIZ_W_MASK 0xffff0000 +#define NV34TCL_VIEWPORT_VERT 0x00000a04 +#define NV34TCL_VIEWPORT_VERT_Y_SHIFT 0 +#define NV34TCL_VIEWPORT_VERT_Y_MASK 0x0000ffff +#define NV34TCL_VIEWPORT_VERT_H_SHIFT 16 +#define NV34TCL_VIEWPORT_VERT_H_MASK 0xffff0000 +#define NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R 0x00000a10 +#define NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G 0x00000a14 +#define NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B 0x00000a18 +#define NV34TCL_VIEWPORT_TRANSLATE_X 0x00000a20 +#define NV34TCL_VIEWPORT_TRANSLATE_Y 0x00000a24 +#define NV34TCL_VIEWPORT_TRANSLATE_Z 0x00000a28 +#define NV34TCL_VIEWPORT_TRANSLATE_W 0x00000a2c +#define NV34TCL_VIEWPORT_SCALE_X 0x00000a30 +#define NV34TCL_VIEWPORT_SCALE_Y 0x00000a34 +#define NV34TCL_VIEWPORT_SCALE_Z 0x00000a38 +#define NV34TCL_VIEWPORT_SCALE_W 0x00000a3c +#define NV34TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000a60 +#define NV34TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000a64 +#define NV34TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000a68 +#define NV34TCL_DEPTH_FUNC 0x00000a6c +#define NV34TCL_DEPTH_FUNC_NEVER 0x00000200 +#define NV34TCL_DEPTH_FUNC_LESS 0x00000201 +#define NV34TCL_DEPTH_FUNC_EQUAL 0x00000202 +#define NV34TCL_DEPTH_FUNC_LEQUAL 0x00000203 +#define NV34TCL_DEPTH_FUNC_GREATER 0x00000204 +#define NV34TCL_DEPTH_FUNC_NOTEQUAL 0x00000205 +#define NV34TCL_DEPTH_FUNC_GEQUAL 0x00000206 +#define NV34TCL_DEPTH_FUNC_ALWAYS 0x00000207 +#define NV34TCL_DEPTH_WRITE_ENABLE 0x00000a70 +#define NV34TCL_DEPTH_TEST_ENABLE 0x00000a74 +#define NV34TCL_POLYGON_OFFSET_FACTOR 0x00000a78 +#define NV34TCL_POLYGON_OFFSET_UNITS 0x00000a7c +#define NV34TCL_VTX_ATTR_3I_XY(x) (0x00000a80+((x)*8)) +#define NV34TCL_VTX_ATTR_3I_XY__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_3I_XY_X_SHIFT 0 +#define NV34TCL_VTX_ATTR_3I_XY_X_MASK 0x0000ffff +#define NV34TCL_VTX_ATTR_3I_XY_Y_SHIFT 16 +#define NV34TCL_VTX_ATTR_3I_XY_Y_MASK 0xffff0000 +#define NV34TCL_VTX_ATTR_3I_Z(x) (0x00000a84+((x)*8)) +#define NV34TCL_VTX_ATTR_3I_Z__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_3I_Z_Z_SHIFT 0 +#define NV34TCL_VTX_ATTR_3I_Z_Z_MASK 0x0000ffff +#define NV34TCL_VP_UPLOAD_INST(x) (0x00000b80+((x)*4)) +#define NV34TCL_VP_UPLOAD_INST__SIZE 0x00000004 +#define NV34TCL_TX0_CLIP_PLANE_A(x) (0x00000e00+((x)*16)) +#define NV34TCL_TX0_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX0_CLIP_PLANE_B(x) (0x00000e04+((x)*16)) +#define NV34TCL_TX0_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX0_CLIP_PLANE_C(x) (0x00000e08+((x)*16)) +#define NV34TCL_TX0_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX0_CLIP_PLANE_D(x) (0x00000e0c+((x)*16)) +#define NV34TCL_TX0_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX1_CLIP_PLANE_A(x) (0x00000e40+((x)*16)) +#define NV34TCL_TX1_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX1_CLIP_PLANE_B(x) (0x00000e44+((x)*16)) +#define NV34TCL_TX1_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX1_CLIP_PLANE_C(x) (0x00000e48+((x)*16)) +#define NV34TCL_TX1_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX1_CLIP_PLANE_D(x) (0x00000e4c+((x)*16)) +#define NV34TCL_TX1_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX2_CLIP_PLANE_A(x) (0x00000e80+((x)*16)) +#define NV34TCL_TX2_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX2_CLIP_PLANE_B(x) (0x00000e84+((x)*16)) +#define NV34TCL_TX2_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX2_CLIP_PLANE_C(x) (0x00000e88+((x)*16)) +#define NV34TCL_TX2_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX2_CLIP_PLANE_D(x) (0x00000e8c+((x)*16)) +#define NV34TCL_TX2_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX3_CLIP_PLANE_A(x) (0x00000ec0+((x)*16)) +#define NV34TCL_TX3_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX3_CLIP_PLANE_B(x) (0x00000ec4+((x)*16)) +#define NV34TCL_TX3_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX3_CLIP_PLANE_C(x) (0x00000ec8+((x)*16)) +#define NV34TCL_TX3_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX3_CLIP_PLANE_D(x) (0x00000ecc+((x)*16)) +#define NV34TCL_TX3_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX4_CLIP_PLANE_A(x) (0x00000f00+((x)*16)) +#define NV34TCL_TX4_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX4_CLIP_PLANE_B(x) (0x00000f04+((x)*16)) +#define NV34TCL_TX4_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX4_CLIP_PLANE_C(x) (0x00000f08+((x)*16)) +#define NV34TCL_TX4_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX4_CLIP_PLANE_D(x) (0x00000f0c+((x)*16)) +#define NV34TCL_TX4_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX5_CLIP_PLANE_A(x) (0x00000f40+((x)*16)) +#define NV34TCL_TX5_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX5_CLIP_PLANE_B(x) (0x00000f44+((x)*16)) +#define NV34TCL_TX5_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX5_CLIP_PLANE_C(x) (0x00000f48+((x)*16)) +#define NV34TCL_TX5_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX5_CLIP_PLANE_D(x) (0x00000f4c+((x)*16)) +#define NV34TCL_TX5_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX6_CLIP_PLANE_A(x) (0x00000f80+((x)*16)) +#define NV34TCL_TX6_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX6_CLIP_PLANE_B(x) (0x00000f84+((x)*16)) +#define NV34TCL_TX6_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX6_CLIP_PLANE_C(x) (0x00000f88+((x)*16)) +#define NV34TCL_TX6_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX6_CLIP_PLANE_D(x) (0x00000f8c+((x)*16)) +#define NV34TCL_TX6_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_TX7_CLIP_PLANE_A(x) (0x00000fc0+((x)*16)) +#define NV34TCL_TX7_CLIP_PLANE_A__SIZE 0x00000004 +#define NV34TCL_TX7_CLIP_PLANE_B(x) (0x00000fc4+((x)*16)) +#define NV34TCL_TX7_CLIP_PLANE_B__SIZE 0x00000004 +#define NV34TCL_TX7_CLIP_PLANE_C(x) (0x00000fc8+((x)*16)) +#define NV34TCL_TX7_CLIP_PLANE_C__SIZE 0x00000004 +#define NV34TCL_TX7_CLIP_PLANE_D(x) (0x00000fcc+((x)*16)) +#define NV34TCL_TX7_CLIP_PLANE_D__SIZE 0x00000004 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x) (0x00001000+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x) (0x00001004+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x) (0x00001008+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x) (0x0000100c+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x) (0x00001010+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x) (0x00001014+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x) (0x00001018+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x) (0x0000101c+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE 0x00000008 +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x) (0x00001020+((x)*64)) +#define NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE 0x00000008 +#define NV34TCL_LIGHT_HALF_VECTOR_X(x) (0x00001028+((x)*64)) +#define NV34TCL_LIGHT_HALF_VECTOR_X__SIZE 0x00000008 +#define NV34TCL_LIGHT_HALF_VECTOR_Y(x) (0x0000102c+((x)*64)) +#define NV34TCL_LIGHT_HALF_VECTOR_Y__SIZE 0x00000008 +#define NV34TCL_LIGHT_HALF_VECTOR_Z(x) (0x00001030+((x)*64)) +#define NV34TCL_LIGHT_HALF_VECTOR_Z__SIZE 0x00000008 +#define NV34TCL_LIGHT_DIRECTION_X(x) (0x00001034+((x)*64)) +#define NV34TCL_LIGHT_DIRECTION_X__SIZE 0x00000008 +#define NV34TCL_LIGHT_DIRECTION_Y(x) (0x00001038+((x)*64)) +#define NV34TCL_LIGHT_DIRECTION_Y__SIZE 0x00000008 +#define NV34TCL_LIGHT_DIRECTION_Z(x) (0x0000103c+((x)*64)) +#define NV34TCL_LIGHT_DIRECTION_Z__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_CUTOFF_A(x) (0x00001200+((x)*64)) +#define NV34TCL_LIGHT_SPOT_CUTOFF_A__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_CUTOFF_B(x) (0x00001204+((x)*64)) +#define NV34TCL_LIGHT_SPOT_CUTOFF_B__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_CUTOFF_C(x) (0x00001208+((x)*64)) +#define NV34TCL_LIGHT_SPOT_CUTOFF_C__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_DIR_X(x) (0x0000120c+((x)*64)) +#define NV34TCL_LIGHT_SPOT_DIR_X__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_DIR_Y(x) (0x00001210+((x)*64)) +#define NV34TCL_LIGHT_SPOT_DIR_Y__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_DIR_Z(x) (0x00001214+((x)*64)) +#define NV34TCL_LIGHT_SPOT_DIR_Z__SIZE 0x00000008 +#define NV34TCL_LIGHT_SPOT_CUTOFF_D(x) (0x00001218+((x)*64)) +#define NV34TCL_LIGHT_SPOT_CUTOFF_D__SIZE 0x00000008 +#define NV34TCL_LIGHT_POSITION_X(x) (0x0000121c+((x)*64)) +#define NV34TCL_LIGHT_POSITION_X__SIZE 0x00000008 +#define NV34TCL_LIGHT_POSITION_Y(x) (0x00001220+((x)*64)) +#define NV34TCL_LIGHT_POSITION_Y__SIZE 0x00000008 +#define NV34TCL_LIGHT_POSITION_Z(x) (0x00001224+((x)*64)) +#define NV34TCL_LIGHT_POSITION_Z__SIZE 0x00000008 +#define NV34TCL_LIGHT_ATTENUATION_CONSTANT(x) (0x00001228+((x)*64)) +#define NV34TCL_LIGHT_ATTENUATION_CONSTANT__SIZE 0x00000008 +#define NV34TCL_LIGHT_ATTENUATION_LINEAR(x) (0x0000122c+((x)*64)) +#define NV34TCL_LIGHT_ATTENUATION_LINEAR__SIZE 0x00000008 +#define NV34TCL_LIGHT_ATTENUATION_QUADRATIC(x) (0x00001230+((x)*64)) +#define NV34TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE 0x00000008 +#define NV34TCL_FRONT_MATERIAL_SHININESS(x) (0x00001400+((x)*4)) +#define NV34TCL_FRONT_MATERIAL_SHININESS__SIZE 0x00000006 +#define NV34TCL_ENABLED_LIGHTS 0x00001420 +#define NV34TCL_VERTEX_TWO_SIDE_ENABLE 0x0000142c +#define NV34TCL_FP_REG_CONTROL 0x00001450 +#define NV34TCL_FP_REG_CONTROL_UNK1_SHIFT 16 +#define NV34TCL_FP_REG_CONTROL_UNK1_MASK 0xffff0000 +#define NV34TCL_FP_REG_CONTROL_UNK0_SHIFT 0 +#define NV34TCL_FP_REG_CONTROL_UNK0_MASK 0x0000ffff +#define NV34TCL_VP_CLIP_PLANES_ENABLE 0x00001478 +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE0 (1 << 1) +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE1 (1 << 5) +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE2 (1 << 9) +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE3 (1 << 13) +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE4 (1 << 17) +#define NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE5 (1 << 21) +#define NV34TCL_POLYGON_STIPPLE_ENABLE 0x0000147c +#define NV34TCL_POLYGON_STIPPLE_PATTERN(x) (0x00001480+((x)*4)) +#define NV34TCL_POLYGON_STIPPLE_PATTERN__SIZE 0x00000020 +#define NV34TCL_VTX_ATTR_3F_X(x) (0x00001500+((x)*16)) +#define NV34TCL_VTX_ATTR_3F_X__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_3F_Y(x) (0x00001504+((x)*16)) +#define NV34TCL_VTX_ATTR_3F_Y__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_3F_Z(x) (0x00001508+((x)*16)) +#define NV34TCL_VTX_ATTR_3F_Z__SIZE 0x00000010 +#define NV34TCL_VP_CLIP_PLANE_A(x) (0x00001600+((x)*16)) +#define NV34TCL_VP_CLIP_PLANE_A__SIZE 0x00000006 +#define NV34TCL_VP_CLIP_PLANE_B(x) (0x00001604+((x)*16)) +#define NV34TCL_VP_CLIP_PLANE_B__SIZE 0x00000006 +#define NV34TCL_VP_CLIP_PLANE_C(x) (0x00001608+((x)*16)) +#define NV34TCL_VP_CLIP_PLANE_C__SIZE 0x00000006 +#define NV34TCL_VP_CLIP_PLANE_D(x) (0x0000160c+((x)*16)) +#define NV34TCL_VP_CLIP_PLANE_D__SIZE 0x00000006 +#define NV34TCL_VTXBUF_ADDRESS(x) (0x00001680+((x)*4)) +#define NV34TCL_VTXBUF_ADDRESS__SIZE 0x00000010 +#define NV34TCL_VTXBUF_ADDRESS_DMA1 (1 << 31) +#define NV34TCL_VTXBUF_ADDRESS_OFFSET_SHIFT 0 +#define NV34TCL_VTXBUF_ADDRESS_OFFSET_MASK 0x0fffffff +#define NV34TCL_VTXFMT(x) (0x00001740+((x)*4)) +#define NV34TCL_VTXFMT__SIZE 0x00000010 +#define NV34TCL_VTXFMT_TYPE_SHIFT 0 +#define NV34TCL_VTXFMT_TYPE_MASK 0x0000000f +#define NV34TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV34TCL_VTXFMT_TYPE_UBYTE 0x00000004 +#define NV34TCL_VTXFMT_TYPE_USHORT 0x00000005 +#define NV34TCL_VTXFMT_SIZE_SHIFT 4 +#define NV34TCL_VTXFMT_SIZE_MASK 0x000000f0 +#define NV34TCL_VTXFMT_STRIDE_SHIFT 8 +#define NV34TCL_VTXFMT_STRIDE_MASK 0x0000ff00 +#define NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R 0x000017a0 +#define NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G 0x000017a4 +#define NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B 0x000017a8 +#define NV34TCL_COLOR_MATERIAL_BACK_R 0x000017b0 +#define NV34TCL_COLOR_MATERIAL_BACK_G 0x000017b4 +#define NV34TCL_COLOR_MATERIAL_BACK_B 0x000017b8 +#define NV34TCL_COLOR_MATERIAL_BACK_A 0x000017c0 +#define NV34TCL_QUERY_RESET 0x000017c8 +#define NV34TCL_QUERY_UNK17CC 0x000017cc +#define NV34TCL_QUERY_GET 0x00001800 +#define NV34TCL_QUERY_GET_UNK24_SHIFT 24 +#define NV34TCL_QUERY_GET_UNK24_MASK 0xff000000 +#define NV34TCL_QUERY_GET_OFFSET_SHIFT 0 +#define NV34TCL_QUERY_GET_OFFSET_MASK 0x00ffffff +#define NV34TCL_VERTEX_BEGIN_END 0x00001808 +#define NV34TCL_VERTEX_BEGIN_END_STOP 0x00000000 +#define NV34TCL_VERTEX_BEGIN_END_POINTS 0x00000001 +#define NV34TCL_VERTEX_BEGIN_END_LINES 0x00000002 +#define NV34TCL_VERTEX_BEGIN_END_LINE_LOOP 0x00000003 +#define NV34TCL_VERTEX_BEGIN_END_LINE_STRIP 0x00000004 +#define NV34TCL_VERTEX_BEGIN_END_TRIANGLES 0x00000005 +#define NV34TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP 0x00000006 +#define NV34TCL_VERTEX_BEGIN_END_TRIANGLE_FAN 0x00000007 +#define NV34TCL_VERTEX_BEGIN_END_QUADS 0x00000008 +#define NV34TCL_VERTEX_BEGIN_END_QUAD_STRIP 0x00000009 +#define NV34TCL_VERTEX_BEGIN_END_POLYGON 0x0000000a +#define NV34TCL_VB_ELEMENT_U16 0x0000180c +#define NV34TCL_VB_ELEMENT_U16_I0_SHIFT 0 +#define NV34TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff +#define NV34TCL_VB_ELEMENT_U16_I1_SHIFT 16 +#define NV34TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NV34TCL_VB_ELEMENT_U32 0x00001810 +#define NV34TCL_VB_VERTEX_BATCH 0x00001814 +#define NV34TCL_VB_VERTEX_BATCH_OFFSET_SHIFT 0 +#define NV34TCL_VB_VERTEX_BATCH_OFFSET_MASK 0x00ffffff +#define NV34TCL_VB_VERTEX_BATCH_COUNT_SHIFT 24 +#define NV34TCL_VB_VERTEX_BATCH_COUNT_MASK 0xff000000 +#define NV34TCL_VERTEX_DATA 0x00001818 +#define NV34TCL_IDXBUF_ADDRESS 0x0000181c +#define NV34TCL_IDXBUF_FORMAT 0x00001820 +#define NV34TCL_IDXBUF_FORMAT_TYPE_SHIFT 4 +#define NV34TCL_IDXBUF_FORMAT_TYPE_MASK 0x000000f0 +#define NV34TCL_IDXBUF_FORMAT_TYPE_U32 0x00000000 +#define NV34TCL_IDXBUF_FORMAT_TYPE_U16 0x00000010 +#define NV34TCL_IDXBUF_FORMAT_DMA1 (1 << 0) +#define NV34TCL_VB_INDEX_BATCH 0x00001824 +#define NV34TCL_VB_INDEX_BATCH_COUNT_SHIFT 24 +#define NV34TCL_VB_INDEX_BATCH_COUNT_MASK 0xff000000 +#define NV34TCL_VB_INDEX_BATCH_START_SHIFT 0 +#define NV34TCL_VB_INDEX_BATCH_START_MASK 0x00ffffff +#define NV34TCL_POLYGON_MODE_FRONT 0x00001828 +#define NV34TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NV34TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NV34TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NV34TCL_POLYGON_MODE_BACK 0x0000182c +#define NV34TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NV34TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NV34TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NV34TCL_CULL_FACE 0x00001830 +#define NV34TCL_CULL_FACE_FRONT 0x00000404 +#define NV34TCL_CULL_FACE_BACK 0x00000405 +#define NV34TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NV34TCL_FRONT_FACE 0x00001834 +#define NV34TCL_FRONT_FACE_CW 0x00000900 +#define NV34TCL_FRONT_FACE_CCW 0x00000901 +#define NV34TCL_POLYGON_SMOOTH_ENABLE 0x00001838 +#define NV34TCL_CULL_FACE_ENABLE 0x0000183c +#define NV34TCL_TX_PALETTE_OFFSET(x) (0x00001840+((x)*4)) +#define NV34TCL_TX_PALETTE_OFFSET__SIZE 0x00000008 +#define NV34TCL_VTX_ATTR_2F_X(x) (0x00001880+((x)*8)) +#define NV34TCL_VTX_ATTR_2F_X__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_2F_Y(x) (0x00001884+((x)*8)) +#define NV34TCL_VTX_ATTR_2F_Y__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_2I(x) (0x00001900+((x)*4)) +#define NV34TCL_VTX_ATTR_2I__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_2I_X_SHIFT 0 +#define NV34TCL_VTX_ATTR_2I_X_MASK 0x0000ffff +#define NV34TCL_VTX_ATTR_2I_Y_SHIFT 16 +#define NV34TCL_VTX_ATTR_2I_Y_MASK 0xffff0000 +#define NV34TCL_VTX_ATTR_4UB(x) (0x00001940+((x)*4)) +#define NV34TCL_VTX_ATTR_4UB__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4UB_X_SHIFT 0 +#define NV34TCL_VTX_ATTR_4UB_X_MASK 0x000000ff +#define NV34TCL_VTX_ATTR_4UB_Y_SHIFT 8 +#define NV34TCL_VTX_ATTR_4UB_Y_MASK 0x0000ff00 +#define NV34TCL_VTX_ATTR_4UB_Z_SHIFT 16 +#define NV34TCL_VTX_ATTR_4UB_Z_MASK 0x00ff0000 +#define NV34TCL_VTX_ATTR_4UB_W_SHIFT 24 +#define NV34TCL_VTX_ATTR_4UB_W_MASK 0xff000000 +#define NV34TCL_VTX_ATTR_4I_XY(x) (0x00001980+((x)*8)) +#define NV34TCL_VTX_ATTR_4I_XY__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4I_XY_X_SHIFT 0 +#define NV34TCL_VTX_ATTR_4I_XY_X_MASK 0x0000ffff +#define NV34TCL_VTX_ATTR_4I_XY_Y_SHIFT 16 +#define NV34TCL_VTX_ATTR_4I_XY_Y_MASK 0xffff0000 +#define NV34TCL_VTX_ATTR_4I_ZW(x) (0x00001984+((x)*8)) +#define NV34TCL_VTX_ATTR_4I_ZW__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4I_ZW_Z_SHIFT 0 +#define NV34TCL_VTX_ATTR_4I_ZW_Z_MASK 0x0000ffff +#define NV34TCL_VTX_ATTR_4I_ZW_W_SHIFT 16 +#define NV34TCL_VTX_ATTR_4I_ZW_W_MASK 0xffff0000 +#define NV34TCL_TX_OFFSET(x) (0x00001a00+((x)*32)) +#define NV34TCL_TX_OFFSET__SIZE 0x00000008 +#define NV34TCL_TX_FORMAT(x) (0x00001a04+((x)*32)) +#define NV34TCL_TX_FORMAT__SIZE 0x00000008 +#define NV34TCL_TX_FORMAT_DMA0 (1 << 0) +#define NV34TCL_TX_FORMAT_DMA1 (1 << 1) +#define NV34TCL_TX_FORMAT_CUBIC (1 << 2) +#define NV34TCL_TX_FORMAT_NO_BORDER (1 << 3) +#define NV34TCL_TX_FORMAT_DIMS_SHIFT 4 +#define NV34TCL_TX_FORMAT_DIMS_MASK 0x000000f0 +#define NV34TCL_TX_FORMAT_DIMS_1D 0x00000010 +#define NV34TCL_TX_FORMAT_DIMS_2D 0x00000020 +#define NV34TCL_TX_FORMAT_DIMS_3D 0x00000030 +#define NV34TCL_TX_FORMAT_FORMAT_SHIFT 8 +#define NV34TCL_TX_FORMAT_FORMAT_MASK 0x0000ff00 +#define NV34TCL_TX_FORMAT_FORMAT_L8 0x00000000 +#define NV34TCL_TX_FORMAT_FORMAT_A8 0x00000100 +#define NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5 0x00000200 +#define NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4 0x00000400 +#define NV34TCL_TX_FORMAT_FORMAT_R5G6B5 0x00000500 +#define NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8 0x00000600 +#define NV34TCL_TX_FORMAT_FORMAT_X8R8G8B8 0x00000700 +#define NV34TCL_TX_FORMAT_FORMAT_INDEX8 0x00000b00 +#define NV34TCL_TX_FORMAT_FORMAT_DXT1 0x00000c00 +#define NV34TCL_TX_FORMAT_FORMAT_DXT3 0x00000e00 +#define NV34TCL_TX_FORMAT_FORMAT_DXT5 0x00000f00 +#define NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT 0x00001000 +#define NV34TCL_TX_FORMAT_FORMAT_R5G6B5_RECT 0x00001100 +#define NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT 0x00001200 +#define NV34TCL_TX_FORMAT_FORMAT_L8_RECT 0x00001300 +#define NV34TCL_TX_FORMAT_FORMAT_DSDT8_RECT 0x00001700 +#define NV34TCL_TX_FORMAT_FORMAT_A8L8 0x00001a00 +#define NV34TCL_TX_FORMAT_FORMAT_A8_RECT 0x00001b00 +#define NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT 0x00001d00 +#define NV34TCL_TX_FORMAT_FORMAT_R8G8B8_RECT 0x00001e00 +#define NV34TCL_TX_FORMAT_FORMAT_A8L8_RECT 0x00002000 +#define NV34TCL_TX_FORMAT_FORMAT_DSDT8 0x00002800 +#define NV34TCL_TX_FORMAT_FORMAT_HILO16 0x00003300 +#define NV34TCL_TX_FORMAT_FORMAT_HILO16_RECT 0x00003600 +#define NV34TCL_TX_FORMAT_FORMAT_HILO8 0x00004400 +#define NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8 0x00004500 +#define NV34TCL_TX_FORMAT_FORMAT_HILO8_RECT 0x00004600 +#define NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT 0x00004700 +#define NV34TCL_TX_FORMAT_FORMAT_A16 0x00003200 +#define NV34TCL_TX_FORMAT_FORMAT_A16_RECT 0x00003500 +#define NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV 0x00004a00 +#define NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV 0x00004b00 +#define NV34TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV 0x00004c00 +#define NV34TCL_TX_FORMAT_MIPMAP (1 << 19) +#define NV34TCL_TX_FORMAT_BASE_SIZE_U_SHIFT 20 +#define NV34TCL_TX_FORMAT_BASE_SIZE_U_MASK 0x00f00000 +#define NV34TCL_TX_FORMAT_BASE_SIZE_V_SHIFT 24 +#define NV34TCL_TX_FORMAT_BASE_SIZE_V_MASK 0x0f000000 +#define NV34TCL_TX_FORMAT_BASE_SIZE_W_SHIFT 28 +#define NV34TCL_TX_FORMAT_BASE_SIZE_W_MASK 0xf0000000 +#define NV34TCL_TX_WRAP(x) (0x00001a08+((x)*32)) +#define NV34TCL_TX_WRAP__SIZE 0x00000008 +#define NV34TCL_TX_WRAP_S_SHIFT 0 +#define NV34TCL_TX_WRAP_S_MASK 0x000000ff +#define NV34TCL_TX_WRAP_S_REPEAT 0x00000001 +#define NV34TCL_TX_WRAP_S_MIRRORED_REPEAT 0x00000002 +#define NV34TCL_TX_WRAP_S_CLAMP_TO_EDGE 0x00000003 +#define NV34TCL_TX_WRAP_S_CLAMP_TO_BORDER 0x00000004 +#define NV34TCL_TX_WRAP_S_CLAMP 0x00000005 +#define NV34TCL_TX_WRAP_T_SHIFT 8 +#define NV34TCL_TX_WRAP_T_MASK 0x00000f00 +#define NV34TCL_TX_WRAP_T_REPEAT 0x00000100 +#define NV34TCL_TX_WRAP_T_MIRRORED_REPEAT 0x00000200 +#define NV34TCL_TX_WRAP_T_CLAMP_TO_EDGE 0x00000300 +#define NV34TCL_TX_WRAP_T_CLAMP_TO_BORDER 0x00000400 +#define NV34TCL_TX_WRAP_T_CLAMP 0x00000500 +#define NV34TCL_TX_WRAP_EXPAND_NORMAL_SHIFT 12 +#define NV34TCL_TX_WRAP_EXPAND_NORMAL_MASK 0x0000f000 +#define NV34TCL_TX_WRAP_R_SHIFT 16 +#define NV34TCL_TX_WRAP_R_MASK 0x000f0000 +#define NV34TCL_TX_WRAP_R_REPEAT 0x00010000 +#define NV34TCL_TX_WRAP_R_MIRRORED_REPEAT 0x00020000 +#define NV34TCL_TX_WRAP_R_CLAMP_TO_EDGE 0x00030000 +#define NV34TCL_TX_WRAP_R_CLAMP_TO_BORDER 0x00040000 +#define NV34TCL_TX_WRAP_R_CLAMP 0x00050000 +#define NV34TCL_TX_WRAP_RCOMP_SHIFT 28 +#define NV34TCL_TX_WRAP_RCOMP_MASK 0xf0000000 +#define NV34TCL_TX_WRAP_RCOMP_NEVER 0x00000000 +#define NV34TCL_TX_WRAP_RCOMP_GREATER 0x10000000 +#define NV34TCL_TX_WRAP_RCOMP_EQUAL 0x20000000 +#define NV34TCL_TX_WRAP_RCOMP_GEQUAL 0x30000000 +#define NV34TCL_TX_WRAP_RCOMP_LESS 0x40000000 +#define NV34TCL_TX_WRAP_RCOMP_NOTEQUAL 0x50000000 +#define NV34TCL_TX_WRAP_RCOMP_LEQUAL 0x60000000 +#define NV34TCL_TX_WRAP_RCOMP_ALWAYS 0x70000000 +#define NV34TCL_TX_ENABLE(x) (0x00001a0c+((x)*32)) +#define NV34TCL_TX_ENABLE__SIZE 0x00000008 +#define NV34TCL_TX_ENABLE_ANISO_SHIFT 4 +#define NV34TCL_TX_ENABLE_ANISO_MASK 0x00000030 +#define NV34TCL_TX_ENABLE_ANISO_NONE 0x00000000 +#define NV34TCL_TX_ENABLE_ANISO_2X 0x00000010 +#define NV34TCL_TX_ENABLE_ANISO_4X 0x00000020 +#define NV34TCL_TX_ENABLE_ANISO_8X 0x00000030 +#define NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT 14 +#define NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK 0x0003c000 +#define NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT 26 +#define NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK 0x3c000000 +#define NV34TCL_TX_ENABLE_ENABLE (1 << 30) +#define NV34TCL_TX_SWIZZLE(x) (0x00001a10+((x)*32)) +#define NV34TCL_TX_SWIZZLE__SIZE 0x00000008 +#define NV34TCL_TX_SWIZZLE_S0_X_SHIFT 14 +#define NV34TCL_TX_SWIZZLE_S0_X_MASK 0x0000c000 +#define NV34TCL_TX_SWIZZLE_S0_X_ZERO 0x00000000 +#define NV34TCL_TX_SWIZZLE_S0_X_ONE 0x00004000 +#define NV34TCL_TX_SWIZZLE_S0_X_S1 0x00008000 +#define NV34TCL_TX_SWIZZLE_S0_Y_SHIFT 12 +#define NV34TCL_TX_SWIZZLE_S0_Y_MASK 0x00003000 +#define NV34TCL_TX_SWIZZLE_S0_Y_ZERO 0x00000000 +#define NV34TCL_TX_SWIZZLE_S0_Y_ONE 0x00001000 +#define NV34TCL_TX_SWIZZLE_S0_Y_S1 0x00002000 +#define NV34TCL_TX_SWIZZLE_S0_Z_SHIFT 10 +#define NV34TCL_TX_SWIZZLE_S0_Z_MASK 0x00000c00 +#define NV34TCL_TX_SWIZZLE_S0_Z_ZERO 0x00000000 +#define NV34TCL_TX_SWIZZLE_S0_Z_ONE 0x00000400 +#define NV34TCL_TX_SWIZZLE_S0_Z_S1 0x00000800 +#define NV34TCL_TX_SWIZZLE_S0_W_SHIFT 8 +#define NV34TCL_TX_SWIZZLE_S0_W_MASK 0x00000300 +#define NV34TCL_TX_SWIZZLE_S0_W_ZERO 0x00000000 +#define NV34TCL_TX_SWIZZLE_S0_W_ONE 0x00000100 +#define NV34TCL_TX_SWIZZLE_S0_W_S1 0x00000200 +#define NV34TCL_TX_SWIZZLE_S1_X_SHIFT 6 +#define NV34TCL_TX_SWIZZLE_S1_X_MASK 0x000000c0 +#define NV34TCL_TX_SWIZZLE_S1_X_W 0x00000000 +#define NV34TCL_TX_SWIZZLE_S1_X_Z 0x00000040 +#define NV34TCL_TX_SWIZZLE_S1_X_Y 0x00000080 +#define NV34TCL_TX_SWIZZLE_S1_X_X 0x000000c0 +#define NV34TCL_TX_SWIZZLE_S1_Y_SHIFT 4 +#define NV34TCL_TX_SWIZZLE_S1_Y_MASK 0x00000030 +#define NV34TCL_TX_SWIZZLE_S1_Y_W 0x00000000 +#define NV34TCL_TX_SWIZZLE_S1_Y_Z 0x00000010 +#define NV34TCL_TX_SWIZZLE_S1_Y_Y 0x00000020 +#define NV34TCL_TX_SWIZZLE_S1_Y_X 0x00000030 +#define NV34TCL_TX_SWIZZLE_S1_Z_SHIFT 2 +#define NV34TCL_TX_SWIZZLE_S1_Z_MASK 0x0000000c +#define NV34TCL_TX_SWIZZLE_S1_Z_W 0x00000000 +#define NV34TCL_TX_SWIZZLE_S1_Z_Z 0x00000004 +#define NV34TCL_TX_SWIZZLE_S1_Z_Y 0x00000008 +#define NV34TCL_TX_SWIZZLE_S1_Z_X 0x0000000c +#define NV34TCL_TX_SWIZZLE_S1_W_SHIFT 0 +#define NV34TCL_TX_SWIZZLE_S1_W_MASK 0x00000003 +#define NV34TCL_TX_SWIZZLE_S1_W_W 0x00000000 +#define NV34TCL_TX_SWIZZLE_S1_W_Z 0x00000001 +#define NV34TCL_TX_SWIZZLE_S1_W_Y 0x00000002 +#define NV34TCL_TX_SWIZZLE_S1_W_X 0x00000003 +#define NV34TCL_TX_SWIZZLE_RECT_PITCH_SHIFT 16 +#define NV34TCL_TX_SWIZZLE_RECT_PITCH_MASK 0xffff0000 +#define NV34TCL_TX_FILTER(x) (0x00001a14+((x)*32)) +#define NV34TCL_TX_FILTER__SIZE 0x00000008 +#define NV34TCL_TX_FILTER_LOD_BIAS_SHIFT 8 +#define NV34TCL_TX_FILTER_LOD_BIAS_MASK 0x00000f00 +#define NV34TCL_TX_FILTER_MINIFY_SHIFT 16 +#define NV34TCL_TX_FILTER_MINIFY_MASK 0x000f0000 +#define NV34TCL_TX_FILTER_MINIFY_NEAREST 0x00010000 +#define NV34TCL_TX_FILTER_MINIFY_LINEAR 0x00020000 +#define NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST 0x00030000 +#define NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST 0x00040000 +#define NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR 0x00050000 +#define NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR 0x00060000 +#define NV34TCL_TX_FILTER_MAGNIFY_SHIFT 24 +#define NV34TCL_TX_FILTER_MAGNIFY_MASK 0x0f000000 +#define NV34TCL_TX_FILTER_MAGNIFY_NEAREST 0x01000000 +#define NV34TCL_TX_FILTER_MAGNIFY_LINEAR 0x02000000 +#define NV34TCL_TX_FILTER_SIGNED_BLUE (1 << 28) +#define NV34TCL_TX_FILTER_SIGNED_GREEN (1 << 29) +#define NV34TCL_TX_FILTER_SIGNED_RED (1 << 30) +#define NV34TCL_TX_FILTER_SIGNED_ALPHA (1 << 31) +#define NV34TCL_TX_NPOT_SIZE(x) (0x00001a18+((x)*32)) +#define NV34TCL_TX_NPOT_SIZE__SIZE 0x00000008 +#define NV34TCL_TX_NPOT_SIZE_H_SHIFT 0 +#define NV34TCL_TX_NPOT_SIZE_H_MASK 0x0000ffff +#define NV34TCL_TX_NPOT_SIZE_W_SHIFT 16 +#define NV34TCL_TX_NPOT_SIZE_W_MASK 0xffff0000 +#define NV34TCL_TX_BORDER_COLOR(x) (0x00001a1c+((x)*32)) +#define NV34TCL_TX_BORDER_COLOR__SIZE 0x00000008 +#define NV34TCL_TX_BORDER_COLOR_B_SHIFT 0 +#define NV34TCL_TX_BORDER_COLOR_B_MASK 0x000000ff +#define NV34TCL_TX_BORDER_COLOR_G_SHIFT 8 +#define NV34TCL_TX_BORDER_COLOR_G_MASK 0x0000ff00 +#define NV34TCL_TX_BORDER_COLOR_R_SHIFT 16 +#define NV34TCL_TX_BORDER_COLOR_R_MASK 0x00ff0000 +#define NV34TCL_TX_BORDER_COLOR_A_SHIFT 24 +#define NV34TCL_TX_BORDER_COLOR_A_MASK 0xff000000 +#define NV34TCL_VTX_ATTR_4F_X(x) (0x00001c00+((x)*16)) +#define NV34TCL_VTX_ATTR_4F_X__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4F_Y(x) (0x00001c04+((x)*16)) +#define NV34TCL_VTX_ATTR_4F_Y__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4F_Z(x) (0x00001c08+((x)*16)) +#define NV34TCL_VTX_ATTR_4F_Z__SIZE 0x00000010 +#define NV34TCL_VTX_ATTR_4F_W(x) (0x00001c0c+((x)*16)) +#define NV34TCL_VTX_ATTR_4F_W__SIZE 0x00000010 +#define NV34TCL_FP_CONTROL 0x00001d60 +#define NV34TCL_FP_CONTROL_USES_KIL (1 << 7) +#define NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_SHIFT 0 +#define NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_MASK 0x0000000f +#define NV34TCL_DEPTH_UNK17D8 0x00001d78 +#define NV34TCL_DEPTH_UNK17D8_CLAMP_SHIFT 4 +#define NV34TCL_DEPTH_UNK17D8_CLAMP_MASK 0x000000f0 +#define NV34TCL_MULTISAMPLE_CONTROL 0x00001d7c +#define NV34TCL_MULTISAMPLE_CONTROL_ENABLE (1 << 0) +#define NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_COVERAGE (1 << 4) +#define NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_ONE (1 << 8) +#define NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_SHIFT 16 +#define NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_MASK 0xffff0000 +#define NV34TCL_CLEAR_DEPTH_VALUE 0x00001d8c +#define NV34TCL_CLEAR_COLOR_VALUE 0x00001d90 +#define NV34TCL_CLEAR_COLOR_VALUE_B_SHIFT 0 +#define NV34TCL_CLEAR_COLOR_VALUE_B_MASK 0x000000ff +#define NV34TCL_CLEAR_COLOR_VALUE_G_SHIFT 8 +#define NV34TCL_CLEAR_COLOR_VALUE_G_MASK 0x0000ff00 +#define NV34TCL_CLEAR_COLOR_VALUE_R_SHIFT 16 +#define NV34TCL_CLEAR_COLOR_VALUE_R_MASK 0x00ff0000 +#define NV34TCL_CLEAR_COLOR_VALUE_A_SHIFT 24 +#define NV34TCL_CLEAR_COLOR_VALUE_A_MASK 0xff000000 +#define NV34TCL_CLEAR_BUFFERS 0x00001d94 +#define NV34TCL_CLEAR_BUFFERS_COLOR_A (1 << 7) +#define NV34TCL_CLEAR_BUFFERS_COLOR_B (1 << 6) +#define NV34TCL_CLEAR_BUFFERS_COLOR_G (1 << 5) +#define NV34TCL_CLEAR_BUFFERS_COLOR_R (1 << 4) +#define NV34TCL_CLEAR_BUFFERS_STENCIL (1 << 1) +#define NV34TCL_CLEAR_BUFFERS_DEPTH (1 << 0) +#define NV34TCL_DO_VERTICES 0x00001dac +#define NV34TCL_LINE_STIPPLE_ENABLE 0x00001db4 +#define NV34TCL_LINE_STIPPLE_PATTERN 0x00001db8 +#define NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT 0 +#define NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK 0x0000ffff +#define NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT 16 +#define NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK 0xffff0000 +#define NV34TCL_BACK_MATERIAL_SHININESS(x) (0x00001e20+((x)*4)) +#define NV34TCL_BACK_MATERIAL_SHININESS__SIZE 0x00000006 +#define NV34TCL_VTX_ATTR_1F(x) (0x00001e40+((x)*4)) +#define NV34TCL_VTX_ATTR_1F__SIZE 0x00000010 +#define NV34TCL_ENGINE 0x00001e94 +#define NV34TCL_ENGINE_FP (1 << 0) +#define NV34TCL_ENGINE_VP (1 << 1) +#define NV34TCL_ENGINE_FIXED (1 << 2) +#define NV34TCL_VP_UPLOAD_FROM_ID 0x00001e9c +#define NV34TCL_VP_START_FROM_ID 0x00001ea0 +#define NV34TCL_POINT_PARAMETERS(x) (0x00001ec0+((x)*4)) +#define NV34TCL_POINT_PARAMETERS__SIZE 0x00000008 +#define NV34TCL_POINT_SIZE 0x00001ee0 +#define NV34TCL_POINT_PARAMETERS_ENABLE 0x00001ee4 +#define NV34TCL_POINT_SPRITE 0x00001ee8 +#define NV34TCL_POINT_SPRITE_ENABLE (1 << 0) +#define NV34TCL_POINT_SPRITE_R_MODE_SHIFT 1 +#define NV34TCL_POINT_SPRITE_R_MODE_MASK 0x00000006 +#define NV34TCL_POINT_SPRITE_R_MODE_ZERO 0x00000000 +#define NV34TCL_POINT_SPRITE_R_MODE_R 0x00000002 +#define NV34TCL_POINT_SPRITE_R_MODE_S 0x00000004 +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_0 (1 << 8) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_1 (1 << 9) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_2 (1 << 10) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_3 (1 << 11) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_4 (1 << 12) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_5 (1 << 13) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_6 (1 << 14) +#define NV34TCL_POINT_SPRITE_COORD_REPLACE_7 (1 << 15) +#define NV34TCL_VP_UPLOAD_CONST_ID 0x00001efc +#define NV34TCL_VP_UPLOAD_CONST_X(x) (0x00001f00+((x)*16)) +#define NV34TCL_VP_UPLOAD_CONST_X__SIZE 0x00000004 +#define NV34TCL_VP_UPLOAD_CONST_Y(x) (0x00001f04+((x)*16)) +#define NV34TCL_VP_UPLOAD_CONST_Y__SIZE 0x00000004 +#define NV34TCL_VP_UPLOAD_CONST_Z(x) (0x00001f08+((x)*16)) +#define NV34TCL_VP_UPLOAD_CONST_Z__SIZE 0x00000004 +#define NV34TCL_VP_UPLOAD_CONST_W(x) (0x00001f0c+((x)*16)) +#define NV34TCL_VP_UPLOAD_CONST_W__SIZE 0x00000004 +#define NV34TCL_UNK1f80(x) (0x00001f80+((x)*4)) +#define NV34TCL_UNK1f80__SIZE 0x00000010 + + +#define NV40TCL 0x00004097 + +#define NV40TCL_REF_CNT 0x00000050 +#define NV40TCL_NOP 0x00000100 +#define NV40TCL_NOTIFY 0x00000104 +#define NV40TCL_DMA_NOTIFY 0x00000180 +#define NV40TCL_DMA_TEXTURE0 0x00000184 +#define NV40TCL_DMA_TEXTURE1 0x00000188 +#define NV40TCL_DMA_COLOR1 0x0000018c +#define NV40TCL_DMA_COLOR0 0x00000194 +#define NV40TCL_DMA_ZETA 0x00000198 +#define NV40TCL_DMA_VTXBUF0 0x0000019c +#define NV40TCL_DMA_VTXBUF1 0x000001a0 +#define NV40TCL_DMA_FENCE 0x000001a4 +#define NV40TCL_DMA_QUERY 0x000001a8 +#define NV40TCL_DMA_UNK01AC 0x000001ac +#define NV40TCL_DMA_UNK01B0 0x000001b0 +#define NV40TCL_DMA_COLOR2 0x000001b4 +#define NV40TCL_DMA_COLOR3 0x000001b8 +#define NV40TCL_RT_HORIZ 0x00000200 +#define NV40TCL_RT_HORIZ_W_SHIFT 16 +#define NV40TCL_RT_HORIZ_W_MASK 0xffff0000 +#define NV40TCL_RT_HORIZ_X_SHIFT 0 +#define NV40TCL_RT_HORIZ_X_MASK 0x0000ffff +#define NV40TCL_RT_VERT 0x00000204 +#define NV40TCL_RT_VERT_H_SHIFT 16 +#define NV40TCL_RT_VERT_H_MASK 0xffff0000 +#define NV40TCL_RT_VERT_Y_SHIFT 0 +#define NV40TCL_RT_VERT_Y_MASK 0x0000ffff +#define NV40TCL_RT_FORMAT 0x00000208 +#define NV40TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT 24 +#define NV40TCL_RT_FORMAT_LOG2_HEIGHT_MASK 0xff000000 +#define NV40TCL_RT_FORMAT_LOG2_WIDTH_SHIFT 16 +#define NV40TCL_RT_FORMAT_LOG2_WIDTH_MASK 0x00ff0000 +#define NV40TCL_RT_FORMAT_TYPE_SHIFT 8 +#define NV40TCL_RT_FORMAT_TYPE_MASK 0x00000f00 +#define NV40TCL_RT_FORMAT_TYPE_LINEAR 0x00000100 +#define NV40TCL_RT_FORMAT_TYPE_SWIZZLED 0x00000200 +#define NV40TCL_RT_FORMAT_ZETA_SHIFT 5 +#define NV40TCL_RT_FORMAT_ZETA_MASK 0x000000e0 +#define NV40TCL_RT_FORMAT_ZETA_Z16 0x00000020 +#define NV40TCL_RT_FORMAT_ZETA_Z24S8 0x00000040 +#define NV40TCL_RT_FORMAT_COLOR_SHIFT 0 +#define NV40TCL_RT_FORMAT_COLOR_MASK 0x0000001f +#define NV40TCL_RT_FORMAT_COLOR_R5G6B5 0x00000003 +#define NV40TCL_RT_FORMAT_COLOR_X8R8G8B8 0x00000005 +#define NV40TCL_RT_FORMAT_COLOR_A8R8G8B8 0x00000008 +#define NV40TCL_RT_FORMAT_COLOR_B8 0x00000009 +#define NV40TCL_RT_FORMAT_COLOR_UNKNOWN 0x0000000d +#define NV40TCL_RT_FORMAT_COLOR_X8B8G8R8 0x0000000f +#define NV40TCL_RT_FORMAT_COLOR_A8B8G8R8 0x00000010 +#define NV40TCL_COLOR0_PITCH 0x0000020c +#define NV40TCL_COLOR0_OFFSET 0x00000210 +#define NV40TCL_ZETA_OFFSET 0x00000214 +#define NV40TCL_COLOR1_OFFSET 0x00000218 +#define NV40TCL_COLOR1_PITCH 0x0000021c +#define NV40TCL_RT_ENABLE 0x00000220 +#define NV40TCL_RT_ENABLE_MRT (1 << 4) +#define NV40TCL_RT_ENABLE_COLOR3 (1 << 3) +#define NV40TCL_RT_ENABLE_COLOR2 (1 << 2) +#define NV40TCL_RT_ENABLE_COLOR1 (1 << 1) +#define NV40TCL_RT_ENABLE_COLOR0 (1 << 0) +#define NV40TCL_ZETA_PITCH 0x0000022c +#define NV40TCL_COLOR2_PITCH 0x00000280 +#define NV40TCL_COLOR3_PITCH 0x00000284 +#define NV40TCL_COLOR2_OFFSET 0x00000288 +#define NV40TCL_COLOR3_OFFSET 0x0000028c +#define NV40TCL_VIEWPORT_CLIP_HORIZ(x) (0x000002c0+((x)*8)) +#define NV40TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV40TCL_VIEWPORT_CLIP_VERT(x) (0x000002c4+((x)*8)) +#define NV40TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV40TCL_DITHER_ENABLE 0x00000300 +#define NV40TCL_ALPHA_TEST_ENABLE 0x00000304 +#define NV40TCL_ALPHA_TEST_FUNC 0x00000308 +#define NV40TCL_ALPHA_TEST_FUNC_NEVER 0x00000200 +#define NV40TCL_ALPHA_TEST_FUNC_LESS 0x00000201 +#define NV40TCL_ALPHA_TEST_FUNC_EQUAL 0x00000202 +#define NV40TCL_ALPHA_TEST_FUNC_LEQUAL 0x00000203 +#define NV40TCL_ALPHA_TEST_FUNC_GREATER 0x00000204 +#define NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL 0x00000205 +#define NV40TCL_ALPHA_TEST_FUNC_GEQUAL 0x00000206 +#define NV40TCL_ALPHA_TEST_FUNC_ALWAYS 0x00000207 +#define NV40TCL_ALPHA_TEST_REF 0x0000030c +#define NV40TCL_BLEND_ENABLE 0x00000310 +#define NV40TCL_BLEND_FUNC_SRC 0x00000314 +#define NV40TCL_BLEND_FUNC_SRC_RGB_SHIFT 0 +#define NV40TCL_BLEND_FUNC_SRC_RGB_MASK 0x0000ffff +#define NV40TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00000000 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE 0x00000001 +#define NV40TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00000300 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00000302 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV40TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00000304 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV40TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00000306 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x00008001 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x00008003 +#define NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_SHIFT 16 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_MASK 0xffff0000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00000000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00010000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x03000000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x03010000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x03020000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x03030000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x03040000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x03050000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x03060000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x03070000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x03080000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x80010000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x80020000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x80030000 +#define NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x80040000 +#define NV40TCL_BLEND_FUNC_DST 0x00000318 +#define NV40TCL_BLEND_FUNC_DST_RGB_SHIFT 0 +#define NV40TCL_BLEND_FUNC_DST_RGB_MASK 0x0000ffff +#define NV40TCL_BLEND_FUNC_DST_RGB_ZERO 0x00000000 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE 0x00000001 +#define NV40TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00000300 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00000302 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV40TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00000304 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV40TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00000306 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x00008001 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x00008003 +#define NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_SHIFT 16 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_MASK 0xffff0000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00000000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00010000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x03000000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x03010000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x03020000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x03030000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x03040000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x03050000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x03060000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x03070000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x03080000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x80010000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x80020000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x80030000 +#define NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x80040000 +#define NV40TCL_BLEND_COLOR 0x0000031c +#define NV40TCL_BLEND_COLOR_B_SHIFT 0 +#define NV40TCL_BLEND_COLOR_B_MASK 0x000000ff +#define NV40TCL_BLEND_COLOR_G_SHIFT 8 +#define NV40TCL_BLEND_COLOR_G_MASK 0x0000ff00 +#define NV40TCL_BLEND_COLOR_R_SHIFT 16 +#define NV40TCL_BLEND_COLOR_R_MASK 0x00ff0000 +#define NV40TCL_BLEND_COLOR_A_SHIFT 24 +#define NV40TCL_BLEND_COLOR_A_MASK 0xff000000 +#define NV40TCL_BLEND_EQUATION 0x00000320 +#define NV40TCL_BLEND_EQUATION_RGB_SHIFT 0 +#define NV40TCL_BLEND_EQUATION_RGB_MASK 0x0000ffff +#define NV40TCL_BLEND_EQUATION_RGB_FUNC_ADD 0x00008006 +#define NV40TCL_BLEND_EQUATION_RGB_MIN 0x00008007 +#define NV40TCL_BLEND_EQUATION_RGB_MAX 0x00008008 +#define NV40TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT 0x0000800a +#define NV40TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV40TCL_BLEND_EQUATION_ALPHA_SHIFT 16 +#define NV40TCL_BLEND_EQUATION_ALPHA_MASK 0xffff0000 +#define NV40TCL_BLEND_EQUATION_ALPHA_FUNC_ADD 0x80060000 +#define NV40TCL_BLEND_EQUATION_ALPHA_MIN 0x80070000 +#define NV40TCL_BLEND_EQUATION_ALPHA_MAX 0x80080000 +#define NV40TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT 0x800a0000 +#define NV40TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT 0x800b0000 +#define NV40TCL_COLOR_MASK 0x00000324 +#define NV40TCL_COLOR_MASK_BUFFER0_B_SHIFT 0 +#define NV40TCL_COLOR_MASK_BUFFER0_B_MASK 0x000000ff +#define NV40TCL_COLOR_MASK_BUFFER0_G_SHIFT 8 +#define NV40TCL_COLOR_MASK_BUFFER0_G_MASK 0x0000ff00 +#define NV40TCL_COLOR_MASK_BUFFER0_R_SHIFT 16 +#define NV40TCL_COLOR_MASK_BUFFER0_R_MASK 0x00ff0000 +#define NV40TCL_COLOR_MASK_BUFFER0_A_SHIFT 24 +#define NV40TCL_COLOR_MASK_BUFFER0_A_MASK 0xff000000 +#define NV40TCL_STENCIL_FRONT_ENABLE 0x00000328 +#define NV40TCL_STENCIL_FRONT_MASK 0x0000032c +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC 0x00000330 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_NEVER 0x00000200 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_LESS 0x00000201 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL 0x00000202 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL 0x00000203 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER 0x00000204 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL 0x00000206 +#define NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS 0x00000207 +#define NV40TCL_STENCIL_FRONT_FUNC_REF 0x00000334 +#define NV40TCL_STENCIL_FRONT_FUNC_MASK 0x00000338 +#define NV40TCL_STENCIL_FRONT_OP_FAIL 0x0000033c +#define NV40TCL_STENCIL_FRONT_OP_FAIL_ZERO 0x00000000 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_INVERT 0x0000150a +#define NV40TCL_STENCIL_FRONT_OP_FAIL_KEEP 0x00001e00 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_INCR 0x00001e02 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_DECR 0x00001e03 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP 0x00008508 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL 0x00000340 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_ZERO 0x00000000 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_INVERT 0x0000150a +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_KEEP 0x00001e00 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR 0x00001e02 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR 0x00001e03 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS 0x00000344 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_ZERO 0x00000000 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_INVERT 0x0000150a +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_KEEP 0x00001e00 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR 0x00001e02 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR 0x00001e03 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV40TCL_STENCIL_BACK_ENABLE 0x00000348 +#define NV40TCL_STENCIL_BACK_MASK 0x0000034c +#define NV40TCL_STENCIL_BACK_FUNC_FUNC 0x00000350 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_NEVER 0x00000200 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_LESS 0x00000201 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL 0x00000202 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL 0x00000203 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER 0x00000204 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL 0x00000206 +#define NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS 0x00000207 +#define NV40TCL_STENCIL_BACK_FUNC_REF 0x00000354 +#define NV40TCL_STENCIL_BACK_FUNC_MASK 0x00000358 +#define NV40TCL_STENCIL_BACK_OP_FAIL 0x0000035c +#define NV40TCL_STENCIL_BACK_OP_FAIL_ZERO 0x00000000 +#define NV40TCL_STENCIL_BACK_OP_FAIL_INVERT 0x0000150a +#define NV40TCL_STENCIL_BACK_OP_FAIL_KEEP 0x00001e00 +#define NV40TCL_STENCIL_BACK_OP_FAIL_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_BACK_OP_FAIL_INCR 0x00001e02 +#define NV40TCL_STENCIL_BACK_OP_FAIL_DECR 0x00001e03 +#define NV40TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP 0x00008508 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL 0x00000360 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_ZERO 0x00000000 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_INVERT 0x0000150a +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_KEEP 0x00001e00 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR 0x00001e02 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR 0x00001e03 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV40TCL_STENCIL_BACK_OP_ZPASS 0x00000364 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_ZERO 0x00000000 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_INVERT 0x0000150a +#define NV40TCL_STENCIL_BACK_OP_ZPASS_KEEP 0x00001e00 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_REPLACE 0x00001e01 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_INCR 0x00001e02 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_DECR 0x00001e03 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV40TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV40TCL_SHADE_MODEL 0x00000368 +#define NV40TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NV40TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NV40TCL_MRT_COLOR_MASK 0x00000370 +#define NV40TCL_MRT_COLOR_MASK_BUFFER1_A (1 << 4) +#define NV40TCL_MRT_COLOR_MASK_BUFFER1_R (1 << 5) +#define NV40TCL_MRT_COLOR_MASK_BUFFER1_G (1 << 6) +#define NV40TCL_MRT_COLOR_MASK_BUFFER1_B (1 << 7) +#define NV40TCL_MRT_COLOR_MASK_BUFFER2_A (1 << 8) +#define NV40TCL_MRT_COLOR_MASK_BUFFER2_R (1 << 9) +#define NV40TCL_MRT_COLOR_MASK_BUFFER2_G (1 << 10) +#define NV40TCL_MRT_COLOR_MASK_BUFFER2_B (1 << 11) +#define NV40TCL_MRT_COLOR_MASK_BUFFER3_A (1 << 12) +#define NV40TCL_MRT_COLOR_MASK_BUFFER3_R (1 << 13) +#define NV40TCL_MRT_COLOR_MASK_BUFFER3_G (1 << 14) +#define NV40TCL_MRT_COLOR_MASK_BUFFER3_B (1 << 15) +#define NV40TCL_COLOR_LOGIC_OP_ENABLE 0x00000374 +#define NV40TCL_COLOR_LOGIC_OP 0x00000378 +#define NV40TCL_COLOR_LOGIC_OP_CLEAR 0x00001500 +#define NV40TCL_COLOR_LOGIC_OP_AND 0x00001501 +#define NV40TCL_COLOR_LOGIC_OP_AND_REVERSE 0x00001502 +#define NV40TCL_COLOR_LOGIC_OP_COPY 0x00001503 +#define NV40TCL_COLOR_LOGIC_OP_AND_INVERTED 0x00001504 +#define NV40TCL_COLOR_LOGIC_OP_NOOP 0x00001505 +#define NV40TCL_COLOR_LOGIC_OP_XOR 0x00001506 +#define NV40TCL_COLOR_LOGIC_OP_OR 0x00001507 +#define NV40TCL_COLOR_LOGIC_OP_NOR 0x00001508 +#define NV40TCL_COLOR_LOGIC_OP_EQUIV 0x00001509 +#define NV40TCL_COLOR_LOGIC_OP_INVERT 0x0000150a +#define NV40TCL_COLOR_LOGIC_OP_OR_REVERSE 0x0000150b +#define NV40TCL_COLOR_LOGIC_OP_COPY_INVERTED 0x0000150c +#define NV40TCL_COLOR_LOGIC_OP_OR_INVERTED 0x0000150d +#define NV40TCL_COLOR_LOGIC_OP_NAND 0x0000150e +#define NV40TCL_COLOR_LOGIC_OP_SET 0x0000150f +#define NV40TCL_DEPTH_RANGE_NEAR 0x00000394 +#define NV40TCL_DEPTH_RANGE_FAR 0x00000398 +#define NV40TCL_LINE_WIDTH 0x000003b8 +#define NV40TCL_LINE_SMOOTH_ENABLE 0x000003bc +#define NV40TCL_UNK03C0(x) (0x000003c0+((x)*4)) +#define NV40TCL_UNK03C0__SIZE 0x00000010 +#define NV40TCL_UNK0400(x) (0x00000400+((x)*4)) +#define NV40TCL_UNK0400__SIZE 0x00000010 +#define NV40TCL_UNK0440(x) (0x00000440+((x)*4)) +#define NV40TCL_UNK0440__SIZE 0x00000020 +#define NV40TCL_SCISSOR_HORIZ 0x000008c0 +#define NV40TCL_SCISSOR_HORIZ_X_SHIFT 0 +#define NV40TCL_SCISSOR_HORIZ_X_MASK 0x0000ffff +#define NV40TCL_SCISSOR_HORIZ_W_SHIFT 16 +#define NV40TCL_SCISSOR_HORIZ_W_MASK 0xffff0000 +#define NV40TCL_SCISSOR_VERT 0x000008c4 +#define NV40TCL_SCISSOR_VERT_Y_SHIFT 0 +#define NV40TCL_SCISSOR_VERT_Y_MASK 0x0000ffff +#define NV40TCL_SCISSOR_VERT_H_SHIFT 16 +#define NV40TCL_SCISSOR_VERT_H_MASK 0xffff0000 +#define NV40TCL_FOG_MODE 0x000008cc +#define NV40TCL_FOG_EQUATION_CONSTANT 0x000008d0 +#define NV40TCL_FOG_EQUATION_LINEAR 0x000008d4 +#define NV40TCL_FOG_EQUATION_QUADRATIC 0x000008d8 +#define NV40TCL_FP_ADDRESS 0x000008e4 +#define NV40TCL_FP_ADDRESS_OFFSET_SHIFT 8 +#define NV40TCL_FP_ADDRESS_OFFSET_MASK 0xffffff00 +#define NV40TCL_FP_ADDRESS_DMA1 (1 << 1) +#define NV40TCL_FP_ADDRESS_DMA0 (1 << 0) +#define NV40TCL_VIEWPORT_HORIZ 0x00000a00 +#define NV40TCL_VIEWPORT_HORIZ_W_SHIFT 16 +#define NV40TCL_VIEWPORT_HORIZ_W_MASK 0xffff0000 +#define NV40TCL_VIEWPORT_HORIZ_X_SHIFT 0 +#define NV40TCL_VIEWPORT_HORIZ_X_MASK 0x0000ffff +#define NV40TCL_VIEWPORT_VERT 0x00000a04 +#define NV40TCL_VIEWPORT_VERT_H_SHIFT 16 +#define NV40TCL_VIEWPORT_VERT_H_MASK 0xffff0000 +#define NV40TCL_VIEWPORT_VERT_Y_SHIFT 0 +#define NV40TCL_VIEWPORT_VERT_Y_MASK 0x0000ffff +#define NV40TCL_VIEWPORT_TRANSLATE_X 0x00000a20 +#define NV40TCL_VIEWPORT_TRANSLATE_Y 0x00000a24 +#define NV40TCL_VIEWPORT_TRANSLATE_Z 0x00000a28 +#define NV40TCL_VIEWPORT_TRANSLATE_W 0x00000a2c +#define NV40TCL_VIEWPORT_SCALE_X 0x00000a30 +#define NV40TCL_VIEWPORT_SCALE_Y 0x00000a34 +#define NV40TCL_VIEWPORT_SCALE_Z 0x00000a38 +#define NV40TCL_VIEWPORT_SCALE_W 0x00000a3c +#define NV40TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000a60 +#define NV40TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000a64 +#define NV40TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000a68 +#define NV40TCL_DEPTH_FUNC 0x00000a6c +#define NV40TCL_DEPTH_FUNC_NEVER 0x00000200 +#define NV40TCL_DEPTH_FUNC_LESS 0x00000201 +#define NV40TCL_DEPTH_FUNC_EQUAL 0x00000202 +#define NV40TCL_DEPTH_FUNC_LEQUAL 0x00000203 +#define NV40TCL_DEPTH_FUNC_GREATER 0x00000204 +#define NV40TCL_DEPTH_FUNC_NOTEQUAL 0x00000205 +#define NV40TCL_DEPTH_FUNC_GEQUAL 0x00000206 +#define NV40TCL_DEPTH_FUNC_ALWAYS 0x00000207 +#define NV40TCL_DEPTH_WRITE_ENABLE 0x00000a70 +#define NV40TCL_DEPTH_TEST_ENABLE 0x00000a74 +#define NV40TCL_POLYGON_OFFSET_FACTOR 0x00000a78 +#define NV40TCL_POLYGON_OFFSET_UNITS 0x00000a7c +#define NV40TCL_VTX_ATTR_3I_XY(x) (0x00000a80+((x)*8)) +#define NV40TCL_VTX_ATTR_3I_XY__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_3I_XY_X_SHIFT 0 +#define NV40TCL_VTX_ATTR_3I_XY_X_MASK 0x0000ffff +#define NV40TCL_VTX_ATTR_3I_XY_Y_SHIFT 16 +#define NV40TCL_VTX_ATTR_3I_XY_Y_MASK 0xffff0000 +#define NV40TCL_VTX_ATTR_3I_Z(x) (0x00000a84+((x)*8)) +#define NV40TCL_VTX_ATTR_3I_Z__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_3I_Z_Z_SHIFT 0 +#define NV40TCL_VTX_ATTR_3I_Z_Z_MASK 0x0000ffff +#define NV40TCL_TEX_FILTER_OPTIMIZATION 0x00000b00 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_SHIFT 0 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_MASK 0x0000001f +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_OFF 0x00000000 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_QUALITY 0x00000004 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_QUALITY 0x00000006 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_PERFORMANCE 0x00000008 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_PERFORMANCE 0x00000018 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_SHIFT 6 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_MASK 0x000001c0 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_OFF 0x00000000 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_HIGH_QUALITY 0x000000c0 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_QUALITY 0x000001c0 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_PERFORMANCE 0x00000140 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_SHIFT 10 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_MASK 0x00007c00 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_OFF 0x00000000 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_PARTIAL 0x00002c00 +#define NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_FULL 0x00007c00 +#define NV40TCL_UNK0B40(x) (0x00000b40+((x)*4)) +#define NV40TCL_UNK0B40__SIZE 0x00000008 +#define NV40TCL_VP_UPLOAD_INST(x) (0x00000b80+((x)*4)) +#define NV40TCL_VP_UPLOAD_INST__SIZE 0x00000004 +#define NV40TCL_VERTEX_TWO_SIDE_ENABLE 0x0000142c +#define NV40TCL_CLIP_PLANE_ENABLE 0x00001478 +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE0 (1 << 1) +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE1 (1 << 5) +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE2 (1 << 9) +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE3 (1 << 13) +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE4 (1 << 17) +#define NV40TCL_CLIP_PLANE_ENABLE_PLANE5 (1 << 21) +#define NV40TCL_POLYGON_STIPPLE_ENABLE 0x0000147c +#define NV40TCL_POLYGON_STIPPLE_PATTERN(x) (0x00001480+((x)*4)) +#define NV40TCL_POLYGON_STIPPLE_PATTERN__SIZE 0x00000020 +#define NV40TCL_VTX_ATTR_3F_X(x) (0x00001500+((x)*16)) +#define NV40TCL_VTX_ATTR_3F_X__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_3F_Y(x) (0x00001504+((x)*16)) +#define NV40TCL_VTX_ATTR_3F_Y__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_3F_Z(x) (0x00001508+((x)*16)) +#define NV40TCL_VTX_ATTR_3F_Z__SIZE 0x00000010 +#define NV40TCL_VTXBUF_ADDRESS(x) (0x00001680+((x)*4)) +#define NV40TCL_VTXBUF_ADDRESS__SIZE 0x00000010 +#define NV40TCL_VTXBUF_ADDRESS_DMA1 (1 << 31) +#define NV40TCL_VTXBUF_ADDRESS_OFFSET_SHIFT 0 +#define NV40TCL_VTXBUF_ADDRESS_OFFSET_MASK 0x0fffffff +#define NV40TCL_VTX_CACHE_INVALIDATE 0x00001714 +#define NV40TCL_VTXFMT(x) (0x00001740+((x)*4)) +#define NV40TCL_VTXFMT__SIZE 0x00000010 +#define NV40TCL_VTXFMT_TYPE_SHIFT 0 +#define NV40TCL_VTXFMT_TYPE_MASK 0x0000000f +#define NV40TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV40TCL_VTXFMT_TYPE_UBYTE 0x00000004 +#define NV40TCL_VTXFMT_TYPE_USHORT 0x00000005 +#define NV40TCL_VTXFMT_SIZE_SHIFT 4 +#define NV40TCL_VTXFMT_SIZE_MASK 0x000000f0 +#define NV40TCL_VTXFMT_STRIDE_SHIFT 8 +#define NV40TCL_VTXFMT_STRIDE_MASK 0x0000ff00 +#define NV40TCL_QUERY_RESET 0x000017c8 +#define NV40TCL_QUERY_UNK17CC 0x000017cc +#define NV40TCL_QUERY_GET 0x00001800 +#define NV40TCL_QUERY_GET_UNK24_SHIFT 24 +#define NV40TCL_QUERY_GET_UNK24_MASK 0xff000000 +#define NV40TCL_QUERY_GET_OFFSET_SHIFT 0 +#define NV40TCL_QUERY_GET_OFFSET_MASK 0x00ffffff +#define NV40TCL_BEGIN_END 0x00001808 +#define NV40TCL_BEGIN_END_STOP 0x00000000 +#define NV40TCL_BEGIN_END_POINTS 0x00000001 +#define NV40TCL_BEGIN_END_LINES 0x00000002 +#define NV40TCL_BEGIN_END_LINE_LOOP 0x00000003 +#define NV40TCL_BEGIN_END_LINE_STRIP 0x00000004 +#define NV40TCL_BEGIN_END_TRIANGLES 0x00000005 +#define NV40TCL_BEGIN_END_TRIANGLE_STRIP 0x00000006 +#define NV40TCL_BEGIN_END_TRIANGLE_FAN 0x00000007 +#define NV40TCL_BEGIN_END_QUADS 0x00000008 +#define NV40TCL_BEGIN_END_QUAD_STRIP 0x00000009 +#define NV40TCL_BEGIN_END_POLYGON 0x0000000a +#define NV40TCL_VB_ELEMENT_U16 0x0000180c +#define NV40TCL_VB_ELEMENT_U16_1_SHIFT 16 +#define NV40TCL_VB_ELEMENT_U16_1_MASK 0xffff0000 +#define NV40TCL_VB_ELEMENT_U16_0_SHIFT 0 +#define NV40TCL_VB_ELEMENT_U16_0_MASK 0x0000ffff +#define NV40TCL_VB_ELEMENT_U32 0x00001810 +#define NV40TCL_VB_VERTEX_BATCH 0x00001814 +#define NV40TCL_VB_VERTEX_BATCH_COUNT_SHIFT 24 +#define NV40TCL_VB_VERTEX_BATCH_COUNT_MASK 0xff000000 +#define NV40TCL_VB_VERTEX_BATCH_START_SHIFT 0 +#define NV40TCL_VB_VERTEX_BATCH_START_MASK 0x00ffffff +#define NV40TCL_VERTEX_DATA 0x00001818 +#define NV40TCL_IDXBUF_ADDRESS 0x0000181c +#define NV40TCL_IDXBUF_FORMAT 0x00001820 +#define NV40TCL_IDXBUF_FORMAT_TYPE_SHIFT 4 +#define NV40TCL_IDXBUF_FORMAT_TYPE_MASK 0x000000f0 +#define NV40TCL_IDXBUF_FORMAT_TYPE_U32 0x00000000 +#define NV40TCL_IDXBUF_FORMAT_TYPE_U16 0x00000010 +#define NV40TCL_IDXBUF_FORMAT_DMA1 (1 << 0) +#define NV40TCL_VB_INDEX_BATCH 0x00001824 +#define NV40TCL_VB_INDEX_BATCH_COUNT_SHIFT 24 +#define NV40TCL_VB_INDEX_BATCH_COUNT_MASK 0xff000000 +#define NV40TCL_VB_INDEX_BATCH_START_SHIFT 0 +#define NV40TCL_VB_INDEX_BATCH_START_MASK 0x00ffffff +#define NV40TCL_POLYGON_MODE_FRONT 0x00001828 +#define NV40TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NV40TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NV40TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NV40TCL_POLYGON_MODE_BACK 0x0000182c +#define NV40TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NV40TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NV40TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NV40TCL_CULL_FACE 0x00001830 +#define NV40TCL_CULL_FACE_FRONT 0x00000404 +#define NV40TCL_CULL_FACE_BACK 0x00000405 +#define NV40TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NV40TCL_FRONT_FACE 0x00001834 +#define NV40TCL_FRONT_FACE_CW 0x00000900 +#define NV40TCL_FRONT_FACE_CCW 0x00000901 +#define NV40TCL_POLYGON_SMOOTH_ENABLE 0x00001838 +#define NV40TCL_CULL_FACE_ENABLE 0x0000183c +#define NV40TCL_TEX_SIZE1(x) (0x00001840+((x)*4)) +#define NV40TCL_TEX_SIZE1__SIZE 0x00000008 +#define NV40TCL_TEX_SIZE1_DEPTH_SHIFT 20 +#define NV40TCL_TEX_SIZE1_DEPTH_MASK 0xfff00000 +#define NV40TCL_TEX_SIZE1_PITCH_SHIFT 0 +#define NV40TCL_TEX_SIZE1_PITCH_MASK 0x0000ffff +#define NV40TCL_VTX_ATTR_2F_X(x) (0x00001880+((x)*8)) +#define NV40TCL_VTX_ATTR_2F_X__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_2F_Y(x) (0x00001884+((x)*8)) +#define NV40TCL_VTX_ATTR_2F_Y__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_2I(x) (0x00001900+((x)*4)) +#define NV40TCL_VTX_ATTR_2I__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_2I_X_SHIFT 0 +#define NV40TCL_VTX_ATTR_2I_X_MASK 0x0000ffff +#define NV40TCL_VTX_ATTR_2I_Y_SHIFT 16 +#define NV40TCL_VTX_ATTR_2I_Y_MASK 0xffff0000 +#define NV40TCL_VTX_ATTR_4UB(x) (0x00001940+((x)*4)) +#define NV40TCL_VTX_ATTR_4UB__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4UB_X_SHIFT 0 +#define NV40TCL_VTX_ATTR_4UB_X_MASK 0x000000ff +#define NV40TCL_VTX_ATTR_4UB_Y_SHIFT 8 +#define NV40TCL_VTX_ATTR_4UB_Y_MASK 0x0000ff00 +#define NV40TCL_VTX_ATTR_4UB_Z_SHIFT 16 +#define NV40TCL_VTX_ATTR_4UB_Z_MASK 0x00ff0000 +#define NV40TCL_VTX_ATTR_4UB_W_SHIFT 24 +#define NV40TCL_VTX_ATTR_4UB_W_MASK 0xff000000 +#define NV40TCL_VTX_ATTR_4I_XY(x) (0x00001980+((x)*8)) +#define NV40TCL_VTX_ATTR_4I_XY__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4I_XY_X_SHIFT 0 +#define NV40TCL_VTX_ATTR_4I_XY_X_MASK 0x0000ffff +#define NV40TCL_VTX_ATTR_4I_XY_Y_SHIFT 16 +#define NV40TCL_VTX_ATTR_4I_XY_Y_MASK 0xffff0000 +#define NV40TCL_VTX_ATTR_4I_ZW(x) (0x00001984+((x)*8)) +#define NV40TCL_VTX_ATTR_4I_ZW__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4I_ZW_Z_SHIFT 0 +#define NV40TCL_VTX_ATTR_4I_ZW_Z_MASK 0x0000ffff +#define NV40TCL_VTX_ATTR_4I_ZW_W_SHIFT 16 +#define NV40TCL_VTX_ATTR_4I_ZW_W_MASK 0xffff0000 +#define NV40TCL_TEX_OFFSET(x) (0x00001a00+((x)*32)) +#define NV40TCL_TEX_OFFSET__SIZE 0x00000010 +#define NV40TCL_TEX_FORMAT(x) (0x00001a04+((x)*32)) +#define NV40TCL_TEX_FORMAT__SIZE 0x00000010 +#define NV40TCL_TEX_FORMAT_MIPMAP_COUNT_SHIFT 16 +#define NV40TCL_TEX_FORMAT_MIPMAP_COUNT_MASK 0x000f0000 +#define NV40TCL_TEX_FORMAT_RECT (1 << 14) +#define NV40TCL_TEX_FORMAT_LINEAR (1 << 13) +#define NV40TCL_TEX_FORMAT_FORMAT_SHIFT 8 +#define NV40TCL_TEX_FORMAT_FORMAT_MASK 0x00001f00 +#define NV40TCL_TEX_FORMAT_FORMAT_L8 0x00000100 +#define NV40TCL_TEX_FORMAT_FORMAT_A1R5G5B5 0x00000200 +#define NV40TCL_TEX_FORMAT_FORMAT_A4R4G4B4 0x00000300 +#define NV40TCL_TEX_FORMAT_FORMAT_R5G6B5 0x00000400 +#define NV40TCL_TEX_FORMAT_FORMAT_A8R8G8B8 0x00000500 +#define NV40TCL_TEX_FORMAT_FORMAT_DXT1 0x00000600 +#define NV40TCL_TEX_FORMAT_FORMAT_DXT3 0x00000700 +#define NV40TCL_TEX_FORMAT_FORMAT_DXT5 0x00000800 +#define NV40TCL_TEX_FORMAT_FORMAT_A8L8 0x00000b00 +#define NV40TCL_TEX_FORMAT_FORMAT_Z24 0x00001000 +#define NV40TCL_TEX_FORMAT_FORMAT_Z16 0x00001200 +#define NV40TCL_TEX_FORMAT_FORMAT_A16 0x00001400 +#define NV40TCL_TEX_FORMAT_FORMAT_A16L16 0x00001500 +#define NV40TCL_TEX_FORMAT_FORMAT_HILO8 0x00001800 +#define NV40TCL_TEX_FORMAT_FORMAT_RGBA16F 0x00001a00 +#define NV40TCL_TEX_FORMAT_FORMAT_RGBA32F 0x00001b00 +#define NV40TCL_TEX_FORMAT_DIMS_SHIFT 4 +#define NV40TCL_TEX_FORMAT_DIMS_MASK 0x000000f0 +#define NV40TCL_TEX_FORMAT_DIMS_1D 0x00000010 +#define NV40TCL_TEX_FORMAT_DIMS_2D 0x00000020 +#define NV40TCL_TEX_FORMAT_DIMS_3D 0x00000030 +#define NV40TCL_TEX_FORMAT_NO_BORDER (1 << 3) +#define NV40TCL_TEX_FORMAT_CUBIC (1 << 2) +#define NV40TCL_TEX_FORMAT_DMA1 (1 << 1) +#define NV40TCL_TEX_FORMAT_DMA0 (1 << 0) +#define NV40TCL_TEX_WRAP(x) (0x00001a08+((x)*32)) +#define NV40TCL_TEX_WRAP__SIZE 0x00000010 +#define NV40TCL_TEX_WRAP_S_SHIFT 0 +#define NV40TCL_TEX_WRAP_S_MASK 0x0000000f +#define NV40TCL_TEX_WRAP_S_REPEAT 0x00000001 +#define NV40TCL_TEX_WRAP_S_MIRRORED_REPEAT 0x00000002 +#define NV40TCL_TEX_WRAP_S_CLAMP_TO_EDGE 0x00000003 +#define NV40TCL_TEX_WRAP_S_CLAMP_TO_BORDER 0x00000004 +#define NV40TCL_TEX_WRAP_S_CLAMP 0x00000005 +#define NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_EDGE 0x00000006 +#define NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_BORDER 0x00000007 +#define NV40TCL_TEX_WRAP_S_MIRROR_CLAMP 0x00000008 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_SHIFT 4 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_MASK 0x00000070 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_OFF 0x00000000 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_QUALITY 0x00000020 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_PERFORMANCE 0x00000030 +#define NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_HIGH_PERFORMANCE 0x00000070 +#define NV40TCL_TEX_WRAP_T_SHIFT 8 +#define NV40TCL_TEX_WRAP_T_MASK 0x00000f00 +#define NV40TCL_TEX_WRAP_T_REPEAT 0x00000100 +#define NV40TCL_TEX_WRAP_T_MIRRORED_REPEAT 0x00000200 +#define NV40TCL_TEX_WRAP_T_CLAMP_TO_EDGE 0x00000300 +#define NV40TCL_TEX_WRAP_T_CLAMP_TO_BORDER 0x00000400 +#define NV40TCL_TEX_WRAP_T_CLAMP 0x00000500 +#define NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_EDGE 0x00000600 +#define NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_BORDER 0x00000700 +#define NV40TCL_TEX_WRAP_T_MIRROR_CLAMP 0x00000800 +#define NV40TCL_TEX_WRAP_EXPAND_NORMAL_SHIFT 12 +#define NV40TCL_TEX_WRAP_EXPAND_NORMAL_MASK 0x0000f000 +#define NV40TCL_TEX_WRAP_R_SHIFT 16 +#define NV40TCL_TEX_WRAP_R_MASK 0x000f0000 +#define NV40TCL_TEX_WRAP_R_REPEAT 0x00010000 +#define NV40TCL_TEX_WRAP_R_MIRRORED_REPEAT 0x00020000 +#define NV40TCL_TEX_WRAP_R_CLAMP_TO_EDGE 0x00030000 +#define NV40TCL_TEX_WRAP_R_CLAMP_TO_BORDER 0x00040000 +#define NV40TCL_TEX_WRAP_R_CLAMP 0x00050000 +#define NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_EDGE 0x00060000 +#define NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_BORDER 0x00070000 +#define NV40TCL_TEX_WRAP_R_MIRROR_CLAMP 0x00080000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_SHIFT 20 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_MASK 0x00f00000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_NONE 0x00000000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_RED 0x00100000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_GREEN 0x00200000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_BLUE 0x00400000 +#define NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_ALL 0x00f00000 +#define NV40TCL_TEX_WRAP_RCOMP_SHIFT 28 +#define NV40TCL_TEX_WRAP_RCOMP_MASK 0xf0000000 +#define NV40TCL_TEX_WRAP_RCOMP_NEVER 0x00000000 +#define NV40TCL_TEX_WRAP_RCOMP_GREATER 0x10000000 +#define NV40TCL_TEX_WRAP_RCOMP_EQUAL 0x20000000 +#define NV40TCL_TEX_WRAP_RCOMP_GEQUAL 0x30000000 +#define NV40TCL_TEX_WRAP_RCOMP_LESS 0x40000000 +#define NV40TCL_TEX_WRAP_RCOMP_NOTEQUAL 0x50000000 +#define NV40TCL_TEX_WRAP_RCOMP_LEQUAL 0x60000000 +#define NV40TCL_TEX_WRAP_RCOMP_ALWAYS 0x70000000 +#define NV40TCL_TEX_ENABLE(x) (0x00001a0c+((x)*32)) +#define NV40TCL_TEX_ENABLE__SIZE 0x00000010 +#define NV40TCL_TEX_ENABLE_ENABLE (1 << 31) +#define NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_SHIFT 27 +#define NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_MASK 0x38000000 +#define NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_SHIFT 15 +#define NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_MASK 0x00038000 +#define NV40TCL_TEX_ENABLE_ANISO_SHIFT 4 +#define NV40TCL_TEX_ENABLE_ANISO_MASK 0x000000f0 +#define NV40TCL_TEX_ENABLE_ANISO_NONE 0x00000000 +#define NV40TCL_TEX_ENABLE_ANISO_2X 0x00000010 +#define NV40TCL_TEX_ENABLE_ANISO_4X 0x00000020 +#define NV40TCL_TEX_ENABLE_ANISO_6X 0x00000030 +#define NV40TCL_TEX_ENABLE_ANISO_8X 0x00000040 +#define NV40TCL_TEX_ENABLE_ANISO_10X 0x00000050 +#define NV40TCL_TEX_ENABLE_ANISO_12X 0x00000060 +#define NV40TCL_TEX_ENABLE_ANISO_16X 0x00000070 +#define NV40TCL_TEX_SWIZZLE(x) (0x00001a10+((x)*32)) +#define NV40TCL_TEX_SWIZZLE__SIZE 0x00000010 +#define NV40TCL_TEX_SWIZZLE_S0_X_SHIFT 14 +#define NV40TCL_TEX_SWIZZLE_S0_X_MASK 0x0000c000 +#define NV40TCL_TEX_SWIZZLE_S0_X_ZERO 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S0_X_ONE 0x00004000 +#define NV40TCL_TEX_SWIZZLE_S0_X_S1 0x00008000 +#define NV40TCL_TEX_SWIZZLE_S0_Y_SHIFT 12 +#define NV40TCL_TEX_SWIZZLE_S0_Y_MASK 0x00003000 +#define NV40TCL_TEX_SWIZZLE_S0_Y_ZERO 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S0_Y_ONE 0x00001000 +#define NV40TCL_TEX_SWIZZLE_S0_Y_S1 0x00002000 +#define NV40TCL_TEX_SWIZZLE_S0_Z_SHIFT 10 +#define NV40TCL_TEX_SWIZZLE_S0_Z_MASK 0x00000c00 +#define NV40TCL_TEX_SWIZZLE_S0_Z_ZERO 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S0_Z_ONE 0x00000400 +#define NV40TCL_TEX_SWIZZLE_S0_Z_S1 0x00000800 +#define NV40TCL_TEX_SWIZZLE_S0_W_SHIFT 8 +#define NV40TCL_TEX_SWIZZLE_S0_W_MASK 0x00000300 +#define NV40TCL_TEX_SWIZZLE_S0_W_ZERO 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S0_W_ONE 0x00000100 +#define NV40TCL_TEX_SWIZZLE_S0_W_S1 0x00000200 +#define NV40TCL_TEX_SWIZZLE_S1_X_SHIFT 6 +#define NV40TCL_TEX_SWIZZLE_S1_X_MASK 0x000000c0 +#define NV40TCL_TEX_SWIZZLE_S1_X_W 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S1_X_Z 0x00000040 +#define NV40TCL_TEX_SWIZZLE_S1_X_Y 0x00000080 +#define NV40TCL_TEX_SWIZZLE_S1_X_X 0x000000c0 +#define NV40TCL_TEX_SWIZZLE_S1_Y_SHIFT 4 +#define NV40TCL_TEX_SWIZZLE_S1_Y_MASK 0x00000030 +#define NV40TCL_TEX_SWIZZLE_S1_Y_W 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S1_Y_Z 0x00000010 +#define NV40TCL_TEX_SWIZZLE_S1_Y_Y 0x00000020 +#define NV40TCL_TEX_SWIZZLE_S1_Y_X 0x00000030 +#define NV40TCL_TEX_SWIZZLE_S1_Z_SHIFT 2 +#define NV40TCL_TEX_SWIZZLE_S1_Z_MASK 0x0000000c +#define NV40TCL_TEX_SWIZZLE_S1_Z_W 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S1_Z_Z 0x00000004 +#define NV40TCL_TEX_SWIZZLE_S1_Z_Y 0x00000008 +#define NV40TCL_TEX_SWIZZLE_S1_Z_X 0x0000000c +#define NV40TCL_TEX_SWIZZLE_S1_W_SHIFT 0 +#define NV40TCL_TEX_SWIZZLE_S1_W_MASK 0x00000003 +#define NV40TCL_TEX_SWIZZLE_S1_W_W 0x00000000 +#define NV40TCL_TEX_SWIZZLE_S1_W_Z 0x00000001 +#define NV40TCL_TEX_SWIZZLE_S1_W_Y 0x00000002 +#define NV40TCL_TEX_SWIZZLE_S1_W_X 0x00000003 +#define NV40TCL_TEX_FILTER(x) (0x00001a14+((x)*32)) +#define NV40TCL_TEX_FILTER__SIZE 0x00000010 +#define NV40TCL_TEX_FILTER_SIGNED_ALPHA (1 << 31) +#define NV40TCL_TEX_FILTER_SIGNED_RED (1 << 30) +#define NV40TCL_TEX_FILTER_SIGNED_GREEN (1 << 29) +#define NV40TCL_TEX_FILTER_SIGNED_BLUE (1 << 28) +#define NV40TCL_TEX_FILTER_MIN_SHIFT 16 +#define NV40TCL_TEX_FILTER_MIN_MASK 0x000f0000 +#define NV40TCL_TEX_FILTER_MIN_NEAREST 0x00010000 +#define NV40TCL_TEX_FILTER_MIN_LINEAR 0x00020000 +#define NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_NEAREST 0x00030000 +#define NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_NEAREST 0x00040000 +#define NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_LINEAR 0x00050000 +#define NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_LINEAR 0x00060000 +#define NV40TCL_TEX_FILTER_MAG_SHIFT 24 +#define NV40TCL_TEX_FILTER_MAG_MASK 0x0f000000 +#define NV40TCL_TEX_FILTER_MAG_NEAREST 0x01000000 +#define NV40TCL_TEX_FILTER_MAG_LINEAR 0x02000000 +#define NV40TCL_TEX_SIZE0(x) (0x00001a18+((x)*32)) +#define NV40TCL_TEX_SIZE0__SIZE 0x00000010 +#define NV40TCL_TEX_SIZE0_H_SHIFT 0 +#define NV40TCL_TEX_SIZE0_H_MASK 0x0000ffff +#define NV40TCL_TEX_SIZE0_W_SHIFT 16 +#define NV40TCL_TEX_SIZE0_W_MASK 0xffff0000 +#define NV40TCL_TEX_BORDER_COLOR(x) (0x00001a1c+((x)*32)) +#define NV40TCL_TEX_BORDER_COLOR__SIZE 0x00000010 +#define NV40TCL_TEX_BORDER_COLOR_B_SHIFT 0 +#define NV40TCL_TEX_BORDER_COLOR_B_MASK 0x000000ff +#define NV40TCL_TEX_BORDER_COLOR_G_SHIFT 8 +#define NV40TCL_TEX_BORDER_COLOR_G_MASK 0x0000ff00 +#define NV40TCL_TEX_BORDER_COLOR_R_SHIFT 16 +#define NV40TCL_TEX_BORDER_COLOR_R_MASK 0x00ff0000 +#define NV40TCL_TEX_BORDER_COLOR_A_SHIFT 24 +#define NV40TCL_TEX_BORDER_COLOR_A_MASK 0xff000000 +#define NV40TCL_VTX_ATTR_4F_X(x) (0x00001c00+((x)*16)) +#define NV40TCL_VTX_ATTR_4F_X__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4F_Y(x) (0x00001c04+((x)*16)) +#define NV40TCL_VTX_ATTR_4F_Y__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4F_Z(x) (0x00001c08+((x)*16)) +#define NV40TCL_VTX_ATTR_4F_Z__SIZE 0x00000010 +#define NV40TCL_VTX_ATTR_4F_W(x) (0x00001c0c+((x)*16)) +#define NV40TCL_VTX_ATTR_4F_W__SIZE 0x00000010 +#define NV40TCL_FP_CONTROL 0x00001d60 +#define NV40TCL_FP_CONTROL_TEMP_COUNT_SHIFT 24 +#define NV40TCL_FP_CONTROL_TEMP_COUNT_MASK 0xff000000 +#define NV40TCL_FP_CONTROL_KIL (1 << 7) +#define NV40TCL_MULTISAMPLE_CONTROL 0x00001d7c +#define NV40TCL_CLEAR_VALUE_DEPTH 0x00001d8c +#define NV40TCL_CLEAR_VALUE_COLOR 0x00001d90 +#define NV40TCL_CLEAR_VALUE_COLOR_B_SHIFT 0 +#define NV40TCL_CLEAR_VALUE_COLOR_B_MASK 0x000000ff +#define NV40TCL_CLEAR_VALUE_COLOR_G_SHIFT 8 +#define NV40TCL_CLEAR_VALUE_COLOR_G_MASK 0x0000ff00 +#define NV40TCL_CLEAR_VALUE_COLOR_R_SHIFT 16 +#define NV40TCL_CLEAR_VALUE_COLOR_R_MASK 0x00ff0000 +#define NV40TCL_CLEAR_VALUE_COLOR_A_SHIFT 24 +#define NV40TCL_CLEAR_VALUE_COLOR_A_MASK 0xff000000 +#define NV40TCL_CLEAR_BUFFERS 0x00001d94 +#define NV40TCL_CLEAR_BUFFERS_COLOR_A (1 << 7) +#define NV40TCL_CLEAR_BUFFERS_COLOR_B (1 << 6) +#define NV40TCL_CLEAR_BUFFERS_COLOR_G (1 << 5) +#define NV40TCL_CLEAR_BUFFERS_COLOR_R (1 << 4) +#define NV40TCL_CLEAR_BUFFERS_STENCIL (1 << 1) +#define NV40TCL_CLEAR_BUFFERS_DEPTH (1 << 0) +#define NV40TCL_LINE_STIPPLE_ENABLE 0x00001db4 +#define NV40TCL_LINE_STIPPLE_PATTERN 0x00001db8 +#define NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT 0 +#define NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK 0x0000ffff +#define NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT 16 +#define NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK 0xffff0000 +#define NV40TCL_VTX_ATTR_1F(x) (0x00001e40+((x)*4)) +#define NV40TCL_VTX_ATTR_1F__SIZE 0x00000010 +#define NV40TCL_VP_UPLOAD_FROM_ID 0x00001e9c +#define NV40TCL_VP_START_FROM_ID 0x00001ea0 +#define NV40TCL_POINT_SIZE 0x00001ee0 +#define NV40TCL_POINT_SPRITE 0x00001ee8 +#define NV40TCL_POINT_SPRITE_ENABLE (1 << 0) +#define NV40TCL_POINT_SPRITE_R_MODE_SHIFT 1 +#define NV40TCL_POINT_SPRITE_R_MODE_MASK 0x00000006 +#define NV40TCL_POINT_SPRITE_R_MODE_ZERO 0x00000000 +#define NV40TCL_POINT_SPRITE_R_MODE_R 0x00000002 +#define NV40TCL_POINT_SPRITE_R_MODE_S 0x00000004 +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_0 (1 << 8) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_1 (1 << 9) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_2 (1 << 10) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_3 (1 << 11) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_4 (1 << 12) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_5 (1 << 13) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_6 (1 << 14) +#define NV40TCL_POINT_SPRITE_COORD_REPLACE_7 (1 << 15) +#define NV40TCL_VP_UPLOAD_CONST_ID 0x00001efc +#define NV40TCL_VP_UPLOAD_CONST_X(x) (0x00001f00+((x)*16)) +#define NV40TCL_VP_UPLOAD_CONST_X__SIZE 0x00000004 +#define NV40TCL_VP_UPLOAD_CONST_Y(x) (0x00001f04+((x)*16)) +#define NV40TCL_VP_UPLOAD_CONST_Y__SIZE 0x00000004 +#define NV40TCL_VP_UPLOAD_CONST_Z(x) (0x00001f08+((x)*16)) +#define NV40TCL_VP_UPLOAD_CONST_Z__SIZE 0x00000004 +#define NV40TCL_VP_UPLOAD_CONST_W(x) (0x00001f0c+((x)*16)) +#define NV40TCL_VP_UPLOAD_CONST_W__SIZE 0x00000004 +#define NV40TCL_TEX_CACHE_CTL 0x00001fd8 +#define NV40TCL_VP_ATTRIB_EN 0x00001ff0 +#define NV40TCL_VP_RESULT_EN 0x00001ff4 + + +#define NV44TCL 0x00004497 + + + +#define NV50_2D 0x0000502d + +#define NV50_2D_NOP 0x00000100 +#define NV50_2D_NOTIFY 0x00000104 +#define NV50_2D_SERIALIZE 0x00000110 +#define NV50_2D_DMA_NOTIFY 0x00000180 +#define NV50_2D_DMA_DST 0x00000184 +#define NV50_2D_DMA_SRC 0x00000188 +#define NV50_2D_DMA_COND 0x0000018c +#define NV50_2D_DST_FORMAT 0x00000200 +#define NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NV50_2D_DST_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NV50_2D_DST_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NV50_2D_DST_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NV50_2D_DST_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NV50_2D_DST_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NV50_2D_DST_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NV50_2D_DST_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NV50_2D_DST_FORMAT_R32G32_FLOAT 0x000000cb +#define NV50_2D_DST_FORMAT_R32G32_SINT 0x000000cc +#define NV50_2D_DST_FORMAT_R32G32_UINT 0x000000cd +#define NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NV50_2D_DST_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NV50_2D_DST_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NV50_2D_DST_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NV50_2D_DST_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NV50_2D_DST_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NV50_2D_DST_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NV50_2D_DST_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NV50_2D_DST_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NV50_2D_DST_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NV50_2D_DST_FORMAT_R16G16_UNORM 0x000000da +#define NV50_2D_DST_FORMAT_R16G16_SNORM 0x000000db +#define NV50_2D_DST_FORMAT_R16G16_SINT 0x000000dc +#define NV50_2D_DST_FORMAT_R16G16_UINT 0x000000dd +#define NV50_2D_DST_FORMAT_R16G16_FLOAT 0x000000de +#define NV50_2D_DST_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NV50_2D_DST_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NV50_2D_DST_FORMAT_R32_FLOAT 0x000000e5 +#define NV50_2D_DST_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NV50_2D_DST_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NV50_2D_DST_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NV50_2D_DST_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NV50_2D_DST_FORMAT_R8G8_UNORM 0x000000ea +#define NV50_2D_DST_FORMAT_R8G8_SNORM 0x000000eb +#define NV50_2D_DST_FORMAT_R8G8_SINT 0x000000ec +#define NV50_2D_DST_FORMAT_R8G8_UINT 0x000000ed +#define NV50_2D_DST_FORMAT_R16_UNORM 0x000000ee +#define NV50_2D_DST_FORMAT_R16_SNORM 0x000000ef +#define NV50_2D_DST_FORMAT_R16_SINT 0x000000f0 +#define NV50_2D_DST_FORMAT_R16_UINT 0x000000f1 +#define NV50_2D_DST_FORMAT_R16_FLOAT 0x000000f2 +#define NV50_2D_DST_FORMAT_R8_UNORM 0x000000f3 +#define NV50_2D_DST_FORMAT_R8_SNORM 0x000000f4 +#define NV50_2D_DST_FORMAT_R8_SINT 0x000000f5 +#define NV50_2D_DST_FORMAT_R8_UINT 0x000000f6 +#define NV50_2D_DST_FORMAT_A8_UNORM 0x000000f7 +#define NV50_2D_DST_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NV50_2D_DST_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NV50_2D_DST_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NV50_2D_DST_LINEAR 0x00000204 +#define NV50_2D_DST_TILE_MODE 0x00000208 +#define NV50_2D_DST_DEPTH 0x0000020c +#define NV50_2D_DST_LAYER 0x00000210 +#define NV50_2D_DST_PITCH 0x00000214 +#define NV50_2D_DST_WIDTH 0x00000218 +#define NV50_2D_DST_HEIGHT 0x0000021c +#define NV50_2D_DST_ADDRESS_HIGH 0x00000220 +#define NV50_2D_DST_ADDRESS_LOW 0x00000224 +#define NV50_2D_SRC_FORMAT 0x00000230 +#define NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NV50_2D_SRC_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NV50_2D_SRC_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NV50_2D_SRC_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NV50_2D_SRC_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NV50_2D_SRC_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NV50_2D_SRC_FORMAT_R32G32_FLOAT 0x000000cb +#define NV50_2D_SRC_FORMAT_R32G32_SINT 0x000000cc +#define NV50_2D_SRC_FORMAT_R32G32_UINT 0x000000cd +#define NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NV50_2D_SRC_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NV50_2D_SRC_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NV50_2D_SRC_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NV50_2D_SRC_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NV50_2D_SRC_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NV50_2D_SRC_FORMAT_R16G16_UNORM 0x000000da +#define NV50_2D_SRC_FORMAT_R16G16_SNORM 0x000000db +#define NV50_2D_SRC_FORMAT_R16G16_SINT 0x000000dc +#define NV50_2D_SRC_FORMAT_R16G16_UINT 0x000000dd +#define NV50_2D_SRC_FORMAT_R16G16_FLOAT 0x000000de +#define NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NV50_2D_SRC_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NV50_2D_SRC_FORMAT_R32_FLOAT 0x000000e5 +#define NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NV50_2D_SRC_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NV50_2D_SRC_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NV50_2D_SRC_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NV50_2D_SRC_FORMAT_R8G8_UNORM 0x000000ea +#define NV50_2D_SRC_FORMAT_R8G8_SNORM 0x000000eb +#define NV50_2D_SRC_FORMAT_R8G8_SINT 0x000000ec +#define NV50_2D_SRC_FORMAT_R8G8_UINT 0x000000ed +#define NV50_2D_SRC_FORMAT_R16_UNORM 0x000000ee +#define NV50_2D_SRC_FORMAT_R16_SNORM 0x000000ef +#define NV50_2D_SRC_FORMAT_R16_SINT 0x000000f0 +#define NV50_2D_SRC_FORMAT_R16_UINT 0x000000f1 +#define NV50_2D_SRC_FORMAT_R16_FLOAT 0x000000f2 +#define NV50_2D_SRC_FORMAT_R8_UNORM 0x000000f3 +#define NV50_2D_SRC_FORMAT_R8_SNORM 0x000000f4 +#define NV50_2D_SRC_FORMAT_R8_SINT 0x000000f5 +#define NV50_2D_SRC_FORMAT_R8_UINT 0x000000f6 +#define NV50_2D_SRC_FORMAT_A8_UNORM 0x000000f7 +#define NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NV50_2D_SRC_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NV50_2D_SRC_LINEAR 0x00000234 +#define NV50_2D_SRC_TILE_MODE 0x00000238 +#define NV50_2D_SRC_DEPTH 0x0000023c +#define NV50_2D_SRC_LAYER 0x00000240 +#define NV50_2D_SRC_PITCH 0x00000244 +#define NV50_2D_SRC_WIDTH 0x00000248 +#define NV50_2D_SRC_HEIGHT 0x0000024c +#define NV50_2D_SRC_ADDRESS_HIGH 0x00000250 +#define NV50_2D_SRC_ADDRESS_LOW 0x00000254 +#define NV50_2D_COND_ADDRESS_HIGH 0x00000264 +#define NV50_2D_COND_ADDRESS_LOW 0x00000268 +#define NV50_2D_COND_MODE 0x0000026c +#define NV50_2D_COND_MODE_NEVER 0x00000000 +#define NV50_2D_COND_MODE_ALWAYS 0x00000001 +#define NV50_2D_COND_MODE_RES 0x00000002 +#define NV50_2D_COND_MODE_NOT_RES_AND_NOT_ID 0x00000003 +#define NV50_2D_COND_MODE_RES_OR_ID 0x00000004 +#define NV50_2D_CLIP_X 0x00000280 +#define NV50_2D_CLIP_Y 0x00000284 +#define NV50_2D_CLIP_W 0x00000288 +#define NV50_2D_CLIP_H 0x0000028c +#define NV50_2D_CLIP_ENABLE 0x00000290 +#define NV50_2D_COLOR_KEY_FORMAT 0x00000294 +#define NV50_2D_COLOR_KEY_FORMAT_16BPP 0x00000000 +#define NV50_2D_COLOR_KEY_FORMAT_15BPP 0x00000001 +#define NV50_2D_COLOR_KEY_FORMAT_24BPP 0x00000002 +#define NV50_2D_COLOR_KEY_FORMAT_30BPP 0x00000003 +#define NV50_2D_COLOR_KEY_FORMAT_8BPP 0x00000004 +#define NV50_2D_COLOR_KEY_FORMAT_16BPP2 0x00000005 +#define NV50_2D_COLOR_KEY_FORMAT_32BPP 0x00000006 +#define NV50_2D_COLOR_KEY 0x00000298 +#define NV50_2D_COLOR_KEY_ENABLE 0x0000029c +#define NV50_2D_ROP 0x000002a0 +#define NV50_2D_OPERATION 0x000002ac +#define NV50_2D_OPERATION_SRCCOPY_AND 0x00000000 +#define NV50_2D_OPERATION_ROP_AND 0x00000001 +#define NV50_2D_OPERATION_BLEND_AND 0x00000002 +#define NV50_2D_OPERATION_SRCCOPY 0x00000003 +#define NV50_2D_OPERATION_SRCCOPY_PREMULT 0x00000004 +#define NV50_2D_OPERATION_BLEND_PREMULT 0x00000005 +#define NV50_2D_PATTERN_FORMAT 0x000002e8 +#define NV50_2D_PATTERN_FORMAT_16BPP 0x00000000 +#define NV50_2D_PATTERN_FORMAT_15BPP 0x00000001 +#define NV50_2D_PATTERN_FORMAT_32BPP 0x00000002 +#define NV50_2D_PATTERN_FORMAT_8BPP 0x00000003 +#define NV50_2D_PATTERN_COLOR(x) (0x000002f0+((x)*4)) +#define NV50_2D_PATTERN_COLOR__SIZE 0x00000002 +#define NV50_2D_PATTERN_BITMAP(x) (0x000002f8+((x)*4)) +#define NV50_2D_PATTERN_BITMAP__SIZE 0x00000002 +#define NV50_2D_DRAW_SHAPE 0x00000580 +#define NV50_2D_DRAW_SHAPE_POINTS 0x00000000 +#define NV50_2D_DRAW_SHAPE_LINES 0x00000001 +#define NV50_2D_DRAW_SHAPE_LINE_STRIP 0x00000002 +#define NV50_2D_DRAW_SHAPE_TRIANGLES 0x00000003 +#define NV50_2D_DRAW_SHAPE_RECTANGLES 0x00000004 +#define NV50_2D_DRAW_COLOR_FORMAT 0x00000584 +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32_FLOAT 0x000000cb +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32_SINT 0x000000cc +#define NV50_2D_DRAW_COLOR_FORMAT_R32G32_UINT 0x000000cd +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16_UNORM 0x000000da +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16_SNORM 0x000000db +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16_SINT 0x000000dc +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16_UINT 0x000000dd +#define NV50_2D_DRAW_COLOR_FORMAT_R16G16_FLOAT 0x000000de +#define NV50_2D_DRAW_COLOR_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NV50_2D_DRAW_COLOR_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NV50_2D_DRAW_COLOR_FORMAT_R32_FLOAT 0x000000e5 +#define NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NV50_2D_DRAW_COLOR_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NV50_2D_DRAW_COLOR_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NV50_2D_DRAW_COLOR_FORMAT_R8G8_UNORM 0x000000ea +#define NV50_2D_DRAW_COLOR_FORMAT_R8G8_SNORM 0x000000eb +#define NV50_2D_DRAW_COLOR_FORMAT_R8G8_SINT 0x000000ec +#define NV50_2D_DRAW_COLOR_FORMAT_R8G8_UINT 0x000000ed +#define NV50_2D_DRAW_COLOR_FORMAT_R16_UNORM 0x000000ee +#define NV50_2D_DRAW_COLOR_FORMAT_R16_SNORM 0x000000ef +#define NV50_2D_DRAW_COLOR_FORMAT_R16_SINT 0x000000f0 +#define NV50_2D_DRAW_COLOR_FORMAT_R16_UINT 0x000000f1 +#define NV50_2D_DRAW_COLOR_FORMAT_R16_FLOAT 0x000000f2 +#define NV50_2D_DRAW_COLOR_FORMAT_R8_UNORM 0x000000f3 +#define NV50_2D_DRAW_COLOR_FORMAT_R8_SNORM 0x000000f4 +#define NV50_2D_DRAW_COLOR_FORMAT_R8_SINT 0x000000f5 +#define NV50_2D_DRAW_COLOR_FORMAT_R8_UINT 0x000000f6 +#define NV50_2D_DRAW_COLOR_FORMAT_A8_UNORM 0x000000f7 +#define NV50_2D_DRAW_COLOR_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NV50_2D_DRAW_COLOR 0x00000588 +#define NV50_2D_DRAW_POINT16 0x000005e0 +#define NV50_2D_DRAW_POINT16_X_SHIFT 0 +#define NV50_2D_DRAW_POINT16_X_MASK 0x0000ffff +#define NV50_2D_DRAW_POINT16_Y_SHIFT 16 +#define NV50_2D_DRAW_POINT16_Y_MASK 0xffff0000 +#define NV50_2D_DRAW_POINT32_X(x) (0x00000600+((x)*8)) +#define NV50_2D_DRAW_POINT32_X__SIZE 0x00000040 +#define NV50_2D_DRAW_POINT32_Y(x) (0x00000604+((x)*8)) +#define NV50_2D_DRAW_POINT32_Y__SIZE 0x00000040 +#define NV50_2D_SIFC_BITMAP_ENABLE 0x00000800 +#define NV50_2D_SIFC_FORMAT 0x00000804 +#define NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NV50_2D_SIFC_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NV50_2D_SIFC_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NV50_2D_SIFC_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NV50_2D_SIFC_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NV50_2D_SIFC_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NV50_2D_SIFC_FORMAT_R32G32_FLOAT 0x000000cb +#define NV50_2D_SIFC_FORMAT_R32G32_SINT 0x000000cc +#define NV50_2D_SIFC_FORMAT_R32G32_UINT 0x000000cd +#define NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NV50_2D_SIFC_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NV50_2D_SIFC_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NV50_2D_SIFC_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NV50_2D_SIFC_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NV50_2D_SIFC_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NV50_2D_SIFC_FORMAT_R16G16_UNORM 0x000000da +#define NV50_2D_SIFC_FORMAT_R16G16_SNORM 0x000000db +#define NV50_2D_SIFC_FORMAT_R16G16_SINT 0x000000dc +#define NV50_2D_SIFC_FORMAT_R16G16_UINT 0x000000dd +#define NV50_2D_SIFC_FORMAT_R16G16_FLOAT 0x000000de +#define NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NV50_2D_SIFC_FORMAT_R32_FLOAT 0x000000e5 +#define NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NV50_2D_SIFC_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NV50_2D_SIFC_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NV50_2D_SIFC_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NV50_2D_SIFC_FORMAT_R8G8_UNORM 0x000000ea +#define NV50_2D_SIFC_FORMAT_R8G8_SNORM 0x000000eb +#define NV50_2D_SIFC_FORMAT_R8G8_SINT 0x000000ec +#define NV50_2D_SIFC_FORMAT_R8G8_UINT 0x000000ed +#define NV50_2D_SIFC_FORMAT_R16_UNORM 0x000000ee +#define NV50_2D_SIFC_FORMAT_R16_SNORM 0x000000ef +#define NV50_2D_SIFC_FORMAT_R16_SINT 0x000000f0 +#define NV50_2D_SIFC_FORMAT_R16_UINT 0x000000f1 +#define NV50_2D_SIFC_FORMAT_R16_FLOAT 0x000000f2 +#define NV50_2D_SIFC_FORMAT_R8_UNORM 0x000000f3 +#define NV50_2D_SIFC_FORMAT_R8_SNORM 0x000000f4 +#define NV50_2D_SIFC_FORMAT_R8_SINT 0x000000f5 +#define NV50_2D_SIFC_FORMAT_R8_UINT 0x000000f6 +#define NV50_2D_SIFC_FORMAT_A8_UNORM 0x000000f7 +#define NV50_2D_SIFC_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NV50_2D_SIFC_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NV50_2D_SIFC_BITMAP_UNK808 0x00000808 +#define NV50_2D_SIFC_BITMAP_LSB_FIRST 0x0000080c +#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE 0x00000810 +#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED 0x00000000 +#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE 0x00000001 +#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD 0x00000002 +#define NV50_2D_SIFC_BITMAP_COLOR_BIT0 0x00000814 +#define NV50_2D_SIFC_BITMAP_COLOR_BIT1 0x00000818 +#define NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE 0x0000081c +#define NV50_2D_SIFC_WIDTH 0x00000838 +#define NV50_2D_SIFC_HEIGHT 0x0000083c +#define NV50_2D_SIFC_DX_DU_FRACT 0x00000840 +#define NV50_2D_SIFC_DX_DU_INT 0x00000844 +#define NV50_2D_SIFC_DY_DV_FRACT 0x00000848 +#define NV50_2D_SIFC_DY_DV_INT 0x0000084c +#define NV50_2D_SIFC_DST_X_FRACT 0x00000850 +#define NV50_2D_SIFC_DST_X_INT 0x00000854 +#define NV50_2D_SIFC_DST_Y_FRACT 0x00000858 +#define NV50_2D_SIFC_DST_Y_INT 0x0000085c +#define NV50_2D_SIFC_DATA 0x00000860 +#define NV50_2D_BLIT_DST_X 0x000008b0 +#define NV50_2D_BLIT_DST_Y 0x000008b4 +#define NV50_2D_BLIT_DST_W 0x000008b8 +#define NV50_2D_BLIT_DST_H 0x000008bc +#define NV50_2D_BLIT_DU_DX_FRACT 0x000008c0 +#define NV50_2D_BLIT_DU_DX_INT 0x000008c4 +#define NV50_2D_BLIT_DV_DY_FRACT 0x000008c8 +#define NV50_2D_BLIT_DV_DY_INT 0x000008cc +#define NV50_2D_BLIT_SRC_X_FRACT 0x000008d0 +#define NV50_2D_BLIT_SRC_X_INT 0x000008d4 +#define NV50_2D_BLIT_SRC_Y_FRACT 0x000008d8 +#define NV50_2D_BLIT_SRC_Y_INT 0x000008dc + + +#define NV50TCL 0x00005097 + +#define NV50TCL_NOP 0x00000100 +#define NV50TCL_NOTIFY 0x00000104 +#define NV50TCL_SERIALIZE 0x00000110 +#define NV50TCL_DMA_NOTIFY 0x00000180 +#define NV50TCL_DMA_ZETA 0x00000184 +#define NV50TCL_DMA_QUERY 0x00000188 +#define NV50TCL_DMA_VTXBUF0 0x0000018c +#define NV50TCL_DMA_LOCAL 0x00000190 +#define NV50TCL_DMA_STACK 0x00000194 +#define NV50TCL_DMA_CODE_CB 0x00000198 +#define NV50TCL_DMA_TSC 0x0000019c +#define NV50TCL_DMA_TIC 0x000001a0 +#define NV50TCL_DMA_TEXTURE 0x000001a4 +#define NV50TCL_DMA_STRMOUT 0x000001a8 +#define NV50TCL_DMA_UNK01AC 0x000001ac +#define NV50TCL_DMA_COLOR(x) (0x000001c0+((x)*4)) +#define NV50TCL_DMA_COLOR__SIZE 0x00000008 +#define NV50TCL_RT_ADDRESS_HIGH(x) (0x00000200+((x)*32)) +#define NV50TCL_RT_ADDRESS_HIGH__SIZE 0x00000008 +#define NV50TCL_RT_ADDRESS_LOW(x) (0x00000204+((x)*32)) +#define NV50TCL_RT_ADDRESS_LOW__SIZE 0x00000008 +#define NV50TCL_RT_FORMAT(x) (0x00000208+((x)*32)) +#define NV50TCL_RT_FORMAT__SIZE 0x00000008 +#define NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NV50TCL_RT_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NV50TCL_RT_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NV50TCL_RT_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NV50TCL_RT_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NV50TCL_RT_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NV50TCL_RT_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NV50TCL_RT_FORMAT_R32G32_FLOAT 0x000000cb +#define NV50TCL_RT_FORMAT_R32G32_SINT 0x000000cc +#define NV50TCL_RT_FORMAT_R32G32_UINT 0x000000cd +#define NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NV50TCL_RT_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NV50TCL_RT_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NV50TCL_RT_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NV50TCL_RT_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NV50TCL_RT_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NV50TCL_RT_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NV50TCL_RT_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NV50TCL_RT_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NV50TCL_RT_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NV50TCL_RT_FORMAT_R16G16_UNORM 0x000000da +#define NV50TCL_RT_FORMAT_R16G16_SNORM 0x000000db +#define NV50TCL_RT_FORMAT_R16G16_SINT 0x000000dc +#define NV50TCL_RT_FORMAT_R16G16_UINT 0x000000dd +#define NV50TCL_RT_FORMAT_R16G16_FLOAT 0x000000de +#define NV50TCL_RT_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NV50TCL_RT_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NV50TCL_RT_FORMAT_R32_FLOAT 0x000000e5 +#define NV50TCL_RT_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NV50TCL_RT_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NV50TCL_RT_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NV50TCL_RT_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NV50TCL_RT_FORMAT_R8G8_UNORM 0x000000ea +#define NV50TCL_RT_FORMAT_R8G8_SNORM 0x000000eb +#define NV50TCL_RT_FORMAT_R8G8_SINT 0x000000ec +#define NV50TCL_RT_FORMAT_R8G8_UINT 0x000000ed +#define NV50TCL_RT_FORMAT_R16_UNORM 0x000000ee +#define NV50TCL_RT_FORMAT_R16_SNORM 0x000000ef +#define NV50TCL_RT_FORMAT_R16_SINT 0x000000f0 +#define NV50TCL_RT_FORMAT_R16_UINT 0x000000f1 +#define NV50TCL_RT_FORMAT_R16_FLOAT 0x000000f2 +#define NV50TCL_RT_FORMAT_R8_UNORM 0x000000f3 +#define NV50TCL_RT_FORMAT_R8_SNORM 0x000000f4 +#define NV50TCL_RT_FORMAT_R8_SINT 0x000000f5 +#define NV50TCL_RT_FORMAT_R8_UINT 0x000000f6 +#define NV50TCL_RT_FORMAT_A8_UNORM 0x000000f7 +#define NV50TCL_RT_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NV50TCL_RT_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NV50TCL_RT_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NV50TCL_RT_TILE_MODE(x) (0x0000020c+((x)*32)) +#define NV50TCL_RT_TILE_MODE__SIZE 0x00000008 +#define NV50TCL_RT_LAYER_STRIDE(x) (0x00000210+((x)*32)) +#define NV50TCL_RT_LAYER_STRIDE__SIZE 0x00000008 +#define NV50TCL_VTX_ATTR_1F(x) (0x00000300+((x)*4)) +#define NV50TCL_VTX_ATTR_1F__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_2H(x) (0x00000340+((x)*4)) +#define NV50TCL_VTX_ATTR_2H__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_2H_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_2H_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_2H_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_2H_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_2F_X(x) (0x00000380+((x)*8)) +#define NV50TCL_VTX_ATTR_2F_X__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_2F_Y(x) (0x00000384+((x)*8)) +#define NV50TCL_VTX_ATTR_2F_Y__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_3F_X(x) (0x00000400+((x)*16)) +#define NV50TCL_VTX_ATTR_3F_X__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_3F_Y(x) (0x00000404+((x)*16)) +#define NV50TCL_VTX_ATTR_3F_Y__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_3F_Z(x) (0x00000408+((x)*16)) +#define NV50TCL_VTX_ATTR_3F_Z__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4F_X(x) (0x00000500+((x)*16)) +#define NV50TCL_VTX_ATTR_4F_X__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4F_Y(x) (0x00000504+((x)*16)) +#define NV50TCL_VTX_ATTR_4F_Y__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4F_Z(x) (0x00000508+((x)*16)) +#define NV50TCL_VTX_ATTR_4F_Z__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4F_W(x) (0x0000050c+((x)*16)) +#define NV50TCL_VTX_ATTR_4F_W__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4H_0(x) (0x00000600+((x)*8)) +#define NV50TCL_VTX_ATTR_4H_0__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4H_0_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4H_0_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4H_0_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_4H_0_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4H_1(x) (0x00000604+((x)*8)) +#define NV50TCL_VTX_ATTR_4H_1__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4H_1_Z_SHIFT 0 +#define NV50TCL_VTX_ATTR_4H_1_Z_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4H_1_W_SHIFT 16 +#define NV50TCL_VTX_ATTR_4H_1_W_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_2I(x) (0x00000680+((x)*4)) +#define NV50TCL_VTX_ATTR_2I__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_2I_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_2I_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_2I_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_2I_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_2NI(x) (0x000006c0+((x)*4)) +#define NV50TCL_VTX_ATTR_2NI__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_2NI_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_2NI_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_2NI_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_2NI_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4I_0(x) (0x00000700+((x)*8)) +#define NV50TCL_VTX_ATTR_4I_0__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4I_0_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4I_0_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4I_0_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_4I_0_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4I_1(x) (0x00000704+((x)*8)) +#define NV50TCL_VTX_ATTR_4I_1__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4I_1_Z_SHIFT 0 +#define NV50TCL_VTX_ATTR_4I_1_Z_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4I_1_W_SHIFT 16 +#define NV50TCL_VTX_ATTR_4I_1_W_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4NI_0(x) (0x00000780+((x)*8)) +#define NV50TCL_VTX_ATTR_4NI_0__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4NI_0_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4NI_0_X_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4NI_0_Y_SHIFT 16 +#define NV50TCL_VTX_ATTR_4NI_0_Y_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4NI_1(x) (0x00000784+((x)*8)) +#define NV50TCL_VTX_ATTR_4NI_1__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4NI_1_Z_SHIFT 0 +#define NV50TCL_VTX_ATTR_4NI_1_Z_MASK 0x0000ffff +#define NV50TCL_VTX_ATTR_4NI_1_W_SHIFT 16 +#define NV50TCL_VTX_ATTR_4NI_1_W_MASK 0xffff0000 +#define NV50TCL_VTX_ATTR_4UB(x) (0x00000800+((x)*4)) +#define NV50TCL_VTX_ATTR_4UB__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4UB_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4UB_X_MASK 0x000000ff +#define NV50TCL_VTX_ATTR_4UB_Y_SHIFT 8 +#define NV50TCL_VTX_ATTR_4UB_Y_MASK 0x0000ff00 +#define NV50TCL_VTX_ATTR_4UB_Z_SHIFT 16 +#define NV50TCL_VTX_ATTR_4UB_Z_MASK 0x00ff0000 +#define NV50TCL_VTX_ATTR_4UB_W_SHIFT 24 +#define NV50TCL_VTX_ATTR_4UB_W_MASK 0xff000000 +#define NV50TCL_VTX_ATTR_4B(x) (0x00000840+((x)*4)) +#define NV50TCL_VTX_ATTR_4B__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4B_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4B_X_MASK 0x000000ff +#define NV50TCL_VTX_ATTR_4B_Y_SHIFT 8 +#define NV50TCL_VTX_ATTR_4B_Y_MASK 0x0000ff00 +#define NV50TCL_VTX_ATTR_4B_Z_SHIFT 16 +#define NV50TCL_VTX_ATTR_4B_Z_MASK 0x00ff0000 +#define NV50TCL_VTX_ATTR_4B_W_SHIFT 24 +#define NV50TCL_VTX_ATTR_4B_W_MASK 0xff000000 +#define NV50TCL_VTX_ATTR_4NUB(x) (0x00000880+((x)*4)) +#define NV50TCL_VTX_ATTR_4NUB__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4NUB_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4NUB_X_MASK 0x000000ff +#define NV50TCL_VTX_ATTR_4NUB_Y_SHIFT 8 +#define NV50TCL_VTX_ATTR_4NUB_Y_MASK 0x0000ff00 +#define NV50TCL_VTX_ATTR_4NUB_Z_SHIFT 16 +#define NV50TCL_VTX_ATTR_4NUB_Z_MASK 0x00ff0000 +#define NV50TCL_VTX_ATTR_4NUB_W_SHIFT 24 +#define NV50TCL_VTX_ATTR_4NUB_W_MASK 0xff000000 +#define NV50TCL_VTX_ATTR_4NB(x) (0x000008c0+((x)*4)) +#define NV50TCL_VTX_ATTR_4NB__SIZE 0x00000010 +#define NV50TCL_VTX_ATTR_4NB_X_SHIFT 0 +#define NV50TCL_VTX_ATTR_4NB_X_MASK 0x000000ff +#define NV50TCL_VTX_ATTR_4NB_Y_SHIFT 8 +#define NV50TCL_VTX_ATTR_4NB_Y_MASK 0x0000ff00 +#define NV50TCL_VTX_ATTR_4NB_Z_SHIFT 16 +#define NV50TCL_VTX_ATTR_4NB_Z_MASK 0x00ff0000 +#define NV50TCL_VTX_ATTR_4NB_W_SHIFT 24 +#define NV50TCL_VTX_ATTR_4NB_W_MASK 0xff000000 +#define NV50TCL_VERTEX_ARRAY_FORMAT(x) (0x00000900+((x)*16)) +#define NV50TCL_VERTEX_ARRAY_FORMAT__SIZE 0x00000010 +#define NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT 0 +#define NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK 0x00000fff +#define NV50TCL_VERTEX_ARRAY_FORMAT_ENABLE (1 << 29) +#define NV50TCL_VERTEX_ARRAY_START_HIGH(x) (0x00000904+((x)*16)) +#define NV50TCL_VERTEX_ARRAY_START_HIGH__SIZE 0x00000010 +#define NV50TCL_VERTEX_ARRAY_START_LOW(x) (0x00000908+((x)*16)) +#define NV50TCL_VERTEX_ARRAY_START_LOW__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_SCALE_X(x) (0x00000a00+((x)*32)) +#define NV50TCL_VIEWPORT_SCALE_X__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_SCALE_Y(x) (0x00000a04+((x)*32)) +#define NV50TCL_VIEWPORT_SCALE_Y__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_SCALE_Z(x) (0x00000a08+((x)*32)) +#define NV50TCL_VIEWPORT_SCALE_Z__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_TRANSLATE_X(x) (0x00000a0c+((x)*32)) +#define NV50TCL_VIEWPORT_TRANSLATE_X__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_TRANSLATE_Y(x) (0x00000a10+((x)*32)) +#define NV50TCL_VIEWPORT_TRANSLATE_Y__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_TRANSLATE_Z(x) (0x00000a14+((x)*32)) +#define NV50TCL_VIEWPORT_TRANSLATE_Z__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_HORIZ(x) (0x00000c00+((x)*16)) +#define NV50TCL_VIEWPORT_HORIZ__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_HORIZ_X_SHIFT 0 +#define NV50TCL_VIEWPORT_HORIZ_X_MASK 0x0000ffff +#define NV50TCL_VIEWPORT_HORIZ_W_SHIFT 16 +#define NV50TCL_VIEWPORT_HORIZ_W_MASK 0xffff0000 +#define NV50TCL_VIEWPORT_VERT(x) (0x00000c04+((x)*16)) +#define NV50TCL_VIEWPORT_VERT__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_VERT_Y_SHIFT 0 +#define NV50TCL_VIEWPORT_VERT_Y_MASK 0x0000ffff +#define NV50TCL_VIEWPORT_VERT_H_SHIFT 16 +#define NV50TCL_VIEWPORT_VERT_H_MASK 0xffff0000 +#define NV50TCL_DEPTH_RANGE_NEAR(x) (0x00000c08+((x)*16)) +#define NV50TCL_DEPTH_RANGE_NEAR__SIZE 0x00000010 +#define NV50TCL_DEPTH_RANGE_FAR(x) (0x00000c0c+((x)*16)) +#define NV50TCL_DEPTH_RANGE_FAR__SIZE 0x00000010 +#define NV50TCL_VIEWPORT_CLIP_HORIZ(x) (0x00000d00+((x)*8)) +#define NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV50TCL_VIEWPORT_CLIP_VERT(x) (0x00000d04+((x)*8)) +#define NV50TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV50TCL_VERTEX_BUFFER_FIRST 0x00000d74 +#define NV50TCL_VERTEX_BUFFER_COUNT 0x00000d78 +#define NV50TCL_CLEAR_COLOR(x) (0x00000d80+((x)*4)) +#define NV50TCL_CLEAR_COLOR__SIZE 0x00000004 +#define NV50TCL_CLEAR_DEPTH 0x00000d90 +#define NV50TCL_STACK_ADDRESS_HIGH 0x00000d94 +#define NV50TCL_STACK_ADDRESS_LOW 0x00000d98 +#define NV50TCL_STACK_SIZE_LOG 0x00000d9c +#define NV50TCL_CLEAR_STENCIL 0x00000da0 +#define NV50TCL_STRMOUT_PRIMITIVE_COUNT 0x00000da8 +#define NV50TCL_POLYGON_MODE_FRONT 0x00000dac +#define NV50TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NV50TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NV50TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NV50TCL_POLYGON_MODE_BACK 0x00000db0 +#define NV50TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NV50TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NV50TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NV50TCL_POLYGON_SMOOTH_ENABLE 0x00000db4 +#define NV50TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000dc0 +#define NV50TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000dc4 +#define NV50TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000dc8 +#define NV50TCL_WATCHDOG_TIMER 0x00000de4 +#define NV50TCL_WINDOW_OFFSET_X 0x00000df8 +#define NV50TCL_WINDOW_OFFSET_Y 0x00000dfc +#define NV50TCL_SCISSOR_ENABLE(x) (0x00000e00+((x)*16)) +#define NV50TCL_SCISSOR_ENABLE__SIZE 0x00000010 +#define NV50TCL_SCISSOR_HORIZ(x) (0x00000e04+((x)*16)) +#define NV50TCL_SCISSOR_HORIZ__SIZE 0x00000010 +#define NV50TCL_SCISSOR_HORIZ_MIN_SHIFT 0 +#define NV50TCL_SCISSOR_HORIZ_MIN_MASK 0x0000ffff +#define NV50TCL_SCISSOR_HORIZ_MAX_SHIFT 16 +#define NV50TCL_SCISSOR_HORIZ_MAX_MASK 0xffff0000 +#define NV50TCL_SCISSOR_VERT(x) (0x00000e08+((x)*16)) +#define NV50TCL_SCISSOR_VERT__SIZE 0x00000010 +#define NV50TCL_SCISSOR_VERT_MIN_SHIFT 0 +#define NV50TCL_SCISSOR_VERT_MIN_MASK 0x0000ffff +#define NV50TCL_SCISSOR_VERT_MAX_SHIFT 16 +#define NV50TCL_SCISSOR_VERT_MAX_MASK 0xffff0000 +#define NV50TCL_CB_ADDR 0x00000f00 +#define NV50TCL_CB_ADDR_ID_SHIFT 8 +#define NV50TCL_CB_ADDR_ID_MASK 0x003fff00 +#define NV50TCL_CB_ADDR_BUFFER_SHIFT 0 +#define NV50TCL_CB_ADDR_BUFFER_MASK 0x0000007f +#define NV50TCL_CB_DATA(x) (0x00000f04+((x)*4)) +#define NV50TCL_CB_DATA__SIZE 0x00000010 +#define NV50TCL_LOCAL_WARPS_LOG_ALLOC 0x00000f44 +#define NV50TCL_LOCAL_WARPS_NO_CLAMP 0x00000f48 +#define NV50TCL_STACK_WARPS_LOG_ALLOC 0x00000f4c +#define NV50TCL_STACK_WARPS_NO_CLAMP 0x00000f50 +#define NV50TCL_STENCIL_BACK_FUNC_REF 0x00000f54 +#define NV50TCL_STENCIL_BACK_MASK 0x00000f58 +#define NV50TCL_STENCIL_BACK_FUNC_MASK 0x00000f5c +#define NV50TCL_GP_ADDRESS_HIGH 0x00000f70 +#define NV50TCL_GP_ADDRESS_LOW 0x00000f74 +#define NV50TCL_VP_ADDRESS_HIGH 0x00000f7c +#define NV50TCL_VP_ADDRESS_LOW 0x00000f80 +#define NV50TCL_UNK0F84_ADDRESS_HIGH 0x00000f84 +#define NV50TCL_UNK0F84_ADDRESS_LOW 0x00000f88 +#define NV50TCL_DEPTH_BOUNDS(x) (0x00000f9c+((x)*4)) +#define NV50TCL_DEPTH_BOUNDS__SIZE 0x00000002 +#define NV50TCL_FP_ADDRESS_HIGH 0x00000fa4 +#define NV50TCL_FP_ADDRESS_LOW 0x00000fa8 +#define NV50TCL_MSAA_MASK(x) (0x00000fbc+((x)*4)) +#define NV50TCL_MSAA_MASK__SIZE 0x00000004 +#define NV50TCL_ZETA_ADDRESS_HIGH 0x00000fe0 +#define NV50TCL_ZETA_ADDRESS_LOW 0x00000fe4 +#define NV50TCL_ZETA_FORMAT 0x00000fe8 +#define NV50TCL_ZETA_FORMAT_Z32_FLOAT 0x0000000a +#define NV50TCL_ZETA_FORMAT_Z16_UNORM 0x00000013 +#define NV50TCL_ZETA_FORMAT_Z24S8_UNORM 0x00000014 +#define NV50TCL_ZETA_FORMAT_X8Z24_UNORM 0x00000015 +#define NV50TCL_ZETA_FORMAT_S8Z24_UNORM 0x00000016 +#define NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM 0x00000019 +#define NV50TCL_ZETA_TILE_MODE 0x00000fec +#define NV50TCL_ZETA_LAYER_STRIDE 0x00000ff0 +#define NV50TCL_SCREEN_SCISSOR_HORIZ 0x00000ff4 +#define NV50TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT 16 +#define NV50TCL_SCREEN_SCISSOR_HORIZ_W_MASK 0xffff0000 +#define NV50TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT 0 +#define NV50TCL_SCREEN_SCISSOR_HORIZ_X_MASK 0x0000ffff +#define NV50TCL_SCREEN_SCISSOR_VERT 0x00000ff8 +#define NV50TCL_SCREEN_SCISSOR_VERT_H_SHIFT 16 +#define NV50TCL_SCREEN_SCISSOR_VERT_H_MASK 0xffff0000 +#define NV50TCL_SCREEN_SCISSOR_VERT_Y_SHIFT 0 +#define NV50TCL_SCREEN_SCISSOR_VERT_Y_MASK 0x0000ffff +#define NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(x) (0x00001080+((x)*8)) +#define NV50TCL_VERTEX_ARRAY_LIMIT_HIGH__SIZE 0x00000010 +#define NV50TCL_VERTEX_ARRAY_LIMIT_LOW(x) (0x00001084+((x)*8)) +#define NV50TCL_VERTEX_ARRAY_LIMIT_LOW__SIZE 0x00000010 +#define NV50TCL_RT_CONTROL 0x0000121c +#define NV50TCL_RT_CONTROL_COUNT_SHIFT 0 +#define NV50TCL_RT_CONTROL_COUNT_MASK 0x0000000f +#define NV50TCL_RT_CONTROL_MAP0_SHIFT 4 +#define NV50TCL_RT_CONTROL_MAP0_MASK 0x00000070 +#define NV50TCL_RT_CONTROL_MAP1_SHIFT 7 +#define NV50TCL_RT_CONTROL_MAP1_MASK 0x00000380 +#define NV50TCL_RT_CONTROL_MAP2_SHIFT 10 +#define NV50TCL_RT_CONTROL_MAP2_MASK 0x00001c00 +#define NV50TCL_RT_CONTROL_MAP3_SHIFT 13 +#define NV50TCL_RT_CONTROL_MAP3_MASK 0x0000e000 +#define NV50TCL_RT_CONTROL_MAP4_SHIFT 16 +#define NV50TCL_RT_CONTROL_MAP4_MASK 0x00070000 +#define NV50TCL_RT_CONTROL_MAP5_SHIFT 19 +#define NV50TCL_RT_CONTROL_MAP5_MASK 0x00380000 +#define NV50TCL_RT_CONTROL_MAP6_SHIFT 22 +#define NV50TCL_RT_CONTROL_MAP6_MASK 0x01c00000 +#define NV50TCL_RT_CONTROL_MAP7_SHIFT 25 +#define NV50TCL_RT_CONTROL_MAP7_MASK 0x0e000000 +#define NV50TCL_RT_ARRAY_MODE 0x00001224 +#define NV50TCL_RT_ARRAY_MODE_LAYERS_SHIFT 0 +#define NV50TCL_RT_ARRAY_MODE_LAYERS_MASK 0x0000ffff +#define NV50TCL_RT_ARRAY_MODE_VOLUME (1 << 16) +#define NV50TCL_ZETA_HORIZ 0x00001228 +#define NV50TCL_ZETA_VERT 0x0000122c +#define NV50TCL_ZETA_ARRAY_MODE 0x00001230 +#define NV50TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT 0 +#define NV50TCL_ZETA_ARRAY_MODE_LAYERS_MASK 0x0000ffff +#define NV50TCL_ZETA_ARRAY_MODE_UNK (1 << 16) +#define NV50TCL_LINKED_TSC 0x00001234 +#define NV50TCL_RT_HORIZ(x) (0x00001240+((x)*8)) +#define NV50TCL_RT_HORIZ__SIZE 0x00000008 +#define NV50TCL_RT_VERT(x) (0x00001244+((x)*8)) +#define NV50TCL_RT_VERT__SIZE 0x00000008 +#define NV50TCL_CB_DEF_ADDRESS_HIGH 0x00001280 +#define NV50TCL_CB_DEF_ADDRESS_LOW 0x00001284 +#define NV50TCL_CB_DEF_SET 0x00001288 +#define NV50TCL_CB_DEF_SET_SIZE_SHIFT 0 +#define NV50TCL_CB_DEF_SET_SIZE_MASK 0x0000ffff +#define NV50TCL_CB_DEF_SET_BUFFER_SHIFT 16 +#define NV50TCL_CB_DEF_SET_BUFFER_MASK 0x007f0000 +#define NV50TCL_STRMOUT_BUFFERS_CTRL 0x00001294 +#define NV50TCL_STRMOUT_BUFFERS_CTRL_INTERLEAVED (1 << 0) +#define NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_SHIFT 4 +#define NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_MASK 0x000000f0 +#define NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_SHIFT 8 +#define NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_MASK 0x0000ff00 +#define NV50TCL_FP_RESULT_COUNT 0x00001298 +#define NV50TCL_DEPTH_TEST_ENABLE 0x000012cc +#define NV50TCL_SHADE_MODEL 0x000012d4 +#define NV50TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NV50TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NV50TCL_LOCAL_ADDRESS_HIGH 0x000012d8 +#define NV50TCL_LOCAL_ADDRESS_LOW 0x000012dc +#define NV50TCL_LOCAL_SIZE_LOG 0x000012e0 +#define NV50TCL_DEPTH_WRITE_ENABLE 0x000012e8 +#define NV50TCL_ALPHA_TEST_ENABLE 0x000012ec +#define NV50TCL_PM_SET(x) (0x000012f0+((x)*4)) +#define NV50TCL_PM_SET__SIZE 0x00000004 +#define NV50TCL_VB_ELEMENT_U8_SETUP 0x00001300 +#define NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT 30 +#define NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK 0xc0000000 +#define NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT 0 +#define NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK 0x3fffffff +#define NV50TCL_VB_ELEMENT_U8 0x00001304 +#define NV50TCL_VB_ELEMENT_U8_I0_SHIFT 0 +#define NV50TCL_VB_ELEMENT_U8_I0_MASK 0x000000ff +#define NV50TCL_VB_ELEMENT_U8_I1_SHIFT 8 +#define NV50TCL_VB_ELEMENT_U8_I1_MASK 0x0000ff00 +#define NV50TCL_VB_ELEMENT_U8_I2_SHIFT 16 +#define NV50TCL_VB_ELEMENT_U8_I2_MASK 0x00ff0000 +#define NV50TCL_VB_ELEMENT_U8_I3_SHIFT 24 +#define NV50TCL_VB_ELEMENT_U8_I3_MASK 0xff000000 +#define NV50TCL_DEPTH_TEST_FUNC 0x0000130c +#define NV50TCL_DEPTH_TEST_FUNC_NEVER 0x00000200 +#define NV50TCL_DEPTH_TEST_FUNC_LESS 0x00000201 +#define NV50TCL_DEPTH_TEST_FUNC_EQUAL 0x00000202 +#define NV50TCL_DEPTH_TEST_FUNC_LEQUAL 0x00000203 +#define NV50TCL_DEPTH_TEST_FUNC_GREATER 0x00000204 +#define NV50TCL_DEPTH_TEST_FUNC_NOTEQUAL 0x00000205 +#define NV50TCL_DEPTH_TEST_FUNC_GEQUAL 0x00000206 +#define NV50TCL_DEPTH_TEST_FUNC_ALWAYS 0x00000207 +#define NV50TCL_ALPHA_TEST_REF 0x00001310 +#define NV50TCL_ALPHA_TEST_FUNC 0x00001314 +#define NV50TCL_ALPHA_TEST_FUNC_NEVER 0x00000200 +#define NV50TCL_ALPHA_TEST_FUNC_LESS 0x00000201 +#define NV50TCL_ALPHA_TEST_FUNC_EQUAL 0x00000202 +#define NV50TCL_ALPHA_TEST_FUNC_LEQUAL 0x00000203 +#define NV50TCL_ALPHA_TEST_FUNC_GREATER 0x00000204 +#define NV50TCL_ALPHA_TEST_FUNC_NOTEQUAL 0x00000205 +#define NV50TCL_ALPHA_TEST_FUNC_GEQUAL 0x00000206 +#define NV50TCL_ALPHA_TEST_FUNC_ALWAYS 0x00000207 +#define NV50TCL_BLEND_COLOR(x) (0x0000131c+((x)*4)) +#define NV50TCL_BLEND_COLOR__SIZE 0x00000004 +#define NV50TCL_TIC_FLUSH 0x00001330 +#define NV50TCL_TSC_FLUSH 0x00001334 +#define NV50TCL_TEX_CACHE_CTL 0x00001338 +#define NV50TCL_BLEND_EQUATION_RGB 0x00001340 +#define NV50TCL_BLEND_EQUATION_RGB_FUNC_ADD 0x00008006 +#define NV50TCL_BLEND_EQUATION_RGB_MIN 0x00008007 +#define NV50TCL_BLEND_EQUATION_RGB_MAX 0x00008008 +#define NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT 0x0000800a +#define NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV50TCL_BLEND_FUNC_SRC_RGB 0x00001344 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00000000 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE 0x00000001 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00000300 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00000302 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00000304 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00000306 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x00008001 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x00008003 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_DST_RGB 0x00001348 +#define NV50TCL_BLEND_FUNC_DST_RGB_ZERO 0x00000000 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE 0x00000001 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00000300 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00000302 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00000304 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00000306 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00000307 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00000308 +#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x00008001 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x00008003 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_EQUATION_ALPHA 0x0000134c +#define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD 0x00008006 +#define NV50TCL_BLEND_EQUATION_ALPHA_MIN 0x00008007 +#define NV50TCL_BLEND_EQUATION_ALPHA_MAX 0x00008008 +#define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT 0x0000800a +#define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NV50TCL_BLEND_FUNC_SRC_ALPHA 0x00001350 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00000000 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00000001 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x00000300 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x00000302 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x00000304 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x00000306 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x00000307 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x00000308 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x00008001 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x00008003 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_DST_ALPHA 0x00001358 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00000000 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00000001 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x00000300 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x00000301 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x00000302 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x00000303 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x00000304 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x00000305 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x00000306 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x00000307 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x00000308 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x00008001 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x00008002 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x00008003 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_ENABLE(x) (0x00001360+((x)*4)) +#define NV50TCL_BLEND_ENABLE__SIZE 0x00000008 +#define NV50TCL_STENCIL_FRONT_ENABLE 0x00001380 +#define NV50TCL_STENCIL_FRONT_OP_FAIL 0x00001384 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_ZERO 0x00000000 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_INVERT 0x0000150a +#define NV50TCL_STENCIL_FRONT_OP_FAIL_KEEP 0x00001e00 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_INCR 0x00001e02 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_DECR 0x00001e03 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL 0x00001388 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_ZERO 0x00000000 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_INVERT 0x0000150a +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_KEEP 0x00001e00 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR 0x00001e02 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR 0x00001e03 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS 0x0000138c +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_ZERO 0x00000000 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_INVERT 0x0000150a +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_KEEP 0x00001e00 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR 0x00001e02 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR 0x00001e03 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC 0x00001390 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_NEVER 0x00000200 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_LESS 0x00000201 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL 0x00000202 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL 0x00000203 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER 0x00000204 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL 0x00000206 +#define NV50TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS 0x00000207 +#define NV50TCL_STENCIL_FRONT_FUNC_REF 0x00001394 +#define NV50TCL_STENCIL_FRONT_MASK 0x00001398 +#define NV50TCL_STENCIL_FRONT_FUNC_MASK 0x0000139c +#define NV50TCL_FRAG_COLOR_CLAMP_EN 0x000013a8 +#define NV50TCL_Y_ORIGIN_BOTTOM 0x000013ac +#define NV50TCL_LINE_WIDTH 0x000013b0 +#define NV50TCL_TEX_LIMITS(x) (0x000013b4+((x)*4)) +#define NV50TCL_TEX_LIMITS__SIZE 0x00000003 +#define NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT 0 +#define NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK 0x0000000f +#define NV50TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT 4 +#define NV50TCL_TEX_LIMITS_TEXTURES_LOG2_MASK 0x000000f0 +#define NV50TCL_POINT_COORD_REPLACE_MAP(x) (0x000013c0+((x)*4)) +#define NV50TCL_POINT_COORD_REPLACE_MAP__SIZE 0x00000008 +#define NV50TCL_VP_START_ID 0x0000140c +#define NV50TCL_GP_START_ID 0x00001410 +#define NV50TCL_FP_START_ID 0x00001414 +#define NV50TCL_GP_VERTEX_OUTPUT_COUNT 0x00001420 +#define NV50TCL_VB_ELEMENT_BASE 0x00001434 +#define NV50TCL_CODE_CB_FLUSH 0x00001440 +#define NV50TCL_BIND_TSC(x) (0x00001444+((x)*8)) +#define NV50TCL_BIND_TSC__SIZE 0x00000003 +#define NV50TCL_BIND_TSC_VALID (1 << 0) +#define NV50TCL_BIND_TSC_SAMPLER_SHIFT 4 +#define NV50TCL_BIND_TSC_SAMPLER_MASK 0x000000f0 +#define NV50TCL_BIND_TSC_TSC_SHIFT 12 +#define NV50TCL_BIND_TSC_TSC_MASK 0x001ff000 +#define NV50TCL_BIND_TIC(x) (0x00001448+((x)*8)) +#define NV50TCL_BIND_TIC__SIZE 0x00000003 +#define NV50TCL_BIND_TIC_VALID (1 << 0) +#define NV50TCL_BIND_TIC_TEXTURE_SHIFT 1 +#define NV50TCL_BIND_TIC_TEXTURE_MASK 0x000001fe +#define NV50TCL_BIND_TIC_TIC_SHIFT 9 +#define NV50TCL_BIND_TIC_TIC_MASK 0x7ffffe00 +#define NV50TCL_STRMOUT_MAP(x) (0x00001480+((x)*4)) +#define NV50TCL_STRMOUT_MAP__SIZE 0x00000020 +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE 0x00001510 +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_0 (1 << 0) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_1 (1 << 1) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_2 (1 << 2) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_3 (1 << 3) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_4 (1 << 4) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_5 (1 << 5) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_6 (1 << 6) +#define NV50TCL_VP_CLIP_DISTANCE_ENABLE_7 (1 << 7) +#define NV50TCL_SAMPLECNT_ENABLE 0x00001514 +#define NV50TCL_POINT_SIZE 0x00001518 +#define NV50TCL_POINT_SPRITE_ENABLE 0x00001520 +#define NV50TCL_SAMPLECNT_RESET 0x00001530 +#define NV50TCL_ZETA_ENABLE 0x00001538 +#define NV50TCL_MULTISAMPLE_CTRL 0x0000153c +#define NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE (1 << 0) +#define NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE (1 << 4) +#define NV50TCL_NOPERSPECTIVE_BITMAP(x) (0x00001540+((x)*4)) +#define NV50TCL_NOPERSPECTIVE_BITMAP__SIZE 0x00000004 +#define NV50TCL_COND_ADDRESS_HIGH 0x00001550 +#define NV50TCL_COND_ADDRESS_LOW 0x00001554 +#define NV50TCL_COND_MODE 0x00001558 +#define NV50TCL_COND_MODE_NEVER 0x00000000 +#define NV50TCL_COND_MODE_ALWAYS 0x00000001 +#define NV50TCL_COND_MODE_RES 0x00000002 +#define NV50TCL_COND_MODE_NOT_RES_AND_NOT_ID 0x00000003 +#define NV50TCL_COND_MODE_RES_OR_ID 0x00000004 +#define NV50TCL_TSC_ADDRESS_HIGH 0x0000155c +#define NV50TCL_TSC_ADDRESS_LOW 0x00001560 +#define NV50TCL_TSC_LIMIT 0x00001564 +#define NV50TCL_POLYGON_OFFSET_FACTOR 0x0000156c +#define NV50TCL_LINE_SMOOTH_ENABLE 0x00001570 +#define NV50TCL_TIC_ADDRESS_HIGH 0x00001574 +#define NV50TCL_TIC_ADDRESS_LOW 0x00001578 +#define NV50TCL_TIC_LIMIT 0x0000157c +#define NV50TCL_PM_CONTROL(x) (0x00001580+((x)*4)) +#define NV50TCL_PM_CONTROL__SIZE 0x00000004 +#define NV50TCL_PM_CONTROL_UNK0 (1 << 0) +#define NV50TCL_PM_CONTROL_UNK1_SHIFT 4 +#define NV50TCL_PM_CONTROL_UNK1_MASK 0x00000070 +#define NV50TCL_PM_CONTROL_UNK2_SHIFT 8 +#define NV50TCL_PM_CONTROL_UNK2_MASK 0xffffff00 +#define NV50TCL_STENCIL_BACK_ENABLE 0x00001594 +#define NV50TCL_STENCIL_BACK_OP_FAIL 0x00001598 +#define NV50TCL_STENCIL_BACK_OP_FAIL_ZERO 0x00000000 +#define NV50TCL_STENCIL_BACK_OP_FAIL_INVERT 0x0000150a +#define NV50TCL_STENCIL_BACK_OP_FAIL_KEEP 0x00001e00 +#define NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_BACK_OP_FAIL_INCR 0x00001e02 +#define NV50TCL_STENCIL_BACK_OP_FAIL_DECR 0x00001e03 +#define NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL 0x0000159c +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO 0x00000000 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT 0x0000150a +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP 0x00001e00 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR 0x00001e02 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR 0x00001e03 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_BACK_OP_ZPASS 0x000015a0 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO 0x00000000 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT 0x0000150a +#define NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP 0x00001e00 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE 0x00001e01 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_INCR 0x00001e02 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_DECR 0x00001e03 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP 0x00008507 +#define NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP 0x00008508 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC 0x000015a4 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER 0x00000200 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS 0x00000201 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL 0x00000202 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL 0x00000203 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER 0x00000204 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL 0x00000206 +#define NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS 0x00000207 +#define NV50TCL_FRAMEBUFFER_SRGB 0x000015b8 +#define NV50TCL_POLYGON_OFFSET_UNITS 0x000015bc +#define NV50TCL_GP_BUILTIN_RESULT_EN 0x000015cc +#define NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX (1 << 0) +#define NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX (1 << 16) +#define NV50TCL_MULTISAMPLE_SAMPLES_LOG2 0x000015d0 +#define NV50TCL_VERTEX_BEGIN 0x000015dc +#define NV50TCL_VERTEX_BEGIN_POINTS 0x00000000 +#define NV50TCL_VERTEX_BEGIN_LINES 0x00000001 +#define NV50TCL_VERTEX_BEGIN_LINE_LOOP 0x00000002 +#define NV50TCL_VERTEX_BEGIN_LINE_STRIP 0x00000003 +#define NV50TCL_VERTEX_BEGIN_TRIANGLES 0x00000004 +#define NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP 0x00000005 +#define NV50TCL_VERTEX_BEGIN_TRIANGLE_FAN 0x00000006 +#define NV50TCL_VERTEX_BEGIN_QUADS 0x00000007 +#define NV50TCL_VERTEX_BEGIN_QUAD_STRIP 0x00000008 +#define NV50TCL_VERTEX_BEGIN_POLYGON 0x00000009 +#define NV50TCL_VERTEX_BEGIN_LINES_ADJACENCY 0x0000000a +#define NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY 0x0000000b +#define NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY 0x0000000c +#define NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY 0x0000000d +#define NV50TCL_VERTEX_END 0x000015e0 +#define NV50TCL_EDGEFLAG_ENABLE 0x000015e4 +#define NV50TCL_VB_ELEMENT_U32 0x000015e8 +#define NV50TCL_VB_ELEMENT_U16_SETUP 0x000015ec +#define NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT 30 +#define NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK 0xc0000000 +#define NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT 0 +#define NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK 0x3fffffff +#define NV50TCL_VB_ELEMENT_U16 0x000015f0 +#define NV50TCL_VB_ELEMENT_U16_I0_SHIFT 0 +#define NV50TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff +#define NV50TCL_VB_ELEMENT_U16_I1_SHIFT 16 +#define NV50TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NV50TCL_VERTEX_DATA 0x00001640 +#define NV50TCL_PRIM_RESTART_ENABLE 0x00001644 +#define NV50TCL_PRIM_RESTART_INDEX 0x00001648 +#define NV50TCL_VP_GP_BUILTIN_ATTR_EN 0x0000164c +#define NV50TCL_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID (1 << 0) +#define NV50TCL_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID (1 << 4) +#define NV50TCL_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID (1 << 8) +#define NV50TCL_VP_GP_BUILTIN_ATTR_EN_UNK12 (1 << 12) +#define NV50TCL_VP_ATTR_EN_0 0x00001650 +#define NV50TCL_VP_ATTR_EN_0_7_SHIFT 28 +#define NV50TCL_VP_ATTR_EN_0_7_MASK 0xf0000000 +#define NV50TCL_VP_ATTR_EN_0_7_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_7_XNNN 0x10000000 +#define NV50TCL_VP_ATTR_EN_0_7_NYNN 0x20000000 +#define NV50TCL_VP_ATTR_EN_0_7_XYNN 0x30000000 +#define NV50TCL_VP_ATTR_EN_0_7_NNZN 0x40000000 +#define NV50TCL_VP_ATTR_EN_0_7_XNZN 0x50000000 +#define NV50TCL_VP_ATTR_EN_0_7_NYZN 0x60000000 +#define NV50TCL_VP_ATTR_EN_0_7_XYZN 0x70000000 +#define NV50TCL_VP_ATTR_EN_0_7_NNNW 0x80000000 +#define NV50TCL_VP_ATTR_EN_0_7_XNNW 0x90000000 +#define NV50TCL_VP_ATTR_EN_0_7_NYNW 0xa0000000 +#define NV50TCL_VP_ATTR_EN_0_7_XYNW 0xb0000000 +#define NV50TCL_VP_ATTR_EN_0_7_NNZW 0xc0000000 +#define NV50TCL_VP_ATTR_EN_0_7_XNZW 0xd0000000 +#define NV50TCL_VP_ATTR_EN_0_7_NYZW 0xe0000000 +#define NV50TCL_VP_ATTR_EN_0_7_XYZW 0xf0000000 +#define NV50TCL_VP_ATTR_EN_0_6_SHIFT 24 +#define NV50TCL_VP_ATTR_EN_0_6_MASK 0x0f000000 +#define NV50TCL_VP_ATTR_EN_0_6_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_6_XNNN 0x01000000 +#define NV50TCL_VP_ATTR_EN_0_6_NYNN 0x02000000 +#define NV50TCL_VP_ATTR_EN_0_6_XYNN 0x03000000 +#define NV50TCL_VP_ATTR_EN_0_6_NNZN 0x04000000 +#define NV50TCL_VP_ATTR_EN_0_6_XNZN 0x05000000 +#define NV50TCL_VP_ATTR_EN_0_6_NYZN 0x06000000 +#define NV50TCL_VP_ATTR_EN_0_6_XYZN 0x07000000 +#define NV50TCL_VP_ATTR_EN_0_6_NNNW 0x08000000 +#define NV50TCL_VP_ATTR_EN_0_6_XNNW 0x09000000 +#define NV50TCL_VP_ATTR_EN_0_6_NYNW 0x0a000000 +#define NV50TCL_VP_ATTR_EN_0_6_XYNW 0x0b000000 +#define NV50TCL_VP_ATTR_EN_0_6_NNZW 0x0c000000 +#define NV50TCL_VP_ATTR_EN_0_6_XNZW 0x0d000000 +#define NV50TCL_VP_ATTR_EN_0_6_NYZW 0x0e000000 +#define NV50TCL_VP_ATTR_EN_0_6_XYZW 0x0f000000 +#define NV50TCL_VP_ATTR_EN_0_5_SHIFT 20 +#define NV50TCL_VP_ATTR_EN_0_5_MASK 0x00f00000 +#define NV50TCL_VP_ATTR_EN_0_5_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_5_XNNN 0x00100000 +#define NV50TCL_VP_ATTR_EN_0_5_NYNN 0x00200000 +#define NV50TCL_VP_ATTR_EN_0_5_XYNN 0x00300000 +#define NV50TCL_VP_ATTR_EN_0_5_NNZN 0x00400000 +#define NV50TCL_VP_ATTR_EN_0_5_XNZN 0x00500000 +#define NV50TCL_VP_ATTR_EN_0_5_NYZN 0x00600000 +#define NV50TCL_VP_ATTR_EN_0_5_XYZN 0x00700000 +#define NV50TCL_VP_ATTR_EN_0_5_NNNW 0x00800000 +#define NV50TCL_VP_ATTR_EN_0_5_XNNW 0x00900000 +#define NV50TCL_VP_ATTR_EN_0_5_NYNW 0x00a00000 +#define NV50TCL_VP_ATTR_EN_0_5_XYNW 0x00b00000 +#define NV50TCL_VP_ATTR_EN_0_5_NNZW 0x00c00000 +#define NV50TCL_VP_ATTR_EN_0_5_XNZW 0x00d00000 +#define NV50TCL_VP_ATTR_EN_0_5_NYZW 0x00e00000 +#define NV50TCL_VP_ATTR_EN_0_5_XYZW 0x00f00000 +#define NV50TCL_VP_ATTR_EN_0_4_SHIFT 16 +#define NV50TCL_VP_ATTR_EN_0_4_MASK 0x000f0000 +#define NV50TCL_VP_ATTR_EN_0_4_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_4_XNNN 0x00010000 +#define NV50TCL_VP_ATTR_EN_0_4_NYNN 0x00020000 +#define NV50TCL_VP_ATTR_EN_0_4_XYNN 0x00030000 +#define NV50TCL_VP_ATTR_EN_0_4_NNZN 0x00040000 +#define NV50TCL_VP_ATTR_EN_0_4_XNZN 0x00050000 +#define NV50TCL_VP_ATTR_EN_0_4_NYZN 0x00060000 +#define NV50TCL_VP_ATTR_EN_0_4_XYZN 0x00070000 +#define NV50TCL_VP_ATTR_EN_0_4_NNNW 0x00080000 +#define NV50TCL_VP_ATTR_EN_0_4_XNNW 0x00090000 +#define NV50TCL_VP_ATTR_EN_0_4_NYNW 0x000a0000 +#define NV50TCL_VP_ATTR_EN_0_4_XYNW 0x000b0000 +#define NV50TCL_VP_ATTR_EN_0_4_NNZW 0x000c0000 +#define NV50TCL_VP_ATTR_EN_0_4_XNZW 0x000d0000 +#define NV50TCL_VP_ATTR_EN_0_4_NYZW 0x000e0000 +#define NV50TCL_VP_ATTR_EN_0_4_XYZW 0x000f0000 +#define NV50TCL_VP_ATTR_EN_0_3_SHIFT 12 +#define NV50TCL_VP_ATTR_EN_0_3_MASK 0x0000f000 +#define NV50TCL_VP_ATTR_EN_0_3_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_3_XNNN 0x00001000 +#define NV50TCL_VP_ATTR_EN_0_3_NYNN 0x00002000 +#define NV50TCL_VP_ATTR_EN_0_3_XYNN 0x00003000 +#define NV50TCL_VP_ATTR_EN_0_3_NNZN 0x00004000 +#define NV50TCL_VP_ATTR_EN_0_3_XNZN 0x00005000 +#define NV50TCL_VP_ATTR_EN_0_3_NYZN 0x00006000 +#define NV50TCL_VP_ATTR_EN_0_3_XYZN 0x00007000 +#define NV50TCL_VP_ATTR_EN_0_3_NNNW 0x00008000 +#define NV50TCL_VP_ATTR_EN_0_3_XNNW 0x00009000 +#define NV50TCL_VP_ATTR_EN_0_3_NYNW 0x0000a000 +#define NV50TCL_VP_ATTR_EN_0_3_XYNW 0x0000b000 +#define NV50TCL_VP_ATTR_EN_0_3_NNZW 0x0000c000 +#define NV50TCL_VP_ATTR_EN_0_3_XNZW 0x0000d000 +#define NV50TCL_VP_ATTR_EN_0_3_NYZW 0x0000e000 +#define NV50TCL_VP_ATTR_EN_0_3_XYZW 0x0000f000 +#define NV50TCL_VP_ATTR_EN_0_2_SHIFT 8 +#define NV50TCL_VP_ATTR_EN_0_2_MASK 0x00000f00 +#define NV50TCL_VP_ATTR_EN_0_2_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_2_XNNN 0x00000100 +#define NV50TCL_VP_ATTR_EN_0_2_NYNN 0x00000200 +#define NV50TCL_VP_ATTR_EN_0_2_XYNN 0x00000300 +#define NV50TCL_VP_ATTR_EN_0_2_NNZN 0x00000400 +#define NV50TCL_VP_ATTR_EN_0_2_XNZN 0x00000500 +#define NV50TCL_VP_ATTR_EN_0_2_NYZN 0x00000600 +#define NV50TCL_VP_ATTR_EN_0_2_XYZN 0x00000700 +#define NV50TCL_VP_ATTR_EN_0_2_NNNW 0x00000800 +#define NV50TCL_VP_ATTR_EN_0_2_XNNW 0x00000900 +#define NV50TCL_VP_ATTR_EN_0_2_NYNW 0x00000a00 +#define NV50TCL_VP_ATTR_EN_0_2_XYNW 0x00000b00 +#define NV50TCL_VP_ATTR_EN_0_2_NNZW 0x00000c00 +#define NV50TCL_VP_ATTR_EN_0_2_XNZW 0x00000d00 +#define NV50TCL_VP_ATTR_EN_0_2_NYZW 0x00000e00 +#define NV50TCL_VP_ATTR_EN_0_2_XYZW 0x00000f00 +#define NV50TCL_VP_ATTR_EN_0_1_SHIFT 4 +#define NV50TCL_VP_ATTR_EN_0_1_MASK 0x000000f0 +#define NV50TCL_VP_ATTR_EN_0_1_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_1_XNNN 0x00000010 +#define NV50TCL_VP_ATTR_EN_0_1_NYNN 0x00000020 +#define NV50TCL_VP_ATTR_EN_0_1_XYNN 0x00000030 +#define NV50TCL_VP_ATTR_EN_0_1_NNZN 0x00000040 +#define NV50TCL_VP_ATTR_EN_0_1_XNZN 0x00000050 +#define NV50TCL_VP_ATTR_EN_0_1_NYZN 0x00000060 +#define NV50TCL_VP_ATTR_EN_0_1_XYZN 0x00000070 +#define NV50TCL_VP_ATTR_EN_0_1_NNNW 0x00000080 +#define NV50TCL_VP_ATTR_EN_0_1_XNNW 0x00000090 +#define NV50TCL_VP_ATTR_EN_0_1_NYNW 0x000000a0 +#define NV50TCL_VP_ATTR_EN_0_1_XYNW 0x000000b0 +#define NV50TCL_VP_ATTR_EN_0_1_NNZW 0x000000c0 +#define NV50TCL_VP_ATTR_EN_0_1_XNZW 0x000000d0 +#define NV50TCL_VP_ATTR_EN_0_1_NYZW 0x000000e0 +#define NV50TCL_VP_ATTR_EN_0_1_XYZW 0x000000f0 +#define NV50TCL_VP_ATTR_EN_0_0_SHIFT 0 +#define NV50TCL_VP_ATTR_EN_0_0_MASK 0x0000000f +#define NV50TCL_VP_ATTR_EN_0_0_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_0_0_XNNN 0x00000001 +#define NV50TCL_VP_ATTR_EN_0_0_NYNN 0x00000002 +#define NV50TCL_VP_ATTR_EN_0_0_XYNN 0x00000003 +#define NV50TCL_VP_ATTR_EN_0_0_NNZN 0x00000004 +#define NV50TCL_VP_ATTR_EN_0_0_XNZN 0x00000005 +#define NV50TCL_VP_ATTR_EN_0_0_NYZN 0x00000006 +#define NV50TCL_VP_ATTR_EN_0_0_XYZN 0x00000007 +#define NV50TCL_VP_ATTR_EN_0_0_NNNW 0x00000008 +#define NV50TCL_VP_ATTR_EN_0_0_XNNW 0x00000009 +#define NV50TCL_VP_ATTR_EN_0_0_NYNW 0x0000000a +#define NV50TCL_VP_ATTR_EN_0_0_XYNW 0x0000000b +#define NV50TCL_VP_ATTR_EN_0_0_NNZW 0x0000000c +#define NV50TCL_VP_ATTR_EN_0_0_XNZW 0x0000000d +#define NV50TCL_VP_ATTR_EN_0_0_NYZW 0x0000000e +#define NV50TCL_VP_ATTR_EN_0_0_XYZW 0x0000000f +#define NV50TCL_VP_ATTR_EN_1 0x00001654 +#define NV50TCL_VP_ATTR_EN_1_15_SHIFT 28 +#define NV50TCL_VP_ATTR_EN_1_15_MASK 0xf0000000 +#define NV50TCL_VP_ATTR_EN_1_15_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_15_XNNN 0x10000000 +#define NV50TCL_VP_ATTR_EN_1_15_NYNN 0x20000000 +#define NV50TCL_VP_ATTR_EN_1_15_XYNN 0x30000000 +#define NV50TCL_VP_ATTR_EN_1_15_NNZN 0x40000000 +#define NV50TCL_VP_ATTR_EN_1_15_XNZN 0x50000000 +#define NV50TCL_VP_ATTR_EN_1_15_NYZN 0x60000000 +#define NV50TCL_VP_ATTR_EN_1_15_XYZN 0x70000000 +#define NV50TCL_VP_ATTR_EN_1_15_NNNW 0x80000000 +#define NV50TCL_VP_ATTR_EN_1_15_XNNW 0x90000000 +#define NV50TCL_VP_ATTR_EN_1_15_NYNW 0xa0000000 +#define NV50TCL_VP_ATTR_EN_1_15_XYNW 0xb0000000 +#define NV50TCL_VP_ATTR_EN_1_15_NNZW 0xc0000000 +#define NV50TCL_VP_ATTR_EN_1_15_XNZW 0xd0000000 +#define NV50TCL_VP_ATTR_EN_1_15_NYZW 0xe0000000 +#define NV50TCL_VP_ATTR_EN_1_15_XYZW 0xf0000000 +#define NV50TCL_VP_ATTR_EN_1_14_SHIFT 24 +#define NV50TCL_VP_ATTR_EN_1_14_MASK 0x0f000000 +#define NV50TCL_VP_ATTR_EN_1_14_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_14_XNNN 0x01000000 +#define NV50TCL_VP_ATTR_EN_1_14_NYNN 0x02000000 +#define NV50TCL_VP_ATTR_EN_1_14_XYNN 0x03000000 +#define NV50TCL_VP_ATTR_EN_1_14_NNZN 0x04000000 +#define NV50TCL_VP_ATTR_EN_1_14_XNZN 0x05000000 +#define NV50TCL_VP_ATTR_EN_1_14_NYZN 0x06000000 +#define NV50TCL_VP_ATTR_EN_1_14_XYZN 0x07000000 +#define NV50TCL_VP_ATTR_EN_1_14_NNNW 0x08000000 +#define NV50TCL_VP_ATTR_EN_1_14_XNNW 0x09000000 +#define NV50TCL_VP_ATTR_EN_1_14_NYNW 0x0a000000 +#define NV50TCL_VP_ATTR_EN_1_14_XYNW 0x0b000000 +#define NV50TCL_VP_ATTR_EN_1_14_NNZW 0x0c000000 +#define NV50TCL_VP_ATTR_EN_1_14_XNZW 0x0d000000 +#define NV50TCL_VP_ATTR_EN_1_14_NYZW 0x0e000000 +#define NV50TCL_VP_ATTR_EN_1_14_XYZW 0x0f000000 +#define NV50TCL_VP_ATTR_EN_1_13_SHIFT 20 +#define NV50TCL_VP_ATTR_EN_1_13_MASK 0x00f00000 +#define NV50TCL_VP_ATTR_EN_1_13_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_13_XNNN 0x00100000 +#define NV50TCL_VP_ATTR_EN_1_13_NYNN 0x00200000 +#define NV50TCL_VP_ATTR_EN_1_13_XYNN 0x00300000 +#define NV50TCL_VP_ATTR_EN_1_13_NNZN 0x00400000 +#define NV50TCL_VP_ATTR_EN_1_13_XNZN 0x00500000 +#define NV50TCL_VP_ATTR_EN_1_13_NYZN 0x00600000 +#define NV50TCL_VP_ATTR_EN_1_13_XYZN 0x00700000 +#define NV50TCL_VP_ATTR_EN_1_13_NNNW 0x00800000 +#define NV50TCL_VP_ATTR_EN_1_13_XNNW 0x00900000 +#define NV50TCL_VP_ATTR_EN_1_13_NYNW 0x00a00000 +#define NV50TCL_VP_ATTR_EN_1_13_XYNW 0x00b00000 +#define NV50TCL_VP_ATTR_EN_1_13_NNZW 0x00c00000 +#define NV50TCL_VP_ATTR_EN_1_13_XNZW 0x00d00000 +#define NV50TCL_VP_ATTR_EN_1_13_NYZW 0x00e00000 +#define NV50TCL_VP_ATTR_EN_1_13_XYZW 0x00f00000 +#define NV50TCL_VP_ATTR_EN_1_12_SHIFT 16 +#define NV50TCL_VP_ATTR_EN_1_12_MASK 0x000f0000 +#define NV50TCL_VP_ATTR_EN_1_12_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_12_XNNN 0x00010000 +#define NV50TCL_VP_ATTR_EN_1_12_NYNN 0x00020000 +#define NV50TCL_VP_ATTR_EN_1_12_XYNN 0x00030000 +#define NV50TCL_VP_ATTR_EN_1_12_NNZN 0x00040000 +#define NV50TCL_VP_ATTR_EN_1_12_XNZN 0x00050000 +#define NV50TCL_VP_ATTR_EN_1_12_NYZN 0x00060000 +#define NV50TCL_VP_ATTR_EN_1_12_XYZN 0x00070000 +#define NV50TCL_VP_ATTR_EN_1_12_NNNW 0x00080000 +#define NV50TCL_VP_ATTR_EN_1_12_XNNW 0x00090000 +#define NV50TCL_VP_ATTR_EN_1_12_NYNW 0x000a0000 +#define NV50TCL_VP_ATTR_EN_1_12_XYNW 0x000b0000 +#define NV50TCL_VP_ATTR_EN_1_12_NNZW 0x000c0000 +#define NV50TCL_VP_ATTR_EN_1_12_XNZW 0x000d0000 +#define NV50TCL_VP_ATTR_EN_1_12_NYZW 0x000e0000 +#define NV50TCL_VP_ATTR_EN_1_12_XYZW 0x000f0000 +#define NV50TCL_VP_ATTR_EN_1_11_SHIFT 12 +#define NV50TCL_VP_ATTR_EN_1_11_MASK 0x0000f000 +#define NV50TCL_VP_ATTR_EN_1_11_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_11_XNNN 0x00001000 +#define NV50TCL_VP_ATTR_EN_1_11_NYNN 0x00002000 +#define NV50TCL_VP_ATTR_EN_1_11_XYNN 0x00003000 +#define NV50TCL_VP_ATTR_EN_1_11_NNZN 0x00004000 +#define NV50TCL_VP_ATTR_EN_1_11_XNZN 0x00005000 +#define NV50TCL_VP_ATTR_EN_1_11_NYZN 0x00006000 +#define NV50TCL_VP_ATTR_EN_1_11_XYZN 0x00007000 +#define NV50TCL_VP_ATTR_EN_1_11_NNNW 0x00008000 +#define NV50TCL_VP_ATTR_EN_1_11_XNNW 0x00009000 +#define NV50TCL_VP_ATTR_EN_1_11_NYNW 0x0000a000 +#define NV50TCL_VP_ATTR_EN_1_11_XYNW 0x0000b000 +#define NV50TCL_VP_ATTR_EN_1_11_NNZW 0x0000c000 +#define NV50TCL_VP_ATTR_EN_1_11_XNZW 0x0000d000 +#define NV50TCL_VP_ATTR_EN_1_11_NYZW 0x0000e000 +#define NV50TCL_VP_ATTR_EN_1_11_XYZW 0x0000f000 +#define NV50TCL_VP_ATTR_EN_1_10_SHIFT 8 +#define NV50TCL_VP_ATTR_EN_1_10_MASK 0x00000f00 +#define NV50TCL_VP_ATTR_EN_1_10_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_10_XNNN 0x00000100 +#define NV50TCL_VP_ATTR_EN_1_10_NYNN 0x00000200 +#define NV50TCL_VP_ATTR_EN_1_10_XYNN 0x00000300 +#define NV50TCL_VP_ATTR_EN_1_10_NNZN 0x00000400 +#define NV50TCL_VP_ATTR_EN_1_10_XNZN 0x00000500 +#define NV50TCL_VP_ATTR_EN_1_10_NYZN 0x00000600 +#define NV50TCL_VP_ATTR_EN_1_10_XYZN 0x00000700 +#define NV50TCL_VP_ATTR_EN_1_10_NNNW 0x00000800 +#define NV50TCL_VP_ATTR_EN_1_10_XNNW 0x00000900 +#define NV50TCL_VP_ATTR_EN_1_10_NYNW 0x00000a00 +#define NV50TCL_VP_ATTR_EN_1_10_XYNW 0x00000b00 +#define NV50TCL_VP_ATTR_EN_1_10_NNZW 0x00000c00 +#define NV50TCL_VP_ATTR_EN_1_10_XNZW 0x00000d00 +#define NV50TCL_VP_ATTR_EN_1_10_NYZW 0x00000e00 +#define NV50TCL_VP_ATTR_EN_1_10_XYZW 0x00000f00 +#define NV50TCL_VP_ATTR_EN_1_9_SHIFT 4 +#define NV50TCL_VP_ATTR_EN_1_9_MASK 0x000000f0 +#define NV50TCL_VP_ATTR_EN_1_9_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_9_XNNN 0x00000010 +#define NV50TCL_VP_ATTR_EN_1_9_NYNN 0x00000020 +#define NV50TCL_VP_ATTR_EN_1_9_XYNN 0x00000030 +#define NV50TCL_VP_ATTR_EN_1_9_NNZN 0x00000040 +#define NV50TCL_VP_ATTR_EN_1_9_XNZN 0x00000050 +#define NV50TCL_VP_ATTR_EN_1_9_NYZN 0x00000060 +#define NV50TCL_VP_ATTR_EN_1_9_XYZN 0x00000070 +#define NV50TCL_VP_ATTR_EN_1_9_NNNW 0x00000080 +#define NV50TCL_VP_ATTR_EN_1_9_XNNW 0x00000090 +#define NV50TCL_VP_ATTR_EN_1_9_NYNW 0x000000a0 +#define NV50TCL_VP_ATTR_EN_1_9_XYNW 0x000000b0 +#define NV50TCL_VP_ATTR_EN_1_9_NNZW 0x000000c0 +#define NV50TCL_VP_ATTR_EN_1_9_XNZW 0x000000d0 +#define NV50TCL_VP_ATTR_EN_1_9_NYZW 0x000000e0 +#define NV50TCL_VP_ATTR_EN_1_9_XYZW 0x000000f0 +#define NV50TCL_VP_ATTR_EN_1_8_SHIFT 0 +#define NV50TCL_VP_ATTR_EN_1_8_MASK 0x0000000f +#define NV50TCL_VP_ATTR_EN_1_8_NONE 0x00000000 +#define NV50TCL_VP_ATTR_EN_1_8_XNNN 0x00000001 +#define NV50TCL_VP_ATTR_EN_1_8_NYNN 0x00000002 +#define NV50TCL_VP_ATTR_EN_1_8_XYNN 0x00000003 +#define NV50TCL_VP_ATTR_EN_1_8_NNZN 0x00000004 +#define NV50TCL_VP_ATTR_EN_1_8_XNZN 0x00000005 +#define NV50TCL_VP_ATTR_EN_1_8_NYZN 0x00000006 +#define NV50TCL_VP_ATTR_EN_1_8_XYZN 0x00000007 +#define NV50TCL_VP_ATTR_EN_1_8_NNNW 0x00000008 +#define NV50TCL_VP_ATTR_EN_1_8_XNNW 0x00000009 +#define NV50TCL_VP_ATTR_EN_1_8_NYNW 0x0000000a +#define NV50TCL_VP_ATTR_EN_1_8_XYNW 0x0000000b +#define NV50TCL_VP_ATTR_EN_1_8_NNZW 0x0000000c +#define NV50TCL_VP_ATTR_EN_1_8_XNZW 0x0000000d +#define NV50TCL_VP_ATTR_EN_1_8_NYZW 0x0000000e +#define NV50TCL_VP_ATTR_EN_1_8_XYZW 0x0000000f +#define NV50TCL_POINT_SPRITE_CTRL 0x00001660 +#define NV50TCL_LINE_STIPPLE_ENABLE 0x0000166c +#define NV50TCL_LINE_STIPPLE_PATTERN 0x00001680 +#define NV50TCL_PROVOKING_VERTEX_LAST 0x00001684 +#define NV50TCL_VERTEX_TWO_SIDE_ENABLE 0x00001688 +#define NV50TCL_POLYGON_STIPPLE_ENABLE 0x0000168c +#define NV50TCL_SET_PROGRAM_CB 0x00001694 +#define NV50TCL_SET_PROGRAM_CB_PROGRAM_SHIFT 4 +#define NV50TCL_SET_PROGRAM_CB_PROGRAM_MASK 0x000000f0 +#define NV50TCL_SET_PROGRAM_CB_PROGRAM_VERTEX 0x00000000 +#define NV50TCL_SET_PROGRAM_CB_PROGRAM_GEOMETRY 0x00000020 +#define NV50TCL_SET_PROGRAM_CB_PROGRAM_FRAGMENT 0x00000030 +#define NV50TCL_SET_PROGRAM_CB_INDEX_SHIFT 8 +#define NV50TCL_SET_PROGRAM_CB_INDEX_MASK 0x00000f00 +#define NV50TCL_SET_PROGRAM_CB_BUFFER_SHIFT 12 +#define NV50TCL_SET_PROGRAM_CB_BUFFER_MASK 0x0007f000 +#define NV50TCL_SET_PROGRAM_CB_VALID (1 << 0) +#define NV50TCL_VP_RESULT_MAP_SIZE 0x000016ac +#define NV50TCL_VP_REG_ALLOC_TEMP 0x000016b0 +#define NV50TCL_VP_REG_ALLOC_RESULT 0x000016b8 +#define NV50TCL_VP_RESULT_MAP(x) (0x000016bc+((x)*4)) +#define NV50TCL_VP_RESULT_MAP__SIZE 0x00000010 +#define NV50TCL_VP_RESULT_MAP_0_SHIFT 0 +#define NV50TCL_VP_RESULT_MAP_0_MASK 0x000000ff +#define NV50TCL_VP_RESULT_MAP_1_SHIFT 8 +#define NV50TCL_VP_RESULT_MAP_1_MASK 0x0000ff00 +#define NV50TCL_VP_RESULT_MAP_2_SHIFT 16 +#define NV50TCL_VP_RESULT_MAP_2_MASK 0x00ff0000 +#define NV50TCL_VP_RESULT_MAP_3_SHIFT 24 +#define NV50TCL_VP_RESULT_MAP_3_MASK 0xff000000 +#define NV50TCL_POLYGON_STIPPLE_PATTERN(x) (0x00001700+((x)*4)) +#define NV50TCL_POLYGON_STIPPLE_PATTERN__SIZE 0x00000020 +#define NV50TCL_GP_ENABLE 0x00001798 +#define NV50TCL_GP_REG_ALLOC_TEMP 0x000017a0 +#define NV50TCL_GP_REG_ALLOC_RESULT 0x000017a8 +#define NV50TCL_GP_RESULT_MAP_SIZE 0x000017ac +#define NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE 0x000017b0 +#define NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_POINTS 0x00000001 +#define NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP 0x00000002 +#define NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP 0x00000003 +#define NV50TCL_RASTERIZE_ENABLE 0x000017b4 +#define NV50TCL_STRMOUT_ENABLE 0x000017b8 +#define NV50TCL_GP_RESULT_MAP(x) (0x000017fc+((x)*4)) +#define NV50TCL_GP_RESULT_MAP__SIZE 0x00000020 +#define NV50TCL_GP_RESULT_MAP_0_SHIFT 0 +#define NV50TCL_GP_RESULT_MAP_0_MASK 0x000000ff +#define NV50TCL_GP_RESULT_MAP_1_SHIFT 8 +#define NV50TCL_GP_RESULT_MAP_1_MASK 0x0000ff00 +#define NV50TCL_GP_RESULT_MAP_2_SHIFT 16 +#define NV50TCL_GP_RESULT_MAP_2_MASK 0x00ff0000 +#define NV50TCL_GP_RESULT_MAP_3_SHIFT 24 +#define NV50TCL_GP_RESULT_MAP_3_MASK 0xff000000 +#define NV50TCL_MAP_SEMANTIC_0 0x00001904 +#define NV50TCL_MAP_SEMANTIC_0_FFC0_ID_SHIFT 0 +#define NV50TCL_MAP_SEMANTIC_0_FFC0_ID_MASK 0x000000ff +#define NV50TCL_MAP_SEMANTIC_0_BFC0_ID_SHIFT 8 +#define NV50TCL_MAP_SEMANTIC_0_BFC0_ID_MASK 0x0000ff00 +#define NV50TCL_MAP_SEMANTIC_0_COLR_NR_SHIFT 16 +#define NV50TCL_MAP_SEMANTIC_0_COLR_NR_MASK 0x00ff0000 +#define NV50TCL_MAP_SEMANTIC_0_CLMP_EN_SHIFT 24 +#define NV50TCL_MAP_SEMANTIC_0_CLMP_EN_MASK 0xff000000 +#define NV50TCL_MAP_SEMANTIC_1 0x00001908 +#define NV50TCL_MAP_SEMANTIC_1_CLIP_LO_SHIFT 0 +#define NV50TCL_MAP_SEMANTIC_1_CLIP_LO_MASK 0x000000ff +#define NV50TCL_MAP_SEMANTIC_1_CLIP_HI_SHIFT 8 +#define NV50TCL_MAP_SEMANTIC_1_CLIP_HI_MASK 0x0000ff00 +#define NV50TCL_MAP_SEMANTIC_2 0x0000190c +#define NV50TCL_MAP_SEMANTIC_2_LAYER_ID_SHIFT 0 +#define NV50TCL_MAP_SEMANTIC_2_LAYER_ID_MASK 0x000000ff +#define NV50TCL_MAP_SEMANTIC_3 0x00001910 +#define NV50TCL_MAP_SEMANTIC_3_PTSZ_EN (1 << 0) +#define NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_SHIFT 4 +#define NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_MASK 0x00000ff0 +#define NV50TCL_MAP_SEMANTIC_4 0x00001914 +#define NV50TCL_MAP_SEMANTIC_4_PRIM_ID_SHIFT 0 +#define NV50TCL_MAP_SEMANTIC_4_PRIM_ID_MASK 0x000000ff +#define NV50TCL_CULL_FACE_ENABLE 0x00001918 +#define NV50TCL_FRONT_FACE 0x0000191c +#define NV50TCL_FRONT_FACE_CW 0x00000900 +#define NV50TCL_FRONT_FACE_CCW 0x00000901 +#define NV50TCL_CULL_FACE 0x00001920 +#define NV50TCL_CULL_FACE_FRONT 0x00000404 +#define NV50TCL_CULL_FACE_BACK 0x00000405 +#define NV50TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NV50TCL_VIEWPORT_TRANSFORM_EN 0x0000192c +#define NV50TCL_VIEW_VOLUME_CLIP_CTRL 0x0000193c +#define NV50TCL_VIEWPORT_CLIP_RECTS_EN 0x0000194c +#define NV50TCL_FP_CTRL_UNK196C 0x0000196c +#define NV50TCL_FP_INTERPOLANT_CTRL 0x00001988 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT 24 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK 0xff000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NONE 0x00000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNN 0x01000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNN 0x02000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNN 0x03000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZN 0x04000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZN 0x05000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZN 0x06000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZN 0x07000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNNW 0x08000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNW 0x09000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNW 0x0a000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNW 0x0b000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZW 0x0c000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZW 0x0d000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZW 0x0e000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZW 0x0f000000 +#define NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_SHIFT 16 +#define NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_MASK 0x00ff0000 +#define NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_SHIFT 8 +#define NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_MASK 0x0000ff00 +#define NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT 0 +#define NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK 0x000000ff +#define NV50TCL_FP_REG_ALLOC_TEMP 0x0000198c +#define NV50TCL_REG_MODE 0x000019a0 +#define NV50TCL_REG_MODE_PACKED 0x00000001 +#define NV50TCL_REG_MODE_STRIPED 0x00000002 +#define NV50TCL_FP_CONTROL 0x000019a8 +#define NV50TCL_FP_CONTROL_MULTIPLE_RESULTS (1 << 0) +#define NV50TCL_FP_CONTROL_EXPORTS_Z (1 << 8) +#define NV50TCL_FP_CONTROL_USES_KIL (1 << 20) +#define NV50TCL_DEPTH_BOUNDS_EN 0x000019bc +#define NV50TCL_LOGIC_OP_ENABLE 0x000019c4 +#define NV50TCL_LOGIC_OP 0x000019c8 +#define NV50TCL_LOGIC_OP_CLEAR 0x00001500 +#define NV50TCL_LOGIC_OP_AND 0x00001501 +#define NV50TCL_LOGIC_OP_AND_REVERSE 0x00001502 +#define NV50TCL_LOGIC_OP_COPY 0x00001503 +#define NV50TCL_LOGIC_OP_AND_INVERTED 0x00001504 +#define NV50TCL_LOGIC_OP_NOOP 0x00001505 +#define NV50TCL_LOGIC_OP_XOR 0x00001506 +#define NV50TCL_LOGIC_OP_OR 0x00001507 +#define NV50TCL_LOGIC_OP_NOR 0x00001508 +#define NV50TCL_LOGIC_OP_EQUIV 0x00001509 +#define NV50TCL_LOGIC_OP_INVERT 0x0000150a +#define NV50TCL_LOGIC_OP_OR_REVERSE 0x0000150b +#define NV50TCL_LOGIC_OP_COPY_INVERTED 0x0000150c +#define NV50TCL_LOGIC_OP_OR_INVERTED 0x0000150d +#define NV50TCL_LOGIC_OP_NAND 0x0000150e +#define NV50TCL_LOGIC_OP_SET 0x0000150f +#define NV50TCL_CLEAR_BUFFERS 0x000019d0 +#define NV50TCL_CLEAR_BUFFERS_Z (1 << 0) +#define NV50TCL_CLEAR_BUFFERS_S (1 << 1) +#define NV50TCL_CLEAR_BUFFERS_R (1 << 2) +#define NV50TCL_CLEAR_BUFFERS_G (1 << 3) +#define NV50TCL_CLEAR_BUFFERS_B (1 << 4) +#define NV50TCL_CLEAR_BUFFERS_A (1 << 5) +#define NV50TCL_CLEAR_BUFFERS_RT_SHIFT 6 +#define NV50TCL_CLEAR_BUFFERS_RT_MASK 0x000003c0 +#define NV50TCL_CLEAR_BUFFERS_LAYER_SHIFT 10 +#define NV50TCL_CLEAR_BUFFERS_LAYER_MASK 0x0007fc00 +#define NV50TCL_COLOR_MASK(x) (0x00001a00+((x)*4)) +#define NV50TCL_COLOR_MASK__SIZE 0x00000008 +#define NV50TCL_COLOR_MASK_R_SHIFT 0 +#define NV50TCL_COLOR_MASK_R_MASK 0x0000000f +#define NV50TCL_COLOR_MASK_G_SHIFT 4 +#define NV50TCL_COLOR_MASK_G_MASK 0x000000f0 +#define NV50TCL_COLOR_MASK_B_SHIFT 8 +#define NV50TCL_COLOR_MASK_B_MASK 0x00000f00 +#define NV50TCL_COLOR_MASK_A_SHIFT 12 +#define NV50TCL_COLOR_MASK_A_MASK 0x0000f000 +#define NV50TCL_STRMOUT_ADDRESS_HIGH(x) (0x00001a80+((x)*16)) +#define NV50TCL_STRMOUT_ADDRESS_HIGH__SIZE 0x00000004 +#define NV50TCL_STRMOUT_ADDRESS_LOW(x) (0x00001a84+((x)*16)) +#define NV50TCL_STRMOUT_ADDRESS_LOW__SIZE 0x00000004 +#define NV50TCL_STRMOUT_NUM_ATTRIBS(x) (0x00001a88+((x)*16)) +#define NV50TCL_STRMOUT_NUM_ATTRIBS__SIZE 0x00000004 +#define NV50TCL_VERTEX_ARRAY_ATTRIB(x) (0x00001ac0+((x)*4)) +#define NV50TCL_VERTEX_ARRAY_ATTRIB__SIZE 0x00000010 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_SHIFT 0 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK 0x0000000f +#define NV50TCL_VERTEX_ARRAY_ATTRIB_CONST (1 << 4) +#define NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_SHIFT 5 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_MASK 0x0007ffe0 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_SHIFT 19 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_MASK 0x01f80000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32 0x00080000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32 0x00100000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16 0x00180000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32 0x00200000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16 0x00280000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8 0x00500000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16 0x00780000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32 0x00900000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8 0x00980000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8 0x00c00000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16 0x00d80000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8 0x00e80000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT 25 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK 0x7e000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT 0x7e000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM 0x24000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM 0x12000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED 0x5a000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED 0x6c000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT 0x48000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT 0x36000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_BGRA (1 << 31) +#define NV50TCL_QUERY_ADDRESS_HIGH 0x00001b00 +#define NV50TCL_QUERY_ADDRESS_LOW 0x00001b04 +#define NV50TCL_QUERY_COUNTER 0x00001b08 +#define NV50TCL_QUERY_GET 0x00001b0c + + +#define NV84TCL 0x00008297 + + + +#define NVA0TCL 0x00008397 + + + +#define NVA8TCL 0x00008597 + + + +#define NV50_COMPUTE 0x000050c0 + +#define NV50_COMPUTE_NOP 0x00000100 +#define NV50_COMPUTE_NOTIFY 0x00000104 +#define NV50_COMPUTE_SERIALIZE 0x00000110 +#define NV50_COMPUTE_DMA_NOTIFY 0x00000180 +#define NV50_COMPUTE_DMA_GLOBAL 0x000001a0 +#define NV50_COMPUTE_DMA_QUERY 0x000001a4 +#define NV50_COMPUTE_DMA_LOCAL 0x000001b8 +#define NV50_COMPUTE_DMA_STACK 0x000001bc +#define NV50_COMPUTE_DMA_CODE_CB 0x000001c0 +#define NV50_COMPUTE_DMA_TSC 0x000001c4 +#define NV50_COMPUTE_DMA_TIC 0x000001c8 +#define NV50_COMPUTE_DMA_TEXTURE 0x000001cc +#define NV50_COMPUTE_CP_ADDRESS_HIGH 0x00000210 +#define NV50_COMPUTE_CP_ADDRESS_LOW 0x00000214 +#define NV50_COMPUTE_STACK_ADDRESS_HIGH 0x00000218 +#define NV50_COMPUTE_STACK_ADDRESS_LOW 0x0000021c +#define NV50_COMPUTE_STACK_SIZE_LOG 0x00000220 +#define NV50_COMPUTE_TSC_ADDRESS_HIGH 0x0000022c +#define NV50_COMPUTE_TSC_ADDRESS_LOW 0x00000230 +#define NV50_COMPUTE_TSC_LIMIT 0x00000234 +#define NV50_COMPUTE_CB_ADDR 0x00000238 +#define NV50_COMPUTE_CB_ADDR_ID_SHIFT 8 +#define NV50_COMPUTE_CB_ADDR_ID_MASK 0x003fff00 +#define NV50_COMPUTE_CB_ADDR_BUFFER_SHIFT 0 +#define NV50_COMPUTE_CB_ADDR_BUFFER_MASK 0x0000007f +#define NV50_COMPUTE_CB_DATA(x) (0x0000023c+((x)*4)) +#define NV50_COMPUTE_CB_DATA__SIZE 0x00000010 +#define NV50_COMPUTE_DELAY1 0x00000284 +#define NV50_COMPUTE_WATCHDOG_TIMER 0x00000288 +#define NV50_COMPUTE_DELAY2 0x0000028c +#define NV50_COMPUTE_LOCAL_ADDRESS_HIGH 0x00000294 +#define NV50_COMPUTE_LOCAL_ADDRESS_LOW 0x00000298 +#define NV50_COMPUTE_LOCAL_SIZE_LOG 0x0000029c +#define NV50_COMPUTE_CB_DEF_ADDRESS_HIGH 0x000002a4 +#define NV50_COMPUTE_CB_DEF_ADDRESS_LOW 0x000002a8 +#define NV50_COMPUTE_CB_DEF_SET 0x000002ac +#define NV50_COMPUTE_CB_DEF_SET_SIZE_SHIFT 0 +#define NV50_COMPUTE_CB_DEF_SET_SIZE_MASK 0x0000ffff +#define NV50_COMPUTE_CB_DEF_SET_BUFFER_SHIFT 16 +#define NV50_COMPUTE_CB_DEF_SET_BUFFER_MASK 0x007f0000 +#define NV50_COMPUTE_BLOCK_ALLOC 0x000002b4 +#define NV50_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT 0 +#define NV50_COMPUTE_BLOCK_ALLOC_THREADS_MASK 0x0000ffff +#define NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT 16 +#define NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK 0xffff0000 +#define NV50_COMPUTE_LANES32_ENABLE 0x000002b8 +#define NV50_COMPUTE_CP_REG_ALLOC_TEMP 0x000002c0 +#define NV50_COMPUTE_TIC_ADDRESS_HIGH 0x000002c4 +#define NV50_COMPUTE_TIC_ADDRESS_LOW 0x000002c8 +#define NV50_COMPUTE_TIC_LIMIT 0x000002cc +#define NV50_COMPUTE_PM_SET(x) (0x000002d0+((x)*4)) +#define NV50_COMPUTE_PM_SET__SIZE 0x00000004 +#define NV50_COMPUTE_PM_CONTROL(x) (0x000002e0+((x)*4)) +#define NV50_COMPUTE_PM_CONTROL__SIZE 0x00000004 +#define NV50_COMPUTE_PM_CONTROL_UNK0 (1 << 0) +#define NV50_COMPUTE_PM_CONTROL_UNK1_SHIFT 4 +#define NV50_COMPUTE_PM_CONTROL_UNK1_MASK 0x00000070 +#define NV50_COMPUTE_PM_CONTROL_UNK2_SHIFT 8 +#define NV50_COMPUTE_PM_CONTROL_UNK2_MASK 0xffffff00 +#define NV50_COMPUTE_LOCAL_WARPS_LOG_ALLOC 0x000002fc +#define NV50_COMPUTE_LOCAL_WARPS_NO_CLAMP 0x00000300 +#define NV50_COMPUTE_STACK_WARPS_LOG_ALLOC 0x00000304 +#define NV50_COMPUTE_STACK_WARPS_NO_CLAMP 0x00000308 +#define NV50_COMPUTE_QUERY_ADDRESS_HIGH 0x00000310 +#define NV50_COMPUTE_QUERY_ADDRESS_LOW 0x00000314 +#define NV50_COMPUTE_QUERY_COUNTER 0x00000318 +#define NV50_COMPUTE_QUERY_GET 0x0000031c +#define NV50_COMPUTE_COND_ADDRESS_HIGH 0x00000320 +#define NV50_COMPUTE_COND_ADDRESS_LOW 0x00000324 +#define NV50_COMPUTE_COND_MODE 0x00000328 +#define NV50_COMPUTE_COND_MODE_NEVER 0x00000000 +#define NV50_COMPUTE_COND_MODE_ALWAYS 0x00000001 +#define NV50_COMPUTE_COND_MODE_RES 0x00000002 +#define NV50_COMPUTE_COND_MODE_NOT_RES_AND_NOT_ID 0x00000003 +#define NV50_COMPUTE_COND_MODE_RES_OR_ID 0x00000004 +#define NV50_COMPUTE_LAUNCH 0x00000368 +#define NV50_COMPUTE_USER_PARAM_COUNT 0x00000374 +#define NV50_COMPUTE_USER_PARAM_COUNT_COUNT_SHIFT 8 +#define NV50_COMPUTE_USER_PARAM_COUNT_COUNT_MASK 0x0000ff00 +#define NV50_COMPUTE_LINKED_TSC 0x00000378 +#define NV50_COMPUTE_CODE_CB_FLUSH 0x00000380 +#define NV50_COMPUTE_GRIDDIM 0x000003a4 +#define NV50_COMPUTE_GRIDDIM_X_SHIFT 0 +#define NV50_COMPUTE_GRIDDIM_X_MASK 0x0000ffff +#define NV50_COMPUTE_GRIDDIM_Y_SHIFT 16 +#define NV50_COMPUTE_GRIDDIM_Y_MASK 0xffff0000 +#define NV50_COMPUTE_SHARED_SIZE 0x000003a8 +#define NV50_COMPUTE_BLOCKDIM_YX 0x000003ac +#define NV50_COMPUTE_BLOCKDIM_YX_X_SHIFT 0 +#define NV50_COMPUTE_BLOCKDIM_YX_X_MASK 0x0000ffff +#define NV50_COMPUTE_BLOCKDIM_YX_Y_SHIFT 16 +#define NV50_COMPUTE_BLOCKDIM_YX_Y_MASK 0xffff0000 +#define NV50_COMPUTE_BLOCKDIM_Z 0x000003b0 +#define NV50_COMPUTE_CP_START_ID 0x000003b4 +#define NV50_COMPUTE_REG_MODE 0x000003b8 +#define NV50_COMPUTE_REG_MODE_PACKED 0x00000001 +#define NV50_COMPUTE_REG_MODE_STRIPED 0x00000002 +#define NV50_COMPUTE_TEX_LIMITS 0x000003bc +#define NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_SHIFT 0 +#define NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_MASK 0x0000000f +#define NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_SHIFT 4 +#define NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_MASK 0x000000f0 +#define NV50_COMPUTE_BIND_TSC 0x000003c0 +#define NV50_COMPUTE_BIND_TSC_VALID (1 << 0) +#define NV50_COMPUTE_BIND_TSC_SAMPLER_SHIFT 4 +#define NV50_COMPUTE_BIND_TSC_SAMPLER_MASK 0x000000f0 +#define NV50_COMPUTE_BIND_TSC_TSC_SHIFT 12 +#define NV50_COMPUTE_BIND_TSC_TSC_MASK 0x001ff000 +#define NV50_COMPUTE_BIND_TIC 0x000003c4 +#define NV50_COMPUTE_BIND_TIC_VALID (1 << 0) +#define NV50_COMPUTE_BIND_TIC_TEXTURE_SHIFT 1 +#define NV50_COMPUTE_BIND_TIC_TEXTURE_MASK 0x000001fe +#define NV50_COMPUTE_BIND_TIC_TIC_SHIFT 9 +#define NV50_COMPUTE_BIND_TIC_TIC_MASK 0x7ffffe00 +#define NV50_COMPUTE_SET_PROGRAM_CB 0x000003c8 +#define NV50_COMPUTE_SET_PROGRAM_CB_INDEX_SHIFT 8 +#define NV50_COMPUTE_SET_PROGRAM_CB_INDEX_MASK 0x00000f00 +#define NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_SHIFT 12 +#define NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_MASK 0x0007f000 +#define NV50_COMPUTE_SET_PROGRAM_CB_VALID (1 << 0) +#define NV50_COMPUTE_GLOBAL_ADDRESS_HIGH(x) (0x00000400+((x)*32)) +#define NV50_COMPUTE_GLOBAL_ADDRESS_HIGH__SIZE 0x00000010 +#define NV50_COMPUTE_GLOBAL_ADDRESS_LOW(x) (0x00000404+((x)*32)) +#define NV50_COMPUTE_GLOBAL_ADDRESS_LOW__SIZE 0x00000010 +#define NV50_COMPUTE_GLOBAL_PITCH(x) (0x00000408+((x)*32)) +#define NV50_COMPUTE_GLOBAL_PITCH__SIZE 0x00000010 +#define NV50_COMPUTE_GLOBAL_LIMIT(x) (0x0000040c+((x)*32)) +#define NV50_COMPUTE_GLOBAL_LIMIT__SIZE 0x00000010 +#define NV50_COMPUTE_GLOBAL_MODE(x) (0x00000410+((x)*32)) +#define NV50_COMPUTE_GLOBAL_MODE__SIZE 0x00000010 +#define NV50_COMPUTE_GLOBAL_MODE_LINEAR (1 << 0) +#define NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_SHIFT 8 +#define NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_MASK 0x00000f00 +#define NV50_COMPUTE_USER_PARAM(x) (0x00000600+((x)*4)) +#define NV50_COMPUTE_USER_PARAM__SIZE 0x00000040 + + +#endif /* NOUVEAU_REG_H */ diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c index 801548d8a1..551e893569 100644 --- a/src/gallium/drivers/nv50/nv50_screen.c +++ b/src/gallium/drivers/nv50/nv50_screen.c @@ -379,8 +379,8 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev) OUT_RING (chan, 1); /* activate all 32 lanes (threads) in a warp */ - BEGIN_RING(chan, screen->tesla, NV50TCL_WARP_HALVES, 1); - OUT_RING (chan, 2); + BEGIN_RING(chan, screen->tesla, NV50TCL_REG_MODE, 1); + OUT_RING (chan, NV50TCL_REG_MODE_STRIPED); BEGIN_RING(chan, screen->tesla, 0x1400, 1); OUT_RING (chan, 0xf); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_class.h b/src/mesa/drivers/dri/nouveau/nouveau_class.h new file mode 120000 index 0000000000..5eff4af4d5 --- /dev/null +++ b/src/mesa/drivers/dri/nouveau/nouveau_class.h @@ -0,0 +1 @@ +../../../../gallium/drivers/nouveau/nouveau_class.h \ No newline at end of file -- cgit v1.2.3